摘 要:在基于無線通信方式控制的智能多媒體教室系統中,有兩種控制設備工作的方式:一種是遙控器(鍵盤)控制;一種是上位機控制,本文介紹上位機控制系統的設計方案。在上位機上設計控制代碼,然后通過串口進行計算機與單片機之間的通信,單片機與工作設備之間通過無線通信方式進行控制,從而實現了上位機與工作設備之間的無線通信。
關鍵詞:上位機 串口通信 無線控制
中圖分類號:G64 文獻標識碼:A 文章編號:1673-9795(2013)04(a)-0145-02
在智能多媒體教室控制系統中,可以設計上位機圖形界面的操作方式,教師通過鼠標操作來簡單方便地實現對多媒體教室中的設備的控制。
在本次設計中,上位機部分采用基于Windows 系統下的Visual C++6.0[1]開發,使用了Visual Studio 6.0中集成的Microsoft Communications Control控件,實現了計算機與單片機之間的通信,從而實現了通過計算機對多媒體教室中不同工作設備的控制,如環境燈、投影儀、幕布、窗簾等,使用起來簡單方便。
1 工作系統的控制流程
整個工作系統的控制分為兩種方式(見圖1所示):一種是上位機系統的圖形界面控制;一種是按鍵(遙控)控制方式,兩種方式都要求盡可能簡單,看到功能菜單即可操作。
無論是圖形界面的命令或者按鍵的命令都是發送給單片機,單片機通過無線發射裝置將命令和地址發送出去,接收裝置將自己的地址與發射命令中的地址進行對比,如果是自己則接收并執行命令,從而實現了上位機或鍵盤對執行設備的控制。
2 上位機界面設計
在上位機開機的情況下,打開上位機控制系統的界面,見圖2所示。
目前已完成四個部分功能模塊的控制工作,分別是投影儀、幕布、窗簾和環境燈,在此基礎上可以增加其他模塊,比如操作臺、電腦、音響、攝像頭等,相應地增加其操作界面,后臺打開或者屏蔽掉相應的代碼即可。
界面部分使用Visual studio 6.0開發,選用MFC AppWizard(EXE)基于對話框的程序界面,其選項或功能用戶一目了然。
在Windows應用程序的主函數中,首先要注冊窗口類,然后創建并顯示窗口。
Windows應用程序是靠消息來驅動的,消息是一個描述事件的結構。創建窗口后程序就進入消息循環,在消息循環中,程序不斷地獲得消息并將消息派送給對應的窗口函數進行處理。
窗口函數是處理事件的地方,用函數對Windows應用程序進行封裝可以使程序的結構更為清晰。
CWinApp類是MFC對Windows主函數的封裝,通過派生 CWinApp可以得到自己的應用程序類,在應用程序類中主要實現了全局初始化操作,應用程序類創建了主窗口后便進入了消息循環。
應用程序的主窗口一般都是CFrame Wnd的派生類,可以通過派生該類得到自己的主窗口類。
Windows應用程序的窗口函數封裝到CCmdTarget類中,所有希望相應消息的類都應該以CCmdTarget為基類來派生。
在開發上位機軟件時,事件驅動都采用了鼠標單擊的形式,把程序分成了串口設置區域、功能控制區域和狀態顯示區域三個部分。
串口控制區域使用下拉列表框,讓用戶自己來選擇串口、波特率、數據校驗位和停止位等。由于這些數據一般都是固定的幾個選項,所以采用了下拉列表框,以方便用戶進行選擇。在串口設置沒有成功的時候“狀態欄”和“控制欄”都是不可用的,當串口設置成功時這兩個區域變成可用狀態。
在功能區域(控制欄)中,使用復選框和按鈕來顯示所需要的功能。其中窗簾和幕布分別有三個狀態,即開、關和暫停,投影儀有兩個狀態,即開和關,用戶可以簡單地進行選擇即可。燈光部分我們使用按鈕控件,因為燈光只有兩種狀態,即開和關,通過控制燈光的開、關從而控制了室內的亮度。
在顯示部分(狀態欄)中選用了靜態文本框。在用戶每觸發一個事件的時候,顯示框馬上更新其相關狀態和處理細節。
3 上位機與單片機的協議
在上位機中對無線模塊進行編碼,使用無線發射模塊PT2262中的4個數據位和4個地址位對相關設備的狀態進行編碼,從而使每個設備的每個狀態都有一個唯一的編碼,截取電動幕布的具體編碼見表1所示。
上位機與單片機的通信通過CMSComm控件來實現,該控制提供了一系列的接口,如串口數據的接收、發送,根據表1中的協議,每次執行某個設備的某個操作就發送一個字符,通過CMSComm控件將數據發送給單片機。
4 結語
上位機控制系統的設計主要包括兩個方面:一個是界面和相應代碼的設計;另一個是協議的制定和代碼實現,通過設計一個簡單易用的界面,同時,實現上位機與單片機之間的通信,這樣就可以通過上位機來無線控制相應設備的操作。
參考文獻
[1]陳國建.Visual C++寶典[M].電子工業出版社,2011.
[2]編碼解碼芯片PT2262/PT2272芯片原理簡介[EB/OL].http://www.51c51.com/test/c51test/B16.htm.