《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 嵌入式網(wǎng)絡(luò)信息發(fā)布系統(tǒng)設(shè)計(jì)
嵌入式網(wǎng)絡(luò)信息發(fā)布系統(tǒng)設(shè)計(jì)
現(xiàn)代電子技術(shù)
張忠亮,傅志中,張翰進(jìn),,張 冉
摘要: 對信息發(fā)布系統(tǒng)現(xiàn)狀進(jìn)行研究,,結(jié)合嵌入式互聯(lián)網(wǎng)技術(shù),提出一種嵌入式網(wǎng)絡(luò)信息發(fā)布系統(tǒng)的解決方案,,并介紹了信息發(fā)布管理平臺和嵌入式終端的軟件設(shè)計(jì),。信息發(fā)布管理平臺基于Web開發(fā),通過管理平臺可以對每個(gè)終端
Abstract:
Key words :

摘要:對信息發(fā)布系統(tǒng)現(xiàn)狀進(jìn)行研究,,結(jié)合嵌入式互聯(lián)網(wǎng)技術(shù),,提出一種嵌入式網(wǎng)絡(luò)信息發(fā)布系統(tǒng)的解決方案,并介紹了信息發(fā)布管理平臺和嵌入式終端的軟件設(shè)計(jì),。信息發(fā)布管理平臺基于Web開發(fā),通過管理平臺可以對每個(gè)終端進(jìn)行實(shí)時(shí)監(jiān)控,。數(shù)據(jù)存儲服務(wù)器是相對獨(dú)立的,主要用于存儲發(fā)布的數(shù)據(jù)信息,,并最終根據(jù)終端的要求將信息推送到終端上,。執(zhí)行終端采用嵌入式芯片,,為了節(jié)約硬件系統(tǒng)資源的開銷,,在嵌入式芯片上移植μC/OS-Ⅱ操作系統(tǒng),,并且定制HTTP超文本傳輸協(xié)議。
關(guān)鍵詞:信息發(fā)布,;嵌入式,;互聯(lián)網(wǎng)技術(shù),;Web

0 引言
    隨著信息時(shí)代,、數(shù)字時(shí)代的到來,尤其是互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,,網(wǎng)絡(luò)設(shè)備與系統(tǒng)體現(xiàn)出高效,、靈活、可移植性強(qiáng)的特點(diǎn),。嵌入式技術(shù)也有著飛速的發(fā)展,,從硬件方面來看,嵌入式微處理器的性能提升到了一個(gè)新的高度,。從軟件方面來看,,它已經(jīng)擁有了高效的操作系統(tǒng),,方便開發(fā)人員進(jìn)行軟件個(gè)性化設(shè)計(jì)。嵌入式系統(tǒng)在的實(shí)踐過程中,,具有體積小,,攜帶方便,便于安裝調(diào)試和價(jià)格低廉等優(yōu)點(diǎn),,從而使嵌入式系統(tǒng)滿足了多數(shù)的消費(fèi)電子,、通信、工業(yè)控制等領(lǐng)域的要求,。
    為了實(shí)現(xiàn)面向公眾的信息傳遞,,人們采用了告機(jī)、單宣傳畫,、工控廣機(jī)廣告機(jī)等方式,。但這些信息發(fā)布方式,存在著信息量局限,,成本高,,更換內(nèi)容困難等缺點(diǎn)?;趯κ袌龅睦斫?,并結(jié)合先進(jìn)的嵌入式互聯(lián)網(wǎng)視頻技術(shù),本文介紹了一種嵌入式網(wǎng)絡(luò)信息發(fā)布系統(tǒng),,闡述了服務(wù)器,、數(shù)據(jù)庫和嵌入式終端解決方案,以及服務(wù)器與數(shù)據(jù)庫的交互,、服務(wù)器與終端的通信協(xié)議等關(guān)鍵單元技術(shù),,并詳細(xì)介紹終端的軟件設(shè)計(jì)思想。

1 系統(tǒng)組成
    該系統(tǒng)分為網(wǎng)絡(luò)信息發(fā)布管理平臺和遠(yuǎn)程嵌入式終端兩部分,。系統(tǒng)的軟硬件部署,,主要分為三個(gè)部分:嵌入式終端,發(fā)布系統(tǒng)服務(wù)器和內(nèi)容服務(wù)器,。其中,,在實(shí)際應(yīng)用中,發(fā)布系統(tǒng)服務(wù)器和內(nèi)容服務(wù)器可以合并為同一臺服務(wù)器,,如圖1所示,。

a.jpg

1.1 硬件方面
1.1.1 管理平臺硬件環(huán)境
    一臺Windows操作系統(tǒng)的計(jì)算機(jī),配置Java開發(fā)運(yùn)行環(huán)境,,并且裝有Apache Tomcat 6.0服務(wù)器和MySQL5.1數(shù)據(jù)庫等軟件,。
1.1.2 嵌入式硬件環(huán)境
    嵌入式芯片需滿足多媒體開發(fā)和網(wǎng)絡(luò)開發(fā)的基本要求。
    (1)支持視頻格式,、音頻格式,、圖片格式的編碼和解碼,;
    (2)支持視頻圖像和音頻輸出接口;
    (3)支持USB接口,;
    (4)支持HTTP協(xié)議,;
    (5)支持10 M/100 M網(wǎng)卡。
1.2 軟件方面
    在這種系統(tǒng)軟件設(shè)計(jì)中,,信息發(fā)布管理平臺基于Web開發(fā),,采用了目前常用的Java+Struts+Hibernate方法。struts框架定義了管理平臺系統(tǒng)的結(jié)構(gòu)(表示層)和頁面之間流轉(zhuǎn)的規(guī)則(業(yè)務(wù)層),。Hibernate將數(shù)據(jù)庫連接抽象化,,使得開發(fā)過程中對數(shù)據(jù)庫的使用更加簡潔方便,同時(shí),,Hibernate降低了更換不同類型數(shù)據(jù)庫所用的開發(fā)時(shí)間,。基于Java語言編寫服務(wù)端代碼,,開發(fā)效率高,,面向?qū)ο蟮脑O(shè)計(jì)方法提高了代碼的可維護(hù)性。該模塊還使用了較多的JS代碼和基于Ajax的技術(shù)來提高客戶端頁面刷新和頁面功能,;數(shù)據(jù)庫服務(wù)器的設(shè)計(jì)使用瑞典MySQL AB公司開發(fā)的小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng)MySQL5.1,,它為Java語言提供了豐富的API,方便Java應(yīng)用程序?qū)ζ湓L問,。
    嵌入式終端操作系統(tǒng)采用μC/OS-Ⅱ操作系統(tǒng),。μC/OS-Ⅱ是一個(gè)源碼開放的搶占式實(shí)時(shí)操作系統(tǒng)。它的內(nèi)核短小精悍,、可裁減,、執(zhí)行時(shí)間確定。系統(tǒng)大部分代碼采用C語言編寫,,與硬件有關(guān)的部分都集中在固定的文件中,,移植相當(dāng)方便,可應(yīng)用于目前大多數(shù)型號的CPU,。但是,,沒有集成網(wǎng)絡(luò)協(xié)議,所以,,開發(fā)人員使用該操作系統(tǒng)進(jìn)行網(wǎng)絡(luò)程序開發(fā)時(shí),,需要自行定制網(wǎng)絡(luò)協(xié)議,。

2 信息發(fā)布系統(tǒng)的單元交互
    嵌入式網(wǎng)絡(luò)信息發(fā)布系統(tǒng)單元之間的通信可以分為兩層:服務(wù)器與數(shù)據(jù)庫交互,、服務(wù)器與遠(yuǎn)程終端通信。
2.1 服務(wù)器與數(shù)據(jù)庫交互層
    該系統(tǒng)的服務(wù)器具有遠(yuǎn)程監(jiān)控服務(wù)功能,,包括Web服務(wù)器,、文件服務(wù)器,、本地控制服務(wù)器。其中,,Web服務(wù)器提供信息網(wǎng)絡(luò)發(fā)布系統(tǒng)的用戶交互界面和業(yè)務(wù)邏輯處理模塊的運(yùn)行環(huán)境,;文件服務(wù)器主要提供系統(tǒng)管理的視頻、圖像等多媒體信息的存取服務(wù),;本地控制服務(wù)器主要管理轄區(qū)內(nèi)所有顯示終端的通信分發(fā),。
    在服務(wù)器上編寫了具有人機(jī)交互功能的JSP靜態(tài)管理平臺界面,用戶可以通過該界面方便地進(jìn)行圖形化操作,,并將終端反饋的信息顯示在該界面,,方便用戶獲取終端的運(yùn)行情況,還為用戶提供有用戶權(quán)限管理,、內(nèi)容管理,、播放控制等模塊的監(jiān)控頁面。用戶只需登錄該管理平臺界面,,即可通過網(wǎng)絡(luò)對遠(yuǎn)程終端進(jìn)行監(jiān)控,。
    服務(wù)器對數(shù)據(jù)庫的訪問采用JDBC兩層模型方法。JDBC是一種用于執(zhí)行SQL語句的Java API,,利用這種方法可以方便地與數(shù)據(jù)庫建立連接,,發(fā)送操作數(shù)據(jù)庫的語句,并處理結(jié)果,。兩層模型可使得Java Applet或應(yīng)用程序?qū)⒅苯优c數(shù)據(jù)庫進(jìn)行交互,。
    服務(wù)器與數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)交互主要用于存取終端基本狀態(tài)信息。例如:網(wǎng)絡(luò)連接是否正常,,連接在同一個(gè)服務(wù)器的各個(gè)終端ID號,,終端硬盤的空間大小,硬盤中的內(nèi)容等,。指令的生成依賴于該模塊在數(shù)據(jù)庫中所查詢到的終端狀態(tài)標(biāo)志位,。當(dāng)服務(wù)器對某終端進(jìn)行相應(yīng)的控制操作時(shí),首先從數(shù)據(jù)庫中讀取出該終端當(dāng)前的狀態(tài)標(biāo)志位,,根據(jù)這些標(biāo)志位進(jìn)行邏輯判斷,,生成本次控制操作所需要發(fā)送的XML文本指令。
2.2 服務(wù)器與遠(yuǎn)程終端通信層
    服務(wù)器與遠(yuǎn)程終端的通信采用HTTP超文本傳輸協(xié)議,,終端定時(shí)(初定8 s)發(fā)送請求到服務(wù)器,。服務(wù)器接受到請求后,將相應(yīng)的XML文本語言形式的控制操作指令發(fā)送到連接的網(wǎng)絡(luò)端口,,遠(yuǎn)程終端讀取端口的數(shù)據(jù)進(jìn)行解析,,完成本次控制操作。如果一定時(shí)間內(nèi)(初定1 min)沒有收到終端的消息,,可斷定出現(xiàn)網(wǎng)絡(luò)異常(終端離線),。
    終端系統(tǒng)正常啟動(dòng)之后,,系統(tǒng)將自動(dòng)分配一段內(nèi)存空間,一部分用來存儲請求信息和控制指令,,一部分作為消息隊(duì)列,。然后,終端的狀態(tài)信息作為請求信息循環(huán)向指定IP地址(服務(wù)器)的端口(初定80端口)發(fā)送,。終端請求成功后,,服務(wù)器讀取端口接收的請求信息,將請求信息解析后作為終端的當(dāng)前狀態(tài)信息,,更新數(shù)據(jù)庫中的狀態(tài)標(biāo)志位,。同時(shí),服務(wù)器也可以通過HTTP傳輸協(xié)議發(fā)送XML語言結(jié)構(gòu)的文本指令給終端,,終端接收到指令后進(jìn)行解析,,并對終端進(jìn)行相應(yīng)的控制操作。

3 信息發(fā)布系統(tǒng)的關(guān)鍵技術(shù)
    嵌入式硬件的系統(tǒng)頻率,、存儲空間,、緩存大小、編碼和解碼等性能已經(jīng)達(dá)到了較高的技術(shù)水平,。那么,,對于嵌入式芯片在不同領(lǐng)域中的應(yīng)用更依靠于操作系統(tǒng)和靈活的軟件設(shè)計(jì)思想來實(shí)現(xiàn)。
    在該系統(tǒng)的設(shè)計(jì)中,,服務(wù)器的設(shè)計(jì)需要考慮服務(wù)器與數(shù)據(jù)庫和終端的交互協(xié)議,,當(dāng)通過服務(wù)器控制多臺終端的時(shí)候,對于指令分發(fā),、數(shù)據(jù)包傳輸,、以及數(shù)據(jù)庫的更新都存在著時(shí)序和邏輯問題。為了節(jié)省系統(tǒng)內(nèi)存的開銷,,也要保證系統(tǒng)的實(shí)時(shí)性和可靠性,,所以終端的操作系統(tǒng)選擇μC/OS-Ⅱ。該操作系統(tǒng)沒有集成網(wǎng)絡(luò)協(xié)議,,所以結(jié)合其性能條件定制適合它的網(wǎng)絡(luò)傳輸協(xié)議,。
3.1 終端網(wǎng)絡(luò)程序的設(shè)計(jì)
    遠(yuǎn)程終端的執(zhí)行效果只有到現(xiàn)場才可以觀察,那么,,保證終端接收指令和對指令響應(yīng)的可靠性是十分必要的,。HTTP協(xié)議是一種文本協(xié)議,文本協(xié)議通常是用ASCII符集編碼,,具有理解簡單,,擴(kuò)展擴(kuò)充方便,容錯(cuò)性較強(qiáng),可靠性高等優(yōu)點(diǎn),。開發(fā)人員可以方便地進(jìn)行協(xié)議的定制,,節(jié)省了軟件調(diào)試時(shí)間,,大大縮短了開發(fā)周期,。因此,在該系統(tǒng)的操作系統(tǒng)中定制了HTTP超文本傳輸協(xié)議,。
    μC/OS-Ⅱ操作系統(tǒng)中創(chuàng)建一個(gè)系統(tǒng)網(wǎng)絡(luò)的入口函數(shù),,在此函數(shù)中創(chuàng)建一個(gè)網(wǎng)絡(luò)后臺任務(wù),該任務(wù)的主要功能是請求網(wǎng)絡(luò)連接,,并接收來自服務(wù)器的指令,。當(dāng)終端系統(tǒng)初始化后,進(jìn)入網(wǎng)絡(luò)后臺任務(wù),,循環(huán)向服務(wù)器發(fā)送HTTP請求,,請求成功后,終端反饋信息到服務(wù)器,。
    系統(tǒng)軟件使用C語言編程,,將HTTP協(xié)議封裝在結(jié)構(gòu)體中,用結(jié)構(gòu)體屬性字段來表示,。
    網(wǎng)絡(luò)端口的所有數(shù)據(jù)項(xiàng),,包括HTTP協(xié)議頭、控制指令,、lP地址,、端口號、端口信號量鎖等,。HTTP協(xié)議的結(jié)構(gòu)體如下:
    b.jpg
    其中:http_Request[REQUEST_SIZE為HTTP協(xié)議頭字符串,;http_Response為服務(wù)器發(fā)給終端的控制指令;httpWait為信號量,。用信號量來實(shí)現(xiàn)網(wǎng)絡(luò)端口的互斥訪問,。
    在系統(tǒng)中,網(wǎng)絡(luò)管理平臺控制多個(gè)嵌入式終端時(shí),,通過網(wǎng)絡(luò)端口與每個(gè)終端進(jìn)行網(wǎng)絡(luò)連接通信,。網(wǎng)絡(luò)端口是獨(dú)占性的端口,所以,,選擇信號量機(jī)制對網(wǎng)絡(luò)端口的訪問進(jìn)行互斥鎖處理,。

    HTTPTcpConnection_t為網(wǎng)絡(luò)端口連接信息,它也是一個(gè)結(jié)構(gòu)體,,屬性字段包括服務(wù)器的IP地址,、網(wǎng)絡(luò)端口號、以及終端請求信息等。代碼如下:
    c.jpg
    d.jpg
3.2 多任務(wù)間通信
    μC/OS-Ⅱ是多任務(wù)機(jī)制操作系統(tǒng),,最多可支持64個(gè)任務(wù),,任務(wù)優(yōu)先級從0~63,對這樣的多任務(wù)操作系統(tǒng)來說,,任務(wù)間的通信是必不可少的,。μC/OS-Ⅱ中提供了4種通信對象,分別是信號量,、郵箱,、消息隊(duì)列和事件。所有這些同步對象都有創(chuàng)建,、等待,、發(fā)送、查詢的接口用于實(shí)現(xiàn)任務(wù)間的通信,。
    消息機(jī)制是創(chuàng)建一個(gè)消息隊(duì)列,,一個(gè)任務(wù)將消息發(fā)送到該消息隊(duì)列中,另一個(gè)任務(wù)在隊(duì)列的另一端接收此消息,。消息隊(duì)列是在消息的傳輸過程中保存消息的容器,,它的主要目的是為消息的傳遞提供路徑;如果發(fā)送消息時(shí)接收者沒有響應(yīng),,消息隊(duì)列會保留消息,,直到可以成功地傳遞給接收者。
    消息機(jī)制具有靈活性,、可擴(kuò)展性和異步性等優(yōu)點(diǎn),。因此,該系統(tǒng)采用消息隊(duì)列的方式實(shí)現(xiàn)UI/User層程序和應(yīng)用程序之間的通信,,如圖2所示,。

f.jpg


    消息的結(jié)構(gòu)體如下:
    g.jpg
    在消息結(jié)構(gòu)體中:
    app_id:接受此消息的應(yīng)用程序或樁函數(shù)。
    msg_type:消息類型,。系統(tǒng)中的消息設(shè)計(jì)有兩種類型,。一是命令消息,應(yīng)用程序接收到來自UI/User程序的命令消息后,,對其進(jìn)行解析,,然后,逐個(gè)執(zhí)行消息中的命令集合,,并反饋執(zhí)行結(jié)果,;二是通知消息,用來通知UI/User命令在應(yīng)用程序中得到響應(yīng),。
    msg_id:消息的ID號,。
    msg_value:消息的參數(shù),,存放指針的地址。
    下面以命令消息處理過程為例,,介紹消息的發(fā)送,、接收和消息相應(yīng)操作過程,如圖3所示,。其中,,應(yīng)用程序管理器是一個(gè)消息處理中心,它為UI/User層提供了一些API函數(shù),,用來為應(yīng)用程序接受輸入命令和分發(fā)命令,。同時(shí),,它還接收來自應(yīng)用程序的命令執(zhí)行結(jié)果和通知消息,,并把這些消息發(fā)送給相應(yīng)的消息處理函數(shù)。



4 結(jié)語
    現(xiàn)場調(diào)試中發(fā)現(xiàn),,工控機(jī)信息發(fā)布系統(tǒng)的故障率為5%,,而本文設(shè)計(jì)的嵌入式信息發(fā)布系統(tǒng)的故障率為8%。從價(jià)格上進(jìn)行比較,,工控機(jī)信息發(fā)布系統(tǒng)價(jià)格是嵌入式信息發(fā)布系統(tǒng)價(jià)格的10倍左右,。顯然,該系統(tǒng)具有更好的性價(jià)比,,且使用簡單,,操作方便。隨著嵌入式系統(tǒng)軟件的PC化,,它將成為一種理想的信息發(fā)布系統(tǒng),,有著十分誘人的應(yīng)用前景。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。