原创 初学USB(3)

2014-6-27 16:13 1847 20 20 分类: 工程师职场 文集: USB部分

     今天从一个简单的工程开始,固件程序设计,主机应用程序设计,设备驱动程序设计是一个完整的USB
方案所必需的。了解到应该在keil中开发固件程序,固件程序是运行在外部设备中的程序,如单片机,ARM
DSP等。固件程序的功能和我们正常使用单片机类似,但也是有区别的,它负责初始化设备,重新设置设备。
一般包括像设备描述符信息,设备功能代码等。
     说白了USB只是一个提供了数据通道的总线而已。主机要知道设备的功能和行为才能与之进行我们期望的
数据交换。设备描述符就是为了让主机认识设备的具体功能和行为,描述符中包含了设备的类型,厂商的ID
产品的ID,端点情况,版本号等。
     还有就是主机在获取描述符是由顺序的,从上层到下层,先获取设备描述符,接着是配置描述符,再根据
配置描述符中的配置集合的总长度一次性将配置描述符,接口描述符,类特殊描述符,端点描述符一次性读
取。
     主机通过发送获取字符串描述符的请求以及描述符的索引号,语言ID来获取对应的字符描述符。
(1)设备描述符包含的信息:USB协议版本号,设备类型,端点0的最大包大小,VID和PID,设备版本号,
厂商字符串索引,产品字符串索引,设备序列号索引,可能的配置数等。
(2)配置描述符:所包含的接口数,配置的编号,供电方式,是否支持远程唤醒,电流需求量等。
(3)接口描述符:接口的编号,接口的端点数,接口所使用的类,子类,协议等。
(4)端点描述符:端点号和方向,端点的传输类型,最大包长度,查询时间间隔等。
(5)字符串描述符:提供一些方便人阅读的信息,可以没有。
      应注意的是:
(1)一个设备可以有多个配置,但同一时刻只能使能一个配置。
(2)同一端点号不能出现在同一个配置下的两个和两个以上的不同接口中。
(3)同一端点号可以用在不同的配置中。 

usb

文章评论0条评论)

登录后参与讨论
我要评论
0
20
关闭 站长推荐上一条 /2 下一条