楊濛濛,林鈺坤,祁才君
(浙江大學(xué)電氣工程學(xué)院,杭州310027)
工業(yè)控制設(shè)備常用的外部通信接口是UART(即RS232或RS485)、CAN總線、USB、以太網(wǎng)以及簡單的GPIO控制口。每個通信口都需要相應(yīng)的協(xié)議支持,針對每種協(xié)議必須在控制平臺上開發(fā)相應(yīng)的控制應(yīng)用軟件。
控制平臺由硬件和操作系統(tǒng)兩部分組成。控制平臺的硬件平臺通常是PC、平板電腦、各種智能手機等等,而控制平臺的操作系統(tǒng)可能是WINDOWS XP、WIN7、UNIX、LIUNX、ANDROID 等等。由于控制軟件的開發(fā)與硬件平臺和它的操作系統(tǒng)密切相關(guān),從而需要針對不同的硬件平臺和操作系統(tǒng)開發(fā)不同版本,軟件開發(fā)與維護的工作量很大。同時,用戶在使用前也首先需要安裝控制軟件,這些都帶來了很多不便。
如果設(shè)計工業(yè)控制設(shè)備時采用以太網(wǎng)通信口,同時在設(shè)備內(nèi)部嵌入WEB服務(wù),那么通過訪問工業(yè)設(shè)備的IP地址,就可以直接對設(shè)備進行控制與觀測。開發(fā)人員無需為每個控制平臺開發(fā)一套控制軟件,用戶也不需要安裝控制軟件。這樣就會為工業(yè)控制設(shè)備的設(shè)計和使用帶來很大的便利,也提高了工業(yè)控制的效率。
設(shè)計的WEB應(yīng)用服務(wù)中,采用LM3S8962微控制器。LM3S8962是TI公司的一款基于Cortex-M3內(nèi)核的ARM芯片。Cortex-M3是工業(yè)控制系統(tǒng)、無線網(wǎng)絡(luò)系統(tǒng)等對功耗和成本較為敏感的嵌入式應(yīng)用領(lǐng)域?qū)崿F(xiàn)高性能而設(shè)計的,它很大程度上簡化了編程的復(fù)雜性,使ARM成為各種應(yīng)用方案中的最優(yōu)選擇。
LM3S8962功能非常強大,集成了豐富的資源:含有256 KB的單周期Flash;含有4個通用定時器模塊(GPTM),每個模塊都能提供2個16位的定時器/計數(shù)器,也可以作為1個32位的定時器模塊;含有以太網(wǎng)控制器模塊;擁有同步串行接口,以及3個完全可編程控制的UART接口;含有3個PWM信號發(fā)生模塊,每個模塊都帶有1個16位的計數(shù)器,2個比較器,1個PWM信號發(fā)生器,以及一個死區(qū)發(fā)生器;含有正交編碼器(QEI)接口;含有5-24個通用IO口,最高可承受5V的電平[1]。
LM3S8962的以太網(wǎng)控制器符合IEEE 802.3-2002規(guī)范,遵循IEEE 1588-2002精確時間協(xié)議(PTP),支持全功能的自協(xié)商協(xié)議,可工作在多種模式下,如半雙工和全雙工模式,掉電和節(jié)電模式,而且可編程MAC地址,支持混雜模式,擁有CRC錯誤拒絕控制和用戶可配置的中斷。由于LM3S8962已經(jīng)集成了網(wǎng)絡(luò)物理(PHY)模塊和媒體訪問控制器(MAC)模塊,使得它只需要外接一個網(wǎng)絡(luò)變壓器就可以實現(xiàn)以太網(wǎng)通信。從上面的描述中可以看出,用LM3S8962實現(xiàn)的WEB應(yīng)用服務(wù)具有電路結(jié)構(gòu)緊湊、體積較小等突出優(yōu)點,因此,采用LM3S8962實現(xiàn)WEB應(yīng)用服務(wù)設(shè)計是一個性價比很高的選擇[1]。
這次WEB應(yīng)用服務(wù)設(shè)計正是由LM3S8962作為WEB服務(wù)器,將TCP/IP協(xié)議棧的瘦身版本LwIP協(xié)議移植到LM3S8962中,實現(xiàn)數(shù)據(jù)通過以太網(wǎng)與工業(yè)控制設(shè)備之間的交互。設(shè)計方案具有實現(xiàn)簡便、傳輸穩(wěn)定、性價比高等優(yōu)點。
LM3S8962與工業(yè)控制設(shè)備連接通信之前需要制定簡單的通信協(xié)議,如 LwIP協(xié)議等,并在LM3S8962微控制器中安裝 WEB應(yīng)用服務(wù),編寫WEB應(yīng)用服務(wù)的接收響應(yīng)程序,當需要設(shè)置設(shè)備的相關(guān)參數(shù)時,只需要在電腦上以制定的通信協(xié)議的通信數(shù)據(jù)包向 LM3S8962發(fā)出 WEB請求,LM3S8962在收到WEB請求后會作出相應(yīng)的響應(yīng),完成控制設(shè)備相關(guān)參數(shù)的設(shè)置。
該WEB應(yīng)用服務(wù)設(shè)計的實現(xiàn)主要包括三個部分:一是LM3S8962微控制器的以太網(wǎng)接口驅(qū)動程序;二是基于TCP/IP協(xié)議棧的通信實現(xiàn);三是嵌入式Web服務(wù)器的實現(xiàn)。
以太網(wǎng)接口的驅(qū)動程序相當于實現(xiàn)計算機(PC機)上的網(wǎng)卡驅(qū)動程序,可以通過LM3S8962微控制器的以太網(wǎng)控制器模塊來處理以太網(wǎng)通信協(xié)議,完成通信數(shù)據(jù)包的發(fā)送和接收。首先要對LM3S8962自帶的以太網(wǎng)控制器模塊進行初始化,設(shè)置模式和參數(shù),使其開始工作。正常工作后,通過以太網(wǎng)的中斷程序讀寫RAM,完成對數(shù)據(jù)包的接收和發(fā)送。
1)LM3S8962自帶的以太網(wǎng)控制器模塊初始化
程序初始化流程框圖如圖1所示。
具體程序初始化設(shè)置如下:
⑴寄存器RCC和RCC2:對400MHz進行/4分頻,則系統(tǒng)時鐘頻率為50MHz,PLL供電,外部晶振值為8MHz。
⑵寄存器RCC和RCC2:PWM頻率為對系統(tǒng)時鐘clock進行/8分頻,50MHz/8=6.25MHz。
⑶寄存器DC4:使能外設(shè)IO口ADEFG,使能外設(shè)PWM,使能外設(shè)UART0。
⑷GPIO方向寄存器GPIODIR:配置E口E0-E3為輸入,配置F口F0為輸出,配置F口F1為輸入,配置G口G1為PWM1的功能。
⑸系統(tǒng)中斷(g_ulSystemClock=50MHz,CLOCK_RATE=300):系統(tǒng)時鐘中斷周期為166667,即時鐘周期為6*10e-6s。
⑹使能并復(fù)位以太網(wǎng)控制器。
⑺寄存器GPIOPeriphID:使能F2、F3口輸出用于以太網(wǎng)LED燈。
⑻Flash寄存器:寄存器USER_REG0和USER_REG1。
⑼初始化LWIP庫,使用DHCP。
⑽LocatorInit:安裝設(shè)備定位服務(wù)。
⑾httpd_init:Web服務(wù)器的初始化配置。
⑿以太網(wǎng)可用的中斷:中斷計時器配置。
2)以太網(wǎng)控制器模塊發(fā)送數(shù)據(jù)
發(fā)送響應(yīng)數(shù)據(jù)時,先分配一個新的pbuf參量來用于發(fā)送響應(yīng)數(shù)據(jù),然后將待發(fā)送的響應(yīng)數(shù)據(jù)按以太網(wǎng)UDP數(shù)據(jù)包格式封裝,并進行校驗和計算,以太網(wǎng)UDP數(shù)據(jù)包的數(shù)據(jù)格式如下:
封裝好響應(yīng)數(shù)據(jù)包后,復(fù)制響應(yīng)數(shù)據(jù)包到pbuf當中,這樣就可以將響應(yīng)數(shù)據(jù)寫入RAM。在很多情況下無法將整個響應(yīng)數(shù)據(jù)包一次存入先進先出數(shù)據(jù)緩存器(FIFO)中,因此,在構(gòu)成一個新的響應(yīng)數(shù)據(jù)包之前,必須先等待前一個響應(yīng)數(shù)據(jù)包發(fā)送完成。
圖1 程序初始化流程框圖
3)以太網(wǎng)控制器模塊接收數(shù)據(jù)
以太網(wǎng)控制器模塊接收數(shù)據(jù)采用的是查詢方式。接收數(shù)據(jù)時,接收緩沖區(qū)會構(gòu)成一個循環(huán)的FIFO隊列。首先分配一個p參量p=pbuf_alloc(PBUF_TRANSPORT,UDP_HLEN ,PBUF_RAM)為寫入指針,新收到的數(shù)據(jù)包存于以p指出的地址為首地址的RAM中。當p=NULL時,說明當前沒有數(shù)據(jù)包可讀。而當p!=NULL時,說明系統(tǒng)接收到新的響應(yīng)數(shù)據(jù)包,用戶將開始讀取響應(yīng)數(shù)據(jù)包,直到所有響應(yīng)數(shù)據(jù)包都已經(jīng)讀完,此時便停止讀取響應(yīng)數(shù)據(jù)包。
圖2和圖3分別是以太網(wǎng)控制器模塊發(fā)送和接收響應(yīng)數(shù)據(jù)包的流程。
TCP/IP協(xié)議棧的設(shè)計是以TCP/IP協(xié)議參考模型為核心,其中物理層和數(shù)據(jù)鏈路層是由LM3S8962以太網(wǎng)控制器及其驅(qū)動程序完成的。TCP/IP協(xié)議棧的設(shè)計主要包括收發(fā)緩存設(shè)計、定時器設(shè)計,以及IP(互聯(lián)網(wǎng)協(xié)議)、TCP(傳輸控制協(xié)議)和HTTP(超文本傳送協(xié)議)等諸多協(xié)議模塊的設(shè)計。應(yīng)用層則是以HTTP協(xié)議和公共網(wǎng)關(guān)接口(CGI)技術(shù)為基礎(chǔ),構(gòu)建嵌入式WEB服務(wù)器,實現(xiàn)了瀏覽器和WEB服務(wù)器的動態(tài)交互[6]。
TCP/IP協(xié)議簇經(jīng)過長時間的實踐檢驗,功能設(shè)計較為完善,并且它CPU耗時多、代碼體積大等問題也隨著高性能微處理器的問世逐步得到了緩解。近幾年來,TCP/IP協(xié)議的嵌入式實現(xiàn)已成為熱點,出現(xiàn)了許多瘦身版本的TCP/IP協(xié)議,如uIP、LwIP等。
WEB應(yīng)用服務(wù)設(shè)計選擇了以LwIP瘦身版本協(xié)議在LM3S8962上實現(xiàn)的方案。LwIP是瑞士計算機科學(xué)院的一個開源的TCP/IP協(xié)議棧。LwIP協(xié)議為了提高通信的性能,使用了一種比較松散的通信機制,通過共享內(nèi)存的方式實現(xiàn)應(yīng)用層和底層協(xié)議之間的通信,避免了內(nèi)存復(fù)制所造成的性能損失[8]。
圖2 以太網(wǎng)控制器發(fā)送數(shù)據(jù)包流程
圖3 以太網(wǎng)控制器接收數(shù)據(jù)包流程
嵌入式Web服務(wù)EWS(Embedded Web Server)是指將WEB服務(wù)器引入到現(xiàn)場測試和控制設(shè)備中。EWS功能簡單、消耗資源少,很適合運行在像LM3S8962這樣的ARM系統(tǒng)上。
httpd是一種最簡單的WEB服務(wù)器,只能發(fā)布靜態(tài)網(wǎng)頁,提供靜態(tài)的WEB服務(wù)。而JavaScript則是一種面向?qū)ο蟮摹⒛軓V泛應(yīng)用于瀏覽器WEB開發(fā)的、可以區(qū)分大小寫的腳本語言。它能適應(yīng)動態(tài)網(wǎng)頁,實現(xiàn)交互式的WEB服務(wù)。JavaScript不僅提高了網(wǎng)頁的瀏覽速度,同時增強了WEB頁面與用戶的交互能力[10]。
嵌入式Web服務(wù)器的結(jié)構(gòu)方案如圖4所示[10]。
嵌入式WEB服務(wù)器系統(tǒng)的工作流程為:①瀏覽器通過匹配的IP地址訪問內(nèi)嵌于WEB服務(wù)器中的帶有JavaScript程序的網(wǎng)頁;②嵌入式WEB服務(wù)器收到了URL請求后,讀取內(nèi)嵌的網(wǎng)頁,并將網(wǎng)頁通過HTTP通信協(xié)議傳送給瀏覽器;③網(wǎng)頁在瀏覽器中顯示,內(nèi)嵌的程序在瀏覽器中被解釋執(zhí)行;④用戶操作界面,程序會校驗用戶的操作,如果輸入的信息正確,程序會發(fā)送能被程序分析處理的請求,并通過封裝成通信數(shù)據(jù)包的形式發(fā)送給WEB服務(wù)器;⑤經(jīng)過WEB服務(wù)器中的程序分析處理過的請求將封裝成響應(yīng)數(shù)據(jù)包,和數(shù)據(jù)一起更新,發(fā)送回瀏覽器端;⑥當瀏覽器端收到發(fā)回的響應(yīng)數(shù)據(jù)包后,Java Script程序會對頁面進行實時更新。
圖4 嵌入式WEB服務(wù)器系統(tǒng)的結(jié)構(gòu)圖
隨著互聯(lián)網(wǎng)的日益普及,基于以太網(wǎng)的廣電機房設(shè)備遠程監(jiān)控系統(tǒng)逐漸成為發(fā)展趨勢,網(wǎng)絡(luò)技術(shù)在廣電設(shè)備中的應(yīng)用也日趨廣泛。視、音頻矩陣切換器是廣播電視播出機房的重要設(shè)備,8路輸入2路輸出的音頻切換器,對8路視音頻輸入信號進行選擇,輸出任意1路視音頻信號的功能,每路視、音頻信號均有二路分配輸出。結(jié)合目前微控制器與以太網(wǎng)技術(shù),將其應(yīng)用于廣播電視系統(tǒng)的音頻切換器中,將大大降低成本,并易于維護,提高設(shè)備的可靠性。
音頻切換器多應(yīng)用于電視臺廣播電臺播出系統(tǒng)中,用來循環(huán)檢測各通道音頻狀態(tài),切換時無音頻通道自動跳過、切換延遲時間可選,用戶可以根據(jù)自己的需要在前面板上設(shè)置不同長度的切換延遲時間等功能,為音頻安全播出提供了有效的保障。
微控制器與以太網(wǎng)技術(shù)相結(jié)合,采用B/S架構(gòu)形成的嵌入式WEB技術(shù)是近幾年來隨著計算機網(wǎng)絡(luò)的普及而發(fā)展起來的一項新興技術(shù)?;谇度胧絎eb服務(wù)技術(shù)的音頻切換器系統(tǒng)的核心就是嵌入式Web服務(wù)器,嵌入式Web服務(wù)器是由微處理器和以太網(wǎng)接口控制器組成的硬件平臺,與由數(shù)據(jù)收發(fā)程序、TCP/IP通信協(xié)議和HTTP服務(wù)器程序組成的軟件系統(tǒng)來實現(xiàn)的?;谇度胧絎eb服務(wù)技術(shù)的音頻切換器系統(tǒng)設(shè)計的總體思路是嵌入式Web服務(wù)器通過通信端口或現(xiàn)場總線與本地機房設(shè)備和環(huán)境數(shù)據(jù)采集設(shè)備直接相連,并將接收到的數(shù)據(jù)經(jīng)過分析、處理后通過TCP/IP協(xié)議將其連接到以太網(wǎng)上??蛻舳吮O(jiān)控主機則通過Web瀏覽器在網(wǎng)絡(luò)上實時監(jiān)控現(xiàn)場信號的動態(tài)變化,從而實現(xiàn)遠程監(jiān)控的目標[9]。
基于微控制器LM3S8962的Web音頻切換器系統(tǒng)如圖5所示。
圖5 基于微控制器LM3S8962的Web音頻切換器系統(tǒng)圖
WEB應(yīng)用服務(wù)為工業(yè)控制設(shè)備的通信提供了一種可靠性高、實用經(jīng)濟的方法。選用LM3S8962芯片為核心,構(gòu)建了嵌入式WEB服務(wù)器,提出了嵌入式WEB應(yīng)用服務(wù)的設(shè)計方案,實現(xiàn)了基于TCP/IP協(xié)議棧的通信控制功能。該設(shè)計方案具有簡單易行、性價比高、開發(fā)周期短、便于維護等優(yōu)點,為嵌入式WEB應(yīng)用服務(wù)技術(shù)在工業(yè)控制領(lǐng)域中的應(yīng)用做出了有益的探索和嘗試。
[1] 卞金洪.基于LM3S8962的溫度采集器設(shè)計[J].鹽城工學(xué)院學(xué)報(自然科學(xué)版),2009,22(3):37-39.
[2] 雒珊,尹肖.基于ARM的以太網(wǎng)通信控制器的設(shè)計[J].電子測量技術(shù),2009,32(10):133-135.
[3] 趙研,谷弘毅.基于ARM的以太網(wǎng)通信控制器[J].長春理工大學(xué)學(xué)報,2010,33(2):147-155.
[4] 王坤,皮亦鳴.基于ARM Cortex-M3的嵌入式網(wǎng)絡(luò)播放系統(tǒng)[J].電子設(shè)計工程,2010,18(1):71-73.
[5] 克磊,陳小平.基于uIP的通信路由控制器的設(shè)計[J].通信技術(shù),2010,43(11):83-86.
[6] 孫靜,王再英.基于以太網(wǎng)遠程溫度監(jiān)控系統(tǒng)的設(shè)計[J].微計算機信息,2008,24(25):99-101.
[7] 馮琛華,別紅霞.基于DM642的以太網(wǎng)通信接口設(shè)計[J].信號處理,2007,23(5):783-785.
[8] 張海波,胡大可.低成本高速率傳感器網(wǎng)絡(luò)的設(shè)計實現(xiàn)[J].傳感技術(shù)學(xué)報,2010,23(5):732-738.
[9] 張海瓊.基于嵌入式WEB的音視頻切換器監(jiān)控系統(tǒng)[J].電腦知識與技術(shù),2008,4(5):1208-1209.
[10] 牛利兵.遠程監(jiān)控嵌入式Web服務(wù)器設(shè)計[D].太原:太原理工大學(xué),2011.