胡祖輝,施 佺2,吳國慶
(1.南通大學(xué) 信息科學(xué)技術(shù)學(xué)院,江蘇 南通 226019;2.南通大學(xué) 交通與土木工程學(xué)院,江蘇 南通 226019)
近年來,隨著互聯(lián)網(wǎng)信息技術(shù)和嵌入式技術(shù)的發(fā)展,基于Internet的遠程監(jiān)控系統(tǒng)成為監(jiān)控領(lǐng)域發(fā)展的新趨勢[1]?;贗nternet的遠程監(jiān)控系統(tǒng)因具有松耦合性、互操作性好、開發(fā)便利、異構(gòu)資源可共享等優(yōu)點而得到了廣泛應(yīng)用[2]。國內(nèi)外基于Internet的遠程監(jiān)控系統(tǒng)已經(jīng)有了很多解決方案,如段萍等[3]采用DSP和MQTT協(xié)議實現(xiàn)了大棚溫濕度遠程監(jiān)控系統(tǒng),Sahu等[4]設(shè)計了基于嵌入式系統(tǒng)的數(shù)字溫室監(jiān)控系統(tǒng),郭穩(wěn)濤等[5]采用ARM和嵌入式Web技術(shù)設(shè)計了智能家居遠程監(jiān)控系統(tǒng),鄧昀等[6]采用ARM和ZigBee/Wi-Fi無線網(wǎng)絡(luò)實現(xiàn)了基于物聯(lián)網(wǎng)的智能家居遠程無線監(jiān)控系統(tǒng),張文廣等[7]基于嵌入式技術(shù)設(shè)計了導(dǎo)彈測試設(shè)備遠程監(jiān)控數(shù)據(jù)采集設(shè)備,馮建文等[8]基于ARM和TCP協(xié)議實現(xiàn)了遠程實驗系統(tǒng),鄭宇平[9]基于物聯(lián)網(wǎng)和嵌入式技術(shù)設(shè)計了船舶遠程監(jiān)控系統(tǒng)。本文提出了一種基于嵌入式以太網(wǎng)的遠程監(jiān)控系統(tǒng),硬件上采用MSP430單片機作為微處理器,CS8900A作為以太網(wǎng)控制器,軟件上通過在MSP430單片機的Flash存儲器中移植簡化的TCP/IP協(xié)議棧和存儲嵌入式網(wǎng)頁來實現(xiàn)嵌入式Web服務(wù)器,并基于嵌入式Web服務(wù)器實現(xiàn)對環(huán)境和設(shè)備的遠程監(jiān)控。與傳統(tǒng)采用DSP和ARM作為處理器的嵌入式遠程監(jiān)控系統(tǒng)相比,本文提出的系統(tǒng)方案具有低成本、低功耗、通用性強、穩(wěn)定性高等特點。
基于嵌入式以太網(wǎng)的遠程監(jiān)控系統(tǒng)由嵌入式監(jiān)控服務(wù)器、監(jiān)測模塊和控制模塊3個部分組成。整個系統(tǒng)以嵌入式監(jiān)控服務(wù)器為核心,通過在嵌入式監(jiān)控服務(wù)器上實現(xiàn)以太網(wǎng)功能來實現(xiàn)系統(tǒng)的遠程監(jiān)測和控制。將嵌入式Web頁面存儲于微處理器中,通過軟硬件協(xié)同構(gòu)成嵌入式遠程監(jiān)控服務(wù)器。用戶通過Web瀏覽器訪問嵌入式監(jiān)控服務(wù)器,可以實時查看監(jiān)測模塊采集的傳感器數(shù)據(jù)信息,同時可以進行開關(guān)控制操作,通過控制模塊實現(xiàn)對設(shè)備的遠程控制。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
嵌入式監(jiān)控服務(wù)器是一個集成了嵌入式以太網(wǎng)的面向遠程監(jiān)控服務(wù)的嵌入式系統(tǒng)。嵌入式技術(shù)就是將專用的計算機系統(tǒng)作為一個信息處理部件嵌入到應(yīng)用系統(tǒng)中的一種技術(shù),它將軟件固化集成到硬件系統(tǒng)中,使軟硬件一體化[10]。嵌入式以太網(wǎng)是將TCP/IP協(xié)議嵌入硬件系統(tǒng)中以實現(xiàn)以太網(wǎng)功能。通過嵌入式以太網(wǎng),系統(tǒng)可以直接連入Internet,用戶可以通過網(wǎng)絡(luò)訪問嵌入式監(jiān)控服務(wù)器。用戶可以通過PC機或手機等終端的Web瀏覽器對系統(tǒng)進行遠程監(jiān)測和控制,從而實現(xiàn)基于Internet的遠程監(jiān)控。
監(jiān)測模塊包括溫度傳感器、濕度傳感器、煙霧傳感器、氣體傳感器等各種傳感器,負責(zé)對現(xiàn)場環(huán)境和設(shè)備等各種數(shù)據(jù)的采集和處理。傳感器的種類和數(shù)量可以根據(jù)實際應(yīng)用的需要增加或減少,只需在系統(tǒng)軟硬件上進行相應(yīng)地調(diào)整即可。監(jiān)測模塊采集到的數(shù)據(jù)信息可以通過嵌入式監(jiān)控服務(wù)器和Internet網(wǎng)絡(luò)提供給用戶遠程訪問和查看。
控制模塊由多路光電耦合器和繼電器組成的控制電路組成。通過光電耦合器和繼電器來實現(xiàn)弱電控制強電,輸入端與輸出端完全實現(xiàn)了電氣隔離,具有響應(yīng)速度快、抗干擾能力強、穩(wěn)定性高等優(yōu)點。用戶通過訪問嵌入式監(jiān)控服務(wù)器可以遠程發(fā)出控制信號,由控制模塊作出相應(yīng)的開關(guān)響應(yīng),實現(xiàn)對系統(tǒng)的遠程控制。
系統(tǒng)硬件主要采用MSP430單片機和CS8900A兩個核心控制芯片來進行設(shè)計,本設(shè)計采用的MSP430單片機的具體型號為F系列的MSP430F1611。硬件原理圖如圖2所示。
圖2 硬件原理圖
從圖2可以看出,MSP430F1611單片機與CS8900A之間通過8位數(shù)據(jù)線D[0]~D[7]、4位地址線A[0]~A[3]、讀寫控制線IOR和IOW相連。MSP430F1611單片機提供了監(jiān)測模塊接口、控制模塊接口和JTAG接口。監(jiān)測模塊接口主要是連接各種傳感器,控制模塊接口可以連接多路光電耦合器和繼電器。JTAG接口用于程序下載和調(diào)試。CS8900A以太網(wǎng)控制器提供RJ45網(wǎng)絡(luò)接口,CS8900A與RJ45之間通過網(wǎng)絡(luò)變壓器E2023相連。MSP430F1611單片機有兩個晶振:一個為8 MHz的高速晶振,另一個為32.768 kHz的低速晶振。CS8900A以太網(wǎng)控制器有一個20 MHz的晶振。
本設(shè)計采用MSP430F1611單片機作為系統(tǒng)的主控制芯片,用于軟件程序的存儲和運行。MSP430F1611單片機是TI公司生產(chǎn)的一種16位的430系列單片機。該芯片具有以下特性[11]:
1)超低功耗。工作電壓為1.8~3.6 V,具有5 種低功耗模式,即使在活動模式下也可以根據(jù)工作復(fù)雜度對時鐘頻率進行調(diào)整,實現(xiàn)功耗最小化,待機模式功耗低至1.1 μA。不工作時自動保持低功耗狀態(tài),工作時則利用中斷來喚醒,喚醒時間不超過6 μs。
2)獨特的時鐘系統(tǒng)。由高速晶振和低速晶振等元件構(gòu)成的多時鐘系統(tǒng)可以滿足不同的應(yīng)用設(shè)計需要,低頻時鐘可以滿足低功耗的要求,高頻系統(tǒng)可以滿足實時響應(yīng)的要求。
3)數(shù)據(jù)處理能力強。采用16位總線,尋址范圍可達64 K。芯片內(nèi)部集成了硬件乘累加器, 一條指令只需一個時鐘周期就可以完成執(zhí)行。
4)豐富的片上資源。具有48 KB的片內(nèi)FLASH存儲器,10 KB的RAM存儲器,6個8位I/O端口,2個16位定時器,2個串行通信USART接口、12位A/D轉(zhuǎn)換器和D/A轉(zhuǎn)換器等。
5)應(yīng)用開發(fā)方便。支持通過JTAG接口下載和調(diào)試軟件程序,不需要另外的仿真工具,開發(fā)調(diào)試方便,開發(fā)成本較低。
本設(shè)計采用CS8900A作為以太網(wǎng)控制器芯片,主要負責(zé)以太網(wǎng)數(shù)據(jù)幀的發(fā)送和接收,具體包括網(wǎng)絡(luò)傳輸數(shù)據(jù)幀頭的產(chǎn)生和檢測、沖突檢測、循環(huán)冗余檢查校驗碼的生成和驗證等。CS8900A是Cirrus Logic公司生產(chǎn)的一款適用于嵌入式應(yīng)用的16位以太網(wǎng)控制器。該芯片具有以下特性[12]:
1)以太網(wǎng)功能完善。提供單芯片IEEE 802.3以太網(wǎng)解決方案,完全兼容IEEE 802.3以太網(wǎng)標準。
2)高度集成,包含片上RAM、10Base-T傳輸和接收濾波器,以及一個帶24 mA驅(qū)動器的直接ISA總線接口。
3)工作效率高。獨特的PacketPage架構(gòu)可自動適應(yīng)不斷變化的網(wǎng)絡(luò)流量模式以及可用的系統(tǒng)資源,可以大大提高工作效率。支持在沖突、填充和循環(huán)冗余檢查時自動進行重新傳輸。
4)支持靈活配置,可通過內(nèi)部寄存器的設(shè)置來適應(yīng)不同的應(yīng)用需要,其工作模式、數(shù)據(jù)傳輸模式等都可以根據(jù)應(yīng)用需要進行設(shè)置。
5)適合與MSP430單片機配合使用??刹捎?.3 V電壓供電,與MSP430單片機的3.3 V供電電壓相匹配。且CS8900A工作于8位I/O模式時,數(shù)據(jù)線、地址線和讀寫控制線均可直接與單片機相連。
CS8900A以太網(wǎng)控制器通過網(wǎng)絡(luò)接口連接網(wǎng)絡(luò),網(wǎng)絡(luò)接口由E2023和RJ45組成。E2023是一種網(wǎng)絡(luò)變壓器,RJ45是通用的標準8位模塊化網(wǎng)絡(luò)接口。網(wǎng)絡(luò)變壓器的作用是將網(wǎng)絡(luò)中的信號進行轉(zhuǎn)換,同時對外部線路與以太網(wǎng)控制器之間進行電磁隔離,防止元器件之間產(chǎn)生干擾以及因帶電插拔而燒壞元器件。當發(fā)送數(shù)據(jù)時,以太網(wǎng)控制器通過E2023網(wǎng)絡(luò)變壓器將單片機要發(fā)送的數(shù)據(jù)進行信號轉(zhuǎn)換后再發(fā)送到網(wǎng)絡(luò)上,信號轉(zhuǎn)換的變壓比為1:2.5。接收數(shù)據(jù)時,由網(wǎng)絡(luò)傳來的數(shù)據(jù)也要經(jīng)過網(wǎng)絡(luò)變壓器進行信號轉(zhuǎn)換,此時信號轉(zhuǎn)換的變壓比為1:1。網(wǎng)絡(luò)接口電路如圖3所示。
圖3 網(wǎng)絡(luò)接口電路原理圖
由圖3可見,E2023網(wǎng)絡(luò)變壓器的6、8引腳分別連接發(fā)送線TXD-、TXD+, 1、3引腳分別連接接收線RXD-、RXD+,9、11、14、16分別連接RJ45網(wǎng)絡(luò)接口的1、2、3、6引腳,2、7、10、15分別接地線GND和GNDA。
軟件是在硬件電路的基礎(chǔ)上進行設(shè)計的,硬件電路需要軟件程序的驅(qū)動才能正常工作。軟件采用C語言進行編程,主要包括以下程序:單片機控制程序、以太網(wǎng)控制器驅(qū)動程序、TCP/IP協(xié)議棧和HTTP應(yīng)用服務(wù)程序。
單片機控制程序主要完成MSP430F1611單片機的時鐘系統(tǒng)的初始化配置、I/O端口的初始化配置、A/D轉(zhuǎn)換器配置、中斷服務(wù)、以太網(wǎng)服務(wù)調(diào)用等。MSP430F1611單片機時鐘系統(tǒng)的初始化配置主要進行晶振的配置。I/O端口的初始化配置則主要涉及I/O端口的功能和輸入輸出方向的配置。MSP430F1611單片機的I/O端口的功能和輸入輸出方向可以在驅(qū)動程序中進行定義。I/O端口的功能可以通過P*SEL進行定義,0表示第一功能,1表示第二功能,默認為0,即普通輸入輸出功能。I/O端口的輸入輸出方向可以通過P*DIR進行定義,0表示輸入,1表示輸出。單片機控制程序流程如圖4所示。
圖4 單片機控制程序流程圖
從圖4可以看出,單片機控制程序首先進行時鐘系統(tǒng)、I/O端口、TCP/IP服務(wù)、中斷服務(wù)的配置,然后循環(huán)提供嵌入式網(wǎng)絡(luò)服務(wù)。在程序整個執(zhí)行過程中,會根據(jù)網(wǎng)絡(luò)服務(wù)需要調(diào)用以太網(wǎng)控制器驅(qū)動程序、TCP/IP協(xié)議棧程序和HTTP應(yīng)用服務(wù)程序。
以太網(wǎng)控制器驅(qū)動程序主要對CS8900A以太網(wǎng)控制器芯片進行初始化配置,提供網(wǎng)絡(luò)數(shù)據(jù)幀的發(fā)送和接收處理功能。以太網(wǎng)控制器驅(qū)動程序流程圖如圖5所示。
圖5 以太網(wǎng)控制器驅(qū)動程序流程圖
由圖5可以看出,首先調(diào)用Init8900 ()函數(shù)進行初始化,然后進行以太網(wǎng)控制器內(nèi)部寄存器的讀寫操作,以復(fù)位以太網(wǎng)控制器,而后開始進行網(wǎng)絡(luò)數(shù)據(jù)傳輸。以太網(wǎng)控制器驅(qū)動程序必須配合TCP/IP協(xié)議棧程序才能完成網(wǎng)絡(luò)數(shù)據(jù)傳輸功能。
TCP/IP協(xié)議棧的移植是實現(xiàn)嵌入式以太網(wǎng)的關(guān)鍵。由于受到微處理器的運算速度和存儲容量的限制,嵌入式以太網(wǎng)不能實現(xiàn)完整的TCP/IP協(xié)議,而需要對TCP/IP協(xié)議進行簡化。本設(shè)計中TCP/IP協(xié)議棧每個網(wǎng)絡(luò)層次實現(xiàn)的協(xié)議子集如表1所示。
表1 TCP/IP協(xié)議棧實現(xiàn)的協(xié)議子集
TCP/IP協(xié)議棧的程序流程圖如圖6所示。
由圖6可見,首先要調(diào)用TCPLowLevelInit()函數(shù)進行初始化,此時會調(diào)用以太網(wǎng)控制器驅(qū)動程序以保證CS8900A
圖6 TCP/IP協(xié)議棧程序流程圖
能夠正常工作。然后判斷是否需要調(diào)用TCPPassiveOpen()函數(shù)偵聽連接,否則調(diào)用函數(shù)DoNetworkStuff()執(zhí)行網(wǎng)絡(luò)通信和TCP/IP事件的進程。最后打開連接以接收或者發(fā)送數(shù)據(jù),進行網(wǎng)絡(luò)服務(wù),直到接收到終止服務(wù)請求。
HTTP應(yīng)用服務(wù)程序的流程圖如圖7所示。
圖7 主程序流程圖
首先進行系統(tǒng)初始化,然后接收網(wǎng)絡(luò)數(shù)據(jù)幀,判斷是否為ICMP(Internet Control Message Protocol,Internet控制報文協(xié)議)數(shù)據(jù)包,如果是則進行ICMP協(xié)議處理,否則為用戶數(shù)據(jù)。ICMP數(shù)據(jù)包是指網(wǎng)絡(luò)通不通、主機是否可達、路由是否可用等網(wǎng)絡(luò)本身的控制消息。接下來驗證是否為用戶網(wǎng)頁請求,如果是網(wǎng)頁請求則驗證用戶登錄信息。驗證成功后通過嵌入式Web網(wǎng)頁顯示傳感器數(shù)據(jù)信息,同時接收和響應(yīng)用戶的開關(guān)控制信號,實現(xiàn)系統(tǒng)的遠程監(jiān)控功能。
系統(tǒng)實驗測試步驟如下:
1)在軟件程序中設(shè)置系統(tǒng)IP地址為192.168.1.111,子網(wǎng)掩碼為255.255.255.0;
2)開啟系統(tǒng)電源,連接MSP430的JTAG仿真器;
3)編譯軟件程序,將程序通過JTAG仿真器下載到單片機中;
4)網(wǎng)絡(luò)接口連接網(wǎng)線,將系統(tǒng)連接入網(wǎng)絡(luò),通過Web瀏覽器訪問嵌入式網(wǎng)頁,訪問網(wǎng)址為:http://192.168.1.111。
使用Ping命令在局域網(wǎng)和互聯(lián)網(wǎng)情況下分別測試ICMP協(xié)議請求的時間性能,Ping命令連續(xù)測試100次的結(jié)果如表2所示。
由表2可知,在局域網(wǎng)內(nèi)進行ICMP協(xié)議請求時所需的時間維持在2.64ms左右,這是由硬件系統(tǒng)的處理速度和局域網(wǎng)范圍大小及連接情況所共同決定的。系統(tǒng)硬件的處理速度主要取決于MSP430F1611單片機的運行速度。在本系統(tǒng)中,系統(tǒng)能夠以每秒八百萬條指令的速度進行數(shù)據(jù)處理,完全能夠滿足本系統(tǒng)的設(shè)計需求。通過互聯(lián)網(wǎng)以域名形式進行ICMP協(xié)議請求時所需的時間大約維持在47.27ms左右,在該情況下進行ICMP協(xié)議請求所需時間較多,主要是由于在實際互聯(lián)網(wǎng)環(huán)境中網(wǎng)絡(luò)連接需經(jīng)過多級網(wǎng)關(guān),實際環(huán)境的復(fù)雜性增加了ICMP協(xié)議請求的所需時間。
表2 Ping命令測試結(jié)果
使用HTTPWatch數(shù)據(jù)包分析工具可以測試用戶通過網(wǎng)絡(luò)訪問網(wǎng)頁時的連通時間性能,連續(xù)進行100次測試的結(jié)果如表3所示。
表3 HTTPWatch數(shù)據(jù)包分析工具測試結(jié)果
由表3中相關(guān)數(shù)據(jù)可知,客戶端進行一次網(wǎng)頁連接的時間主要包括連接請求時間、發(fā)送時間、等待時間、接收時間。在實際測試中網(wǎng)頁連接的時間主要消耗在接收時間上,100次的平均接收時間大約為1.038 8秒,總的網(wǎng)頁連接的平均時間約為1.315 5秒。由于系統(tǒng)無需傳送大量網(wǎng)絡(luò)數(shù)據(jù)和滿足苛刻的實時性要求,因此上述的測試結(jié)果表明系統(tǒng)能夠滿足設(shè)計需求。
基于嵌入式以太網(wǎng)的遠程監(jiān)控系統(tǒng)采用MSP430單片機作為主控制器,通過進行簡化的TCP/IP協(xié)議棧移植實現(xiàn)了嵌入式以太網(wǎng)。用戶通過網(wǎng)絡(luò)訪問嵌入式網(wǎng)頁可以隨時查看和遠程管理系統(tǒng),從而實現(xiàn)對系統(tǒng)的遠程監(jiān)控。實驗測試結(jié)果表明系統(tǒng)能夠滿足設(shè)計要求。系統(tǒng)具有低成本、低功耗、通用性強等特點,性價比較高,具有較好的實際應(yīng)用價值。