《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > USB-RS to 232轉(zhuǎn)換卡的設(shè)計(jì)與實(shí)現(xiàn)
USB-RS to 232轉(zhuǎn)換卡的設(shè)計(jì)與實(shí)現(xiàn)
21IC
摘要: 與RS232總線(xiàn)的數(shù)據(jù)傳輸速率相比,USB的傳輸速率高達(dá)480Mb/s,因此很多計(jì)算機(jī)的RS232串行接口都被USB接口...
Abstract:
Key words :

    RS 232自1969年由美國(guó)電氣工業(yè)協(xié)會(huì)(EIA)推薦以來(lái),由于接口和通信協(xié)議比較簡(jiǎn)單,因而在計(jì)算機(jī)串行通信領(lǐng)域得到了廣泛的應(yīng)用,開(kāi)發(fā)出了大量的以RS 232為接口的各類(lèi)產(chǎn)品。但隨著USB總線(xiàn)規(guī)范的推出,使得外設(shè)到計(jì)算機(jī)的連接更加高效、便利,功率不大的外圍設(shè)備可以直接通過(guò)USB數(shù)據(jù)線(xiàn)供電,而不必外接電源。USB總線(xiàn)最大可以提供5 V/500 mA電流,并提供節(jié)約能源的掛機(jī)和喚醒模式。此外,由于USB用于上行和下行連接頭的機(jī)械特性不同,還可以防止非法連接。根據(jù)USB協(xié)議,理論上最多可以同時(shí)將127個(gè)外設(shè)連接在同一臺(tái)計(jì)算機(jī)上。同時(shí)基于USB的數(shù)據(jù)通信系統(tǒng),可使采集系統(tǒng)與計(jì)算機(jī)之間的數(shù)據(jù)交換具備廣泛的適用性。USB是目前計(jì)算機(jī)的標(biāo)準(zhǔn)配置,采用此方案可以使用任何一臺(tái)計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信。但是目前仍然有許多使用RS 232串行接口的控制設(shè)備、儀器儀表、遠(yuǎn)程終端等運(yùn)行在諸多應(yīng)用領(lǐng)域中,立即將其改造為USB方式顯然存在成本及實(shí)施方面的問(wèn)題。為適應(yīng)USB廣泛流行的現(xiàn)實(shí),有必要開(kāi)發(fā)USB-RS 232接口轉(zhuǎn)換卡,在它的支持下,這些傳統(tǒng)的設(shè)備無(wú)須改造,即可通過(guò)其原有的RS 232接口與USB總線(xiàn)接口實(shí)現(xiàn)數(shù)據(jù)傳輸。

1 USB-RS 232轉(zhuǎn)換卡的組成及其工作原理

1.1 組成

    USB-RS 232轉(zhuǎn)換卡的設(shè)計(jì)原理框圖如圖1所示,由USB接口模塊、UART接口模塊、數(shù)據(jù)緩沖區(qū)和協(xié)議控制單元組成。各部分功能如下:
    USB接口模塊  主要提供與USB總線(xiàn)的連接,它需要實(shí)現(xiàn)一般USB設(shè)備接口的所有功能,以實(shí)現(xiàn)與USB主機(jī)的數(shù)據(jù)傳輸。
    UART接口模塊  實(shí)現(xiàn)標(biāo)準(zhǔn)的RS 232接口的所有功能,以實(shí)現(xiàn)與標(biāo)準(zhǔn)RS 232接口的連接。
    協(xié)議控制單元  通過(guò)接收USB接口的命令,對(duì)UART接口進(jìn)行配置(如配置通信波特率、數(shù)據(jù)位、校驗(yàn)位、停止位、數(shù)據(jù)量控制信號(hào)等)。
    數(shù)據(jù)緩沖區(qū)  用來(lái)臨時(shí)保存雙方數(shù)據(jù)傳輸過(guò)程中的數(shù)據(jù)。

1.JPG


1.2 工作原理
    下面以計(jì)算機(jī)與外設(shè)的數(shù)據(jù)傳輸為例,介紹USB-RS 232轉(zhuǎn)換卡的工作原理:
    當(dāng)USB-RS 232轉(zhuǎn)換卡連接到USB總線(xiàn)上時(shí),計(jì)算機(jī)檢測(cè)到設(shè)備的連接后對(duì)設(shè)備進(jìn)行初始化配置并啟動(dòng)相關(guān)的客戶(hù)驅(qū)動(dòng)程序;驅(qū)動(dòng)程序給設(shè)備發(fā)送配置命令以設(shè)置RS 232接口的數(shù)據(jù)傳輸特性;最后,在數(shù)據(jù)傳輸時(shí),計(jì)算機(jī)上的驅(qū)動(dòng)程序首先將數(shù)據(jù)包傳輸給USB接口,USB接口讀出實(shí)際的有效數(shù)據(jù)并保存在數(shù)據(jù)緩沖區(qū)中,UART接口則從數(shù)據(jù)緩沖區(qū)中將數(shù)據(jù)取走并發(fā)送給設(shè)備。

2 USB-RS 232轉(zhuǎn)換卡的設(shè)計(jì)

2.1 協(xié)議轉(zhuǎn)換模塊的設(shè)計(jì)
    根據(jù)原理框圖,選擇恰當(dāng)?shù)膮f(xié)議轉(zhuǎn)換模塊是設(shè)計(jì)該卡的關(guān)鍵。設(shè)計(jì)轉(zhuǎn)換卡的方法有好幾種:一種方法是采用通用的USB控制器,利用其內(nèi)置的通用異步收發(fā)器(UART)在USB與RS 232之間進(jìn)行信號(hào)轉(zhuǎn)換,例如EZ-USB,PIC16C745,CY7C63001等,若沒(méi)有內(nèi)置UART,也可以利用通用I/O接口模擬RS 232的收發(fā)過(guò)程;另外還可以采用單獨(dú)的USB接口收發(fā)器芯片,如ISP1581,PDI-USBD11/12等,但這種方法需要另配微控制器才能工作;第三種就是采用專(zhuān)用的USB與RS 232轉(zhuǎn)換芯片,如CH341芯片,這種芯片的優(yōu)點(diǎn)是數(shù)據(jù)接收和發(fā)送的協(xié)議轉(zhuǎn)換工作全部由芯片獨(dú)立完成,無(wú)需干預(yù),也不用編寫(xiě)芯片的固件。本文采用CH341的簡(jiǎn)裝版CH341T來(lái)設(shè)計(jì)USB-RS 232轉(zhuǎn)換卡。圖2是一個(gè)利用CH341T和MAX232進(jìn)行USB接口設(shè)計(jì)的硬件框圖。如圖所示,該硬件系統(tǒng)由4部分組成:USB接口、CH341T、MAX232和RS 232接口。其中,USB接口用于連接USB主機(jī),在此選用USB總線(xiàn)接口的A型連接頭;CH341T用于完成USB接口轉(zhuǎn)RS 232接口的所有硬件功能;MAX232用于完成RS 232與TLL/CMOS的電平轉(zhuǎn)換;RS 232接口用于連接RS 232設(shè)備。根據(jù)實(shí)際需要,選擇目前廣泛應(yīng)用的DB9連接器。

 

2.JPG


2.2 硬件電路設(shè)計(jì)
    設(shè)計(jì)USB轉(zhuǎn)RS 232串口的硬件連接圖如圖3所示。USB總線(xiàn)包括一對(duì)5 V電源線(xiàn)和一對(duì)數(shù)據(jù)信號(hào)線(xiàn)。通常,+5 V電源線(xiàn)為紅色;接地線(xiàn)為黑色;D+信號(hào)線(xiàn)為綠色;D-信號(hào)線(xiàn)為白色。USB總線(xiàn)提供的電源電流最大可以達(dá)到500 mA,CH341T芯片可以直接使用USB總線(xiàn)提供的5 V電源。C3和C4是高頻瓷片電容,C3容量一般為4 700 pF~0.02 μF,用于CH341T內(nèi)部電源節(jié)點(diǎn)的退耦;G容量為0.1μF,用于外部電源的退耦。晶振X1、電容C1和C2用于時(shí)鐘振蕩電路。X1的頻率是12 MHz,C1和C2是容量為15~30 pF的高頻瓷片電容。MAX232提供電平轉(zhuǎn)換。

3.JPG

2.3 驅(qū)動(dòng)程序
    連接USB-RS 232轉(zhuǎn)換卡的計(jì)算機(jī),必須安裝CH341T的驅(qū)動(dòng)程序CH341SER.EXE,當(dāng)模塊首次連接到計(jì)算機(jī)的USB端口時(shí),計(jì)算機(jī)提示找到新硬件,按照提示完成驅(qū)動(dòng)程序的安裝。
    安裝完驅(qū)動(dòng)程序后,可以通過(guò)計(jì)算機(jī)的USB接口提供仿真串口。在邏輯功能方面,使用方法與普通計(jì)算機(jī)串口完全相同,支持大多數(shù)常用的串口監(jiān)控及調(diào)試工具程序,應(yīng)用程序可以不做任何修改,可以像存取一個(gè)標(biāo)準(zhǔn)的物理串口一樣訪(fǎng)問(wèn)這個(gè)虛擬串口,在保持軟硬件兼容的前提下,將原串口產(chǎn)品轉(zhuǎn)換為USB接口。

3 板卡性能測(cè)試方法及其結(jié)果

3.1 設(shè)備驅(qū)動(dòng)層通信功能測(cè)試
    USB-RS 232轉(zhuǎn)換卡的性能需要借助可靠的工具來(lái)進(jìn)行測(cè)試。利用CH341芯片制造商提供的USB測(cè)試程序進(jìn)行調(diào)試,點(diǎn)擊搜索CH341串口,出現(xiàn)CH341的串口號(hào)為“COM3”的字樣(因?yàn)槟壳半娔X上已經(jīng)有兩個(gè)串口),這說(shuō)明USB-RS 232設(shè)備已經(jīng)成功連接到計(jì)算機(jī)上。 

3.2 應(yīng)用層通信功能測(cè)試

    利用具有RS 232接口的網(wǎng)絡(luò)型溫濕度傳感器來(lái)進(jìn)行測(cè)試,該傳感器通過(guò)本文研制的USB-RS 232轉(zhuǎn)換卡連接,該卡一端接傳感器,一端接計(jì)算機(jī)。在圖4下設(shè)置串口的端口號(hào)以及幀格式,保證傳感器與計(jì)算機(jī)的協(xié)議設(shè)置是一致的。設(shè)置好相關(guān)參數(shù)后,把傳感器接到轉(zhuǎn)換卡上,運(yùn)行傳感器測(cè)試程序后出現(xiàn)如圖5的畫(huà)面,經(jīng)長(zhǎng)時(shí)間拷機(jī)后傳感器工作正常,這說(shuō)明RS 232接口的外設(shè)(溫濕度傳感器)經(jīng)過(guò)USB-RS 232轉(zhuǎn)換卡可以在USB接口上使用,也說(shuō)明該轉(zhuǎn)換卡實(shí)現(xiàn)了RS 232協(xié)議到USB協(xié)議的轉(zhuǎn)換。

4.JPG

4 使用和調(diào)試中的關(guān)鍵問(wèn)題

4.1 操作系統(tǒng)識(shí)剮不到轉(zhuǎn)換卡
     USB-RS 232轉(zhuǎn)換卡是即插即用的USB設(shè)備,正在使用轉(zhuǎn)換卡進(jìn)行數(shù)據(jù)傳輸?shù)倪^(guò)程中,不可以將其物理斷開(kāi),必須在應(yīng)用程序關(guān)閉該串口后,轉(zhuǎn)換卡才可以從USB插座中拔出。如果在應(yīng)用程序使用轉(zhuǎn)換卡的過(guò)程中,轉(zhuǎn)換卡從USB插座中斷開(kāi),那么應(yīng)用程序應(yīng)該盡快關(guān)閉轉(zhuǎn)換卡并退出(關(guān)閉及退出可能需要數(shù)秒時(shí)間)。如果在轉(zhuǎn)換卡通信過(guò)程中發(fā)生錯(cuò)誤,極有可能是轉(zhuǎn)換卡已經(jīng)物理斷開(kāi),所以在檢測(cè)到錯(cuò)誤后建議關(guān)閉轉(zhuǎn)換卡,稍等2 s后再重新打開(kāi)串口通信。采用設(shè)備事件通知的方法可以及時(shí)了解轉(zhuǎn)換卡的連接與斷開(kāi),從而使串口應(yīng)用程序能夠及時(shí)打開(kāi)和關(guān)閉轉(zhuǎn)換卡。

4.2 傳輸數(shù)據(jù)丟失

    如果通信波特率較高,建議設(shè)置較大的緩沖區(qū),尤其在windows 98/ME下,線(xiàn)程調(diào)度能力和USB實(shí)時(shí)性都比Windows 2000/XP差,如果串口接收緩沖區(qū)較小,那么在通信波特率較高時(shí),接收大量數(shù)據(jù)會(huì)導(dǎo)致串口緩沖區(qū)溢出而丟棄數(shù)據(jù)。由于底層的USB是將多個(gè)字節(jié)組成數(shù)據(jù)包后安插到各個(gè)1 ms幀中進(jìn)行傳輸?shù)?,所以有可能將串口收發(fā)的相鄰的兩個(gè)字節(jié)實(shí)際分割在兩個(gè)USB數(shù)據(jù)包,甚至兩個(gè)USB幀中,在最壞情況下這兩個(gè)字節(jié)在時(shí)間上有可能相隔1 ms甚至2 ms。

5 結(jié)語(yǔ)

    詳細(xì)介紹了USB-RS 232轉(zhuǎn)換卡的設(shè)計(jì)原理,成功設(shè)計(jì)了以CH341T為例的USB-RS 232轉(zhuǎn)換卡。經(jīng)過(guò)調(diào)試和試用,轉(zhuǎn)換卡運(yùn)行正常,成功實(shí)現(xiàn)了RS 232接口設(shè)備與USB總線(xiàn)的數(shù)據(jù)傳輸。轉(zhuǎn)換卡體積小,成本低。使用方便,性能可靠,傳統(tǒng)的RS 232串口設(shè)備無(wú)需做任何改動(dòng)即可通過(guò)USB口使用。該轉(zhuǎn)換卡順應(yīng)市場(chǎng)需要,可以廣泛應(yīng)用在日常生活與生產(chǎn)實(shí)踐中,如:筆記本電腦(大多數(shù)新一代筆記本電腦往往沒(méi)有RS232的9針串口,卻有4個(gè)USB口)、Modem、數(shù)碼相機(jī)、條碼掃描器、刷卡器、磁卡讀寫(xiě)器、手機(jī)傳輸線(xiàn)、掌上電腦、標(biāo)簽打印機(jī)、POS系統(tǒng)、工業(yè)自動(dòng)化控制機(jī)械、安全門(mén)禁系統(tǒng)、數(shù)據(jù)采集器等。通過(guò)USB-RS 232轉(zhuǎn)換卡,這些設(shè)備都能在RS 232串口和USB口之間非常容易地建立可靠的連接,通過(guò)利用USB接口即插即用和熱插拔的能力給這些RS 232串口設(shè)備提供非常容易使用的環(huán)境,并大大提高傳輸速率。 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。