您的位置 首页 五金品牌

usb设备

usb设备 通用串行总﹤线(Universal ﹣S‰erial ≦Bus USB),是一种?快速、灵活的总线…

usb设备

通用串行总﹤线(Universal ﹣S‰erial ≦Bus USB),是一种?快速、灵活的总线接口。与其它通信接口比较,USB接口的最大特点是易于使?用,这也是USB的主要?设?计目?标。作为一种∫高速总∩线接口,USB?适用于?多种设备,比如数码相机、MP∧3播放机、高速数据采集设备等。易于使用∪还表现在USB接口支持热插拔,并且所有的配置过程都由系统自动完成,无需用户÷干预?mol。

?本文>引用地址:http://www.eepw.com.cn/arti?c?le/2816.htm

从表1可知,数据传输速率高是U?SB接口的?另一特点。USB接口支持1.5Mb/s(低速)、12Mb/s(全速)和高达48?0Mb﹥/s(USB ㎜2.0规范)的数据传输速率,扣除用于总线?状态、控制和错误监测等的数据传输,US¥B的最大理论传输速率仍达1.2Mb/?s或9.6Mb/s,远高于一般的串≒行总?线接口。

USB接口/芯片价格低廉◎,一个支≌持USB ∷1.1规范的USB接口芯片价格大多在$1~2之?间,跟一∵个232或4825接口芯片价格差不多,这也大大促进USB?设备-的开发与应用。

在进※行一个USB设备开发之前,首先要根据具?体使用要求选择合适的USB控制器。目前∝,∷市场上供应的U⊥SB控制器主?要有两种?:带USB接口的单片机(MCU)或纯粹的USB接㎏口芯片。

带USB接口的单片机从应用上又可以分?成两类,一类是从底∟层设计专用于US?B控制的单片机,比如Cyp?ress公司的CY7C63513(低速)、CY7C64013(全速),但由于价格、开发工具以及单片机性能有限等问题,所以一般不‖推荐选用。另一类是增加了USB接口的普通单片机,例如Intel公司的8X931(基于8<051)、8X930(基于高速、增强的8051)、Cypress公司的EZ-USB(?基于8051),选择㈱这类USB控制器的最*大好处在于开发者对系统结构和指令集非常熟悉,开发工具简单,但对3于简单或低成本系统,价格高将会是最大的障碍。一?般来说,后者的价格是前者价格的10倍。

纯粹的USB接口芯∈片仅处理USB通信,必须有一个外部微处?理?器来进行协议处理和数据交换。典型产品有Philips公司的PDIUSBD11(I2C接口)、PDIUS?BD12(?并行接口),NS公司的USBN9603/9604(并行接口),NetChip公司的NET2888等。USB接口芯片的主要特点是价格便*?宜、接口方便、可?靠性高,尤其适合于产品的改型设计(硬?件上仅需对并行总线和中断进行改动,软件则需要增加微处理器的USB中断处理和数据交换程序、PC℡机的?USB接⊕口通信程序,无需对原有∣产品系统结构℉作很大的?改动)。

在选定USB控制器?以后,如果是带USB∨接口的单片≯机,则是一般单片机应ml用系统的开发;反之,就是如何把USB接口芯片与单片机应用系统融合的问题,一般USB接⊙口芯片都支持多种并行总线结构(复用/非复用),可×以方便的与多种单片机接口。硬件设计中要注意的就是USB接口芯片的时钟速度比较3高,如果芯片内部没有PLL来倍频?,则外部晶体振荡?电路(多数在48MHz)的设计就应该¥特?别注意,包括晶体的选择(负载电容大小)、匹配网络=的设?计以及P?CoB布线。

USB设备的软件设计主要包括两部分:一是USB?设备端的单片£@机软件﹢,主要完成USB协议处理与数据交换(多数情况下是一个中断子程?序)以及其它应?用功能♀程序(比如A/D转换、MP3解码等)。二是PC端的程序,由USB通信程序和用户服务程序两部分组成,用户服?务程序通过USB通信程序与⌒系统USBDI(USB ≥Device? Inte?rface)通信,由系统完成US∶B协议的处理与数据传输?。PC端?程序的开?发难度比较大,程序员不仅要熟悉USB协议,还要熟悉W+indows体系结构并能熟练运用DDK工具。

USB接口软≠件主要完成US%B协议的处理和数据的交换,一定要㏒严格遵循USB2.0规范第九章的规定(详见 Universa?l Se?rial Bus Specificat¤ion Revis㏄ion 2.0 : C≡hapter 9.U?SB Devi≮ce F≈ramework www.usb.org)。

要快捷、成功的开发一个?USB设备,正确、合理的调试方法是必?不m可少的?环节。?调试基本分?三步进行:首先对外部设备(单片机部分?)借助PC调试㎞软?件(芯∥片生产商提供或?从网上下载WINRT-USB、K?ernel Dr⊿iver等调?试软件)将设备端的USB协议∴(主要有描述?符请求?、端口配置、地址设置以及基本数据交换)调通。然后,用调试好的USB设备接口来开发、调试PC软件,这一步相=对比较容易。最后,加上U·SB设?备端的其?它用户程?序,对?整个完整的系统进行系统调试。

下面从硬件、软件两方面具体介绍作者设计的一个便携式USB数据采集设备,重点介绍USB接口部分。该数据采集系统以AD?公司的带81通道12位℅A/D、2路12位D/?A的52内核单片机ADuC?8?12作为系统控制器,采用Philips公司的PDIUSBD12作为USB接口芯片。USB接口电路原理图如图1所示。由于系统中需要断电后保存采集数据,扩展了两片28F0?4¢0,因此在这里把PDIU㏕SBD12与CPU的接口采用了总线复用方式,通过ALE信号把数?据?分离出来,并?把低64K RAM空间全留给PDIUSBD12(ADuC812的RAM空间有1M,分页管理,每页64K,共256页,对应DPP寄存器值0~?255,PDIUSBD12占第0页,即DPP=0),地址线A(P2.0)作为PDIUSBD12的指∏令/数据选择线,则地址0001≤00H写指令、000000H读写数据;单片机的P3.5口线提供P?DIUSBD12的复位∽信号,接非门是保证单片机复位时?PDIUSBD12也复位。PDI㎝USBD12与单片机的数据交换采用中断方式(INT0),实际应用中如果系统?中断资源不够(特别是系统改型设计时),也可以接成查询方式,只是∠注意查询间隔不要超过USB接口?的最大等待时间(最大500mS)。PDIUSBD12的GOOD-LINK指示灯(LED)在USB通信时会闪烁,常亮或一直?不亮说明USB接口有′问题,调试时非常有用。PDIUSBD12㎎采用PLL倍频产生系统时钟,≧只需外接低频晶体,P♂CB设计比较方便。

单片机软件设计〒主要注意以下几点:

×* PDIUSBD12的中断输出引脚只要中断寄存器不为0就保持低电平,所以单片机的对应中断(INT0)应设置成电平触发;中断处理后要用读上次传输状态¬寄存器清除中断寄?存器中对应位(D0-D5)。

* PDIUSBD12靠软件控制USB端口的连接,程序在系统初始化处理完后软件设m置连接到USB端口,?然后开中断。?

* PDIUSBD12对内部寄存器的读写没有边界限制,程序设计中一定不要读写超过端点深度的数据。特别对于描述符请求,由于其长度大于Control IN∑ 深度(16 Byte°s),要㏑分几个数据周期传输。∞

* 描述符一定要设置正确,并且注意USB协议中所有字数据均定义为低字节?在前传输(LSB),例如P?hlipsμ的ID为471H,应在iDVendor中定义成71H、04H。

* 在接收到Setup包后,一定要用A?CK Setup指令来重新使?能Control IN 和Control OU?T端点。向I﹣N端点写数据后,要用Validate Buffer指令 ?使数据可以在下℃一个IN数据?周期发送。从OUT端点读数据后,要用C?lear Buffer指令来清空∮缓冲区,否则后面O%UT周期传输的数据将被?丢弃(返回NAK)。

*协议的处理一定﹢要按U?SB?规范要求进行,对无效请求,用Set Endpoint Status指√令将Control? IN和Control OUT端点Stall即№可。

PC?机软件作±者用VC6.0开发,分USB?接口通信程序和应用程序两部分,其开发以及系统调试过?程与前文所述相同,此处不再赘 ?述$。■

 ″

参考文献

1 Jan Axelson.USB usb设备 Complete.Lakeview Research,1999

2 Don Anderso?n.Univ?ersal Serial Bus System Ar?chitecture.Addison§ Wesley Lo㎡ngman,Inc,2000

3 ANA?LOG DEVICES.ADu£C812 User’s Manual,200?0

关于更多usb设备内容,可以收藏本网页。小杨阳 USB设备开发实例

usb设备usb设备
本文来自网络,不代表天津五金网立场,转载请注明出处:http://www.mgnqyz.com/mgnqyz/1026.html

作者: mgnqyz

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部