USB1.1USB1.1简述USB1.1结构与原理USB1.1与RS-232比较USB1.1与RS-232的转换USB1.1与IEEE-1394比较USB的应用与实例USB简介USB是英文UniversalSerialBus的缩写,中文含义是“通用串行总线”,它是一种新兴的计算机外围串行通信接口标准,它克服传统计算机串/并口的缺陷,具有热插拔,即插即用,数据传输可靠,扩展方便,低成本等优点,已成为当前计算机必备的接口之一,同时也被广泛地应用于嵌入式系统设计中。USB优点使用简单所用USB系统的接口一致,连线简单。系统可对设备进行自动检测和配置,支持热插拔。新添加设备系统不需要重新启动。应用范围广USB系统数据报文附加信息少,带宽利用率高,可同时支持同步传输和异步传输两种传输方式。一个USB系统最多可支持127个物理设备。USB设备的带宽可从几Kbps到几Mbps(在USB2.0版本,最高可达几百Mbps)。一个USB系统可同时支持不同速率的设备,如低速的键盘、鼠标,全速的ISDN、语音,高速的磁盘、图像等(仅USB2.0版本支持高速设备)。较强的纠错能力USB系统可实时地管理设备插拔。在USB协议中包含了传输错误管理、错误恢复等功能,同时根据不同的传输类型来处理传输错误。总线供电USB总线可为连接在其上的设备提供5V电压/100mA电流的供电,最大可提供500mA的电流。USB设备也可采用自供电方式。低成本USB接口电路简单,易于实现,特别是低速设备。USB系统接口/电缆也比较简单,成本比串口/并口低。典型USB系统拓扑结构USBHOST在一个USB系统中,当且仅当有一个USBHOST时,USBHOST有以下功能:◇管理USB系统;◇每毫秒产生一帧数据;◇发送配置请求对USB设备进行配置操作;◇对总线上的错误进行管理和恢复。USBDEVICE在一个USB系统中,USBDEVICE和USBHUB总数不能超过127个。USBDEVICE接收USB总线上的所有数据包,通过数据包的地址域来判断是不是发给自己的数据包:若地址不符,则简单地丢弃该数据包;若地址相符,则通过响应USBHOST的数据包与USBHOST进行数据传输。USBHUBUSBHUB用于设备扩展连接,所有USBDEVICE都连接在USBHUB的端口上。一个USBHOST总与一个根HUB(USBROOTHUB)相连。USBHUB为其每个端口提供100mA电流供设备使用。同时,USBHUB可以通过端口的电气变化诊断出设备的插拔操作,并通过响应USBHOST的数据包把端口状态汇报给USBHOST。一般来说,USB设备与USBHUB间的连线长度不超过5m,USB系统的级联不能超过5级(包括ROOTHUB)。USB总线协议USB采用投票式总线结构,并由主机系统的USB接口(即主控器)按照预定原则发起所有的数据传输。多数总线传输包括3种信息包,即令牌包(TokenPocket).数据包(DataPocket)和握手包(Handshakepocket)。每次数据传输首先由主控器发送1个USB令牌包。该包包含PID类型标志、传输方向(由主机到终端或由终端到主机.)、USB设备地址和端口地址,然后由数据源传输一个数据包或者指示当前没有数据传输。通常在目的地以“握手包(Handshake)”进行应答,指示传输是否成功。USB通信的逻辑结构USB与RS-232的比较与常用的串行RS-232总线接口相比,USB总线有着完全不同的系统结构。USB总线在物理连线上要比RS-232接口简单得多,但在驱动程序上USB总线系统要复杂得多。下面就不同的方面比较USB总线和RS-232总线接口的不同。USB设备连接与RS-232口连接比较USB传输时序与RS-232传输时序USB驱动程序与RS-232驱动程序USB与RS-232转换的实现1方案讨论2芯片介绍3硬件(FT232BM)4软件方案讨论之一虽然RS232与USB都是串行通信,但无论是底层信号电平定义、机械连接式,还是数据格式、通信协议,两者都完全不同.设计USB/RS232转换器的方法有好几种:一种方法是采用通用的USB控制器,利用其内置的通用异步收发器(UART)在USB与RS232之间进行信号转换,例如EZ-USB、PICI6C745、CY7C68013等方案讨论之二若没有内置UART,也可以利用通用I/O口模拟RS232的收发过程;另外还可以采用单独的USB接口收发器芯片,如ISP1581、PDIUSBD11/12等,但这种方法需要另配微控制器才能工作方案讨论之三第三种是采用专用的USB/RS232双向转换芯片,如FTDI(futuretechnologydevicesinternational)公司的FT8U232AM、FT232BM,这种方法的优点是数据收发和协议转换工作全部由芯片独立完成,而无需干预,也不用编写芯片的固件.下面着重介绍第三种方案.芯片介绍外型及引脚转换电路驱动软件当FT232BM转换器连接到主机后,必须在PC机上安装一个由FTDI免费提供的虚拟串行口驱动程序,它有Windows98、Windows98se、Windowsme等不同版本.设备的原Windows应用程序不必修改,可以像存取一个标准的物理串口一样访问这个虚拟串口,而本质上所有针对虚拟串口的数据通信都是以USB总线传输来完成的.但在设备一方,收发的都是RS232数据.编程实现FT232BM的最大优势在于产品开发者不必设计固件,总线枚举、数据收发与转换等全部由芯片自动完成,但产品的VID/PID、设备序列号、设备说明性文字等必须由自己来编写,这是设计者唯一需要编程的地方,编写的应用程序由FTDI提供.转换器不带EEPROM芯片照样可以工作,但这时的设备描述符是默认的FTDI公司提供的内容.产品开发者若想改变它则必须外接一片EEPROM,并写入自己的VID/PID。USB与IEEE-1394的比较总线特性USBIEEE-1394拓扑结构星型,仅HOST为主设备,其它为从设备菊花链型,每个节点都可作为主设备,可通过1394桥连接不同总线最大设备数支持127个节点(通过HUB级联)单个1394总线上支持64个节点,通过1394桥可扩展64000个节点连线特征线长≤5m,包含2根数据线、2根电源线线长≤4.5m,包含4根数据线、2根电源线热插拔支持热插拔支持热插拔总线特性USBIEEE-1394数据传输方式串行、异步、差分、半双工,支持控制、中断、批量、实时传输串行、异步、差分、全双工,支持异步、实时传输数据编码NRZIDslink传输速度USB1.1:低速1.5Mb/s,全速12Mb/sIEEE-1394a:400Mb/s;IEEE-1394b:3.2Gb/s接口成本低高应用方向鼠标、键盘、Modem、语音(USB1.1)图象、高速存储设备带USB接口的PC(百万)0100200300400500600700800199920002001200220032004带USB接口的外设(百万)0100200300400500600199920002001200220032004USB在PC机上的典型应用USB在监控系统方面的应用USB技术在工业测控中的应用工业测控中的关键环节之一是数据采集。随着控制要求不断提高,对采集系统的精度和实时性都提出了更高的要求,使系统外设间的数据传输量迅速增加。传统测控采样系统的数据传输方式已不能适应要求,USB技术以其高速传输、性能稳定、性价比高等优点成为较好地解决方案。传统工业测控中数据传输方法的弊端在没有引入USB技术之前,数据采集芯片将数据传送至主机一直需要板卡作为接口。这样设置一方面造成主机插槽资源紧张,影响系统扩展;另一方面在每次升级采样设备后,以前的板卡往往需要同时更换,使系统更新升级费用增加。同时,采集芯片进行数据传输时,一般采用异步串型通信方式。由于异步串型通信传送每一个字符都含有起始位、停止位、校验位,且字符间有多位空闲位,使传送数据过程中产生了20%的冗余数据;而单独采用RS-232-c、RS-422、RS-485等协议在采样设备和主机间进行数据传输,整个系统的传输速度并不是很快。当测控系统对采样的精度和数据传输的实时性有较高要求时,采样系统需要传回主机的数据量会大大增加,传统的总线传输难以适应,有可能造成数据丢失和系统实时性降低,同时也给系统维护带来不便。采用USB技术提升系统性能基本思想将USB技术应用于传统的测控系统与原有结构相结合,主要是在采集设备数据传至主机之前,先进行协议转换,即将用RS-232-C、RS-485协议传输的数据转换成用USB协议传输,再由USBHub经USBHost传至主机,进行分析处理。因此,转换芯片是实现向USB协议转换的关键环节。以采用RS-232-C协议进行传输的系统为例,传感器采集的模拟量进行A/D转换后,利用RS-232-C协议上传至USB转换芯片(如ScanLogic公司的SLIIR等)。转换芯片将数据转换成USB协议形式传送至主机进行分析处理。由于USB总线传送拆分信号,所有通信由USBHost初始化。所以在多采样点高频环境中,用USB设备传送数据抗干扰能力强、系统配置方便。同样当主机有数据发送时,由于转换器是双向的,数据也可按照与上传过程相反的处理过程到达测量端。整个过程如图2所示。USB采样系统中的硬件和软件构成实际应用中的USB采样系统一般由以下几个基本功能部分组成:传感器、A/D(D/A)转换器、微控制器、USB转换芯片等。从系统造价和以后升级方便的角度来考虑,采用单片机与USB转换芯片分别置备,再组合使用的方案较为适宜。采样系统的软件主要是指USB设备的驱动程序和单片机程序。单片机程序的编写较为复杂,而USB设备驱动程序的编写相对简单,通常采用WindowsDDK、DriverWorks等专用编写工具进行编写。编写USB设备驱动程序前,应注意选择好数据的传送方式,具体细节读者可参阅相关开发程序文档。计算机USB口与CAN总线的通信CAN总线(ControllerAreaNetWork控制器局域网)作为现场总线的一种,是20世纪80年代德国Bosch汽车公司制定的一种串行通讯协议,主要为用于汽车多个控制设备和多个仪器仪表之间的数据通讯,链路层采用CAN2.0B协议。该总线与其它通信网的不同之处有二:一是报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,该收的收下,不该收的弃而不用。其好处是可在线上网和下网、即插即用和多站接收;二是特别强化了对数据安全性的关注,满足控制系统及其它较高数据要求的系统需求。现在,它已广泛应用于各种工业现场,特别适用于进行优化、分析及维护系统之用。系统的结构与组成系统设计的思想应该是模块的一端接计算机USB接口,而另一端接CAN网络,所设计的USB-CAN模块起两者之间桥梁的作用。由于USB协议是很复杂的,用USB接口芯片可以避免上述麻烦,USB1.0接口的最高传输速率可达12MB/s,完全满足CAN总线的传输波特率要求,因此我们选用了USB1.0标准,整个模块应由USB接口芯片、单片机、CAN控制器等组成。其中USB接口芯片用于实现USB信号与并口信号的转换,CAN控制器实现单片机与CAN总线之间的数据通信,而单片机对其进行正确的初始化后通过访问其内部寄存器实现对CAN的操作。图1是一开发实例的系统结构及所选的芯片型号。模块是由CAN控制器SJA1000、单片机AT89C51、CAN驱动芯片PCA82C250以及光电隔离芯片6N137等组成。谢谢大家