<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

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

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

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

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

嵌入式瀏覽器總體

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

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

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

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

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

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

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

車(chē)載局域網(wǎng)絡(luò )接口主要實(shí)現瀏覽器對汽車(chē)實(shí)時(shí)信息的獲取。瀏覽器和汽車(chē)網(wǎng)絡(luò )節點(diǎn)通信的方式有兩種:應答式通信和被動(dòng)式通信。

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

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

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

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

圖3 解析模塊算法流程圖

布局模塊的設計

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

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

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

文檔布局模塊負責將經(jīng)過(guò)解析器處理的標記語(yǔ)言文檔中元素在瀏覽器工作區中合適的位置顯示。頁(yè)面的布局分為以下3個(gè)步驟:

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

(2)調用標簽的布局函數。布局模塊通過(guò)綁定布局函數實(shí)現對布局函數的調用。綁定元素的布局函數是通過(guò)查找布局函數列表來(lái)實(shí)現的。布局函數列表是一張儲存標簽名字和對應標簽布局函數地址的二維表。布局模塊調用布局函數,將元素根據布局算法布局到虛擬的顯示數據結構中。如果標簽的名字不在標簽布局函數列表中,說(shuō)明標簽屬于擴展標記,將通過(guò)擴展標記函數顯示。

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

交互界面的設計

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

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

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

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

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

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

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

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

嵌入式瀏覽器在不同嵌入式硬件平臺上的應用

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

只要提供對應操作系統的硬件驅動(dòng),就可以在不同的硬件平臺上使用。

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

結語(yǔ)

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

參考文獻:
1. Extensible Markup Language (XML) 1.1 (Second Edition) [S] W3C Recommendation.16 August 2006
2. 彭新宇,姚振強.XML技術(shù)在嵌入式系統中的應用[J] .計算機應用研究.第8期:133-135
3. W3C XML Activity W3C Recommendation XML Information Set (Second Edition) [S] .W3C Recommendation 4 February 2004
4. 郭瑞杰,王斌,丁捷.基于表格驅動(dòng)的XML配置文件解析與生成技術(shù)[J] .計算機工程與應用.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操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>