文治洪,胡文東,李曉京,王 濤
(第四軍醫(yī)大學(xué) 航空航天醫(yī)學(xué)系,陜西 西安 710032)
RS232接口作為標(biāo)準(zhǔn)外設(shè)廣泛應(yīng)用于單片機(jī)和嵌入式系統(tǒng),通用串行總線USB(Universal Serial Bus)通信技術(shù)以其易插拔、速度快、即插即用和獨(dú)立供電等特點(diǎn),已得到更廣泛的應(yīng)用[1]。
為了解決嵌入式系統(tǒng)與個(gè)人計(jì)算機(jī)USB接口之間的通訊問(wèn)題,硬件廠商提供各種不同的解決方案。一種方案是使用帶USB接口的單片機(jī)和獨(dú)立的USB接口器件,如Cypress公司的 CY7C68013A(EZ-USB FX2L)[2]和 Philips公司的PIUSBD12。這種方案需開(kāi)發(fā)人員了解和掌握USB的接口原理、協(xié)議,設(shè)計(jì)USB設(shè)備驅(qū)動(dòng)程序,而USB接口協(xié)議的復(fù)雜性給開(kāi)發(fā)人員帶來(lái)諸多不便,開(kāi)發(fā)周期長(zhǎng)。另一種方案是使用RS232-USB接口轉(zhuǎn)換器,這些器件在其內(nèi)部完成RS232到USB接口協(xié)議的轉(zhuǎn)換,開(kāi)發(fā)人員完全不用更改或只需更改很少的PC端應(yīng)用程序就可完成與USB接口的通訊任務(wù),如 Prolific公司的 PL2303、Silicon Labs公司的CP2102型RS232-USB接口轉(zhuǎn)換器。這類器件價(jià)格成本低,開(kāi)發(fā)簡(jiǎn)單[3-4]。
利用RS232-USB接口轉(zhuǎn)換器完成通訊任務(wù),既具有即插即用的優(yōu)點(diǎn),又避免繁瑣的USB協(xié)議和USB驅(qū)動(dòng),開(kāi)發(fā)方便。這里介紹RS232-USB接口轉(zhuǎn)換器PL-2303的特點(diǎn)與原理,并介紹利用該器件實(shí)現(xiàn)單片機(jī)與個(gè)人計(jì)算機(jī)之間的通訊接口設(shè)計(jì)。
PL2303是Prolific公司生產(chǎn)的一種高度集成的RS232-USB接口轉(zhuǎn)換器[5],可提供一個(gè)RS232全雙工異步串行通信裝置與USB功能接口便利聯(lián)接的解決方案。該器件內(nèi)置USB功能控制器、USB收發(fā)器、振蕩器和帶有全部調(diào)制解調(diào)器控制信號(hào)的UART,只需外接幾只電容就可實(shí)現(xiàn)USB信號(hào)與RS232信號(hào)的轉(zhuǎn)換,能夠方便嵌入到手持設(shè)備。該器件作為USB/RS232雙向轉(zhuǎn)換器,一方面從主機(jī)接收USB數(shù)據(jù)并將其轉(zhuǎn)換為RS232信息流格式發(fā)送給外設(shè);另一方面從RS232外設(shè)接收數(shù)據(jù)轉(zhuǎn)換為USB數(shù)據(jù)格式傳送回主機(jī)。這些工作全部由器件自動(dòng)完成,開(kāi)發(fā)者無(wú)需考慮固件設(shè)計(jì)。
PL2303的高兼容驅(qū)動(dòng)可在大多操作系統(tǒng)上模擬成傳統(tǒng)COM端口,并允許基于COM端口應(yīng)用可方便地轉(zhuǎn)換成USB接口應(yīng)用,通訊波特率高達(dá)6 Mb/s。在工作模式和休眠模式時(shí)都具有功耗低,是嵌入式系統(tǒng)手持設(shè)備的理想選擇。該器件具有以下特征:完全兼容USB1.1協(xié)議;可調(diào)節(jié)的3~5 V輸出電壓,滿足3 V、3.3 V和5 V不同應(yīng)用需求;支持完整的RS232接口,可編程設(shè)置的波特率:75 b/s~6 Mb/s,并為外部串行接口提供電源;512字節(jié)可調(diào)的雙向數(shù)據(jù)緩存;支持默認(rèn)的ROM和外部EEPROM存儲(chǔ)設(shè)備配置信息,具有I2C總線接口,支持從外部MODEM信號(hào)遠(yuǎn)程喚醒;支持Windows98,Windows2000,WindowsXP等操作系統(tǒng);28引腳的SOIC封裝。
PL2303可提供PL2303X、PL2303HX兩種版本。PL2303X用于3.3 V電壓的應(yīng)用,PL2303HX用于以前使用PL2303H(5 V)設(shè)計(jì)應(yīng)用的升級(jí),而兩者驅(qū)動(dòng)程序相同。
PL2303X的主要引腳功能描述如下:
VDD_325(PIN4):RS232供電電源。 必須與 RS232接口使用同一電源。
TXD(PIN1),RXD(PIN5):RS232 的數(shù)據(jù)輸出/輸入。
DTR_N,RTS_N,RI_N,DSR_N,DCD_N,CTS_N:RS232 的6個(gè)控制引腳,分別為:DTR數(shù)據(jù)終端準(zhǔn)備好,RTS發(fā)送請(qǐng)求,RI響鈴指示器,DSR數(shù)據(jù)準(zhǔn)備好,DCD數(shù)據(jù)載波檢測(cè),CTS線路暢通。
VDD_33,GND:3.3 V 電源和接地。
SHTD_N:關(guān)閉 RS232收發(fā)器。
DP,DM:USB D+信號(hào)和 USB D-信號(hào)。
VO_33:3.3 V輸出電源。
RESET_N:系統(tǒng)復(fù)位。
VDD_5:USB的5 V電源。
將 PL2303 的 TXD(PIN1)和 RXD(PIN5)分別與單片機(jī)上的串口(TXD和RXD)連接,DM、DP與計(jì)算機(jī)的USB接口連接,再加上其他外圍元件,就可實(shí)現(xiàn)單片機(jī)與計(jì)算機(jī)之間的通訊。PL2303支持默認(rèn)ROM和外部EEPROM 2種不同的存儲(chǔ)方法,可存儲(chǔ)包括 PID(Product ID),VID(Vendor ID)和器件收發(fā)器控制和狀態(tài)等信息,如果不希望采用默認(rèn)的設(shè)置,則需外擴(kuò)一個(gè)EEPROM(如ST公司的M24C02)。
心理測(cè)試數(shù)據(jù)采集系統(tǒng)由計(jì)算機(jī)屏幕顯示題目,單片機(jī)采集被試的按鍵反應(yīng)數(shù)據(jù),并通過(guò)連線將數(shù)據(jù)傳送到計(jì)算機(jī)中,測(cè)試完成后再進(jìn)行分析,并報(bào)告測(cè)試結(jié)果。系統(tǒng)共有36個(gè)按鍵盒,每個(gè)鍵盒上有0~9共10個(gè)按鍵,單片機(jī)通過(guò)掃描方式,可以同時(shí)測(cè)試36人,大大提高測(cè)試效率。傳統(tǒng)的心理測(cè)試系統(tǒng)[6]采用串口方式通訊。為了提高系統(tǒng)的適應(yīng)性,并盡量減少對(duì)原系統(tǒng)程序的改動(dòng),這里選用USB轉(zhuǎn)UART橋接器PL2303X進(jìn)行硬件設(shè)計(jì)。其系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)原理
選用TI公司的MSP430F149作為控制器。MSP430系列單片機(jī)是一種超低功耗的混合模擬控制器[7],具有多種省電模式,靈活的時(shí)鐘源可使器件達(dá)到最低功耗,特別適合于電池供電的手持設(shè)備。
MSP430F149提供2個(gè)內(nèi)置的串口通信模塊,可方便地與PL2303連接。采用兩線連接串口方式,分別將MSP430F149的P3.4(UTXD0),P3.5(URXD0)與 PL2303 的 P1(TXD),P5(RXD)連接,PL2303 中的串行接口控制信號(hào) RI,DSR,DCD,CTS 和GP0通過(guò)220 kΩ電阻連接至電源。PL2303的電源接0.1 μF的去耦電容,復(fù)位引腳上拉到電源端。5 V的鎖相環(huán)電源電壓VDD_5與地之間接一只0.1 μF的去耦電容。GP1通過(guò)220 kΩ電阻接地,指示系統(tǒng)為輕載狀態(tài),提供100 mA的電流。3.3 V輸出為MSP430F149提供電源。圖2為PL2303電路連接。USB接口電路按照標(biāo)準(zhǔn)電路設(shè)計(jì)相應(yīng)元件。
圖2 PL2303接口電路
該系統(tǒng)設(shè)計(jì)的接口程序包括單片機(jī)通訊設(shè)置,USB設(shè)備驅(qū)動(dòng),以及PC應(yīng)用等3部分程序,這三者互相配合實(shí)現(xiàn)可靠、快速的數(shù)據(jù)傳輸。
1)單片機(jī)通訊設(shè)置程序 單片機(jī)程序?qū)嶋H上是完成單片機(jī)對(duì)串口的初始化,即對(duì)波特率,數(shù)據(jù)位,校驗(yàn)位,有無(wú)奇偶校驗(yàn)等通信協(xié)議的設(shè)計(jì)及單片機(jī)串行通信功能控制器的設(shè)置。該設(shè)計(jì)以串口參數(shù)波特率115 200,數(shù)據(jù)位8,停止位1,校驗(yàn)位0。
2)USB設(shè)備驅(qū)動(dòng)程序 在PC機(jī)上安裝Prolific公司免費(fèi)提供的USB設(shè)備驅(qū)動(dòng)程序。驅(qū)動(dòng)安裝完后,PC系統(tǒng)出現(xiàn)1個(gè)“Prolific USB-to-Serial Comm Port”自動(dòng)增加一個(gè) COM口,如COM3,COM4 等。
3)PC應(yīng)用程序 用戶按照傳統(tǒng)的串行接口控制方式來(lái)使用該模擬的“COM口”。使用Delphi語(yǔ)言調(diào)用RS232的控件(MSCOMM32)或API函數(shù),實(shí)現(xiàn)與單片機(jī)的通訊。串口通訊參數(shù)應(yīng)與單片機(jī)所設(shè)置參數(shù)一致。當(dāng)設(shè)備插入不同的USB接口時(shí),計(jì)算機(jī)認(rèn)為一個(gè)新設(shè)備,需重新安裝設(shè)備驅(qū)動(dòng)程序。當(dāng)插入計(jì)算機(jī)不同USB接口時(shí),虛擬的"COM口"不同,因此,需要計(jì)算機(jī)程序自動(dòng)識(shí)別是在哪一個(gè)串口插入的設(shè)備。
介紹采用PL2303設(shè)計(jì)的串口轉(zhuǎn)接USB接口的方法,實(shí)現(xiàn)在PC機(jī)的USB接口與單片機(jī)之間的通信。對(duì)產(chǎn)品設(shè)計(jì)者來(lái)說(shuō),PC機(jī)和單片機(jī)均是按照標(biāo)準(zhǔn)的RS232串行通信進(jìn)行處理,對(duì)于早期設(shè)計(jì)的串口通訊程序無(wú)需重新設(shè)計(jì),就可將之前采用RS232通訊的產(chǎn)品升級(jí)至USB接口,并且設(shè)備具有允許設(shè)備熱拔,即插即用的功能,同時(shí)無(wú)需外接供電電源,便于產(chǎn)品設(shè)計(jì)和用戶使用,擴(kuò)展產(chǎn)品的使用范圍。但這種設(shè)計(jì)具有設(shè)計(jì)簡(jiǎn)單,開(kāi)發(fā)周期短,原RS232接口設(shè)備設(shè)計(jì)改動(dòng)方便的特點(diǎn),為手持設(shè)備的通訊接口設(shè)計(jì)提供了較好的參考價(jià)值。
[1]馬 偉.計(jì)算機(jī)USB系統(tǒng)原理及其主/從機(jī)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2004.
[2]謝 宏,徐 雪.EZ-USB FX2接口在生物電信號(hào)數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].電子設(shè)計(jì)工程,2009,17(7):1-3.
[3]姚渭箐,周 偉.基于FT2232H的USB-RS232轉(zhuǎn)換模塊設(shè)計(jì)[J].電子設(shè)計(jì)工程,2009,17(7):4-6.
[4]于 波,胡 毅,文江濤.基于CP2102的USB接口設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù),2007(3):39-42.
[5]Prolific Technology Inc.PL2303 DataSheet[EB/OL].2004.http://www.prolific.com.tw/support/files//IO%20Cable/PL-2303X/Documents/Datasheet/ds_pl2303XA_v15F.pdf.
[6]胡文東,王 濤,李曉京,等.計(jì)算機(jī)多媒體群體心理測(cè)量系統(tǒng)研制[J].第四軍醫(yī)大學(xué)學(xué)報(bào),1999,20(3): 225-227.
[7]Teaxs Instrument,Inc.MSP430 MCU Datasheet[EB/OL].2006.http://focus.ti.com/lit/ds/symlink/msp430f149.pdf.