<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于車載網(wǎng)絡(luò)嵌入式瀏覽器的設(shè)計

          基于車載網(wǎng)絡(luò)嵌入式瀏覽器的設(shè)計

          作者: 時間:2007-09-20 來源:網(wǎng)絡(luò) 收藏

          摘要:本文在汽車復(fù)雜的分層結(jié)構(gòu)和多種協(xié)議并存的基礎(chǔ)上,提出一個以多層為應(yīng)用環(huán)境、以為中心的應(yīng)用模型,并詳細(xì)討論了一種該模型的網(wǎng)絡(luò)的和實現(xiàn)。
          關(guān)鍵詞:汽車網(wǎng)絡(luò);XML;;B/S模型;消息機制

          現(xiàn)在,車輛的控制向高精度、高安全性發(fā)展,汽車行業(yè)正走向智能化、網(wǎng)絡(luò)化。在此過程中,汽車網(wǎng)絡(luò)起著重要的作用,CAN總線和LIN總線就是重要的汽車網(wǎng)絡(luò)總線。

          但是,在汽車逐漸發(fā)展成為一個信息終端時,卻存在著網(wǎng)絡(luò)體系結(jié)構(gòu)滯后的情況,在互聯(lián)網(wǎng)絡(luò)普遍采用B/S(瀏覽器/服務(wù)器模式)三層網(wǎng)絡(luò)結(jié)構(gòu)的同時,網(wǎng)絡(luò)還處在簡單的C/S(客戶端/服務(wù)器模式)兩層網(wǎng)絡(luò)結(jié)構(gòu)的階段。針對汽車網(wǎng)絡(luò)標(biāo)準(zhǔn)不統(tǒng)一、接口混亂、管理困難、網(wǎng)絡(luò)體系滯后的狀況,可以引入當(dāng)前互聯(lián)網(wǎng)絡(luò)中廣泛使用的標(biāo)記語言(ML Markup Language)和B/S網(wǎng)絡(luò)結(jié)構(gòu)。標(biāo)記語言是一種跨平臺的信息交換方式,在汽車網(wǎng)絡(luò)中采用標(biāo)記語言,可以解決不同智能節(jié)點之間標(biāo)準(zhǔn)不統(tǒng)一、接口不同和跨層信息交換的問題。B/S網(wǎng)絡(luò)結(jié)構(gòu)可以很好地解決網(wǎng)絡(luò)節(jié)點信息處理能力不足的狀況,把大部分的信息處理通過網(wǎng)絡(luò)提交到處理能力強大的主設(shè)備,甚至通過互聯(lián)網(wǎng)絡(luò)連接到大型主機,而從設(shè)備僅僅需要通過瀏覽器軟件解析主機處理的結(jié)果。

          但是目前使用標(biāo)記語言和B/S網(wǎng)絡(luò)結(jié)構(gòu)最大的問題是缺乏針對車載網(wǎng)絡(luò)的瀏覽器系統(tǒng)。通用的瀏覽器使用HTML語言作為信息的載體,而HTML語言存在著內(nèi)容和顯示信息不分、描述結(jié)構(gòu)數(shù)據(jù)能力差等缺點。此外,通用的嵌入式瀏覽器對實時數(shù)據(jù)的處理和顯示的能力不足等,也是需要解決的問題。因此,一款面向多層汽車局域網(wǎng)絡(luò),針對車載網(wǎng)絡(luò)信息處理需要,使用可擴展標(biāo)記語言(XML)為信息載體,可以同時顯示汽車內(nèi)部實時信息和互聯(lián)網(wǎng)絡(luò)信息的專用嵌入式瀏覽器,具有非常重要的意義。

          嵌入式瀏覽器總體

          根據(jù)汽車網(wǎng)絡(luò)自身的特點、車載網(wǎng)絡(luò)瀏覽器的特殊要求,以及模塊內(nèi)高內(nèi)聚和模塊間低耦合的要求,將車載網(wǎng)絡(luò)瀏覽器的設(shè)計和實現(xiàn)劃分5個模塊,分別為擴展標(biāo)記語言模塊、網(wǎng)絡(luò)接入和信息緩存模塊、標(biāo)記語言解析模塊、布局模塊、用戶界面模塊。

          擴展標(biāo)記語言模塊主要根據(jù)車載網(wǎng)絡(luò)的特點,在保持與HTML語言兼容性的同時,使用XML技術(shù)對HTML語言進行擴展,定義一種車載網(wǎng)絡(luò)的標(biāo)記語言EXML,擴展標(biāo)記語言模塊以模塊的方式定義。網(wǎng)絡(luò)接口與緩沖模塊主要用于同時連接汽車局域網(wǎng)絡(luò)和互聯(lián)網(wǎng)絡(luò),以獲取汽車實時信息和廣泛的互聯(lián)網(wǎng)信息;文檔解析模塊是在車載網(wǎng)絡(luò)的嵌入式瀏覽器中使用的標(biāo)記語言,有兩種,分別為HTML和EXML,其中包括HTML語言的基本標(biāo)簽。因此,在語言解析模塊中使用同一個解析器,對兩種標(biāo)記語言進行解析,并將解析的結(jié)果存在內(nèi)存中;文檔布局模塊主要用于確定每個頁面元素的大小,頁面元素分為文本、圖像和圖形兩類,其中圖像和圖像的大小可以直接獲取,文本的大小則受標(biāo)簽和屬性的影響;用戶界面顯示模塊的作用是顯示用戶界面,其中包括:工作區(qū)、標(biāo)題欄、標(biāo)簽欄、實時標(biāo)簽顯示區(qū)等。他們之間的關(guān)系如圖1所示。

          基于車載網(wǎng)絡(luò)的嵌入式瀏覽器的模塊設(shè)計

          網(wǎng)絡(luò)接口設(shè)計

          網(wǎng)絡(luò)結(jié)構(gòu)模塊分為兩部分,即互聯(lián)網(wǎng)絡(luò)接口與實時網(wǎng)絡(luò)接口。

          互聯(lián)網(wǎng)絡(luò)接口主要負(fù)責(zé)互聯(lián)網(wǎng)絡(luò)接入功能。首先是通過網(wǎng)絡(luò)協(xié)議建立到服務(wù)器的連接,然后向服務(wù)器發(fā)送請求,服務(wù)器確認(rèn)請求,并負(fù)責(zé)把瀏覽器請求的文件通過網(wǎng)絡(luò)協(xié)議傳送給瀏覽器。具體的過程如圖2所示。

          圖2 互聯(lián)網(wǎng)絡(luò)接口的工作模型

          車載局域網(wǎng)絡(luò)接口主要實現(xiàn)瀏覽器對汽車實時信息的獲取。瀏覽器和汽車網(wǎng)絡(luò)節(jié)點通信的方式有兩種:應(yīng)答式通信和被動式通信。

          在應(yīng)答式通信過程中,車載網(wǎng)絡(luò)嵌入式瀏覽器對節(jié)點發(fā)送獲取某項參數(shù)的請求,網(wǎng)絡(luò)節(jié)點根據(jù)請求以EXML消息的形式發(fā)送實時信息。瀏覽器收到信息后通過解析模塊解析,更新數(shù)據(jù)并刷新顯示。
          在被動方式下,網(wǎng)絡(luò)節(jié)點按一定的時間周期發(fā)送包含實時信息的EXML消息,瀏覽器偵聽網(wǎng)絡(luò)節(jié)點發(fā)送來的信息。一旦有新消息傳來,瀏覽器就通知解析模塊更新數(shù)據(jù),并刷新顯示。EXML消息的格式如下:
          msg>信息類別>參數(shù)值信息類別>msg>
             
          解析模塊的設(shè)計

          文檔解析模塊是整個系統(tǒng)的基礎(chǔ)模塊。在基于車載網(wǎng)絡(luò)的嵌入式瀏覽器中,我們根據(jù)車載網(wǎng)絡(luò)的應(yīng)用實踐將HTML語言進行擴展,形成了EXML語言。EXML語言是XML語言在車載網(wǎng)絡(luò)系統(tǒng)中的一個應(yīng)用,所以對EXML語言的解析可以使用標(biāo)準(zhǔn)的XML語言解析技術(shù)。XML的解析方式又有兩種:基于事件驅(qū)動的解析方式(SAX方式)和基于樹的解析方式(DOM方式)。SAX技術(shù)在響應(yīng)事件的同時對標(biāo)記文本進行處理,并不保存中間數(shù)據(jù)結(jié)構(gòu)。DOM解析方式采用的是基于樹的解析方式,并使用XML Schema驗證。這種方式在解析完XML文檔后生成一個文檔樹,應(yīng)用程序可以遍歷、搜索、編輯該文檔樹。

          在實際的車載網(wǎng)絡(luò)中,嵌入式瀏覽器不僅僅需要對靜態(tài)的超文本信息進行瀏覽,還需要把下層節(jié)點發(fā)來的數(shù)據(jù)進行實時處理、顯示和保存。這就需要在內(nèi)存中保存一個完整的解析數(shù)據(jù)結(jié)構(gòu),以方便數(shù)據(jù)的實時更新和顯示。因此使用DOM解析技術(shù)更加符合車載網(wǎng)絡(luò)的應(yīng)用要求。

          在文檔解析中,遵循先外后內(nèi)、標(biāo)簽后屬性、先到先解析的順序。首先處理處于嵌套外層的標(biāo)簽,然后處理標(biāo)簽的屬性;對于同一層次的標(biāo)簽,先解析前面的。通過一個標(biāo)簽堆棧來獲得嵌套信息,對標(biāo)簽的父標(biāo)簽指針賦值。具體的解析算法如圖3所示。

          圖3 解析模塊算法流程圖

          布局模塊的設(shè)計

          HTML語言在對標(biāo)記的定義中包括兩類信息:數(shù)據(jù)信息和顯示信息,而在XML語言定義的標(biāo)記語言文檔是對信息的結(jié)構(gòu)化表示,并不包括顯示信息。在處理對XML語言的顯示中,可以使用CSS(Cascading Style Sheets)樣式單添加額外的顯示信息,或者通過xCBL將XML文檔轉(zhuǎn)換成HTML格式的文件,然后再交付給瀏覽器,由瀏覽器顯示轉(zhuǎn)換的結(jié)果。

          EXML語言也不包括顯示信息,不能決定頁面元素的顯示位置。通過CSS和XML定義顯示的方式會照成瀏覽器的高資源占用。因此,在嵌入式瀏覽器中采用主題文件定義每個頁面元素的顯示位置。

          頁面元素的布局分為動態(tài)布局和靜態(tài)布局兩種,因為HTML標(biāo)記包含顯示數(shù)據(jù),在解析HTML兼容標(biāo)記時采用動態(tài)布局算法,通過標(biāo)記的屬性和標(biāo)記本身來決定布局。在對其他標(biāo)簽布局時,根據(jù)顯示分辨率和使用習(xí)慣對元素的布局進行定義并儲存在主題文件中。瀏覽器在處理這些標(biāo)簽的布局時,首先讀取主題文件獲得布局信息,然后根據(jù)標(biāo)簽內(nèi)容進行布局。

          文檔布局模塊負(fù)責(zé)將經(jīng)過解析器處理的標(biāo)記語言文檔中元素在瀏覽器工作區(qū)中合適的位置顯示。頁面的布局分為以下3個步驟:

          (1)獲取頁面元素。頁面元素以EXML文檔中標(biāo)記的形式存儲,瀏覽器解析模塊通過對標(biāo)記語言的解析,將標(biāo)記中所包含的模塊化信息儲存在標(biāo)簽數(shù)據(jù)結(jié)構(gòu)中。布局模塊首先順次讀取標(biāo)簽信息。

          (2)調(diào)用標(biāo)簽的布局函數(shù)。布局模塊通過綁定布局函數(shù)實現(xiàn)對布局函數(shù)的調(diào)用。綁定元素的布局函數(shù)是通過查找布局函數(shù)列表來實現(xiàn)的。布局函數(shù)列表是一張儲存標(biāo)簽名字和對應(yīng)標(biāo)簽布局函數(shù)地址的二維表。布局模塊調(diào)用布局函數(shù),將元素根據(jù)布局算法布局到虛擬的顯示數(shù)據(jù)結(jié)構(gòu)中。如果標(biāo)簽的名字不在標(biāo)簽布局函數(shù)列表中,說明標(biāo)簽屬于擴展標(biāo)記,將通過擴展標(biāo)記函數(shù)顯示。

          (3)通過顯示窗口完成以布局標(biāo)記的顯示。由于嵌入式應(yīng)用中顯示屏的分辨率限制,有時候不能一次顯示所有的元素。布局模塊會根據(jù)顯示屏分辨率和頁面的大小決定顯示元素的數(shù)量。

          交互界面的設(shè)計

          交互界面也即瀏覽器界面模塊,主要負(fù)責(zé)瀏覽器的主框架顯示,提供標(biāo)簽瀏覽、主題顯示,以及處理與用戶的交互。

          針對不同的硬件平臺甚至相同硬件平臺不同尺寸的液晶屏,交互界面也要發(fā)生改變??梢浦残院涂膳渲眯砸彩乔度胧綖g覽器所必需的。

          為了適應(yīng)不同的硬件環(huán)境特別是不同分辨率的屏幕,在基于車載網(wǎng)絡(luò)的嵌入式瀏覽器設(shè)計過程中使用多主題,以實現(xiàn)可移植和可配置。主題方法是指使用配置文件對可視化系統(tǒng)中實現(xiàn)用戶交互界面進行圖形效果配置的一種方式?;谲囕d網(wǎng)絡(luò)的嵌入式瀏覽器的主題是對可配置主題方法的擴展,利用主題文件不僅僅可以配置界面的顏色樣式、顯示模式,還可以根據(jù)不同屏幕的分辨率,方便地調(diào)整界面元素的大小和布局。

          考慮到系統(tǒng)的可移植性、可配置性和系統(tǒng)的時間空間性能,基于車載網(wǎng)絡(luò)的嵌入式瀏覽器的圖形系統(tǒng)采用microwindows 嵌入式圖形系統(tǒng)。這是一個開放源碼嵌入式GUI軟件,目的是把現(xiàn)代圖形視窗環(huán)境引入到小型設(shè)備平臺上。
            
          雙層消息機制的設(shè)計

          由于車載網(wǎng)絡(luò)的復(fù)雜性,瀏覽器所要處理的信息不僅僅來源于互聯(lián)網(wǎng)絡(luò),還可以來自底層網(wǎng)絡(luò)通過網(wǎng)關(guān)傳來的實時消息。來自互聯(lián)網(wǎng)的信息往往是靜態(tài)的,根據(jù)用戶的要求進行更新,而來自底層網(wǎng)絡(luò)的實時消息是動態(tài)的,對實時性要求很高。使用單層的消息循環(huán)機制會造成實時信息不能及時顯示,或者交互消息占用大量的系統(tǒng)資源,因此,在瀏覽器中采用雙層消息機制。

          在雙層消息機制是通過消息分組來實現(xiàn)的。首先把消息分為實時消息和交互消息兩組,實時消息表示消息需要實時處理,交互消息表示非實時的交互消息。其中,實時消息按照不同的優(yōu)先級排列成為一組,系統(tǒng)自動處理優(yōu)先級較高的消息,延遲優(yōu)先級較低的消息。交互消息組的消息不分優(yōu)先級,系統(tǒng)在某一時刻首先檢查實時優(yōu)先級組消息結(jié)構(gòu)體數(shù)組是否有被占用的消息,如果有則選擇最高優(yōu)先級消息進行響應(yīng),響應(yīng)完畢清除實時消息占用標(biāo)志。如果為空則轉(zhuǎn)入交互消息循環(huán)。具體消息循環(huán)算法示意性代碼如下所示:
           Msgloop()
          {
          while (1){
          if (msg_select_hmsg()==-1)
          //沒有實時消息到來
          {
          GrSelectNextMSG();
          //獲取交互消息隊列中的下個消息
          switch()
          //根據(jù)交互消息類型選擇消息處理函數(shù)
          …….}
          else
          {
          *(Rtmsg_msgarr[msg_select_ hmsg()].func)();
          //選擇最高優(yōu)先級實時消息進行響應(yīng)。
          }
          }

          雙層消息循環(huán)結(jié)構(gòu)的實質(zhì)是將交互消息組作為優(yōu)先級最低的消息來處理。邏輯結(jié)構(gòu)和具體消息響應(yīng)如圖4所示。

          圖4 實時消息優(yōu)先級判斷流程圖

          嵌入式瀏覽器在不同嵌入式硬件平臺上的應(yīng)用

          像其他可移植軟件一樣,嵌入式瀏覽器的開發(fā)采用分層結(jié)構(gòu),根據(jù)不同的網(wǎng)絡(luò)環(huán)境預(yù)留了標(biāo)準(zhǔn)接口,并使用標(biāo)準(zhǔn)C語言編寫。因此,瀏覽器具可以很好地適應(yīng)日益復(fù)雜的車載網(wǎng)絡(luò)環(huán)境。

          只要提供對應(yīng)操作系統(tǒng)的硬件驅(qū)動,就可以在不同的硬件平臺上使用。

          表1是通過測試的嵌入式瀏覽器所支持的操作系統(tǒng)和編譯器列表。

          結(jié)語

          基于車載網(wǎng)絡(luò)的嵌入式瀏覽器研發(fā)主要成果是設(shè)計和實現(xiàn)了一款面向多層汽車局域網(wǎng)絡(luò),針對于車載網(wǎng)絡(luò)信息處理需要,使用XML為信息載體,可以同時顯示汽車內(nèi)部實時信息和互聯(lián)網(wǎng)絡(luò)信息的專用嵌入式瀏覽器。該瀏覽器可以同時顯示汽車內(nèi)部實時信息和互聯(lián)網(wǎng)絡(luò)信息,通用性好,能夠運行于不同的硬件平臺?!?/P>

          參考文獻(xiàn):
          1. Extensible Markup Language (XML) 1.1 (Second Edition) [S] W3C Recommendation.16 August 2006
          2. 彭新宇,姚振強.XML技術(shù)在嵌入式系統(tǒng)中的應(yīng)用[J] .計算機應(yīng)用研究.第8期:133-135
          3. W3C XML Activity W3C Recommendation XML Information Set (Second Edition) [S] .W3C Recommendation 4 February 2004
          4. 郭瑞杰,王斌,丁捷.基于表格驅(qū)動的XML配置文件解析與生成技術(shù)[J] .計算機工程與應(yīng)用.2006年09:90-92
          5. Lee J. White, Regression Testing of GUI Event Interactions, IEEE 1996
          6. Lan Ye, Yong Luo, Motoyasu Nagata.XML Based Message Queuing[J] . IEEE 2005
          7. T. Nolte, M. Nolin, and H. Hansson. Server-Based Real-TimeScheduling of the CAN Bus, in Proc. 11th IFAC Symp. InformationControl Problems in Manufacturing (INCOM’04), Salvador, Brazil,Apr. 2004.

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();