在线时间0 小时
UID159899
ST金币0
蝴蝶豆0
注册时间2009-11-21
新手上路
- 最后登录
- 1970-1-1
|
发表于 2010-9-14 10:23:00
|
显示全部楼层
a0a.1 0b0c
RE:STM32F系列用USB通讯
首先,我觉得进行USB通讯的开发并不是一件容易的事,相比于早期的串行接口,USB接口及其协议更加复杂,也正是因为这种复杂性,能使USB接口能完成各种丰富多彩的应用。
USB2.0规范的最基础的部分提供了USB接口的物理特性和传输方式,规定了控制传输、中断传输、批量传输和同步传输四种方式,完成了设备、配置、接口、端点的逻辑结构。在此基础上,根据不同的外部设备,提出了不同的类协议,例如,USBHID类就是用于键盘、鼠标等人机接口设备通讯,USBCDC类是通讯类,可用于模拟串口通讯。
开发一个带USB通讯接口的设备可分为两部分,即设备的固件程序和主机(比较多的是Windows系统)的驱动程序。Windows系统一般自带了比较通用的设备的驱动程序,而这类设备的USB固件程序代码也比较容易找得到,开发难度就可以大为降低。因此,开发一个带USB通讯接口的设备首要的是确定要开发的是哪一类设备,设备和主机之间交换哪些信息,交换信息的方式有什么特征,以此来确定可以使用USB规范中的哪种类协议。如果你的设备比较特殊或者你的设备极其简单,你也可以自己开发驱动程序。
不管怎么说,你首先需要熟悉USB通讯过程,建议你看看《圈圈教你玩USB》这本书,非常适合入门。然后你必须熟悉下位机的固件程序开发过程,如果采用的芯片技术支持不好,一切从零开始就比较痛苦了。STM32系列芯片中集成了符合2.0规范的USB模块,是个不错的开发选择,而且它的库程序提供了可靠的USB协议栈框架,有完善的应用程序接口和较丰富的应用程序示例,极大的便利了USB固件程序开发。 |
|