一种USB-RS232高速数据传输系统的设计与实现
2017-07-24谷士鹏连强强
谷士鹏,王 锦,连强强
(中国飞行试验研究院 陕西 西安 710089)
一种USB-RS232高速数据传输系统的设计与实现
谷士鹏,王 锦,连强强
(中国飞行试验研究院 陕西 西安 710089)
为了充分利用USB接口的技术优势,在分析了几种设计方案的优缺点之后,采用专用的USB-RS232双向转换器FT2232D,通过对FT2232D进行配置和外围硬件电路的设计,并完成驱动程序的加载,成功实现USB-RS232高速数据传输系统的设计。最后,对该系统进行了系统测试,结果标明该系统数据传输稳定可靠,可以实现对传统设备的升级换代。
USB-RS232;FT2232D;高速数据传输;系统测试
随着串行通信技术技术的发展,传统的RS-232串口总线正在被USB串行总线所代替。USB串行总线具有传输速度快、传输数据大、支持热插拔、功耗低、支持设备多、设备互联方便等诸多优点,因此不论是在IT领域还是工业控制领域,USB总线都得到了极大的应用。伴随着USB串行总线的迅猛发展,USB接口已经是目前计算机的标准配置,采用USB接口可以使用任何一台计算机进行数据通信[1]。但目前还有大量的外围设备和软件依然使用RS-232串口总线,为了充分利用USB接口的技术优势,同时降低研发成本,本文设计了一种USB-RS232高速数据传输系统,并详细阐述了其实现方法。
1 方案选择
从现有技术来看,可供选择的USB-RS232高速数据传输系统的设计方案主要有以下3种:
1)使用集成USB2.0收发器的USB微控制器,通过其内置的USB总线控制器和通用异步收发器来实现信号转换,如Cypress公司的EZ-USB FX2系列微控制器[2];若无通用异步收发器也可以利用GPIO来模拟RS232收发过程;
2)采用单独的USB接口收发器来设计USB接口,再外接微控制器实现信号传输,如Philips半导体公司所推出的ISP1581、PDIUSBD11/12等[3];
3)使用专用的USB-RS232双向转换器,如英商飞特帝亚有限公司(FTDI)的FT232BM、FT2232C、FT2232D和卡特拉-汉莫公司的CH340、CH341等,该方案将数据收发和协议转换工作全部交由转换器独立完成,无需编写器件的固件[4]。
虽然USB总线使用起来简单方便,但设计USB总线协议却要求设计者对USB协议规范非常熟悉,同时还涉及到枚举、设备描述符、端点、令牌、传输类型、信息管道等知识[5]。通过分析以上几种方案的设计思路可以看出,第3种方案设计简单、可扩展性强,本文选择第3种设计方案。
2 系统方案设计
本设计中硬件电路主要由FT2232D、AT93C46、TLV70033和SP213EHCA组成。FT2232D实现USB接口到RS232接口的转换,AT93C46用来储存USB端口配置,TLV70033负责为FT2232D提供3.3 V电压,而SP213EHCA用于实现RS 232与TLL/CMOS之间的电平转换。其原理框图如图1所示。可以看出,整个系统硬件部分以FT2232D为核心。
图1 系统硬件框图
2.1 FT2232D芯片简介
FT2232D是一款USB到UART/FIFO的转换芯片,是FTDI公司继第二代FT232BM、FT245BM之后的第三代产品,集成了两片 BM芯片的功能。FT2232D可以将一个USB端口可以转换为两组I/O通道,每组I/O通道均可以配置成一个串口或者一个FIFO接口。在默认情况下,FT2232D将USB端口转换成两组串口。如果FT2232D的外围电路中外挂有EEPROM,那么配置EEPROM,FT2232D还可以将USB端口配置为增强型同步位响应模式、多协议同步串行接口模式、MCU主机总线竞争模式、快速光隔离串行接口模式或者CPU类型的FIFO模式。由于使用了新的工艺,FT2232D能够直接输出超过普通电路3倍的功率,在电路设计中多个接口可以共享FT2232D的输出[6]。
FT2232D的简化功能框图如图2所示,各单元的功能如下:
图2 FT2232D的简化功能框图
USB收发器:提供USB1.1、USB2.0到USB电缆的全速物理接口。一个微分收发器和两个单独的终结收发器提供USB数据输入、SEO及USB复位条件检测。
USB锁相环:跟踪输入的USB数据,并单独恢复时钟及数据信号。
串行接口引擎:执行USB数据从串行到并行及并行到串行的转换,并完成对USB数据流的位填充/逆填充,以及循环冗余校验码(CRC)的产生与检错。
USB协议引擎:管理从USB控制端接收的数据,负责处理USB主控器发出的底层USB协议请求和UART/FIFO控制器发出的控制命令。
发送缓冲区和接受缓冲区的大小分别为128字节和384字节。
2.2 硬件电路设计
硬件电路的+5 V电源来自USB接口的VBUS管脚,最高可提供500 mA的电流。在所有电源端增加了去耦合旁路电容,以提高硬件电路的抗干扰能力。D1是系统电压指示灯,当USB接口输出+5 V时点亮。
FT2232D与 USB插座的信号管脚连接时,USBDP、USBDM两个输入端电阻的阻值必须相等,典型值为27 Ω,而且必须是1%精度的电阻,否则可能造成输入阻抗不匹配从而使电路无法正常工作[7]。电路晶振Y1两端的2个电容的电容值也必须相等,典型值为18 pF。RESET#引脚被连接到5 V,无法通过该引脚重启FT2232D。VCCIOA和VCCIOB可以使用不同的电源,即将 VCCIOA连接+3.3 V、VCCIOB连接+5 V,这样得到的串口通道A的工作电压为3.3 V,通道B的工作电压为5 V,就可以分别接3.3 V和5 V的器件。本设计中VCCIOA和VCCIOB都连接至+5 V。
FT2232D默认工作在双串口模式,通过外挂E2PROM AT93C46, 可 以 调 用 FTDI公 司 的MProg3.0_Setup对USB接口进行编程[8]。AT93C46的ORG管脚悬空,由于内部上拉电阻的存在,AT93C46将被配置为16位的存储器结构。AT93C46还可以存储FT2232D的VID、PID等信息[9]。
SP213EHCA是一种具有休眠功能的驱动器/接收器,片内含有一个电容性电压发生器以便在+5 V电源供电时提供RS232电平,最高传输速率可达120 kbps[10]。在休眠模式时,最低耗电仅为1 μA,可以通过外部事件将其唤醒。使用SP213EHCA可以将FT2232D输出的串行端转换为RS232串口通信接口[11]。SP213EHCA外围接口简单,只需要外接5个0.1 μF的电容。
图3 硬件电路原理图
2.3 驱动程序
FT2232D使用FTDI公司提供了两种FT2232D的驱动程序:虚拟串行口VCP驱动程序和D2XX驱动程序[12]。
FT2232D使用 FTDI公司提供的虚拟串口(VCP)驱动,对PC机USB接口的使用就像使用PC机的标准串口一样[13]。外部设备的数据经过RS232接口输入到FT2232D,FT2232D将转换后的数据经过USB接口输入到PC机的VCP程序中,Windows应用程序通过调用VCP进行处理。
D2XX驱动程序可以使得FT2232D获得更好的数据传输性能。在编写应用程序时,只需要调用ftd2xx64. dll中的函数便可完成对USB接口设备的读写操作。这种驱动模式更适合进行二次开发的用户使用[14]。
以上两种驱动模式都可以访问FT2232D,但需要注意的是在应用软件开发使用的过程中,同时只能使用一种驱动程序提供的接口。
3 性能测试
测试软件在VC++6.0的MFC框架下,利用消息映射来完成信号发送和数据显示两大功能[15]。
测试界面如图4所示。左端的上部是端口的设置控件,包括串口的选择、波特率设置、数据位设置、校验位设置、停止位设置和串口打开/关闭。左端的下部是通讯状态的显示,包括端口状态、发送字节数和接受字节数,以及一个清除计数的按钮控件。界面右端是信号控制与数据显示端,包括写入信号1~3、数据显示1~3以及一个写入控制键。将J2端口的2、3引脚短接,配置好串口后按下控制键,数据显示如图4所示。
4 结 论
采用双向转换器FT2232D设计的USB-RS232高速数据传输系统,简单、易用、开发周期短,在诸多设计方案中是较为简洁的一种,易于为工程实践所采用。经过调试和试用,转换卡运行正常,成功实现了USB接口和RS232接口的数据传输。该系统不仅可用于对以RS232为通信通道设备的升级换代,也可直接用于新产品开发。在此基础上利用FT2232D提供的引脚功能还可方便设计出USB-RS422、USB-RS485转换器等。
图4 测试界面
[1]赖彪,金海鹰,贾惠芹.USB-RS 232转换卡的设计与实现[J].现代电子技术,2011,34(2):62-64.
[2]张红兵,孙士平,赵永泉.RS-232接口转换为USB接口的设计原理 [J].现代计算机,2002(2): 23-26.
[3]何广军.USB接口在串行通信中的应用 [J].电子技术应用,2002,28(7):58-59.
[4]鲍兆伟,王林,徐琦,等.基于FT232R的USBRS232转换模块的设计 [J].电脑知识与技术,2008,1(3):1204-1206.
[5]罗钧,桂杰出.USB协议及其接口实现[J].仪器仪表学报,2004,25(z3):616-620.
[6]沈伟,王军政,汪首坤.基于FIFO的高速高精度数据采集技术研究 [J].电子器件,2007(5):1673-1676.
[7]祝学云,阮亚婕.基于USB接口的接地电阻测量仪设计[J].仪表技术与传感器,2003(12):8-9.
[8]张蓬鹤.AT93C46/56/66串行EEPROM及其在单片机中的应用程序[J].电子设计工程,2003(12): 66-68.
[9]刘骏,柴霖,李贵勇.非屏蔽双绞线传输视频补偿放大器设计研究[J].科技视界,2015(8):15-16.
[10]徐彭飞.基于光纤通信与电源供电的IGBT光驱动技术研究[D].成都:电子科技大学,2015.
[11]郭建昌.虚拟串口测试系统设计[J].自动化仪表,2014(8):51-53.
[12]吴明琪,马潮.嵌入式系统的USB虚拟串口设计[J].单片机与嵌入式系统应用,2005(4):62-63.
[13]陶元芳,安喜平,于万成,等.用VC++对SolidWorks进行二次开发 [J].太原科技大學學報,2006,27(2):102-105.
[14]李瑞,刘鹏远,张锡恩.Vega程序设计在MFC中的应用[J].计算机工程与设计,2002,23(8):55-57.
Design and implementation of a USB-RS232 high speed data transmission system
GU Shi-peng,WANG Jin,LIAN Qiang-qiang
(Chinese Flight Test Establishment,Xi'an 710089,China)
In order to make full use of the advantages of the USB interface technology,after analysis the advantages and disadvantages of several design schemes by special USB-RS232 bidirectional converter FT2232D,through the FT2232D configuration and peripheral hardware circuit design,and complete the driver is loaded,the successful implementation of USB-RS232 high-speed data transmission system design.Finally,the system is tested,the results indicate that the system data transmission is stable and reliable,and it can realize the upgrading of traditional equipment.
USB-RS232;FT2232D;high speed data transmission;system test
TN919.5
A
1674-6236(2017)10-0144-04
2016-04-08稿件编号:201604079
谷士鹏(1989—),男,山东成武人,硕士研究生,工程师。研究方向:机载测试与数据遥测。