<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è) > 嵌入式系統 > 設計應用 > 嵌入式線(xiàn)控駕駛系統開(kāi)發(fā)過(guò)程中設計和測試考慮

嵌入式線(xiàn)控駕駛系統開(kāi)發(fā)過(guò)程中設計和測試考慮

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


1. 行為建模

模型用來(lái)為單個(gè)子系統(如線(xiàn)控駕駛)的各個(gè)方面規定需求和設計。

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

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

newmaker.com
圖2:用控制系統方框圖來(lái)表示反饋控制

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

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

2. 仿真與分析

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

圖4A和B*中對的建模與仿真,可以確定這些需求是相互沖突的還是有效的。仿真是一個(gè)核心驗證行為,它確??梢詫?shí)現一個(gè)系統來(lái)滿(mǎn)足這些需求。

newmaker.com
圖4:

3. 快速原型

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

快速原型對于克服這些缺陷非常有用,因為它用物理設備來(lái)代替設備模型。在線(xiàn)控駕駛的例子中,設備有可能是一輛汽車(chē),這時(shí)就使用一輛實(shí)際的汽車(chē)。不過(guò),因為系統并未建立起來(lái),一個(gè)實(shí)時(shí)或嵌入式平臺將負責運行控制器軟件并與設備進(jìn)行交互作用。

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

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

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

4. 模型測試

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

newmaker.com
圖5:故障模式效應分析用來(lái)確保線(xiàn)控駕駛的救生操作

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

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

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


評論


相關(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>