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