摘 要: 介绍了USB总线的特点和分层结构,分析了TMS320F2812扩展CY7C68013A芯片控制USB接口与上位机通信的实现方法,在此基础上利用HyperLynx软件对USB接口的差分数据信号进行了仿真。
关键词: USB; TMS320F2812; CY7C68013
本文所阐述的内容是依托于一个便携式设备巡检系统。系统的硬件是由电源管理模块、信号处理模块、数据采集模块、以TMS320F2812为核心的微处理器模块、液晶显示模块、接口模块构成,软件主要是由巡检管理软件构成。便携式设备巡检系统结构图如图1所示。
1 USB总线的特点及分层结构
1.1 USB接口的特点
以前的外部设备是通过RS232、RS485、并行接口、PCI接口和PS/2接口等老式专用接口来实现与计算机的通信。与老式计算机接口相比,USB接口具有以下优点[1]:
(1)接口小巧。USB接口具有很明显的体积优势,顺应了计算机和外部设备小型化的发展趋势。
(2)共享式接口。USB接口采用了“菊花链”的连接方式,支持多个外设连接。通过USB集线器,一个USB主控制器最多可以连接126个外设,大大拓展了计算机的外部功能。
(3)支持即插即用和热插拔。当USB设备连接到计算机时,系统会自动检测这个设备,并加载对应的驱动程序。这样,USB实现了自动配置,用户无需任何手动配置,连接设备不需要重新启动计算机,用户也可以随时断开USB设备与计算机的连接,而不会损害计算机和外部设备。
(4)支持多种操作。目前USB支持3种传输速率:低速1.5 Mb/s、全速12 Mb/s和高速480 Mb/s。同时,USB还支持4种类型的传输模式:块传输、中断传输、同步传输和控制传输,可以满足不同外设的功能需要。
(5)提供电源。计算机上的USB接口可以向外提供一定功率的电源,其输出电流的最小值为100 mA,最大为500 mA,输出电压为5 V,并且USB协议中规定了完备的电源管理方式,如果外部设备耗电不大,可以考虑使用USB接口直接供电,十分方便。
(6)良好的兼容性。USB规范发展至今已有USB1.0、USB1.1、USB2.0、无线USB和USB OTG等多个版本协议,这些协议都具有很好的向下兼容性。
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系统硬件自动完成。
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的差分数据信号进行仿真,改进了硬件设计,确保便携式设备巡检系统在工业现场的可靠运行。
参考文献
[1] 薛园园. USB应用开发技术大全[M]. 北京:人民邮电出版社,2007.
[2] CypressSemiconductor.CY7C68013A Data Sheet[EB/OL]. 1994. www.cypress.com.
[3] 苏奎峰,吕强,常天庆等. TMS320X281x DSP原理及C程序开发[M]. 北京:北京航空航天大学出版社,2008.
[4] 张海风. HyperLynx仿真与PCB设计[M]. 北京:机械工业出版社,2006.