摘要:為解決當前計算機串行通訊接口只有USB,,難以滿足舊型號設備或某些單片機要求RS232通訊的問題,,設計出兩款RS232/USB電路,。采用CH341A與MAX223集成電路芯片構建標準9線RS232/USB通用接口轉換器,無需編程,。采用CH341A與PIC16F877A構建單片機與計算機之間的U-SB通訊電路,,軟件遵循RS232通訊協(xié)議,硬件進行電平轉換,。實際使用表明,,這兩款產(chǎn)品與計算機端Windows操作系統(tǒng)下的串口應用程序完全兼容,且通訊過程中無握手失敗現(xiàn)象,。
關鍵詞:USB,;RS232C;通訊,;接口
隨著計算機技術的發(fā)展,,具有熱插拔功能的USB接口逐漸取代了RS232C接口,使得采用RS232C通訊的舊式設備應用受到限制,。此外,,由于RS232C通訊接口編程簡單,控制靈活,,大多數(shù)MCU仍然把它作為一個標準模塊固化在其外圍電路當中,。目前,市面上雖然有一些成型的USB/ RS232C轉換產(chǎn)品,,但功能比較簡單,,只支持3線通信方式,并且與PC端的串口應用程序不完全兼容,,使用過程中經(jīng)常出現(xiàn)握手失敗的情況,。本文根據(jù)實際情況中PC的USB接口使用情況,設計了兩款產(chǎn)品,,在芯片廠家提供的驅動程序下,,僅需少量編程即可滿足USB與RS232C接口的轉換問題,以及實現(xiàn)MCU與PC之間的USB串口通信,。
1 CH341A簡介
CH341A是南京沁恒公司生產(chǎn)的USB總線轉接芯片,,其引腳排列如圖1所示。當CH341A工作在異步串口模式時,,CH341A提供串口發(fā)送使能,、串口接收就緒等交互式的速率控制信號以及常用的MODEM聯(lián)絡信號,用于為計算機擴展異步串口,,或者將普通的串口設備直接升級到USB總線,。
異步串口方式下CH341A芯片的引腳包括:數(shù)據(jù)傳輸引腳、硬件速率控制引腳,、工作狀態(tài)引腳,、MODEM聯(lián)絡信號引腳、輔助引腳,。
數(shù)據(jù)傳輸引腳包括:TXD引腳和RXD引腳,。串口空閑時TXD和RXD為高電平。硬件速率控制引腳包括:TEN#引腳和RDY#引腳,。TEN#是串口發(fā)送使能,,當其為高電平時,CH341將暫停從串口發(fā)送數(shù)據(jù),,直到TEN#為低電平才繼續(xù)發(fā)送,。RDY#引腳是串口接收就緒,當其為高電平時,,說明CH341還未準備好接收,,暫時不能接收數(shù)據(jù),其原因可能是芯片正在復位,、USB尚未配置或者已經(jīng)取消配置,、或者串口接收緩沖區(qū)已滿等。
工作狀態(tài)引腳包括:TNOW引腳和ROV#引腳。TNOW以高電平指示CH341正在從串口發(fā)送數(shù)據(jù),,發(fā)送完成后為低電平,,在半雙工串口方式下,TNOW可以用于指示串口收發(fā)切換狀態(tài),。ROV#以低電平指示CH341A內(nèi)置的串口接收緩沖區(qū)即將或者已經(jīng)溢出,,后面的數(shù)據(jù)將有可能被丟棄,正常情況下接收緩沖區(qū)不會溢出,,所以ROV#應該為高電平,。MODEM聯(lián)絡信號引腳包括:CTS#引腳、DSR#引腳,、RI#引腳,、DCD#引腳、DTR#引腳,、RTS#引腳,。所有這些MODEM聯(lián)絡信號都是由計算機應用程序控制并定義其用途,而非直接由CH341控制,,如果需要較快的速率控制信號,,可以用硬件速率信號代替。
CH341A芯片的ACT#引腳用于USB設備配置完成狀態(tài)輸出,。當USB設備尚未配置或者取消配置后,,該引腳輸出高電平,當USB設備配置完成后,,該引腳輸出低電平,。CH341A芯片內(nèi)置USB上拉電阻,UD+和UD-引腳可直接連接到USB總線上,。CH341A芯片內(nèi)置電源上電復位電路,,RSTI引腳用于從外部輸入異步復位信號;當RSTI引腳為高電平時,,CH341A芯片被復位,;當RSTI引腳恢復為低電平后,經(jīng)過20 ms左右的復位延時后,,進入工常工作狀態(tài),。
CH341A內(nèi)置了獨立的收發(fā)緩沖區(qū),支持單工,、半雙工或者全雙工異步串行通訊,。串行數(shù)據(jù)包括1個低電平起始位、5~8個數(shù)據(jù)位,、1或2個高電平停止位,,支持奇校驗/偶校驗/標志校驗/空白校驗,。CH341A支持常用通訊波特率:50、75,、100,、110、134.5,、150,、300,、600,、900、1 200,、1 800,、2 400、3 600,、4 800,、9 600、14 400,、19 200,、28 800、33 600,、38 400,、56 000、57 600,、76 800,、115 200、128 000,、153 600,、230 400、460 800,、921 600,、1 500 000、2 000 000等,。
CH341A的通訊操作采用虛擬形式,,在計算機端安裝好驅動程序后,即將USB接口虛擬成RS232接口,,便可利用RS232通訊協(xié)議對USB進行操作,。CH341A設備驅動程序安裝成功,并與計算機可靠連接后,,在“設備管理器”中顯示的信息如圖2所示,。
2 轉換器設計
2.1 USB/RS232轉換器
該轉換器只應用于USB接口或RS232接口不夠,,需采用RS232進行通訊的場合。利用CH341A進行USB與標準9線RS232串口轉換的電路原理圖如圖3所示,,該轉換器在上位機驅動程序的管理下,,無需二次編程開發(fā)。由于轉換器功耗很小,,由USB端口提供電源,;在CH341A的XI、XO引腳接入12M晶振,,以提供芯片內(nèi)部時基,,起振電容C13、C14為20pF,。將轉換器與計算機通過USB接口連接后,,發(fā)光二極管VD1被點亮,表示CH341A配置完成,,可以進行后續(xù)操作,。電平適配轉換芯片采用MAX223,其外圍電容器件用穩(wěn)定性能較好的鉭電解電容,,容值為1μF,。MAX223支持掛起狀態(tài),當SHDN引腳為低電平時,,MAX223進入掛起狀態(tài),,由于CH341A支持的通訊波特率能滿足大多數(shù)要求,故本設計中把SHDN直接接高電平,。
本設計采用MAX223是為了減小產(chǎn)品體積,,實現(xiàn)標準9線RS232串口的轉換,在實際成型產(chǎn)品中,,可以采用3個MAX232代替,,由于外圍電容以及集成電路數(shù)量的增加,轉換器的體積也會隨之增大,。在大多數(shù)場合,,3線串口即可滿足要求,如STC系列單片機的ISP程序下載應用,,此時,,可采用小型化的CH341T及單片MAX232進一步減小體積。
利用串口調(diào)試助手對轉換器進行通訊測試的結果如圖4所示,。測試過程中,,轉換器與計算機連接后虛擬端口為COM3,利用RS232標準線纜將轉換器與另一臺計算機的COM1端口相連,。通訊采用的波特率為9 600,,8位數(shù)據(jù)位,,1位停止位,無校驗位,,2個端口每隔1 000 ms自動發(fā)送數(shù)據(jù),。由圖4可見,該轉換器能夠在不同計算機的USB/RS232端口間進行可靠通訊,。此外,,采用2個轉換器,可實現(xiàn)不同計算機間的USB通訊,,經(jīng)測試工作可靠,。
2.2 MCU與PC之間USB通訊適配
該適配電路適用于計算機無RS232接口,卻需進行RS232通訊的數(shù)據(jù)采集系統(tǒng),,MCU進行底層相關數(shù)據(jù)的采集與存儲,,然后在上位機的控制下通過適配電路進行數(shù)據(jù)的傳遞,。MCU與PC機通過USB接口進行通訊的適配器原理電路如圖5所示,,在本設計中MCU采用microchip公司的PIC1 6F877A,利用MCU的串口模塊,,可以與CH341A直接構成3線串口通訊方式,,經(jīng)過CH341A轉換后,通過USB接口與PC機相連,。當PC串口通訊波特率較高或者單片機來不及接收,,利用MCU的RD0引腳控制CH341A的TEN#引腳,當MCU空閑且可以接收串口數(shù)據(jù)時置TEN#為低電平,,當單片機較忙或者不便于接收串口數(shù)據(jù)時置TEN#為高電平,。使CH341A暫停發(fā)送下一個字節(jié),實現(xiàn)速率控制,。
單片機軟件流程如圖6所示,,系統(tǒng)初始化完成I/O口、看門狗等設置,;串口初始化進行波特率,、檢驗位、通訊方式等設置,。
上位機軟件向單片機發(fā)送一個指令,,當單片機檢測到該指令后判斷是否有鍵按下,如果有,,則進行相應鍵值的判斷,,根據(jù)鍵值的不同向上位機發(fā)送不同的數(shù)據(jù)。在對本電路測試中,,上位機指令代碼為“CCh”,,單片機發(fā)送的數(shù)據(jù)與鍵值相對應,,如按下1號鍵,發(fā)送數(shù)據(jù)“01h”,,測試結果如圖7所示,。
上述兩種產(chǎn)品結構緊湊,體積小巧,,通訊可靠,,可以滿足絕大多數(shù)應用場合的需求,但在通訊速率的設置上,,應盡量采用CH341推薦的波特率,,否則可能出現(xiàn)通訊異常的情況。
實際上,,CH341推薦的波特率基本涵蓋了各類通訊軟件及產(chǎn)品所采用的波特率,,也與51系列MCU采用11.059 2 MHz晶振時設置的波特率相兼容,因此,,推薦波特率也可以滿足各種場合的需求,。
3 結束語
CH341A作為一種新型的、功能強大的USB接口轉換芯片,,可以工作在多種模式,,且接線簡單、控制方便,、使用靈活,,可滿足用戶的多種需求。由于CH341A屏蔽了USB接口的底層協(xié)議,,可以方便地在嵌入式系統(tǒng)中增加USB接口,,無需電平轉換器件,在驅動程序的控制下直接與PC機通訊,,極大地方便了用戶,,縮短開發(fā)周期、減少研發(fā)費用,。