USB设备开发实例

[复制链接]
查看1739 | 回复1 | 2011-9-7 22:54:43 | 显示全部楼层 |阅读模式
<





通用串行总线(Universal Serial Bus USB),是一种快速、灵活的总线接口。与其它通信接口比较,USB接口的最大特点是易于使用,这也是USB的主要设计目标。作为一种高速总线接口,USB适用于多种设备,比如数码相机、MP3播放机、高速数据采集设备等。易于使用还表现在USB接口支持热插拔,并且所有的配置过程都由系统自动完成,无需用户干预。
从表1可知,数据传输速率高是USB接口的另一特点。USB接口支持1.5Mb/s(低速)、12Mb/s(全速)和高达480Mb/s(USB 2.0规范)的数据传输速率,扣除用于总线状态、控制和错误监测等的数据传输,USB的最大理论传输速率仍达1.2Mb/s或9.6Mb/s,远高于一般的串行总线接口。
USB接口芯片价格低廉,一个支持USB 1.1规范的USB接口芯片价格大多在$1~2之间,跟一个232或485接口芯片价格差不多,这也大大促进USB设备的开发与应用。
在进行一个USB设备开发之前,首先要根据具体使用要求选择合适的USB控制器。目前,市场上供应的USB控制器主要有两种:带USB接口的单片机(MCU)或纯粹的USB接口芯片。
带USB接口的单片机从应用上又可以分成两类,一类是从底层设计专用于USB控制的单片机,比如Cypress公司的CY7C63513(低速)、CY7C64013(全速),但由于价格、开发工具以及单片机性能有限等问题,所以一般不推荐选用。另一类是增加了USB接口的普通单片机,例如Intel公司的8X931(基于8051)、8X930(基于高速、增强的8051)、Cypress公司的EZ-USB(基于8051),选择这类USB控制器的最大好处在于开发者对系统结构和指令集非常熟悉,开发工具简单,但对于简单或低成本系统,价格高将会是最大的障碍。一般来说,后者的价格是前者价格的10倍。
纯粹的USB接口芯片仅处理USB通信,必须有一个外部微处理器来进行协议处理和数据交换。典型产品有Philips公司的PDIUSBD11(I2C接口)、PDIUSBD12(并行接口),NS公司的USBN9603/9604(并行接口),NetChip公司的NET2888等。USB接口芯片的主要特点是价格便宜、接口方便、可靠性高,尤其适合于产品的改型设计(硬件上仅需对并行总线和中断进行改动,软件则需要增加微处理器的USB中断处理和数据交换程序、PC机的USB接口通信程序,无需对原有产品系统结构作很大的改动)。
在选定USB控制器以后,如果是带USB接口的单片机,则是一般单片机应用系统的开发;反之,就是如何把USB接口芯片与单片机应用系统融合的问题,一般USB接口芯片都支持多种并行总线结构(复用/非复用),可以方便的与多种单片机接口。硬件设计中要注意的就是USB接口芯片的时钟速度比较高,如果芯片内部没有PLL来倍频,则外部晶体振荡电路(多数在48MHz)的设计就应该特别注意,包括晶体的选择(负载电容大小)、匹配网络的设计以及PCB布线。
USB设备的软件设计主要包括两部分:一是USB设备端的单片机软件,主要完成USB协议处理与数据交换(多数情况下是一个中断子程序)以及其它应用功能程序(比如A/D转换、MP3解码等)。二是PC端的程序,由USB通信程序和用户服务程序两部分组成,用户服务程序通过USB通信程序与系统USBDI(USB Device Interface)通信,由系统完成USB协议的处理与数据传输。PC端程序的开发难度比较大,程序员不仅要熟悉USB协议,还要熟悉Windows体系结构并能熟练运用DDK工具。
USB接口软件主要完成USB协议的处理和数据的交换,一定要严格遵循USB2.0规范第九章的规定(详见 Universal Serial Bus Specification Revision 2.0 : Chapter 9.USB Device Framework www.usb.org)。
要快捷、成功的开发一个USB设备,正确、合理的调试方法是必不可少的环节。调试基本分三步进行:首先对外部设备(单片机部分)借助PC调试软件(芯片生产商提供或从网上下载WINRT-USB、Kernel Driver等调试软件)将设备端的USB协议(主要有描述符请求、端口配置、地址设置以及基本数据交换)调通。然后,用调试好的USB设备接口来开发、调试PC软件,这一步相对比较容易。最后,加上USB设备端的其它用户程序,对整个完整的系统进行系统调试。


热帖推荐
shandong | 2011-9-7 22:54:47 | 显示全部楼层
本新闻共2页,当前在第1页 [1] [2]




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则