新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式線控駕駛系統(tǒng)開發(fā)過程中設(shè)計(jì)和測(cè)試考慮

嵌入式線控駕駛系統(tǒng)開發(fā)過程中設(shè)計(jì)和測(cè)試考慮

作者: 時(shí)間:2013-11-12 來源:網(wǎng)絡(luò) 收藏


1. 行為建模

模型用來為單個(gè)子系統(tǒng)(如線控駕駛)的各個(gè)方面規(guī)定需求和設(shè)計(jì)。

一個(gè)典型的系統(tǒng)包括:

* 輸入(如方向盤傳感器)
* 控制器或DSP模型
* 設(shè)備模型(直流馬達(dá)、齒條和小齒輪、車輪)
* 輸出(方向的改變)

newmaker.com
圖2:用控制系統(tǒng)方框圖來表示反饋控制

在圖2和圖3中,通過使用控制系統(tǒng)方框圖來表示反饋控制、使用狀態(tài)圖來表示離散事件和條件邏輯,以及使用DSP模塊來表示濾波器,可以創(chuàng)建一個(gè)系統(tǒng)模型來表示所需的行為特性。

newmaker.com
圖3:創(chuàng)建一個(gè)系統(tǒng)模型來表示所需的行為特性

2. 仿真與分析

然后,通過使用基于時(shí)間或基于事件的仿真以及頻域分析等方法,可以執(zhí)行和分析模型,以確保其滿足需求。例如,一個(gè)必須對(duì)傳感器故障進(jìn)行響應(yīng),并“將高頻響應(yīng)衰減到3db以下,同時(shí)指令傳輸速率不能低于1.5Mbps”。

圖4A和B*中對(duì)的建模與仿真,可以確定這些需求是相互沖突的還是有效的。仿真是一個(gè)核心驗(yàn)證行為,它確保可以實(shí)現(xiàn)一個(gè)系統(tǒng)來滿足這些需求。

newmaker.com
圖4:

3. 快速原型

要在產(chǎn)品的芯片上實(shí)現(xiàn)一個(gè)可以工作的解決方案,設(shè)備模型還不夠精確,處理能力也不滿足要求,因此建模本身并不能提供完整的解決方案。

快速原型對(duì)于克服這些缺陷非常有用,因?yàn)樗梦锢碓O(shè)備來代替設(shè)備模型。在線控駕駛的例子中,設(shè)備有可能是一輛汽車,這時(shí)就使用一輛實(shí)際的汽車。不過,因?yàn)橄到y(tǒng)并未建立起來,一個(gè)實(shí)時(shí)或嵌入式平臺(tái)將負(fù)責(zé)運(yùn)行控制器軟件并與設(shè)備進(jìn)行交互作用。

有兩種形式的快速原型:功能性快速原型和目標(biāo)性快速原型。功能性原型使用一臺(tái)功能強(qiáng)大的實(shí)時(shí)計(jì)算機(jī),如多處理器浮點(diǎn)PowerPC或DSP系統(tǒng),目的在于確定系統(tǒng)對(duì)物理汽車的控制是否如對(duì)模型汽車的控制一樣好。如果真的是這樣,則設(shè)備模型的不精確性就顯得無關(guān)緊要,并且控制策略也得到了驗(yàn)證。

目標(biāo)性快速原型在相同或相似的產(chǎn)品MCU或DSP,而不是高端PowerPC內(nèi)核或其他專用高端快速原型硬件中執(zhí)行軟件。目的是將代碼下載到實(shí)際產(chǎn)品目標(biāo)之中,以便用物理設(shè)備進(jìn)行快速測(cè)試。如果執(zhí)行良好,則控制器不僅看似有效,而且可以在產(chǎn)品中加以實(shí)現(xiàn)。

軟件設(shè)計(jì)行為包括定點(diǎn)數(shù)據(jù)規(guī)范、實(shí)時(shí)任務(wù)、數(shù)據(jù)輸入、內(nèi)建測(cè)試和診斷。通過基于模型的設(shè)計(jì),用于算法規(guī)范和驗(yàn)證的同一模型被軟件工程師加以改進(jìn)和約束,作為產(chǎn)品代碼生成過程的一部分。

4. 模型測(cè)試

與將模型部署到硬件上去編譯和集成相比,在桌面計(jì)算機(jī)上測(cè)試模型具有更大的優(yōu)勢(shì)?;谠创a的測(cè)試已經(jīng)存在許多年了,但是最近的方法允許進(jìn)行模型測(cè)試和結(jié)構(gòu)覆蓋。使用的場景假定是開發(fā)人員對(duì)控制器施加滿負(fù)荷壓力,以便用仿真和覆蓋來驗(yàn)證其設(shè)計(jì)完備性。另一種測(cè)試類型是故障模式效應(yīng)分析(Failure Mode Effect Analysis),用來確保故障情況下線控駕駛的救生操作,參見圖5*。

newmaker.com
圖5:故障模式效應(yīng)分析用來確保線控駕駛的救生操作

設(shè)計(jì)完備性不佳的例子是數(shù)值溢出和死碼(dead code)。使用最小或最大數(shù)值的模型壓力測(cè)試可以確保不發(fā)生溢出情況。使用仿真很容易進(jìn)行這種測(cè)試,但死碼就沒有這么容易檢測(cè)出來了,因?yàn)闄z測(cè)需要結(jié)構(gòu)覆蓋。死碼與失效代碼不同,其區(qū)別在于后者是開發(fā)人員已知,并且出于某種原因而使其失效的。實(shí)際情況中的死碼意味著在確定規(guī)范期間遺漏了什么。

模型覆蓋用來評(píng)估一個(gè)測(cè)試件的累積結(jié)果,以確定哪些功能模塊未被執(zhí)行,或者哪些狀態(tài)未被到達(dá)。源代碼語言(如C和C++)中建立了某些類型的覆蓋,但現(xiàn)在模型也可以進(jìn)行覆蓋了。這項(xiàng)工作要求C語言所不需要(或不可能有)的新理論和新工具,因?yàn)檫@些語言沒有功能模塊或狀態(tài)這樣的構(gòu)造。

修改條件/決策覆蓋(MC/DC)被FAA(美國聯(lián)邦航空管理局)認(rèn)為是滿足安全關(guān)鍵系統(tǒng)所必需的最嚴(yán)格的覆蓋水平?,F(xiàn)在,這種覆蓋在一種基于模型的設(shè)計(jì)框架和許多需要線控設(shè)計(jì)的場合中已經(jīng)得到了實(shí)現(xiàn)。


評(píng)論


相關(guān)推薦

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

關(guān)閉