藍土慶,溫聰
(嶺南師范學院 網絡與信息技術中心,廣東 湛江 524048)
物聯網作為一種全新的信息傳播方式,已經發(fā)展應用到各行各業(yè),多媒體教育技術亦不例外。多媒體教學隨著多媒體教育技術的不斷發(fā)展已變得越來越重要。但是,由于多媒體教室內引入的設備種類繁多,在實際教學中操作復雜,得不到充分利用,極在影響了教學質量。本文針對當前高校多媒體教室管理的現狀,設計一種基于物聯網的中控系統,可實現環(huán)境集控、遠程監(jiān)控、本地上位機通信或面板操控等多方式控制設備,從而更有效地實現對多媒體教室的監(jiān)控與管理[1]。
該中央控制系統以STC15F2K60S2單片機作為主控芯片,單片機系統接收來自Zigbee模塊、面板鍵盤、本地上位機以及遠程監(jiān)控上位機的環(huán)境和設備狀態(tài)信息,這些信息經過單片機處理后變?yōu)橄鄳目刂菩盘?,通過設備控制模塊來完成相應的操作功能。而實時感知無線傳感網絡主要采用Zigbee網絡的拓撲結構來實現溫度、光線、射頻識別等節(jié)點的檢測和控制[2],其它控制模塊主要由:視頻信號切換、VGA/HDMI信號切換、開關控制、面板鍵盤、以太網接口等這五個子模塊來組成。另外,主控芯片的參數設置、投影的指令控制和狀態(tài)監(jiān)測以及與PC機的通信方式均可通過串行通信模塊來實現。系統的結構框圖見圖1。
本設計的以太網模塊采用的是W5500,它是韓國WIZNET公司研制的一款具有全硬件TCP/IP嵌入式網絡控制器,它整合了5層結構中的前4層,分別為物理層、數據鏈路層、網絡層和傳輸層,并在內部利用硬件實現了TCP/IP協議棧。另外,在單片機與W5500主要以SPI(外設串行接口)通信,W5500 的使用了新的高效 SPI 協議支持 80MHz 速率,容易與外設單片機整合,從而能夠更好的實現高速網絡通訊。
圖1 系統結構框圖Fig.1 System block diagram
W5500 內嵌 32K 字節(jié)片上緩存以供以太網包處理,因此,我們只需要進行 Socket編程,通過TCP使用本機IP地址、端口號建立Socket連接,使用該Socket發(fā)送和接收數據,即可實現局域網內的監(jiān)控與管理[3-4]。
在設計中,將連接W5500的STC15F2K60S2單片機作為服務器(見圖2),多媒體教室遠程監(jiān)控管理軟件作為客戶端(見圖3),實現網絡連接通信。其中遠程監(jiān)控中心客戶端軟件是在C++平臺開發(fā)出來的,可實現多媒體設備和環(huán)境設備的監(jiān)控管理等功能。
圖2 TCP服務器Fig. 2 TCP server
本地PC上位機是通過串口通信的方式實現與單片機進行連接,可實現本地控制中控器設備的參數設置:重設單片機寄存器數據,修改子模塊設備接入應用參數,實現多樣化的設備控制和接入管理功能,軟件通信部分主要在VB6.0開發(fā)軟件中實現。如圖4為單片機系統與本地上位機總體設計框圖,圖5是本地上位機的可視化界面。本文將著重介紹如何利用該上位機模塊實現重寫外接控制設備的控制代碼。
圖3 客戶端監(jiān)控軟件Fig. 3 Client monitoring software
圖4 本地上位機軟件設計框圖Fig.4 Block diagram of local host computer software
圖5 本地上位機的可視化界面Fig.5 Visualization interface of local PC
在上位機中實現串行通信主要是以VB6.0作為開發(fā)工具,調用微軟公司提供的通訊控件Mscomm32.ocx,該控件較為簡單,它提供了一系列標準通信命令的接口,只要設定和監(jiān)視通信控件的屬性和事件就可以快速準確地實現上位機的串口通信功能。本設計的程序是以更改投影機開機控制指令為例來說明上位機是如何與多媒體中控器的主控芯片通信,實現單片機系統寄存器數據的重寫過程[5-6]。具體可分為如下兩個步驟介紹:
(1)通信協議的制定。本設計所介紹的通信協議制定方法是以刷寫東芝投影機為例,其通信波特率為9600bps,串行通信協議格式如表1所示。發(fā)送的起始字符為“STX”,結束字符為“ETX”,而控制指令的具體數據是由投影廠家自己所設定的,指令長度可以為多個字節(jié),根據東芝投影機控制字符,可確定該品牌投影機的控制指令為3個字節(jié),具體控制指令如表2所示。因此,可知道通過串口控制投影機開機的指令是:“02H 50H 4FH 4EH 03H”。
表1 數據發(fā)送格式Table1 Data transmission format
表2 東芝投影機的控制指令Table 2 Control instructions for Toshiba projector
(2)上位機的串口通信程序。本設計上位機的通信程序是用Visual Basic編寫,在接收數據時采用事件驅動法,即是當接收緩沖區(qū)有Rthreshold個數據時,引起OnComm事件。程序設計思路:首先設定各個功能字符的最后一位為動作指令,如動作指令字符“N”表示投影機開機;字符“F”表示投影關機;字符“1”“2”“3”表示選擇信號源。當PC機發(fā)送動作指令 (此程序以關機為例),單片機如接收到動作指令“F”后,則向PC機回發(fā)“F”,當PC機接收確認之后,再向單片機發(fā)送開投影機的控制指令(02H 50H 4FH 46H 03H),同時返回指令并顯示在客戶端軟件的“通信數據顯示窗”上,而單片機接受到投影機的關機指令后可逐一寫入其數組寄存器中,同時也向投影機轉發(fā)該控制指令實現投影的關機操作。其通信部分程序如下[4]:
①串口初始化
②事件處理程序
W5500作為TCP服務器模式,Socket初始化后與客戶端的連接過程如圖2所示,打開Socket后,服務器執(zhí)行LISTEN命令,處于偵聽狀態(tài),并一直等待客戶端的連接請求,當服務器偵聽到客戶端的連接請求(SYN包),接收SYN包并建立Socket連接,連接成功后,Socket狀態(tài)改為ESTABLISHED,此狀態(tài)下,客戶端監(jiān)控軟件即可實現與中控器進行設備的控制或狀態(tài)查詢等數據通信功能。當服務器或客戶端需要關閉Socket時,要先發(fā)送一個斷開連接請求(FIN數據包)給對方,然后等待,直到得到響應(FIN/ACK數據包)時,Socket狀態(tài)改為SOCK_CLOSED,并且關閉。TCP服務器程序流程圖見圖6。
圖6 TCP服務器程序流程圖Fig. 6Flow chart of TCP server program
系統主程序主要包括:單片機的初始化、對各子程序的切換和控制。首先對單片機進行初始化,設置串行口控制寄存器SCON、電源控制寄存器PCON,定時器T1初始化和開中斷等,然后判斷上位機(本地PC機、遠程監(jiān)控中心)是否有請求。有則立即產生中斷信號,跳轉到相應子程序模塊,響應完后仍進行一次鍵盤掃描子程序;若沒有請求則程序跳轉到鍵盤掃描子程序,由時鐘自動調用鍵盤掃描模塊,所檢測到的鍵值,根據鍵值譯碼子程序譯碼得到對應功能按鍵,再執(zhí)行與其對應的子程序,從而實現控制各個信號模塊的功能[7-10]。主程序流程圖見圖7。
圖7 系統主程序Fig. 7 Main program of the system
本文介紹了一種基于物聯網的多媒體中控器設計方案。它主要是以單片機STC15F2K60S2和以太網模塊W5500為通信核心,通過VB6.0軟件介紹了如何利用本地PC上位機與下位機的串口通信協議,以關閉東芝投影機為例,修改所接入設備的控制代碼,實現多樣化的設備控制管理功能;通過硬軟件架構著重分析了基于物聯網網關中TCP/IP協議棧在控制器中實現TCP服務器通信的過程。采用模塊化設計的多媒體中控系統,用戶除了能通過面板按鍵操作設備之外,還可以通過本地PC上位機、遠程監(jiān)控中心實現多媒體各子模塊設備的功能控制、環(huán)境集控、參數重設以及運行狀態(tài)監(jiān)測等功能。因此,本系統具有較好的人機交互界面,達到了操作簡易、控制方式多樣和高效管理的功能。