摘 要: 介绍了USB总线的特点和分层结构,分析了TMS320F2812扩展CY7C68013A芯片控制USB接口与上位机通信的实现方法,在此基础上利用HyperLynx软件对USB接口的差分数据信号进行了仿真。
本文所阐述的内容是依托于一个便携式设备巡检系统。系统的硬件是由电源管理模块、信号处理模块、数据采集模块、以TMS320F2812为的微处理器模块、液晶显示模块、接口模块构成,软件主要是由巡检管理软件构成。便携式设备巡检系统结构图如图1所示。
1 USB总线的特点及分层结构
USB是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。USB接口支持设备的即插即用和热插拔功能。USB接口可用于连接多达127种外设,如鼠标、调制解调器和键盘等。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的,自1996年推出后,已成功替代串口和并口,并成为当今个人电脑和大量智能设备的必配的接口之一。
1.1 USB接口的特点
以前的外部设备是通过RS232、RS485、并行接口、PCI接口和PS/2接口等老式专用接口来实现与计算机的通信。与老式计算机接口相比,USB接口具有以下优点[1]:
1、可以热插拔。这就让用户在使用外接设备时,不需要重复“关机将并口或串口电缆接上再开机”这样的动作,而是直接在电脑工作时,就可以将USB电缆插上使用。
2、携带方便。USB设备大多以“小、轻、薄”见长,对用户来说,同样20G的硬盘,USB硬盘比IDE硬盘要轻一半的重量,在想要随身携带大量数据时,当然USB硬盘会是首要之选了。
3、标准统一。大家常见的是IDE接口的硬盘,串口的鼠标键盘,并口的打印机扫描仪,可是有了USB之后,这些应用外设统统可以用同样的标准与个人电脑连接,这时就有了USB硬盘、USB鼠标、USB打印机等等。
4、可以连接多个设备。USB在个人电脑上往往具有多个接口,可以同时连接几个设备,如果接上一个有四个端口的USB HUB时,就可以再连上;四个USB设备,以此类推,尽可以连下去,将你家的设备都同时连在一台个人电脑上而不会有任何问题(注:可连接至127个设备)。
1.2 USB系统的分层结构
(1)功能层:主要负责数据传输操作,功能层由USB设备的功能单元和对应的USB主机程序组成。特定的USB主机程序段用于与特定的USB设备功能单元的通信。
(2)USB设备层:主要用于管理USB设备、分配USB地址、读取设备描述符。在这一层中,可以使USB主机获得该USB设备的能力。这部分功能一方面需要USB主机自动完成,另一方面也需要用户编写相应的固件程序进行支持。
(3)USB总线接口层:主要用于实现USB主机和USB设备之间的数据传输。在USB协议中,USB总线接口使用NRZI编码(反向非归零编码)来传输数据,USB主控制器和USB集线器将数据接收或发送,并自动进行解码或编码,这部分一般由USB系统硬件自动完成。
1.2 接口布置
USB是一种常用的pc接口,他只有4根线,两根电源两根信号,故信号是串行传输的,usb接口也称为串行口,usb2.0的速度可以达到480Mbps。可以满足各种工业和民用需要。USB接口的输出电压和电流是: +5V 500mA 实际上有误差,不能超过+/-0.2V 也就是4.8-5.2V 。usb接口的4根线一般是下面这样分配的,需要注意的是千万不要把正负极弄反了,否则会烧掉usb设备或者电脑的南桥芯片:黑线:gnd 红线:vcc 绿线:data+ 白线:data-
2 TMS320F2812外部USB接口扩展
Cypress公司的EZ-USB FX2系列芯片是世界上款继承了USB2.0协议的微处理器,典型的就是CY7C68013,其强大功能包括USB接口以及与8051兼容的指令系统,但是其功耗比较大,高达936mW。因此,Cypress公司随后又推出了低功耗版本EZ-USB FX2LP系列芯片,其中用的比较多的是CY7C68013A芯片,本文就选用CY7C68013A作为USB接口的控制芯片。
2.1 CY7C68013A结构简介
CY7C68013A芯片内部结构主要包括USB2.0收发器、串行引擎(SIE)、 增强型8051内核、 16 KB的RAM、
4 KB的FIFO存储器、I/O接口、数据总线、地址总线和通用可编程接口(GPIF)[2]。
CY7C68013A的CPU采用增强型8051内核,指令集与标准的8051完全兼容。CY7C68013A的一个指令周期包含4个时钟周期,而对于标准的8051而言,一个指令周期则需要12个时钟周期来完成。除了CPU处理速度上的差异外,还进行了如下改进:
(1)具有第二个数据指针;
(2)具有第二个USART;
(3)具有第三个16 位定时器(T2);
(4)具有非复用的高速16位外部存储器接口;
(5)8个额外的中断(INT2-6、WAKEUP、T2和USART1);
(6)FIFO/GPIF数据传输模式;
(7)具有3个唤醒源的休眠模式;
(8)I2C总线接口;
(9)多5个8位并行I/O端口。
2.2 TMS320F2812扩展CY7C68013A控制USB接口
由于TMS320F2812内部没有集成USB控制器,所以要实现TMS320F2812通过USB接口与上位机进行通信,就需要外扩一个USB控制器,本文选用CY7C68013A作为USB控制器。基于CY7C68013A主要用于控制USB接口通信,并不对其他设备进行操作,设计中选用了Cypress公司提供的简化版本的56引脚CY7C68013A,包含PA、PB、PD共3个8 bit并行I/O口。其中PB、PD组成16 bit数据总线,连接到TMS320F2812的GPIO口,负责数据传输;PA复用为USB通信的地址、时序控制和状态信号[3]。CY7C68013A提供了两种接口模式:slave FIFO和GPIF。设计中选用了slave FIFO接口模式,以便于TMS320F2812可以像普通FIFO一样对CY7C68013A中的端点数据缓冲区进行读写。TMS320F2812扩展CY7C68013A与USB接口电路原理图如图2所示。
3 USB接口差分数据信号的仿真
便携式巡检系统通过USB接口与上位机进行通信。对于USB接口的数据线采用差分布线的方式,以保证信号传输的质量,抑制干扰。通常认为信号在传输时采用3种方式:单点对单点、差分模式和共模模式。相比于单点对单点模式,差分信号有着明显的不足,就是它需要两根走线,如果PCB上信号都采用差分布线的方式,可以想象电路设计者会陷入绝境。但是差分信号又有着其不可替代的优点[3]:
(1)差分信号在低电平应用时非常有效。因为如果一个信号的电平非常低,那么这个信号就比较容易受到其他信号的干扰,而差分信号使这个信号的电平加倍。
(2)由于差分信号是电平相同而且反向的两根信号,不需要参考平面作为信号回路,这样就不需要地平面或电源平面的连续性和完整性。
(3)如果两根信号都存在噪声干扰,就可以通过相减来抵消噪声,因此差分信号对信号干扰有着天然的免疫力。
(4)相对于单点信号,差分信号的开关时序会比较,因为单点信号受到噪声干扰后时序或占空比通常会发生变化。
对于差分布线,如果两根信号线的长度不相等,在接收端收到信号的相位会发生变化,因此进行差分布线时,要将差分信号对约束为等长布线。对于USB的差分信号仿真图如图3所示。
由图3可以观察到,没有接电阻端的差分信号存在较强的过冲和振铃现象,容易引起时钟或数据的误判。针对这种现象,通过HyperLynx计算出差分阻抗为159 Ω,而实际中只能选用与159 Ω相近的160 Ω电阻代替。通过在差分信号接收端端接160 Ω电阻来优化差分布线,改善了差分信号存在的过冲和振铃现象,保证了设备巡检系统的稳定运行。经过优化,端接了160 Ω电阻的差分信号仿真图如图4所示。
由图4可以观察到,经过端接160 Ω电阻优化后,差分信号线的过冲和振铃现象得到了很好的抑制。
USB以其小巧的体积、强大的功能、高效的传输速度及兼容性强等优势迅速成为各嵌入式系统与上位机进行通信的重要方式。本文基于实际项目,分析了USB通信的特点与优势,进一步给出了TMS320F2812扩展CY7C68013A控制USB接口与上位机进行通信的硬件设计。并且使用HyperLynx软件对USB的差分数据信号进行仿真,改进了硬件设计,确保便携式设备巡检系统在工业现场的可靠运行。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。