USB很好地解决了计算机插槽限制冲突,实现低成本、高可靠性、多点的数据采集。USB接口如今已经成为计算机外设必不可少的设备。本文详细介绍了USB接口设备及其电子工作原理,并对其在生产实践中的具体应用方法进行了研究。
《信息工程大学学报》是由解放军信息工程大学主办的公开发行的以基础理论、应用科学和工程技术为主的理工科综合性学术刊物,季刊,大16开。《信息工程大学学报》的办刊宗旨是:以马列主义、毛泽东思想、邓小平理论和“三个代表”重要思想为指导,贯彻理论联系实际和“百花齐放,百家争鸣”的方针,坚持四项基本原则,大力提倡解放思想、积极探索、勇于创新的精神,繁荣科技文化,培养科技人才,促进科学技术向生产力的转化,为国防现代化建设和经济建设服务。
从U盘、鼠标、读卡器、外接光驱等常用USB设备,到采用USB接口的电吹风、咖啡炉、剃须刀、圣诞树等千奇百怪的电脑附件,通过一台电脑的USB周边设备使人们享受到了更多的方便和乐趣。USB之所以能够如此普及并受到大众欢迎,在于它方便的热插拔,带宽大,速度快,可连接设备多,简单的网络互联功能等诸多优点。
一、USB接口技术传输类型及优点
USB是通用串行总线(Universal Serial Bus)的简称。在计算机使用中,常常利用PC或工控机对各种数据进行数据采集。这其中有很多地方需要对各种数据进行采集,如液位、温度、压力、频率等。常用的采集方式是通过数据采集板卡,如A/D卡以及422、485总线板卡等。采用板卡不仅安装麻烦、易受机箱内环境的干扰,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备。而USB接口技术的出现,很好地解决了以上这些冲突,很容易就能实现低成本、高可靠性、多点的数据采集。USB系统主要由主控制器(Host Controller)、USB Hub 和USB外设(Peripherals Node)组成系统拓扑结构。
1.USB的传输类型。USB总线包括4种传输类型(传输管道):(1)控制传输类型:用于传输控制信息。(2)块数据传输类型:用于传输相对比较大的和突发性强的数据,一般用于打印机、扫描仪等。(3)中断数据传输类型:通常用于传输设备反馈回计算机的字符和坐标信息,如鼠标,键盘、游戏杆等。(4)同步数据传输类型:占用预先分配的带宽,实时传输,例如海量储存类、打印机类和HID(人机接口)类等。
2.USB的主要优点。速度快;USB 2.0将设备之间的数据传输速度增加到了480Mbps,比USB 1.1标准快40倍左右,速度的提高对于用户的最大好处就是用户可以使用到更高效的外部设备,而且具有多种速度的周边设备都可以被连接到USB 2.0的线路上,而且无需担心数据传输时发生瓶颈效应。设备安装和配置容易;安装USB设备不必再打开机箱,加减已安装过的设备完全不用关闭计算机。所有USB设备支持热拔插,系统对其进行自动配置,彻底抛弃了过去的跳线和拨码开关设置。易于扩展;通过使用Hub扩展可拨接多达127个外设。标准USB电缆长度为3m(5m低速)。通过Hub或中继器可以使外设距离达到30m。能够采用总线供电;USB总线提供最大达5V电压、500mA电流。使用灵活。USB共有4种传输模式:控制传输(control)、同步传输(Synchronization)、中断传输(interrupt)、批量传输(bulk),以适应不同设备的需要。
二、USB的应用与设计
USB的应用主要是数据采集工作,随着USB应用的日益广泛,Intel、SGS-Tomson、Cypress、Philips等芯片厂商都推出了具备USB通信接口的单片机。这些单片机处理能力强,有的本身就具备多路A/D,构成系统的电路简单,调试方便,电磁兼容性好,因此采用具备USB接口的单片机是构成USB数据采集系统较好的方案。USB接口开发中有相当大的工作量是关于USB软件的开发,USB软件包括三方面的工作:固件(firmware)设计,驱动程序设计和主机端应用程序的设计。
1、固件设计。固件是运行在USB芯片上的程序,可采用汇编语言或C语言设计,其主要功能是控制USB芯片接收并处理USB驱动程序的请求、控制USB芯片接收应用程序的控制指令、通过USB芯片存放数据并实时上传至PC等。
2、驱动程序设计。在Windows平台下,USB驱动程序由3部分组成:USB设备驱动程序,USB总线驱动程序和USB主控制器驱动程序,他们必须遵循win32驱动程序模型(WDM)。其中,windows操作系统已经提供了处于驱动程序栈底的USB总线驱动程序和USB主控制器驱动程序。而USB设备驱动程序由设备开发者编写,通过向USB总线驱动程序发送包含URB(USB Request Block)的IRP(I/0 Request Packet),来实现USB外设之间的信息交换。当主机应用程序要对USB设备进行I/0操作时,调用Windows API函数对win32子系统进行win32调用,由I/O管理器将此请求构造成一个合适的IRP,并把它传递给USB设备驱动程序。USB设备驱动程序接受到这个IRP后,根据IRP中的包含的具体操作代码,构造响应的URB并把他放到一个新IRP中,然后把此IRP传递到USB总线驱动程序,USB总线驱动程序根据IRP中所包含的URB执行响应的操作,并把操作结果通过IRP返还给USB设备驱动程序。USB设备驱动程序接受到此IRP后,将操作结果通过IRP返还I/O管理器。最后,I/O管理器将此IRP中的操作结果返还给应用程序,至此应用程序对USB设备的一次I/O操作完成。
3、应用程序设计。应用程序工作于用户模式,用户模式可以访问文件,处理数据,人机交互,不过必须借助设备驱动程序来访问硬件。在VC环境下开发的主机端的应用程序,容易实现了设备的打开、关闭、固件下载、端口配置和文件传输等功能。
USB接口技术的应用正处于高速发展阶段。在USB数据采集、USB工业控制等领域已经得到成功的应用。随着时代的进步和技术的发展,USB必将在更广阔的领域得到更深层次的应用。
[参考文献]
[1]刘润发. MCS-51应用接口技术,长春,吉林电子出版社,2009年第一版
[2]洪晨亮. USB接口程序设计,上海:上海教育出版社,2008第一版