USB的基础知识

      USB的基础知识主要是对薛圆圆的书的前8章的一个总结,总的可以分成微观和宏观两方面的认识。

 

 

      微观的理解,主要理解几个大的概念:信息包的分配、USB的事务处理分阶段和各类信息包的关系、几种USB数据传输类型、几种USB的传输速率、控制传输的分阶段与事务处理的关系。

      5个方面中的3和4是概念性的,你也知道传输类型就控制传输、中断传输、块传输、同步传输几种;而传输速率也就低速、全速、高速几种。主要说说其余3个知识点,它们之间还有些相互的关联。

      一、信息包分成令牌包、数据包、握手包,每个包都包含几部分必要的“字段”,如同步字段、EOP字段、数据字段(不要认为数据字段就是数据包才会有的,每种包都有它的内容);三种包是合作的关系,一般的USB中的事务的完成,可能都要同时借助3种包,这其中令牌包一般会确定“单一USB事务”的类型。

      二、关于事务和信息包的关系,第一点说的已经够详细,我们可以进行接下来的思考:一个事务的完成,需要三种信息包的传递,而每种信息包又包含那么多的头尾信息,最终要做到的无非是把“数据包中的数据字段”按照“令牌包确定的传输方向、设备地址、端点”进行传输,最终有价值的东西只有一个:“数据包中的数据字段”,而三种信息包的其他部分对我们来说应该是透明的,这些都伴随着底层对USB传输协议的解析过滤掉了。

      三、控制传输可以说分成几个“事务阶段”:建立、数据、状态,每个事务又都可以分成令牌、数据、握手三部分;鉴于这是控制传输,建立阶段多为“设备请求”,所以要深刻了解“建立阶段的数据部分”、8个字节,对我们后来理解固件程序中的“请求响应函数”帮助很大,P37页有对这8个字节的详细介绍,关于它们我们在后面的宏观理解也还要提到。

 

 

      宏观的理解,也可以分成几大部分:列举的过程、“设备请求响应函数”的分析。

      列举的过程大致如下:设备插好—>主机通过总线电压知道有设备连接—>主机通过设备类请求(注意不是标准USB请求)获取信息,等待100ms以期连接稳定—>主机通过设备类请求复位USB设备,USB设备进入缺省状态,端点0可用—>主机获取描述符,给设备分配地址—>主机进一步获取描述符,给设备加载驱动程序—>设备正常工作,可进行各种配置和数据传输。

      设备请求响应函数分析:函数关心的核心是“控制传输建立阶段的数据包的数据部分”,也就是SETUPDAT,这8个字节的数据包含了一次“设备请求的核心信息”,可以参考P37来理解,首先通过第二个字节SETUPDAT[1]来判断是什么设备请求,也就是请求什么;然后如果是要描述符的,又要看SETUPDAT[3],这是wValue的高字节,指明描述符的种类;如果要求的请求需要进一步说明操作对象,比如是跟特性、状态有关的请求,那又要看SETUPDAT[0],它指明了数据的传输方向和主机对立一段的设备、接口或端点(如果是精确到接口或端点的请求,那么可以通过SETUPDAT的wIndex字段进一步了解端点号或者接口号)。通过上面这一大串对SETUPDAT的8字节的判断,基本上就能知道请求什么,并作出相应,如果判断都落空,则进入default处理。

 

 

 

      早就该及时记录琐碎的心得了,从当初想写编译和时钟中断之类的,拖到现在,DSP的东西都没沉积下来,好在时间还不晚(从10月7号还是算100天倒计时,过去了2周,现在还剩85天),现在有的就马上写。记录两条语句:1、时间不早不晚,心态不急不慢。2、对象是死的,人是活的;想象是活的,做是死的。

      翻开作息时间表看看:现在学习调试的变得越来越紧迫,求别人不如靠自己,去搜索信息吧。第二个方面就是嵌入式的开课,我觉得这和回来要搭的DSP系统应该是相通的,应该按老师说的,不读手册,拿了例程来先去上手,搞好了这个,对理解DSP硬件工作原理和操作系统都有好处。最后一个就是现在的USB了,整了半天觉得还应该先搞清底层的工作原理,读手册和固件例程,知道固件是怎么扮演中间的角色的,然后去问师兄地下的FPGA是怎样控制向USB的FIFO填数的,最后再回过头来确定上位机的控制读数的机制,当然关系到上位机操作系统的东西只能去网上找了。关键还是上面的2句话。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值