我边读边写,要不等会看完了也就忘记完了。
这个enumeration中文翻译就是列举,听起来挺别留,不过光从字面意思就是能列举,就允许可以有多个。 具体多少个呢,我来google 一下。
答案是127个,原来USB device enumeration过后会有个7 bit的地址,所以2的7次方就是128,然后我估计地址0000000是reserved,所以就是127个了。
Enumeration的过程包括了assign address, reading descriptors from the device, assign and load a driver. 打个不恰当的比喻,就好比有这么一个风情万种的女子,才高N斗,精通100多种语言,于是乎许多人想来一睹其风采。女子怕麻烦,与其记住每个人的名字,她只是给每个人一个号码,就像探监的时候,XXX,你X来看你啦。给号码的时候,她问对方是用什么语言的,然后她自己也做下记录,跟这人交谈之时就好用那个语言。(写完感觉要是把这个女子换成一高僧,立刻这篇文章升华了好几个摄氏度)
说回enumeration, 每次当系统启动的时候,hub就会通知host,有没有usb devices attached. 系统运行过程中,如果有devices attach,那么hub也会通知host. 什么是hub,就是电脑上的usb口。什么是Host,就是住持。hub就是庙里的小和尚。每天早上起来,去开门,发现一诚心向佛之人横躺在门前,立刻大喊:“住持,有客人,还有空房么”. 或者是有人砰砰砰来敲门,小和尚开门大叫“住持,踢馆的”。 但是,不管你是找老和尚帮忙,还是找他PK,你都得满足最起码三点: 01: support control transfers 10: support standard requests 11:endpoint zero. 这个比较容易理解,我就不解释了。
During enumeration,总共有这么4个states: Powered, Default, Address, and Configured.
到点了,睡了,明天晚上再看。
No comments:
Post a Comment