當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]嵌入式網(wǎng)絡(luò)信息發(fā)布系統(tǒng)設(shè)計(jì)

摘要:對信息發(fā)布系統(tǒng)現(xiàn)狀進(jìn)行研究,結(jié)合嵌入式互聯(lián)網(wǎng)技術(shù),提出一種嵌入式網(wǎng)絡(luò)信息發(fā)布系統(tǒng)的解決方案,并介紹了信息發(fā)布管理平臺(tái)和嵌入式終端的軟件設(shè)計(jì)。信息發(fā)布管理平臺(tái)基于Web開發(fā),通過管理平臺(tái)可以對每個(gè)終端進(jìn)行實(shí)時(shí)監(jiān)控。數(shù)據(jù)存儲(chǔ)服務(wù)器是相對獨(dú)立的,主要用于存儲(chǔ)發(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ā)布管理平臺(tái)和遠(yuǎn)程嵌入式終端兩部分。系統(tǒng)的軟硬件部署,主要分為三個(gè)部分:嵌入式終端,發(fā)布系統(tǒng)服務(wù)器和內(nèi)容服務(wù)器。其中,在實(shí)際應(yīng)用中,發(fā)布系統(tǒng)服務(wù)器和內(nèi)容服務(wù)器可以合并為同一臺(tái)服務(wù)器,如圖1所示。


1.1 硬件方面
1.1.1 管理平臺(tái)硬件環(huán)境
    一臺(tái)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ā)布管理平臺(tái)基于Web開發(fā),采用了目前常用的Java+Struts+Hibernate方法。struts框架定義了管理平臺(tái)系統(tǒng)的結(jié)構(gòu)(表示層)和頁面之間流轉(zhuǎn)的規(guī)則(業(yè)務(wù)層)。Hibernate將數(shù)據(jù)庫連接抽象化,使得開發(fā)過程中對數(shù)據(jù)庫的使用更加簡潔方便,同時(shí),Hibernate降低了更換不同類型數(shù)據(jù)庫所用的開發(fā)時(shí)間?;贘ava語言編寫服務(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ù)型號(hào)的CPU。但是,沒有集成網(wǎng)絡(luò)協(xié)議,所以,開發(fā)人員使用該操作系統(tǒng)進(jìn)行網(wǎng)絡(luò)程序開發(fā)時(shí),需要自行定制網(wǎng)絡(luò)協(xié)議。[!--empirenews.page--]

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)管理平臺(tái)界面,用戶可以通過該界面方便地進(jìn)行圖形化操作,并將終端反饋的信息顯示在該界面,方便用戶獲取終端的運(yùn)行情況,還為用戶提供有用戶權(quán)限管理、內(nèi)容管理、播放控制等模塊的監(jiān)控頁面。用戶只需登錄該管理平臺(tái)界面,即可通過網(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號(hào),終端硬盤的空間大小,硬盤中的內(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)存空間,一部分用來存儲(chǔ)請求信息和控制指令,一部分作為消息隊(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)頻率、存儲(chǔ)空間、緩存大小、編碼和解碼等性能已經(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ù)器控制多臺(tái)終端的時(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ò)后臺(tái)任務(wù),該任務(wù)的主要功能是請求網(wǎng)絡(luò)連接,并接收來自服務(wù)器的指令。當(dāng)終端系統(tǒng)初始化后,進(jìn)入網(wǎng)絡(luò)后臺(tái)任務(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地址、端口號(hào)、端口信號(hào)量鎖等。HTTP協(xié)議的結(jié)構(gòu)體如下:
   
    其中:http_Request[REQUEST_SIZE為HTTP協(xié)議頭字符串;http_Response為服務(wù)器發(fā)給終端的控制指令;httpWait為信號(hào)量。用信號(hào)量來實(shí)現(xiàn)網(wǎng)絡(luò)端口的互斥訪問。
    在系統(tǒng)中,網(wǎng)絡(luò)管理平臺(tái)控制多個(gè)嵌入式終端時(shí),通過網(wǎng)絡(luò)端口與每個(gè)終端進(jìn)行網(wǎng)絡(luò)連接通信。網(wǎng)絡(luò)端口是獨(dú)占性的端口,所以,選擇信號(hào)量機(jī)制對網(wǎng)絡(luò)端口的訪問進(jìn)行互斥鎖處理。

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


    消息的結(jié)構(gòu)體如下:
   
    在消息結(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號(hào)。
    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)用前景。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉