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