基于CH341A的USB串口通訊設(shè)計(jì)
摘要:為解決當(dāng)前計(jì)算機(jī)串行通訊接口只有USB,難以滿足舊型號(hào)設(shè)備或某些單片機(jī)要求RS232通訊的問題,設(shè)計(jì)出兩款RS232/USB電路。采用CH341A與MAX223集成電路芯片構(gòu)建標(biāo)準(zhǔn)9線RS232/USB通用接口轉(zhuǎn)換器,無需編程。采用CH341A與PIC16F877A構(gòu)建單片機(jī)與計(jì)算機(jī)之間的U-SB通訊電路,軟件遵循RS232通訊協(xié)議,硬件進(jìn)行電平轉(zhuǎn)換。實(shí)際使用表明,這兩款產(chǎn)品與計(jì)算機(jī)端Windows操作系統(tǒng)下的串口應(yīng)用程序完全兼容,且通訊過程中無握手失敗現(xiàn)象。
關(guān)鍵詞:USB;RS232C;通訊;接口
隨著計(jì)算機(jī)技術(shù)的發(fā)展,具有熱插拔功能的USB接口逐漸取代了RS232C接口,使得采用RS232C通訊的舊式設(shè)備應(yīng)用受到限制。此外,由于RS232C通訊接口編程簡(jiǎn)單,控制靈活,大多數(shù)MCU仍然把它作為一個(gè)標(biāo)準(zhǔn)模塊固化在其外圍電路當(dāng)中。目前,市面上雖然有一些成型的USB/ RS232C轉(zhuǎn)換產(chǎn)品,但功能比較簡(jiǎn)單,只支持3線通信方式,并且與PC端的串口應(yīng)用程序不完全兼容,使用過程中經(jīng)常出現(xiàn)握手失敗的情況。本文根據(jù)實(shí)際情況中PC的USB接口使用情況,設(shè)計(jì)了兩款產(chǎn)品,在芯片廠家提供的驅(qū)動(dòng)程序下,僅需少量編程即可滿足USB與RS232C接口的轉(zhuǎn)換問題,以及實(shí)現(xiàn)MCU與PC之間的USB串口通信。
1 CH341A簡(jiǎn)介
CH341A是南京沁恒公司生產(chǎn)的USB總線轉(zhuǎn)接芯片,其引腳排列如圖1所示。當(dāng)CH341A工作在異步串口模式時(shí),CH341A提供串口發(fā)送使能、串口接收就緒等交互式的速率控制信號(hào)以及常用的MODEM聯(lián)絡(luò)信號(hào),用于為計(jì)算機(jī)擴(kuò)展異步串口,或者將普通的串口設(shè)備直接升級(jí)到USB總線。
異步串口方式下CH341A芯片的引腳包括:數(shù)據(jù)傳輸引腳、硬件速率控制引腳、工作狀態(tài)引腳、MODEM聯(lián)絡(luò)信號(hào)引腳、輔助引腳。
數(shù)據(jù)傳輸引腳包括:TXD引腳和RXD引腳。串口空閑時(shí)TXD和RXD為高電平。硬件速率控制引腳包括:TEN#引腳和RDY#引腳。TEN#是串口發(fā)送使能,當(dāng)其為高電平時(shí),CH341將暫停從串口發(fā)送數(shù)據(jù),直到TEN#為低電平才繼續(xù)發(fā)送。RDY#引腳是串口接收就緒,當(dāng)其為高電平時(shí),說明CH341還未準(zhǔn)備好接收,暫時(shí)不能接收數(shù)據(jù),其原因可能是芯片正在復(fù)位、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ū)不會(huì)溢出,所以ROV#應(yīng)該為高電平。MODEM聯(lián)絡(luò)信號(hào)引腳包括:CTS#引腳、DSR#引腳、RI#引腳、DCD#引腳、DTR#引腳、RTS#引腳。所有這些MODEM聯(lián)絡(luò)信號(hào)都是由計(jì)算機(jī)應(yīng)用程序控制并定義其用途,而非直接由CH341控制,如果需要較快的速率控制信號(hào),可以用硬件速率信號(hào)代替。
CH341A芯片的ACT#引腳用于USB設(shè)備配置完成狀態(tài)輸出。當(dāng)USB設(shè)備尚未配置或者取消配置后,該引腳輸出高電平,當(dāng)USB設(shè)備配置完成后,該引腳輸出低電平。CH341A芯片內(nèi)置USB上拉電阻,UD+和UD-引腳可直接連接到USB總線上。CH341A芯片內(nèi)置電源上電復(fù)位電路,RSTI引腳用于從外部輸入異步復(fù)位信號(hào);當(dāng)RSTI引腳為高電平時(shí),CH341A芯片被復(fù)位;當(dāng)RSTI引腳恢復(fù)為低電平后,經(jīng)過20 ms左右的復(fù)位延時(shí)后,進(jìn)入工常工作狀態(tài)。
CH341A內(nèi)置了獨(dú)立的收發(fā)緩沖區(qū),支持單工、半雙工或者全雙工異步串行通訊。串行數(shù)據(jù)包括1個(gè)低電平起始位、5~8個(gè)數(shù)據(jù)位、1或2個(gè)高電平停止位,支持奇校驗(yàn)/偶校驗(yàn)/標(biāo)志校驗(yàn)/空白校驗(yàn)。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的通訊操作采用虛擬形式,在計(jì)算機(jī)端安裝好驅(qū)動(dòng)程序后,即將USB接口虛擬成RS232接口,便可利用RS232通訊協(xié)議對(duì)USB進(jìn)行操作。CH341A設(shè)備驅(qū)動(dòng)程序安裝成功,并與計(jì)算機(jī)可靠連接后,在“設(shè)備管理器”中顯示的信息如圖2所示。
數(shù)字通信相關(guān)文章:數(shù)字通信原理
通信相關(guān)文章:通信原理
評(píng)論