李智敏
(廣東工業(yè)大學信息工程學院,廣東廣州 510006)
在嵌入式系統(tǒng)中,異步串行通信接口多作為標準外圍設(shè)備出現(xiàn)。隨著大量支持USB的個人電腦的普及,易于使用的接口。USB接口逐步成為PC機的標準接口,使得對USB接口相關(guān)應用軟件的開發(fā)和外圍設(shè)備的研究顯得越來越重要[1]。
本文中的智能家居控制系統(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)定、安裝簡便、即插即用等特點[2]。
系統(tǒng)總體結(jié)構(gòu)如圖1所示,主要由3部分組成,基于PC機的上位機系統(tǒng)控制軟件、中心匯聚節(jié)點和各家電子設(shè)備節(jié)點。中心匯聚節(jié)點和各家電子設(shè)備節(jié)點均搭載433無線通信模塊。各家電子設(shè)備節(jié)點可以根據(jù)自身設(shè)備的狀態(tài)信息,整合成一定格式的數(shù)據(jù)幀,經(jīng)433無線模塊將數(shù)據(jù)信息傳送給中心匯聚節(jié)點,而后通過基于USB的虛擬串口將數(shù)據(jù)轉(zhuǎn)發(fā)給上位機系統(tǒng)控制軟件,上位機軟件實時顯示家電子設(shè)備的狀態(tài)信息[3]。同樣,當用戶需要控制和管理家電設(shè)備時,控制指令經(jīng)虛擬串口和433無線模塊將指令下發(fā)至相應家電設(shè)備,根據(jù)指令執(zhí)行相應操作[4]。
圖1 控制系統(tǒng)結(jié)構(gòu)示意圖
CH341是一種高度集成的USB總線轉(zhuǎn)接芯片,通過USB總線提供異步串口、打印口、并口以及常用的2線和4線等同步串行接口。在異步串口方式下,CH341提供串口發(fā)送使能、串口接收就緒等交互式的速率控制信號以及常用的MODEM聯(lián)絡(luò)信號,用于為計算機擴展異步串口,或者將普通的串口設(shè)備直接升級到USB總線。具備USB全速接口,兼容USB V2.0,外圍器件簡單,只需晶振和電容。完全兼容計算機端Windows操作系統(tǒng)下的串口應用程序。硬件全雙工串口,內(nèi)置收發(fā)緩沖區(qū),支持通訊速率50 bit·s-1~2 Mbit·s-1和5、6、7 或者 8 位數(shù)據(jù)位、奇校驗、偶校驗、空白、標志以及無校驗、串口發(fā)送使能、串口接收就緒等傳輸速率控制信號和MODEM聯(lián)絡(luò)信號。
USB轉(zhuǎn)虛擬串口部分電路主要由CH341和STM8S103構(gòu)成,其電路原理如圖2所示,設(shè)備采用USB總線供電方式,時鐘電路由12 MHz晶振搭配2個20 pF電容構(gòu)成,將CH341芯片的SDA和SCL引腳懸空,從而使其工作于異步串行口模式,采用常用的三線式串口通信方式,將CH341芯片的RXD、TXD、GND引腳分別于單片機STM8S103的TXD、RXD和GND引腳相連。在USB接口的電源端連接一個磁珠,以減少PC機與設(shè)備的干擾,同時在電源端增加去耦和旁路電容,以提高設(shè)備的抗干擾能力[2]。
圖2 虛擬串口部分電路圖
當完成硬件連接后,為實現(xiàn)正常的串口通信,還需為PC機安裝相應的驅(qū)動程序。從互聯(lián)網(wǎng)上可下載相應芯片的驅(qū)動程序,因本設(shè)計選用USB總線轉(zhuǎn)接芯片為CH341,故下載并安裝對應的CH341SER驅(qū)動程序,該驅(qū)動程序支持Windows 98//XP/Win7 32位/64位等操作系統(tǒng)。該虛擬串口實現(xiàn)仿真標準串口,完全兼容計算機端 Windows操作系統(tǒng)環(huán)境下的串口應用程序,用戶可以像訪問標準串口設(shè)備一樣對該虛擬串口進行通信,但實質(zhì)其數(shù)據(jù)通信則是通過USB總線完成。待安裝完驅(qū)動程序后,便可以對該設(shè)備進行基于串口的上位機應用程序開發(fā)[2]。
上位機控制軟件在VC++6.0環(huán)境下開發(fā),采用VC++6.0提供的MSComm控件進行應用程序設(shè)計。MSCOM控件提供了完善的數(shù)據(jù)接收與發(fā)送功能[2],支持事件驅(qū)動和查詢兩種通信模式。事件驅(qū)動方式下,當有串口發(fā)生事件或錯誤時便響應OnComm事件處理程序;查詢模式下,則通過定期查詢MSComm控件的ComEvent屬性變化來進行數(shù)據(jù)處理。考慮到控制系統(tǒng)的實時響應能力,上位機應用軟件采用事件驅(qū)動方式,即當串口有數(shù)據(jù)接收時便響應OnComm事件,然后在OnComm事件處理函數(shù)中加入相應的通信處理代碼。系統(tǒng)控制軟件操作界面如圖3所示。
圖3 系統(tǒng)控制軟件界面
3.2.1 通信參數(shù)設(shè)置
為保證控制系統(tǒng)能成功進行串口通信,系統(tǒng)控制軟件與匯聚節(jié)點設(shè)備應設(shè)置相同的波特率、數(shù)據(jù)位等通信參數(shù)[5],此外因為 PC機為 USB總線轉(zhuǎn)接芯片CH341分配的虛擬串口是不確定的,為此設(shè)計了通信參數(shù)設(shè)置對話框來對虛擬串口的通信參數(shù)進行設(shè)置,界面如圖4所示。
圖4 通信參數(shù)設(shè)置界面
3.2.2 通信數(shù)據(jù)處理
上位機系統(tǒng)控制軟件主要負責用戶控制指令的發(fā)送與接收,同時及時更新顯示當前家用電子設(shè)備的狀態(tài)信息。應用軟件主要包含系統(tǒng)初始化程序、串口接收與發(fā)送程序和數(shù)據(jù)處理與顯示程序3部分。初始化程序主要負責系統(tǒng)的串口通信參數(shù)配置;串口接收與發(fā)送程序則負責將數(shù)據(jù)組合成數(shù)據(jù)幀,并發(fā)送或接收匯聚節(jié)點數(shù)據(jù)幀[6];數(shù)據(jù)處理與顯示程序則根據(jù)不同的數(shù)據(jù)幀進行相應處理,并及時更新對應家電子設(shè)備的控制界面,程序流程如圖5所示。
圖5 上位機控制系統(tǒng)程序流程圖
為進一步驗證USB轉(zhuǎn)虛擬串口通信在具體系統(tǒng)應用中的可靠性和穩(wěn)定性[7],按照圖1搭建測試系統(tǒng),在PC機上安裝好對應的USB轉(zhuǎn)虛擬串口驅(qū)動程序,打開上位機系統(tǒng)控制軟件,選擇對應的串口,設(shè)置與中心匯聚節(jié)點相匹配的串口通信參數(shù),在應用軟件中選擇加濕器操作界面,改變界面狀態(tài)以發(fā)送控制指令,查看對應的加濕器是否執(zhí)行相應的操作;通過手動改變加濕器的狀態(tài),查看上位機系統(tǒng)控制軟件中加濕器界面狀態(tài)是否及時更新,測試結(jié)果如圖6所示,實驗測試表明系統(tǒng)響應速度快、穩(wěn)定性強,USB轉(zhuǎn)虛擬串口通信能夠滿足實際控制系統(tǒng)的通信需求。
圖6 加濕器測試界面圖
本文設(shè)計了基于USB虛擬串口通信技術(shù)的串口通信模塊,介紹了其設(shè)計方法與原理,開發(fā)了基于虛擬串口通信的上位機系統(tǒng)控制軟件,并將其應用于智能家居控制系統(tǒng)。采用USB虛擬串口解決了傳統(tǒng)串口逐漸消失、擴展性差、安裝繁瑣等問題[2],實驗測試表明基于USB的虛擬串口具有傳輸速率穩(wěn)定、即插即用等特點。
[1]成芳芳.基于USB虛擬串口技術(shù)的漏電保護的研究[D].天津:河北工業(yè)大學,2011.
[2]寧輝,孫學艷,劉建,等.VB6.0環(huán)境下基于USB的虛擬串口通訊實現(xiàn)[J].現(xiàn)代電子技術(shù),2012,35(6):45 -48.
[3]韋立明.基于USB通信設(shè)備類的虛擬串口研究與設(shè)計[D].西安:西安電子科技大學,2012.
[4]涂亮,段紅光.基于433無線收發(fā)模塊的物聯(lián)網(wǎng)智能家居系統(tǒng)設(shè)計[J].電視技術(shù),2012,36(6):44 -46
[5]劉杰,章韻,陳建新.利用433 MHz射頻通信技術(shù)實現(xiàn)智能家居系統(tǒng)[J].計算機應用,2012,32(S2):68 -72.
[6]MUHAMMADR A,MAMUN BI R,MOHDA M A.A review of smart homes- past,present and future[J].IEEE Transactions on Communication Cricuit,2012,42(6):1190 -1203.
[7]溫細金,汪波,黃佩偉.智能家居網(wǎng)絡(luò)中基于RF的信息采集系統(tǒng)設(shè)計[J].電視技術(shù),2008,48(2):92 -96.