【摘要】借助嵌入式web技術(shù),通過B/S架構(gòu)實現(xiàn)計算機遠程控制路燈等設備已經(jīng)變成現(xiàn)實。然而這樣的實現(xiàn)往往需要將路燈的每一個控制節(jié)點作為一個web服務器,至少運行有簡單的web服務功能。通常這樣的系統(tǒng)不僅架構(gòu)復雜,而且造價成本高。本文在此基礎上提出一種基于Nut/OS的城市路燈遠程控制系統(tǒng),該系統(tǒng)將路燈控制節(jié)點和嵌入式web服務器進行分離。路燈控制節(jié)點只運行TCP/IP基本通信功能而沒有web服務功能,嵌入式web服務器通過UDP通信來管理和控制各個路燈控制節(jié)點,遠端計算機通過嵌入式web服務器管理路燈系統(tǒng)。該方案不僅實現(xiàn)遠程管理和控制路燈,同時降低了系統(tǒng)的復雜度和硬件成本。
【關鍵詞】嵌入式web;Nut/OS;B/S架構(gòu);路燈管理
1.引言
目前城市路燈遠程控制系統(tǒng)流行C/S架構(gòu)和B/S架構(gòu)模式。C/S架構(gòu)可靠,造價高,系統(tǒng)不方便維護。而B/S架構(gòu)不需要監(jiān)控計算機安裝有特定的服務器軟件和客戶端軟件,不需要專機專用,而且配置監(jiān)控計算機位置不需要固定,只需要能與監(jiān)控的路燈遠端的web服務器網(wǎng)絡相通,即可實現(xiàn)遠程監(jiān)控。因此B/S架構(gòu)越來越流行。
然而,當前的B/S架構(gòu),往往都是監(jiān)控區(qū)域里,一個路燈控制節(jié)點作為一個嵌入式web服務器處理,控制節(jié)點硬件不僅需要運行基本的網(wǎng)絡通信協(xié)議TCP/IP,還要在此基礎上運行web服務,以便遠程監(jiān)控PC機訪問嵌入式網(wǎng)頁進行相應的監(jiān)控。這樣的設計架構(gòu)方便每一個節(jié)點的編程和控制,但是推高了系統(tǒng)的硬件成本,同時整個系統(tǒng)的軟件架構(gòu)復雜。
本文在現(xiàn)有架構(gòu)基礎上,將路燈控制節(jié)點的控制功能和嵌入式web服務功能進行分離,控制節(jié)點主要運行基本的TCP/IP通信協(xié)議和路燈控制和信號采樣,從而實現(xiàn)簡化控制節(jié)點的電路。嵌入式web服務器主要運行web服務功能,對遠端的PC機提供相應的web服務。嵌入式web服務器的路燈管理和控制室數(shù)據(jù),是通過UDP協(xié)議與控制節(jié)點進行數(shù)據(jù)交換,通過UDP對控制節(jié)點進行控制操作。該方案降低了硬件資源需求,從設計可靠上,采用內(nèi)核小巧的Nut/OS作為操作系統(tǒng)。
2.Nut/OS介紹
Nut/OS是一款開源的優(yōu)秀的嵌入式系統(tǒng),適合在硬件資源不是很充裕的控制系統(tǒng)里應用。Nut/OS實時操作系統(tǒng)包括Nut/OS實時內(nèi)核和Nut/Net協(xié)議棧,除了非常少量與硬件相關的源代碼使用匯編語言編寫外,剩下的都是使用C語言編寫的,具有很高的可移植性。Nut/OS實時內(nèi)核是一個相對獨立的組件,可以單獨分拆出來當作一個小型實時操作系統(tǒng)使用,也可以很容易地移植到其他MCU上。
Nut/OS提供了I/O管理功能,不僅包含了大多數(shù)應用所需的I/O接口API函數(shù),如文件管理系統(tǒng)、串行通信驅(qū)動、網(wǎng)絡驅(qū)動、聲卡和顯示驅(qū)動等。更重要的是它和免費的TCP/IP協(xié)議棧,NUT/NET無縫集成,NUT/NET除了支持ARP、IP、ICMP、UDP和TCP等協(xié)議外,還支持DHCP、PPP、DNS和HTTP用戶協(xié)議,是8位MCU中支持協(xié)議最多的免費TCP/IP協(xié)議棧。
3.遠程控制系統(tǒng)的系統(tǒng)架構(gòu)設計
當前,很多的B/S路燈控制系統(tǒng)架構(gòu)如圖1(a)中所示,即控制節(jié)點是通過嵌入式web實現(xiàn)對路燈的監(jiān)控,然后通過交換機連接到監(jiān)控中心。該架構(gòu)增加了控制節(jié)點的硬件成本。本文的架構(gòu)體系在此基礎上,進行改進,如圖1(b)所示。
改進的架構(gòu)體系中如圖1(b)所示,將嵌入式web服務器從原來的各個控制節(jié)點抽出來單獨作為一個模塊,與遠程監(jiān)控中心的計算機機進行交互。
在硬件設計上,嵌入式web服務器資源相對充裕些,它一方面與遠程監(jiān)控中心進行web服務交互,一方面它與路燈控制節(jié)點進行UDP通信,對路燈控制節(jié)點進行相關的操作和控制。由于控制節(jié)點只要運行基本的TCP/IP通信協(xié)議,不需要運行web服務功能,大大降低的控制節(jié)點對硬件的要求,可以用低成本的芯片組來實現(xiàn)。
同時,由于路燈的采樣和控制的內(nèi)容不多,采用低速的網(wǎng)絡的芯片組足以滿足系統(tǒng)性能的要求,而且可靠,降低了系統(tǒng)的軟件、硬件復雜度。
4.遠程控制系統(tǒng)的硬件模塊設計
4.1 嵌入式web服務器設計
嵌入式web服務器的硬件設計CPU采用LM3S8962,該芯片是德州儀器(TI)公司提供基于ARM CortexTM-M3的控制器,它們?yōu)閷Τ杀居绕涿舾械那度胧轿⒖刂破鲬梅桨笌砹烁咝阅艿?2位運算能力。芯片內(nèi)部集成了256kB的單周期flash,64kB單周期訪問的SRAM,芯片的內(nèi)存和flash足夠運行Nut/OS系統(tǒng)。而芯片的價格和中端的8/16位芯片差不多。內(nèi)部集成的資源也很豐富,包括10M/100M以太網(wǎng)控制器等。
由于該芯片已經(jīng)集成了以太網(wǎng)控制器MAC層和物流層PHY,所以不需要外接其他以太網(wǎng)控制器比如CS9000、RTL8019等。只需要芯片引腳TXOP/TXON、RXIP/RXIN引腳外接網(wǎng)絡變壓器然后通過RJ45網(wǎng)口即可實現(xiàn)對外的網(wǎng)絡連接。
4.2 控制節(jié)點電路設計
控制節(jié)點由于不需要運行web服務功能,所以只需要能運行基本UDP通信功能即可。因此采用mega16芯片作為控制幾點的CPU,通過外接ENC28J60實現(xiàn)與web服務器的通信。ENC28J60與CPU通信接口SPI,而Mega16自身就集成了SPI接口,從而大大簡化控制節(jié)點網(wǎng)絡接口的設計。
5.遠程控制系統(tǒng)的軟件模塊設計
嵌入式web服務器,其主要功能是對遠端監(jiān)控PC提供web服務功能,對控制節(jié)點,要進行相應的控制。所以嵌入式web服務器運行了相應的遠程管理網(wǎng)頁,遠端通過訪問頁面實現(xiàn)對系統(tǒng)的管理。應用層運行兩個服務任務,一個任務是web服務,對外提供網(wǎng)頁輸出和獲取相應的web輸入內(nèi)容,并根據(jù)http協(xié)議獲取相應的輸入后,執(zhí)行相應的操作。當遠端請求操作控制節(jié)點時,web服務通過CGI執(zhí)行與節(jié)點UDP通信程序,對控制節(jié)點發(fā)送相關的消息實現(xiàn)對控制節(jié)點相關的硬件控制,比如路燈的打開和關閉,路燈狀態(tài)的檢測等等。
控制節(jié)點主要執(zhí)行web服務器發(fā)送來的命令,并根據(jù)相應的命令執(zhí)行后,把結(jié)果返回給web服務器。由于控制節(jié)點只運行基本的UDP通信,而且通信數(shù)據(jù)量不大,所以對Nut/OS進行裁剪,只保留基本的任務管理和TCP/IP協(xié)議棧,在這基礎上,增加一個UDP應用任務。該任務接收來自web服務器的命令,并將相關的命令翻譯成相關的動作并執(zhí)行。主要執(zhí)行的web服務器發(fā)來的開燈、關燈、電流/電壓采樣。并將執(zhí)行的結(jié)果通過UDP方式傳給web服務器。
整個路燈遠程控制系統(tǒng)軟件模塊架構(gòu)如圖2所示。
遠端計算機(或PC機)通過http協(xié)議訪問嵌入式web服務器,執(zhí)行相應的web操作后,web服務器將操作轉(zhuǎn)換為相應的命令,并通過調(diào)用CGI接口來啟動UDP服務器程序,UDP服務器程序?qū)⑾嚓P的操作命令通過UDP的方式發(fā)送給控制節(jié)點。控制節(jié)點的UDP應用程序接收到相關的UDP報文后,將其翻譯為具體的操作命令,操作命令通過調(diào)用相應的I/O控制函數(shù),實現(xiàn)對路燈的開、關控制以及相關的環(huán)境數(shù)據(jù)的采集,并將執(zhí)行的結(jié)果通過UDP方式發(fā)回web服務器。Web服務器收到相關的反饋結(jié)果后,對web頁面的相關控制條目進行響應和修改,然后把修改的結(jié)果傳回給遠端的監(jiān)控PC機。
6.結(jié)束語
本文介紹了基于Nut/OS的遠程路燈控制系統(tǒng)B/S軟件架構(gòu)和硬件實現(xiàn)方法,該方案在原有的B/S控制系統(tǒng)架構(gòu)上進行改進,將嵌入式web服務器和控制節(jié)點控制電路分離,簡化了系統(tǒng)架構(gòu),尤其是簡化了控制節(jié)點終端的軟件體系,同時降低了設備的硬件成本。
當然,該方案降低了硬件性能和實現(xiàn)成本,但增加了一定的軟件設計難度,主要的難點在Nut/OS的裁剪后運行于控制節(jié)點的處理上。總體上,該方案同時降低了整個系統(tǒng)的軟件復雜度和硬件復雜度,仍然利大于弊。
參考文獻
[1]朱小平,孫軍,方彥軍.基于NUT/OS的DTU模塊設計與開發(fā)[J].通信技術(shù),2008(11):89-91.
[2]章君達,陸覺民,向群.城市道路照明系統(tǒng)節(jié)能控制方法的實現(xiàn)[J].能源工程,2011(4):55-56.
[3]Luminary Micro.LM3S8962微控制器數(shù)據(jù)手冊[M].2008:421-463.
作者簡介:潘承毅(1981—),男,貴州劍河人,助教,主要研究方向:計算機應用和嵌入式系統(tǒng)。