USB

USB是主从模式,设备和设备,主机与主机之间不能连接,为了解决这个问题出现了USB OTG,同一设备在不同场合可以在主机或从机之间切换。

主机如何识别到有设备通过USB插入了?
插头的D+,D-下拉了15k电阻接到地,高速设备的D+上还接了上拉1.5k电阻,低速设备D-接了上拉1.5k,到时间插头一查到接口,有上拉的D+或D-就有电压了,电脑就知道有设笔还能分高速还是低速设备.

USB是通用总线,端口统一,设备却不统一,主机如何识别不同的设备?
对设备进行枚举,所谓枚举就是从设备读取一些信息,主机就知道是什么设备,如何通信,主机通过这些信息来加载合适的驱动.

枚举过程都是使用控制传输,控制过程是什么?
控制过程分为建立过程,可选的数据过程,状态过程
建立过程由主机发出,它开始于一个Setup令牌包,后面紧跟着一个DATA0包.
如果是控制输入传输,那么数据过程就是输入数据;如果是控制输出过程,那么数据过程是输出数据.如果在设置过程中,指定了数据长度为0,则没有数据过程.
数据过程后是状态过程,状态过程和数据过程数据传输方向相反;状态阶段用来确认所有的数据已经正确传输.

USB主机检测到设备后,先对设备复位,设备复位过,USB主机会对地址为0的设备发送获取设备描述符的标准请求.复位后所有和直接连接的设备地址都为0,这样主机就可以跟那么学刚刚插入的设备就可以通过地址0通信.

发送完获取设备描述符的标准请求?
先获取设备描述符,成功就返回设备一个0长度的状态包
然后设置地址,
然后再次获取设备描述符,
最后获取配置描述符,根据里面的配置集合长度,再获取配置集合。配置集合包括配置描述符,接口描述符,端点描述符等
最后有字符串描述符再获取一下

描述符之间的关系?
描述符主要有设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符,HID描述符,报告描述符

设备有一个设备描述符,设备描述符里面决定了该设备有多少种配置,每种配置对应着配置描述符;而在配置描述符中又定义了该配置里面有多少个接口,每个接口有对应的接口描述符;在接口描述符里面又定义了该接口有多少个端点,每个端点对应一个端点描述符;端点描述符定义了端点的大小,类型等等。由此我们可以看出,的描述符之间的关系是一层一层的,最上一层是设备描述符,下面是配置描述符,再下面是接口描述符,再下面是端点描述符。在获取描述符时,先获取设备描述符,然后再获取配置描述符,根据配置描述符中的配置集合长度,一次将配置描述符、接口描述符、端点描述符一起一次读回。其中可能还会有获取设备序列号,厂商字符串,产品字符串等。

端点是什么?
每个USB设备都有一个唯一的设备地址,设备地址是设备连接上的主机时,主机分配的.主机依靠这个地址对USB设备进行访问.但是在设备内部地址会被分的更细,设备会分出一些端点来,每个端点在设备都会有唯一的端点号,这个端点号是设计设备时给定的。如端点0,端点1等。一个设备最多可以包含16个端点,每个端点的地址为0-15。(网上也有说几十个的,有待考究)
其中每个端点地址对应一个方向。例如端点3-IN,端点3-OUT,这两个含义完全不同。但是需要注意其中的一个特殊端点--端点0,每个USB设备必须要有一个端点0,其作用为对设备枚举和对设备进行一些基本的控制功能,端点0也被称为控制端点。并且它与其他的端点还有一个不同之处在于端点0的数据传输方向是双向的,即端点0既可以给主机发送数据,也可以接收主机发送过来的数据,而其它端点均为单向。
虽然有16个端点,但通常我们只用到3个,如下:
1)、EP0:做传输配置和控制信息;
2)、EP1:做数据输入IN_EP;
3)、EP2:做数据输出OUT_EP。
注意:除了端点0,其余的端点在设备配置之前不能与主机通信,只有向主机报告这些端点的特性并被确认后才能被激活。
详细见:http://www.360doc.com/content/20/0313/08/69027866_898811010.shtml

每种描述符都有自己独立的编号,如下
#define DEVICE_DESCRIPTOR 0x01//设备描述符
#define CONFIGURATION_DESCRIPTOR 0x02//配置描述符
#define STRING_DESCRIPTOP 0x03//字符串描述符
#define INTERFACE_DESCRIPTOR 0x04//接口描述符
#define ENDPOINT_DESCRIPTOR 0x05//端点描述符

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,753评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,668评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,090评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,010评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,054评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,806评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,484评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,380评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,873评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,021评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,158评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,838评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,499评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,044评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,159评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,449评论 3 374
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,136评论 2 356

推荐阅读更多精彩内容