新聞中心

EEPW首頁 > 設(shè)計應(yīng)用 > USB虛擬串口通信實(shí)現(xiàn)

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

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

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

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

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

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

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

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

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

2 虛擬串口硬件電路設(shè)計

2.1 芯片簡介

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

2.2 串口硬件電路設(shè)計

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

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

3 上位機(jī)系統(tǒng)軟件設(shè)計

3.1 USB轉(zhuǎn)虛擬串口驅(qū)動安裝

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

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

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

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

3.2.1 通信參數(shù)設(shè)置

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

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

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

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

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

4 實(shí)驗驗證

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

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

5 結(jié)束語

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



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉