日本看板
广告位招租 详细信息请联系 jkanban@gmail.com キャンペーン中!


 
标题: USB通信プロトコル-zt
youiyang
业余诗人
Rank: 2Rank: 2


UID 787
精华 0
积分 769
帖子 221
威望 54
金钱 1126
慈善捐款(日元) 0
阅读权限 100
注册 2007-10-31
 
发表于 2008-2-29 11:50  资料  个人空间  短消息  加为好友  添加 youiyang 为MSN好友 通过MSN和 youiyang 交谈
USB通信プロトコル-zt

--------------------------------------------------------------------------------

USBの通信プロトコル

--------------------------------------------------------------------------------

【USB仕様と転送速度】

USBにはVER1.1とVer2により転送速度が異なっており、下記の3種類となります。
Ver1.1で用意された1.5Mbpsと12Mbpsに対し、Ver2.0で、480Mbpsという非常に
高速なモードが追加されたことになります。







【物理的プロトコル】

USBのケーブルに流れている信号の電気的な仕様は下記のようになっています。
つまり、基本的には、D+、D-の2本の信号線があり、それ以外に電源とグランド
の都合4本の線が接続されます。これにあとシールドが加えられます。
D+、D-の2本の信号線は下図のように接続されます。デバイス側でプルアップを
どちら側にするかによってロースピードとフルスピードを区別するようになっています。










信号線としてはD+とD-の2本しかないのですが、この2本に対して電気的な状態を
いくつか区別して判定出来るようにしています。特に、信号の転送は、2本の線間
の差動信号として送られますが、それ以外に、それぞれの線の信号レベルを独立
に考えて、その状態で下表のように多くの状態を識別しています。
従って、D+とD-の信号ラインの電圧レベルには注意する必要があります。











【フレームの構造】

このUSBライン上を流れる実際のデータは、「フレーム」と呼ばれる単位で通信されて
います。このフレームは1msec周期で繰り返し転送されていて、すべてのデータが
このフレームの中でやり取りされています。
このフレームの構造は、下図のように、「SOF(Start of Frame)」と呼ばれる「パケット」
で始まる複数の「トランザクション」から成り立っています。
パケットは、このUSB通信の中で通信される最小の単位となっていて、いくつかの種類
があります。そしてこのパケットがいくつか通信されて、意味のあるデータ転送の単位
となったものをトランザクションと呼んでいます。
この関係を表したのが下図となります。







【パケットの種類】

上記のトランザクションを構成する最小の通信単位であるパケットは、実際に流れる
データの基本単位となっていて、その内容により下図のような種類があります。
それぞれのパケットの最初には、かならず同期をとるための「SYNC」データが1バイト
先頭に付いて送られます。
そして各パケットの最初には、そのパケットの種別を表す「PID」(Packet Identifier)が
付き、それに続くデータの内容を定義しています。
このPIDにはPID詳細フォーマットに示すような10種類がUSB1.1で取り決められて
います。PIDは1バイトで送られますが、実際のPIDは4ビットしかなく、その0,1を
反転した4ビットをあわせて8ビットとしています。この反転2連送のデータを照合する
ことにより転送の誤りチェックをすることができ、より高信頼なデータ転送をすることが
可能となります。














【論理プロトコル】

上記のようなパケットがやり取りされてひとつのトランザクションとなり、そのトラン
ザクションが一定の手順に従ってやりとりされてやっと意味のあるデータ転送が
行われます。
そのデータ転送の手順は各転送モードによって決まっており、それぞれ下図で
あらわすことが出来ます。
この手順により、デバイス側と、ホスト側の意志が通じ合うことになります。

(1) コントロール転送のプロトコル
  コントロール転送だけが、半二重通信が可能な双方向通信パイプを使うため、
  プロトコルが特殊になっています。
  まず全体が3つのステージに分かれています。最初にセットアップステージがあり、
  何をするかを要求するコマンドをホストから転送します。そしてそのコマンドが
  データの送受信を要求している場合には、これに続いてデータステージが始まり
  ます。 この場合のデータは8バイト単位で複数のトランザクションになることも
  あり、その場合にはDATA0とDATA1を交互にします。最後に転送結果を通知する
  ために、ステータスステージがつながります。
  このステータスステージは特殊な扱いになっていて、直前の送信、受信データと
  反対向きの転送を行うことで、その転送の結果を通知します。

  このプロトコル手順を図で表すと下図のようになっていて、最初は、ホストから送信
  されるSETUPのトークンPIDになります。それに引き続いて、送信データが出力さ
  れるか、逆に、データの送信を要求し受信するかになります。
  さらにもうひとつデータの全く無いものもあります。そしてそれぞれ最後のデータの
  通信が完了すると、それとは逆向きの転送が行われて結果データが返信されて
  完了となります。











(2) バルク転送のプロトコル
  バルク転送は通常のパイプを使うので、片方向通信となります。従って
  もっとも基本的なプロトコルとなっていて、下図のようになります。
  ここで通常は、ACKを返送するルートとなりますが、受信出来ない状態
  の時には、待ってくれという意味でNAKを返信します。
  さらにデバイス側が動作不能な状態の時には、STALLを返信します。








(3) インタラプト転送のプロトコル
  このときのプロトコルは流れとしてはバルク転送と全く同じものとなります。
  しかし、実際の動きは大きく異なり、バルク転送が一度に大量のデータを
  一括送受信するのに対し、インタラプト転送では、比較的少量のデータを
  任意のタイミングで送受信します。








(4) アイソクロナス転送のプロトコル
  この転送の場合には、とにかくエラーがあっても良いから、一定時間以内に
  一定の量のデータを送受信したいという要求に応えるものなので、
  そのプロトコルは下図のように非常に単純になっていて、ハンドシェイクの部分
  が省略されています。
  これで高速の連続通信が確保できることになります。











--------------------------------------------------------------------------------

 目次に戻る

来自 http://www.picfun.com/usbframe.html


本帖最近评分记录
admin   2008-2-29 12:08  威望  +10   很深!
顶部
www.facebooks.jp 在日帅哥美女花名册 www.i-kanban.com 日本大众点评网 www.rakudoor.com 乐道 www.j-price.com 日本价格网
清风jacky
风流才子
Rank: 4Rank: 4Rank: 4Rank: 4


UID 6
精华 1
积分 4764
帖子 1705
威望 115
金钱 5928
慈善捐款(日元) 300
阅读权限 100
注册 2007-3-30
 
发表于 2008-2-29 12:16  资料  个人空间  短消息  加为好友 
1394怎么就没火起来呢?感觉比USB稳定啊!





言寡尤,行寡悔。
顶部
youiyang
业余诗人
Rank: 2Rank: 2


UID 787
精华 0
积分 769
帖子 221
威望 54
金钱 1126
慈善捐款(日元) 0
阅读权限 100
注册 2007-10-31
 
发表于 2008-2-29 13:11  资料  个人空间  短消息  加为好友  添加 youiyang 为MSN好友 通过MSN和 youiyang 交谈
连行家都说,480m的usb(2.0)论速度比不上1000m的网线和800m,1.6G,3.4G三种规格的1394,
论方便比不上串口并口(什么都要驱动),
而且数量还有限制(最多外接3层127个),
不能像网线那样通过模拟信号长距离传输,
虽然提供电源但是非常弱,不连外接电源稍微有点耗电设备都驱动不了(使用移动硬盘的朋友应该有体会),
就这么个东西,居然火了。。

顶部
wallgecko
职业写手
Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5


UID 157
精华 0
积分 2783
帖子 954
威望 135
金钱 3610
慈善捐款(日元) 100
阅读权限 100
注册 2007-6-4
 
发表于 2008-2-29 13:24  资料  个人空间  短消息  加为好友  添加 wallgecko 为MSN好友 通过MSN和 wallgecko 交谈
可能是因为他的口方方正正,,插拔很容易。。

顶部
清风jacky
风流才子
Rank: 4Rank: 4Rank: 4Rank: 4


UID 6
精华 1
积分 4764
帖子 1705
威望 115
金钱 5928
慈善捐款(日元) 300
阅读权限 100
注册 2007-3-30
 
发表于 2008-2-29 13:56  资料  个人空间  短消息  加为好友 
所以说现在内在品质已不那么重要,关键的是商业包装和炒作。





言寡尤,行寡悔。
顶部
robotfish
职业写手
Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5


UID 147
精华 0
积分 1562
帖子 531
威望 50
金钱 2192
慈善捐款(日元) 0
阅读权限 50
注册 2007-5-31
 
发表于 2008-2-29 14:23  资料  个人空间  短消息  加为好友 
[quote]原帖由 youiyang 于 2008-2-29 13:11 发表
论方便比不上串口并口(什么都要驱动),
而且数量还有限制(最多外接3层127个),
     这2个说法不太恰当。我2000年时候做过usb网卡的驱动,研究过usb.(那时候usb硬盘市场上还很少,一般人没有这个概念)

串口并口也要驱动程序,而且不是即插即用。常见的usb设备驱动操作系统都自带了。如果符合规范是不需要自己开发的。

   外接3层127个, 还有那种硬件接口能串联这么多?
usb的火是必然的(我预测到了)。 当然usb不是万能的, 从各方面考虑,其性价比很高。

顶部
清风jacky
风流才子
Rank: 4Rank: 4Rank: 4Rank: 4


UID 6
精华 1
积分 4764
帖子 1705
威望 115
金钱 5928
慈善捐款(日元) 300
阅读权限 100
注册 2007-3-30
 
发表于 2008-2-29 14:28  资料  个人空间  短消息  加为好友 
USB产品的成本是不是比较低,感觉数据传输能力不及1394。
现在DV的数据采集好像还都是用1394呢。





言寡尤,行寡悔。
顶部
youiyang
业余诗人
Rank: 2Rank: 2


UID 787
精华 0
积分 769
帖子 221
威望 54
金钱 1126
慈善捐款(日元) 0
阅读权限 100
注册 2007-10-31
 
发表于 2008-2-29 15:19  资料  个人空间  短消息  加为好友  添加 youiyang 为MSN好友 通过MSN和 youiyang 交谈


QUOTE:
原帖由 robotfish 于 2008-2-29 14:23 发表
[quote]原帖由 youiyang 于 2008-2-29 13:11 发表
论方便比不上串口并口(什么都要驱动),
而且数量还有限制(最多外接3层127个),
     这2个都不对 ...

1,论方便比不上串口并口---哪里不对?

串口的话直接用应用程序调用api就可以了,openfile,readfile,writefile等,5行代码以内就能完成任意通信功能,
无论对方是什么种类的设备,只要是串口,插上就能完成应用程序<----->目标设备的数据交换。
但如果要用usb设备发一个'a',先要说明类型,厂商名,搜索系统是否有这种驱动,没有的话要采用系统默认驱动,如果都没就请添加新硬件吧。。

2,而且数量还有限制(最多外接3层127个)----哪里不对?

我现在做的系统有1000-5000个设备,如果用网络控制,5000个ip一循环轻易就完成任务了。
我考虑能不能改成usb通信,但一想到必须至少在系统里建立50个USB系统,而且网络必须在三层之内,头都大了。

顶部
太阳雨花
书童
Rank: 1



UID 2209
精华 0
积分 27
帖子 10
威望 0
金钱 130
慈善捐款(日元) 0
阅读权限 0
注册 2008-6-24
 
发表于 2008-6-28 04:44  资料  个人空间  主页 短消息  加为好友  QQ
给料机 震动给料机 震动喂料机 喂料机

*** 作者被禁止或删除 内容自动屏蔽 ***
 



当前时区 GMT+9, 现在时间是 2008-8-31 01:10

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
清除 Cookies - 联系我们 - 日本看板 - Archiver