谷士鵬,王 錦,連強(qiáng)強(qiáng)
(中國(guó)飛行試驗(yàn)研究院 陜西 西安 710089)
一種USB-RS232高速數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
谷士鵬,王 錦,連強(qiáng)強(qiáng)
(中國(guó)飛行試驗(yàn)研究院 陜西 西安 710089)
為了充分利用USB接口的技術(shù)優(yōu)勢(shì),在分析了幾種設(shè)計(jì)方案的優(yōu)缺點(diǎn)之后,采用專用的USB-RS232雙向轉(zhuǎn)換器FT2232D,通過(guò)對(duì)FT2232D進(jìn)行配置和外圍硬件電路的設(shè)計(jì),并完成驅(qū)動(dòng)程序的加載,成功實(shí)現(xiàn)USB-RS232高速數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)。最后,對(duì)該系統(tǒng)進(jìn)行了系統(tǒng)測(cè)試,結(jié)果標(biāo)明該系統(tǒng)數(shù)據(jù)傳輸穩(wěn)定可靠,可以實(shí)現(xiàn)對(duì)傳統(tǒng)設(shè)備的升級(jí)換代。
USB-RS232;FT2232D;高速數(shù)據(jù)傳輸;系統(tǒng)測(cè)試
隨著串行通信技術(shù)技術(shù)的發(fā)展,傳統(tǒng)的RS-232串口總線正在被USB串行總線所代替。USB串行總線具有傳輸速度快、傳輸數(shù)據(jù)大、支持熱插拔、功耗低、支持設(shè)備多、設(shè)備互聯(lián)方便等諸多優(yōu)點(diǎn),因此不論是在IT領(lǐng)域還是工業(yè)控制領(lǐng)域,USB總線都得到了極大的應(yīng)用。伴隨著USB串行總線的迅猛發(fā)展,USB接口已經(jīng)是目前計(jì)算機(jī)的標(biāo)準(zhǔn)配置,采用USB接口可以使用任何一臺(tái)計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信[1]。但目前還有大量的外圍設(shè)備和軟件依然使用RS-232串口總線,為了充分利用USB接口的技術(shù)優(yōu)勢(shì),同時(shí)降低研發(fā)成本,本文設(shè)計(jì)了一種USB-RS232高速數(shù)據(jù)傳輸系統(tǒng),并詳細(xì)闡述了其實(shí)現(xiàn)方法。
從現(xiàn)有技術(shù)來(lái)看,可供選擇的USB-RS232高速數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)方案主要有以下3種:
1)使用集成USB2.0收發(fā)器的USB微控制器,通過(guò)其內(nèi)置的USB總線控制器和通用異步收發(fā)器來(lái)實(shí)現(xiàn)信號(hào)轉(zhuǎn)換,如Cypress公司的EZ-USB FX2系列微控制器[2];若無(wú)通用異步收發(fā)器也可以利用GPIO來(lái)模擬RS232收發(fā)過(guò)程;
2)采用單獨(dú)的USB接口收發(fā)器來(lái)設(shè)計(jì)USB接口,再外接微控制器實(shí)現(xiàn)信號(hào)傳輸,如Philips半導(dǎo)體公司所推出的ISP1581、PDIUSBD11/12等[3];
3)使用專用的USB-RS232雙向轉(zhuǎn)換器,如英商飛特帝亞有限公司(FTDI)的FT232BM、FT2232C、FT2232D和卡特拉-漢莫公司的CH340、CH341等,該方案將數(shù)據(jù)收發(fā)和協(xié)議轉(zhuǎn)換工作全部交由轉(zhuǎn)換器獨(dú)立完成,無(wú)需編寫器件的固件[4]。
雖然USB總線使用起來(lái)簡(jiǎn)單方便,但設(shè)計(jì)USB總線協(xié)議卻要求設(shè)計(jì)者對(duì)USB協(xié)議規(guī)范非常熟悉,同時(shí)還涉及到枚舉、設(shè)備描述符、端點(diǎn)、令牌、傳輸類型、信息管道等知識(shí)[5]。通過(guò)分析以上幾種方案的設(shè)計(jì)思路可以看出,第3種方案設(shè)計(jì)簡(jiǎn)單、可擴(kuò)展性強(qiáng),本文選擇第3種設(shè)計(jì)方案。
本設(shè)計(jì)中硬件電路主要由FT2232D、AT93C46、TLV70033和SP213EHCA組成。FT2232D實(shí)現(xiàn)USB接口到RS232接口的轉(zhuǎn)換,AT93C46用來(lái)儲(chǔ)存USB端口配置,TLV70033負(fù)責(zé)為FT2232D提供3.3 V電壓,而SP213EHCA用于實(shí)現(xiàn)RS 232與TLL/CMOS之間的電平轉(zhuǎn)換。其原理框圖如圖1所示??梢钥闯觯麄€(gè)系統(tǒng)硬件部分以FT2232D為核心。

圖1 系統(tǒng)硬件框圖
2.1 FT2232D芯片簡(jiǎn)介
FT2232D是一款USB到UART/FIFO的轉(zhuǎn)換芯片,是FTDI公司繼第二代FT232BM、FT245BM之后的第三代產(chǎn)品,集成了兩片 BM芯片的功能。FT2232D可以將一個(gè)USB端口可以轉(zhuǎn)換為兩組I/O通道,每組I/O通道均可以配置成一個(gè)串口或者一個(gè)FIFO接口。在默認(rèn)情況下,F(xiàn)T2232D將USB端口轉(zhuǎn)換成兩組串口。如果FT2232D的外圍電路中外掛有EEPROM,那么配置EEPROM,F(xiàn)T2232D還可以將USB端口配置為增強(qiáng)型同步位響應(yīng)模式、多協(xié)議同步串行接口模式、MCU主機(jī)總線競(jìng)爭(zhēng)模式、快速光隔離串行接口模式或者CPU類型的FIFO模式。由于使用了新的工藝,F(xiàn)T2232D能夠直接輸出超過(guò)普通電路3倍的功率,在電路設(shè)計(jì)中多個(gè)接口可以共享FT2232D的輸出[6]。
FT2232D的簡(jiǎn)化功能框圖如圖2所示,各單元的功能如下:

圖2 FT2232D的簡(jiǎn)化功能框圖
USB收發(fā)器:提供USB1.1、USB2.0到USB電纜的全速物理接口。一個(gè)微分收發(fā)器和兩個(gè)單獨(dú)的終結(jié)收發(fā)器提供USB數(shù)據(jù)輸入、SEO及USB復(fù)位條件檢測(cè)。
USB鎖相環(huán):跟蹤輸入的USB數(shù)據(jù),并單獨(dú)恢復(fù)時(shí)鐘及數(shù)據(jù)信號(hào)。
串行接口引擎:執(zhí)行USB數(shù)據(jù)從串行到并行及并行到串行的轉(zhuǎn)換,并完成對(duì)USB數(shù)據(jù)流的位填充/逆填充,以及循環(huán)冗余校驗(yàn)碼(CRC)的產(chǎn)生與檢錯(cuò)。
USB協(xié)議引擎:管理從USB控制端接收的數(shù)據(jù),負(fù)責(zé)處理USB主控器發(fā)出的底層USB協(xié)議請(qǐng)求和UART/FIFO控制器發(fā)出的控制命令。
發(fā)送緩沖區(qū)和接受緩沖區(qū)的大小分別為128字節(jié)和384字節(jié)。
2.2 硬件電路設(shè)計(jì)
硬件電路的+5 V電源來(lái)自USB接口的VBUS管腳,最高可提供500 mA的電流。在所有電源端增加了去耦合旁路電容,以提高硬件電路的抗干擾能力。D1是系統(tǒng)電壓指示燈,當(dāng)USB接口輸出+5 V時(shí)點(diǎn)亮。
FT2232D與 USB插座的信號(hào)管腳連接時(shí),USBDP、USBDM兩個(gè)輸入端電阻的阻值必須相等,典型值為27 Ω,而且必須是1%精度的電阻,否則可能造成輸入阻抗不匹配從而使電路無(wú)法正常工作[7]。電路晶振Y1兩端的2個(gè)電容的電容值也必須相等,典型值為18 pF。RESET#引腳被連接到5 V,無(wú)法通過(guò)該引腳重啟FT2232D。VCCIOA和VCCIOB可以使用不同的電源,即將 VCCIOA連接+3.3 V、VCCIOB連接+5 V,這樣得到的串口通道A的工作電壓為3.3 V,通道B的工作電壓為5 V,就可以分別接3.3 V和5 V的器件。本設(shè)計(jì)中VCCIOA和VCCIOB都連接至+5 V。
FT2232D默認(rèn)工作在雙串口模式,通過(guò)外掛E2PROM AT93C46, 可 以 調(diào) 用 FTDI公 司 的MProg3.0_Setup對(duì)USB接口進(jìn)行編程[8]。AT93C46的ORG管腳懸空,由于內(nèi)部上拉電阻的存在,AT93C46將被配置為16位的存儲(chǔ)器結(jié)構(gòu)。AT93C46還可以存儲(chǔ)FT2232D的VID、PID等信息[9]。
SP213EHCA是一種具有休眠功能的驅(qū)動(dòng)器/接收器,片內(nèi)含有一個(gè)電容性電壓發(fā)生器以便在+5 V電源供電時(shí)提供RS232電平,最高傳輸速率可達(dá)120 kbps[10]。在休眠模式時(shí),最低耗電僅為1 μA,可以通過(guò)外部事件將其喚醒。使用SP213EHCA可以將FT2232D輸出的串行端轉(zhuǎn)換為RS232串口通信接口[11]。SP213EHCA外圍接口簡(jiǎn)單,只需要外接5個(gè)0.1 μF的電容。

圖3 硬件電路原理圖
2.3 驅(qū)動(dòng)程序
FT2232D使用FTDI公司提供了兩種FT2232D的驅(qū)動(dòng)程序:虛擬串行口VCP驅(qū)動(dòng)程序和D2XX驅(qū)動(dòng)程序[12]。
FT2232D使用 FTDI公司提供的虛擬串口(VCP)驅(qū)動(dòng),對(duì)PC機(jī)USB接口的使用就像使用PC機(jī)的標(biāo)準(zhǔn)串口一樣[13]。外部設(shè)備的數(shù)據(jù)經(jīng)過(guò)RS232接口輸入到FT2232D,F(xiàn)T2232D將轉(zhuǎn)換后的數(shù)據(jù)經(jīng)過(guò)USB接口輸入到PC機(jī)的VCP程序中,Windows應(yīng)用程序通過(guò)調(diào)用VCP進(jìn)行處理。
D2XX驅(qū)動(dòng)程序可以使得FT2232D獲得更好的數(shù)據(jù)傳輸性能。在編寫應(yīng)用程序時(shí),只需要調(diào)用ftd2xx64. dll中的函數(shù)便可完成對(duì)USB接口設(shè)備的讀寫操作。這種驅(qū)動(dòng)模式更適合進(jìn)行二次開(kāi)發(fā)的用戶使用[14]。
以上兩種驅(qū)動(dòng)模式都可以訪問(wèn)FT2232D,但需要注意的是在應(yīng)用軟件開(kāi)發(fā)使用的過(guò)程中,同時(shí)只能使用一種驅(qū)動(dòng)程序提供的接口。
測(cè)試軟件在VC++6.0的MFC框架下,利用消息映射來(lái)完成信號(hào)發(fā)送和數(shù)據(jù)顯示兩大功能[15]。
測(cè)試界面如圖4所示。左端的上部是端口的設(shè)置控件,包括串口的選擇、波特率設(shè)置、數(shù)據(jù)位設(shè)置、校驗(yàn)位設(shè)置、停止位設(shè)置和串口打開(kāi)/關(guān)閉。左端的下部是通訊狀態(tài)的顯示,包括端口狀態(tài)、發(fā)送字節(jié)數(shù)和接受字節(jié)數(shù),以及一個(gè)清除計(jì)數(shù)的按鈕控件。界面右端是信號(hào)控制與數(shù)據(jù)顯示端,包括寫入信號(hào)1~3、數(shù)據(jù)顯示1~3以及一個(gè)寫入控制鍵。將J2端口的2、3引腳短接,配置好串口后按下控制鍵,數(shù)據(jù)顯示如圖4所示。
采用雙向轉(zhuǎn)換器FT2232D設(shè)計(jì)的USB-RS232高速數(shù)據(jù)傳輸系統(tǒng),簡(jiǎn)單、易用、開(kāi)發(fā)周期短,在諸多設(shè)計(jì)方案中是較為簡(jiǎn)潔的一種,易于為工程實(shí)踐所采用。經(jīng)過(guò)調(diào)試和試用,轉(zhuǎn)換卡運(yùn)行正常,成功實(shí)現(xiàn)了USB接口和RS232接口的數(shù)據(jù)傳輸。該系統(tǒng)不僅可用于對(duì)以RS232為通信通道設(shè)備的升級(jí)換代,也可直接用于新產(chǎn)品開(kāi)發(fā)。在此基礎(chǔ)上利用FT2232D提供的引腳功能還可方便設(shè)計(jì)出USB-RS422、USB-RS485轉(zhuǎn)換器等。

圖4 測(cè)試界面
[1]賴彪,金海鷹,賈惠芹.USB-RS 232轉(zhuǎn)換卡的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2011,34(2):62-64.
[2]張紅兵,孫士平,趙永泉.RS-232接口轉(zhuǎn)換為USB接口的設(shè)計(jì)原理 [J].現(xiàn)代計(jì)算機(jī),2002(2): 23-26.
[3]何廣軍.USB接口在串行通信中的應(yīng)用 [J].電子技術(shù)應(yīng)用,2002,28(7):58-59.
[4]鮑兆偉,王林,徐琦,等.基于FT232R的USBRS232轉(zhuǎn)換模塊的設(shè)計(jì) [J].電腦知識(shí)與技術(shù),2008,1(3):1204-1206.
[5]羅鈞,桂杰出.USB協(xié)議及其接口實(shí)現(xiàn)[J].儀器儀表學(xué)報(bào),2004,25(z3):616-620.
[6]沈偉,王軍政,汪首坤.基于FIFO的高速高精度數(shù)據(jù)采集技術(shù)研究 [J].電子器件,2007(5):1673-1676.
[7]祝學(xué)云,阮亞婕.基于USB接口的接地電阻測(cè)量?jī)x設(shè)計(jì)[J].儀表技術(shù)與傳感器,2003(12):8-9.
[8]張蓬鶴.AT93C46/56/66串行EEPROM及其在單片機(jī)中的應(yīng)用程序[J].電子設(shè)計(jì)工程,2003(12): 66-68.
[9]劉駿,柴霖,李貴勇.非屏蔽雙絞線傳輸視頻補(bǔ)償放大器設(shè)計(jì)研究[J].科技視界,2015(8):15-16.
[10]徐彭飛.基于光纖通信與電源供電的IGBT光驅(qū)動(dòng)技術(shù)研究[D].成都:電子科技大學(xué),2015.
[11]郭建昌.虛擬串口測(cè)試系統(tǒng)設(shè)計(jì)[J].自動(dòng)化儀表,2014(8):51-53.
[12]吳明琪,馬潮.嵌入式系統(tǒng)的USB虛擬串口設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2005(4):62-63.
[13]陶元芳,安喜平,于萬(wàn)成,等.用VC++對(duì)SolidWorks進(jìn)行二次開(kāi)發(fā) [J].太原科技大學(xué)學(xué)報(bào),2006,27(2):102-105.
[14]李瑞,劉鵬遠(yuǎn),張錫恩.Vega程序設(shè)計(jì)在MFC中的應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(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稿件編號(hào):201604079
谷士鵬(1989—),男,山東成武人,碩士研究生,工程師。研究方向:機(jī)載測(cè)試與數(shù)據(jù)遙測(cè)。