新聞中心

EEPW首頁 > 設計應用 > USB虛擬串口通信實現(xiàn)

USB虛擬串口通信實現(xiàn)

作者: 時間:2016-10-10 來源:網(wǎng)絡 收藏

摘要 以一種高度集成的總線轉接芯片為核心,設計并實現(xiàn)了基于接口的PC機與下位機的通信。上位機在Windows環(huán)境下利用MSComm控件實現(xiàn)與下位機通信,介紹了的實現(xiàn)方法,并基于該編寫了控制應用軟件。實驗測試表明,采用虛擬串口實現(xiàn)上位機與單片機通信,具有結構簡單、速度快和易于軟件開發(fā)等特點,能滿足于各種串口通信場合。

本文引用地址:http://www.butianyuan.cn/article/201610/306437.htm

在嵌入式系統(tǒng)中,異步串行通信接口多作為標準外圍設備出現(xiàn)。隨著大量支持USB的個人電腦的普及,易于使用的接口。USB接口逐步成為PC機的標準接口,使得對USB接口相關應用軟件的開發(fā)和外圍設備的研究顯得越來越重要。

本文中的控制系統(tǒng)采用基于USB的虛擬串口同中心匯聚節(jié)點通信,中心匯聚節(jié)點采用意法半導體公司STM8S103系列微處理器,實現(xiàn)數(shù)據(jù)的接收與發(fā)送。上位機系統(tǒng)控制軟件在Windows環(huán)境下通過VC++6.0編程開發(fā),基于USB的虛擬串口具有傳輸數(shù)據(jù)穩(wěn)定、安裝簡便、即插即用等特點。

1 控制系統(tǒng)總體設計

系統(tǒng)總體結構如圖1所示,主要由3部分組成,基于PC機的上位機系統(tǒng)控制軟件、中心匯聚節(jié)點和各家電子設備節(jié)點。中心匯聚節(jié)點和各家電子設備節(jié)點均搭載433無線通信模塊。各家電子設備節(jié)點可以根據(jù)自身設備的狀態(tài)信息,整合成一定格式的數(shù)據(jù)幀,經433無線模塊將數(shù)據(jù)信息傳送給中心匯聚節(jié)點,而后通過基于USB的虛擬串口將數(shù)據(jù)轉發(fā)給上位機系統(tǒng)控制軟件,上位機軟件實時顯示家電子設備的狀態(tài)信息。同樣,當用戶需要控制和管理家電設備時,控制指令經虛擬串口和433無線模塊將指令下發(fā)至相應家電設備,根據(jù)指令執(zhí)行相應操作。

USB虛擬串口通信實現(xiàn)

2 虛擬串口硬件電路設計

2.1 芯片簡介

是一種高度集成的USB總線轉接芯片,通過USB總線提供異步串口、打印口、并口以及常用的2線和4線等同步串行接口。在異步串口方式下,提供串口發(fā)送使能、串口接收就緒等交互式的速率控制信號以及常用的MODEM聯(lián)絡信號,用于為計算機擴展異步串口,或者將普通的串口設備直接升級到USB總線。具備USB全速接口,兼容USB V2.0,外圍器件簡單,只需晶振和電容。完全兼容計算機端Windows操作系統(tǒng)下的串口應用程序。硬件全雙工串口,內置收發(fā)緩沖區(qū),支持通訊速率50bit·s-1~2Mbit·s-1和5、6、7或者8位數(shù)據(jù)位、奇校驗、偶校驗、空白、標志以及無校驗、串口發(fā)送使能、串口接收就緒等傳輸速率控制信號和MODEM聯(lián)絡信號。

2.2 串口硬件電路設計

USB轉虛擬串口部分電路主要由CH341和STM8S103構成,其電路原理如圖2所示,設備采用USB總線供電方式,時鐘電路由12 MHz晶振搭配2個20 pF電容構成,將CH341芯片的SDA和SCL引腳懸空,從而使其工作于異步串行口模式,采用常用的三線式串口通信方式,將CH341芯片的RXD、TXD、GND引腳分別于單片機STM8S103的TXD、RXD和GND引腳相連。在USB接口的電源端連接一個磁珠,以減少PC機與設備的干擾,同時在電源端增加去耦和旁路電容,以提高設備的抗干擾能力。

USB虛擬串口通信實現(xiàn)

3 上位機系統(tǒng)軟件設計

3.1 USB轉虛擬串口驅動安裝

當完成硬件連接后,為實現(xiàn)正常的串口通信,還需為PC機安裝相應的驅動程序。從互聯(lián)網(wǎng)上可下載相應芯片的驅動程序,因本設計選用USB總線轉接芯片為CH341,故下載并安裝對應的CH341 SER驅動程序,該驅動程序支持Windows 98//XP/Win7 32位/64位等操作系統(tǒng)。該虛擬串口實現(xiàn)仿真標準串口,完全兼容計算機端Windows操作系統(tǒng)環(huán)境下的串口應用程序,用戶可以像訪問標準串口設備一樣對該虛擬串口進行通信,但實質其數(shù)據(jù)通信則是通過USB總線完成。待安裝完驅動程序后,便可以對該設備進行基于串口的上位機應用程序開發(fā)。

3.2 系統(tǒng)控制軟件設計

上位機控制軟件在VC++6.0環(huán)境下開發(fā),采用VC++6.0提供的MSComm控件進行應用程序設計。MSCOM控件提供了完善的數(shù)據(jù)接收與發(fā)送功能,支持事件驅動和查詢兩種通信模式。事件驅動方式下,當有串口發(fā)生事件或錯誤時便響應OnComm事件處理程序;查詢模式下,則通過定期查詢MSComm控件的ComEvent屬性變化來進行數(shù)據(jù)處理??紤]到控制系統(tǒng)的實時響應能力,上位機應用軟件采用事件驅動方式,即當串口有數(shù)據(jù)接收時便響應OnComm事件,然后在OnComm事件處理函數(shù)中加入相應的通信處理代碼。系統(tǒng)控制軟件操作界面如圖3所示。

USB虛擬串口通信實現(xiàn)

3.2.1 通信參數(shù)設置

為保證控制系統(tǒng)能成功進行串口通信,系統(tǒng)控制軟件與匯聚節(jié)點設備應設置相同的波特率、數(shù)據(jù)位等通信參數(shù),此外因為PC機為USB總線轉接芯片CH341分配的虛擬串口是不確定的,為此設計了通信參數(shù)設置對話框來對虛擬串口的通信參數(shù)進行設置,界面如圖4所示。

USB虛擬串口通信實現(xiàn)

3.2.2 通信數(shù)據(jù)處理

上位機系統(tǒng)控制軟件主要負責用戶控制指令的發(fā)送與接收,同時及時更新顯示當前家用電子設備的狀態(tài)信息。應用軟件主要包含系統(tǒng)初始化程序、串口接收與發(fā)送程序和數(shù)據(jù)處理與顯示程序3部分。初始化程序主要負責系統(tǒng)的串口通信參數(shù)配置;串口接收與發(fā)送程序則負責將數(shù)據(jù)組合成數(shù)據(jù)幀,并發(fā)送或接收匯聚節(jié)點數(shù)據(jù)幀;數(shù)據(jù)處理與顯示程序則根據(jù)不同的數(shù)據(jù)幀進行相應處理,并及時更新對應家電子設備的控制界面,程序流程如圖5所示。

USB虛擬串口通信實現(xiàn)

4 實驗驗證

為進一步驗證USB轉虛擬串口通信在具體系統(tǒng)應用中的可靠性和穩(wěn)定性,按照圖1搭建測試系統(tǒng),在PC機上安裝好對應的USB轉虛擬串口驅動程序,打開上位機系統(tǒng)控制軟件,選擇對應的串口,設置與中心匯聚節(jié)點相匹配的串口通信參數(shù),在應用軟件中選擇加濕器操作界面,改變界面狀態(tài)以發(fā)送控制指令,查看對應的加濕器是否執(zhí)行相應的操作;通過手動改變加濕器的狀態(tài),查看上位機系統(tǒng)控制軟件中加濕器界面狀態(tài)是否及時更新,測試結果如圖6所示,實驗測試表明系統(tǒng)響應速度快、穩(wěn)定性強,USB轉虛擬串口通信能夠滿足實際控制系統(tǒng)的通信需求。

USB虛擬串口通信實現(xiàn)

5 結束語

本文設計了基于USB虛擬串口通信技術的串口通信模塊,介紹了其設計方法與原理,開發(fā)了基于虛擬串口通信的上位機系統(tǒng)控制軟件,并將其應用于控制系統(tǒng)。采用USB虛擬串口解決了傳統(tǒng)串口逐漸消失、擴展性差、安裝繁瑣等問題,實驗測試表明基于USB的虛擬串口具有傳輸速率穩(wěn)定、即插即用等特點。



評論


相關推薦

技術專區(qū)

關閉