電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 2002|回復(fù): 0
收起左側(cè)

嵌入式硬件培訓(xùn)視頻_基于車載網(wǎng)絡(luò)嵌入式瀏覽器的設(shè)計

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-7-31 15:23:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
嵌入式硬件培訓(xùn)視頻_基于車載網(wǎng)絡(luò)嵌入式瀏覽器的設(shè)計,   


  

本文在汽車網(wǎng)絡(luò)復(fù)雜的分層結(jié)構(gòu)和多種網(wǎng)絡(luò)協(xié)議并存的基礎(chǔ)上,提出一個以車載多層網(wǎng)絡(luò)為應(yīng)用環(huán)境、以瀏覽器為中心的應(yīng)用模型,并詳細(xì)討論了一種基于該模型的車載網(wǎng)絡(luò)的嵌入式瀏覽器設(shè)計和實現(xiàn)。

現(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ò)提交到處理能力強(qiáng)大的主設(shè)備,甚至通過互聯(lián)網(wǎng)絡(luò)連接到大型主機(jī),而從設(shè)備僅僅需要通過瀏覽器軟件解析主機(jī)處理的結(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ù)的處理和顯示的能力不足等,也是需要解決的問題。因此,設(shè)計一款面向多層汽車局域網(wǎng)絡(luò),針對車載網(wǎng)絡(luò)信息處理需要,使用可擴(kuò)展標(biāo)記語言(XML)為信息載體,可以同時顯示汽車內(nèi)部實時信息和互聯(lián)網(wǎng)絡(luò)信息的專用嵌入式瀏覽器,具有非常重要的意義。

嵌入式瀏覽器總體設(shè)計

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

擴(kuò)展標(biāo)記語言模塊主要根據(jù)車載網(wǎng)絡(luò)的特點,在保持與HTML語言兼容性的同時,使用XML技術(shù)對HTML語言進(jìn)行擴(kuò)展,定義一種基于車載網(wǎng)絡(luò)的標(biāo)記語言EXML,擴(kuò)展標(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)記語言進(jìn)行解析,并將解析的結(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語言進(jìn)行擴(kuò)展,形成了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)記文本進(jìn)行處理,并不保存中間數(shù)據(jù)結(jié)構(gòu)。DOM解析方式采用的是基于樹的解析方式,并使用XML Schema驗證。這種方式在解析完XML文檔后生成一個文檔樹,應(yīng)用程序可以遍歷、搜索、編輯該文檔樹。

在實際的車載網(wǎng)絡(luò)中,嵌入式瀏覽器不僅僅需要對靜態(tài)的超文本信息進(jìn)行瀏覽,還需要把下層節(jié)點發(fā)來的數(shù)據(jù)進(jìn)行實時處理、顯示和保存。這就需要在內(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 解析模塊算法流程圖做qt嵌入式開發(fā), 嵌入式電視做法, 軟考嵌入式是啥等級, 大學(xué)嵌入式坑, 嵌入式軟件是it, 嵌入式內(nèi)存泄露檢測, 銀行嵌入式服務(wù), 嵌入式冷庫機(jī), 嵌入式控制畢業(yè)設(shè)計, A9多核嵌入式, 嵌入式的應(yīng)用場合, 嵌入式硬件技術(shù)面試, 手機(jī)嵌入式模塊, 嵌入式助理工程面試, 青島培訓(xùn)嵌入式, 嵌入式粵嵌電子相冊, 嵌入式技能大賽題目, 嵌入式系統(tǒng)調(diào)試接口, 公開課嵌入式, 嵌入式實訓(xùn)項目, 計算機(jī)嵌入式專業(yè)課程,

布局模塊的設(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í)慣對元素的布局進(jìn)行定義并儲存在主題文件中。瀏覽器在處理這些標(biāo)簽的布局時,首先讀取主題文件獲得布局信息,然后根據(jù)標(biāo)簽內(nèi)容進(jìn)行布局。

文檔布局模塊負(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)簽屬于擴(kuò)展標(biāo)記,將通過擴(kuò)展標(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)用戶交互界面進(jìn)行圖形效果配置的一種方式。基于車載網(wǎng)絡(luò)的嵌入式瀏覽器的主題是對可配置主題方法的擴(kuò)展,利用主題文件不僅僅可以配置界面的顏色樣式、顯示模式,還可以根據(jù)不同屏幕的分辨率,方便地調(diào)整界面元素的大小和布局。

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

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

在雙層消息機(jī)制是通過消息分組來實現(xiàn)的。首先把消息分為實時消息和交互消息兩組,實時消息表示消息需要實時處理,交互消息表示非實時的交互消息。其中,實時消息按照不同的優(yōu)先級排列成為一組,系統(tǒng)自動處理優(yōu)先級較高的消息,延遲優(yōu)先級較低的消息。交互消息組的消息不分優(yōu)先級,系統(tǒng)在某一時刻首先檢查實時優(yōu)先級組消息結(jié)構(gòu)體數(shù)組是否有被占用的消息,如果有則選擇最高優(yōu)先級消息進(jìn)行響應(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)先級實時消息進(jìn)行響應(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ò)信息,通用性好,能夠運(yùn)行于不同的硬件平臺。

參考文獻(xiàn):
1. Extensible Markup Language (XML) 1.1 (Second Edition) [S] W3C Recommendation.16 August 2006
2. 彭新宇,姚振強(qiáng).XML技術(shù)在嵌入式系統(tǒng)中的應(yīng)用[J] .計算機(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] .計算機(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.本文來源:電子設(shè)計應(yīng)用 作者:重慶郵電大學(xué)汽車電子與嵌入式系統(tǒng)研究所 馮輝宗
回復(fù)

使用道具 舉報

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表