胡祖輝,施 佺2,吳國慶
(1.南通大學 信息科學技術學院,江蘇 南通 226019;2.南通大學 交通與土木工程學院,江蘇 南通 226019)
近年來,隨著互聯網信息技術和嵌入式技術的發展,基于Internet的遠程監控系統成為監控領域發展的新趨勢[1]。基于Internet的遠程監控系統因具有松耦合性、互操作性好、開發便利、異構資源可共享等優點而得到了廣泛應用[2]。國內外基于Internet的遠程監控系統已經有了很多解決方案,如段萍等[3]采用DSP和MQTT協議實現了大棚溫濕度遠程監控系統,Sahu等[4]設計了基于嵌入式系統的數字溫室監控系統,郭穩濤等[5]采用ARM和嵌入式Web技術設計了智能家居遠程監控系統,鄧昀等[6]采用ARM和ZigBee/Wi-Fi無線網絡實現了基于物聯網的智能家居遠程無線監控系統,張文廣等[7]基于嵌入式技術設計了導彈測試設備遠程監控數據采集設備,馮建文等[8]基于ARM和TCP協議實現了遠程實驗系統,鄭宇平[9]基于物聯網和嵌入式技術設計了船舶遠程監控系統。本文提出了一種基于嵌入式以太網的遠程監控系統,硬件上采用MSP430單片機作為微處理器,CS8900A作為以太網控制器,軟件上通過在MSP430單片機的Flash存儲器中移植簡化的TCP/IP協議棧和存儲嵌入式網頁來實現嵌入式Web服務器,并基于嵌入式Web服務器實現對環境和設備的遠程監控。與傳統采用DSP和ARM作為處理器的嵌入式遠程監控系統相比,本文提出的系統方案具有低成本、低功耗、通用性強、穩定性高等特點。
基于嵌入式以太網的遠程監控系統由嵌入式監控服務器、監測模塊和控制模塊3個部分組成。整個系統以嵌入式監控服務器為核心,通過在嵌入式監控服務器上實現以太網功能來實現系統的遠程監測和控制。將嵌入式Web頁面存儲于微處理器中,通過軟硬件協同構成嵌入式遠程監控服務器。用戶通過Web瀏覽器訪問嵌入式監控服務器,可以實時查看監測模塊采集的傳感器數據信息,同時可以進行開關控制操作,通過控制模塊實現對設備的遠程控制。系統結構如圖1所示。

圖1 系統結構圖
嵌入式監控服務器是一個集成了嵌入式以太網的面向遠程監控服務的嵌入式系統。嵌入式技術就是將專用的計算機系統作為一個信息處理部件嵌入到應用系統中的一種技術,它將軟件固化集成到硬件系統中,使軟硬件一體化[10]。嵌入式以太網是將TCP/IP協議嵌入硬件系統中以實現以太網功能。通過嵌入式以太網,系統可以直接連入Internet,用戶可以通過網絡訪問嵌入式監控服務器。用戶可以通過PC機或手機等終端的Web瀏覽器對系統進行遠程監測和控制,從而實現基于Internet的遠程監控。
監測模塊包括溫度傳感器、濕度傳感器、煙霧傳感器、氣體傳感器等各種傳感器,負責對現場環境和設備等各種數據的采集和處理。傳感器的種類和數量可以根據實際應用的需要增加或減少,只需在系統軟硬件上進行相應地調整即可。監測模塊采集到的數據信息可以通過嵌入式監控服務器和Internet網絡提供給用戶遠程訪問和查看。
控制模塊由多路光電耦合器和繼電器組成的控制電路組成。通過光電耦合器和繼電器來實現弱電控制強電,輸入端與輸出端完全實現了電氣隔離,具有響應速度快、抗干擾能力強、穩定性高等優點。用戶通過訪問嵌入式監控服務器可以遠程發出控制信號,由控制模塊作出相應的開關響應,實現對系統的遠程控制。
系統硬件主要采用MSP430單片機和CS8900A兩個核心控制芯片來進行設計,本設計采用的MSP430單片機的具體型號為F系列的MSP430F1611。硬件原理圖如圖2所示。

圖2 硬件原理圖
從圖2可以看出,MSP430F1611單片機與CS8900A之間通過8位數據線D[0]~D[7]、4位地址線A[0]~A[3]、讀寫控制線IOR和IOW相連。MSP430F1611單片機提供了監測模塊接口、控制模塊接口和JTAG接口。監測模塊接口主要是連接各種傳感器,控制模塊接口可以連接多路光電耦合器和繼電器。JTAG接口用于程序下載和調試。CS8900A以太網控制器提供RJ45網絡接口,CS8900A與RJ45之間通過網絡變壓器E2023相連。MSP430F1611單片機有兩個晶振:一個為8 MHz的高速晶振,另一個為32.768 kHz的低速晶振。CS8900A以太網控制器有一個20 MHz的晶振。
本設計采用MSP430F1611單片機作為系統的主控制芯片,用于軟件程序的存儲和運行。MSP430F1611單片機是TI公司生產的一種16位的430系列單片機。該芯片具有以下特性[11]:
1)超低功耗。工作電壓為1.8~3.6 V,具有5 種低功耗模式,即使在活動模式下也可以根據工作復雜度對時鐘頻率進行調整,實現功耗最小化,待機模式功耗低至1.1 μA。不工作時自動保持低功耗狀態,工作時則利用中斷來喚醒,喚醒時間不超過6 μs。
2)獨特的時鐘系統。由高速晶振和低速晶振等元件構成的多時鐘系統可以滿足不同的應用設計需要,低頻時鐘可以滿足低功耗的要求,高頻系統可以滿足實時響應的要求。
3)數據處理能力強。采用16位總線,尋址范圍可達64 K。芯片內部集成了硬件乘累加器, 一條指令只需一個時鐘周期就可以完成執行。
4)豐富的片上資源。具有48 KB的片內FLASH存儲器,10 KB的RAM存儲器,6個8位I/O端口,2個16位定時器,2個串行通信USART接口、12位A/D轉換器和D/A轉換器等。
5)應用開發方便。支持通過JTAG接口下載和調試軟件程序,不需要另外的仿真工具,開發調試方便,開發成本較低。
本設計采用CS8900A作為以太網控制器芯片,主要負責以太網數據幀的發送和接收,具體包括網絡傳輸數據幀頭的產生和檢測、沖突檢測、循環冗余檢查校驗碼的生成和驗證等。CS8900A是Cirrus Logic公司生產的一款適用于嵌入式應用的16位以太網控制器。該芯片具有以下特性[12]:
1)以太網功能完善。提供單芯片IEEE 802.3以太網解決方案,完全兼容IEEE 802.3以太網標準。
2)高度集成,包含片上RAM、10Base-T傳輸和接收濾波器,以及一個帶24 mA驅動器的直接ISA總線接口。
3)工作效率高。獨特的PacketPage架構可自動適應不斷變化的網絡流量模式以及可用的系統資源,可以大大提高工作效率。支持在沖突、填充和循環冗余檢查時自動進行重新傳輸。
4)支持靈活配置,可通過內部寄存器的設置來適應不同的應用需要,其工作模式、數據傳輸模式等都可以根據應用需要進行設置。
5)適合與MSP430單片機配合使用。可采用3.3 V電壓供電,與MSP430單片機的3.3 V供電電壓相匹配。且CS8900A工作于8位I/O模式時,數據線、地址線和讀寫控制線均可直接與單片機相連。
CS8900A以太網控制器通過網絡接口連接網絡,網絡接口由E2023和RJ45組成。E2023是一種網絡變壓器,RJ45是通用的標準8位模塊化網絡接口。網絡變壓器的作用是將網絡中的信號進行轉換,同時對外部線路與以太網控制器之間進行電磁隔離,防止元器件之間產生干擾以及因帶電插拔而燒壞元器件。當發送數據時,以太網控制器通過E2023網絡變壓器將單片機要發送的數據進行信號轉換后再發送到網絡上,信號轉換的變壓比為1:2.5。接收數據時,由網絡傳來的數據也要經過網絡變壓器進行信號轉換,此時信號轉換的變壓比為1:1。網絡接口電路如圖3所示。

圖3 網絡接口電路原理圖
由圖3可見,E2023網絡變壓器的6、8引腳分別連接發送線TXD-、TXD+, 1、3引腳分別連接接收線RXD-、RXD+,9、11、14、16分別連接RJ45網絡接口的1、2、3、6引腳,2、7、10、15分別接地線GND和GNDA。
軟件是在硬件電路的基礎上進行設計的,硬件電路需要軟件程序的驅動才能正常工作。軟件采用C語言進行編程,主要包括以下程序:單片機控制程序、以太網控制器驅動程序、TCP/IP協議棧和HTTP應用服務程序。
單片機控制程序主要完成MSP430F1611單片機的時鐘系統的初始化配置、I/O端口的初始化配置、A/D轉換器配置、中斷服務、以太網服務調用等。MSP430F1611單片機時鐘系統的初始化配置主要進行晶振的配置。I/O端口的初始化配置則主要涉及I/O端口的功能和輸入輸出方向的配置。MSP430F1611單片機的I/O端口的功能和輸入輸出方向可以在驅動程序中進行定義。I/O端口的功能可以通過P*SEL進行定義,0表示第一功能,1表示第二功能,默認為0,即普通輸入輸出功能。I/O端口的輸入輸出方向可以通過P*DIR進行定義,0表示輸入,1表示輸出。單片機控制程序流程如圖4所示。

圖4 單片機控制程序流程圖
從圖4可以看出,單片機控制程序首先進行時鐘系統、I/O端口、TCP/IP服務、中斷服務的配置,然后循環提供嵌入式網絡服務。在程序整個執行過程中,會根據網絡服務需要調用以太網控制器驅動程序、TCP/IP協議棧程序和HTTP應用服務程序。
以太網控制器驅動程序主要對CS8900A以太網控制器芯片進行初始化配置,提供網絡數據幀的發送和接收處理功能。以太網控制器驅動程序流程圖如圖5所示。

圖5 以太網控制器驅動程序流程圖
由圖5可以看出,首先調用Init8900 ()函數進行初始化,然后進行以太網控制器內部寄存器的讀寫操作,以復位以太網控制器,而后開始進行網絡數據傳輸。以太網控制器驅動程序必須配合TCP/IP協議棧程序才能完成網絡數據傳輸功能。
TCP/IP協議棧的移植是實現嵌入式以太網的關鍵。由于受到微處理器的運算速度和存儲容量的限制,嵌入式以太網不能實現完整的TCP/IP協議,而需要對TCP/IP協議進行簡化。本設計中TCP/IP協議棧每個網絡層次實現的協議子集如表1所示。

表1 TCP/IP協議棧實現的協議子集
TCP/IP協議棧的程序流程圖如圖6所示。
由圖6可見,首先要調用TCPLowLevelInit()函數進行初始化,此時會調用以太網控制器驅動程序以保證CS8900A

圖6 TCP/IP協議棧程序流程圖
能夠正常工作。然后判斷是否需要調用TCPPassiveOpen()函數偵聽連接,否則調用函數DoNetworkStuff()執行網絡通信和TCP/IP事件的進程。最后打開連接以接收或者發送數據,進行網絡服務,直到接收到終止服務請求。
HTTP應用服務程序的流程圖如圖7所示。

圖7 主程序流程圖
首先進行系統初始化,然后接收網絡數據幀,判斷是否為ICMP(Internet Control Message Protocol,Internet控制報文協議)數據包,如果是則進行ICMP協議處理,否則為用戶數據。ICMP數據包是指網絡通不通、主機是否可達、路由是否可用等網絡本身的控制消息。接下來驗證是否為用戶網頁請求,如果是網頁請求則驗證用戶登錄信息。驗證成功后通過嵌入式Web網頁顯示傳感器數據信息,同時接收和響應用戶的開關控制信號,實現系統的遠程監控功能。
系統實驗測試步驟如下:
1)在軟件程序中設置系統IP地址為192.168.1.111,子網掩碼為255.255.255.0;
2)開啟系統電源,連接MSP430的JTAG仿真器;
3)編譯軟件程序,將程序通過JTAG仿真器下載到單片機中;
4)網絡接口連接網線,將系統連接入網絡,通過Web瀏覽器訪問嵌入式網頁,訪問網址為:http://192.168.1.111。
使用Ping命令在局域網和互聯網情況下分別測試ICMP協議請求的時間性能,Ping命令連續測試100次的結果如表2所示。
由表2可知,在局域網內進行ICMP協議請求時所需的時間維持在2.64ms左右,這是由硬件系統的處理速度和局域網范圍大小及連接情況所共同決定的。系統硬件的處理速度主要取決于MSP430F1611單片機的運行速度。在本系統中,系統能夠以每秒八百萬條指令的速度進行數據處理,完全能夠滿足本系統的設計需求。通過互聯網以域名形式進行ICMP協議請求時所需的時間大約維持在47.27ms左右,在該情況下進行ICMP協議請求所需時間較多,主要是由于在實際互聯網環境中網絡連接需經過多級網關,實際環境的復雜性增加了ICMP協議請求的所需時間。

表2 Ping命令測試結果
使用HTTPWatch數據包分析工具可以測試用戶通過網絡訪問網頁時的連通時間性能,連續進行100次測試的結果如表3所示。

表3 HTTPWatch數據包分析工具測試結果
由表3中相關數據可知,客戶端進行一次網頁連接的時間主要包括連接請求時間、發送時間、等待時間、接收時間。在實際測試中網頁連接的時間主要消耗在接收時間上,100次的平均接收時間大約為1.038 8秒,總的網頁連接的平均時間約為1.315 5秒。由于系統無需傳送大量網絡數據和滿足苛刻的實時性要求,因此上述的測試結果表明系統能夠滿足設計需求。
基于嵌入式以太網的遠程監控系統采用MSP430單片機作為主控制器,通過進行簡化的TCP/IP協議棧移植實現了嵌入式以太網。用戶通過網絡訪問嵌入式網頁可以隨時查看和遠程管理系統,從而實現對系統的遠程監控。實驗測試結果表明系統能夠滿足設計要求。系統具有低成本、低功耗、通用性強等特點,性價比較高,具有較好的實際應用價值。