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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式實時系統(tǒng)開發(fā)的軟硬件考慮和關(guān)鍵工藝

          嵌入式實時系統(tǒng)開發(fā)的軟硬件考慮和關(guān)鍵工藝

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

          隨著復(fù)雜度的提高,設(shè)計工程師在定義和分析初始要求時必須認(rèn)真的協(xié)同關(guān)系。通常設(shè)計工程師還必須權(quán)衡的靈活性、速度、成本、計劃和可用工具之間的關(guān)系。本文將描述系統(tǒng)和系統(tǒng)的特性,并探討在選擇或硬件和軟件組件的基礎(chǔ)上高效系統(tǒng)的解決方案,同時詳細(xì)說明嵌入式系統(tǒng)和系統(tǒng)所特有的技術(shù)。

          嵌入式系統(tǒng)通常是一個包含微處理器的特殊計算機(jī)系統(tǒng),是一個較大系統(tǒng)或設(shè)備的組成部分,它在很大程度上決定了設(shè)備的功能特性。許多具備數(shù)字接口的設(shè)備如微波設(shè)備、錄像機(jī)(VCR)和汽車等都會用到嵌入式系統(tǒng)。有些嵌入式系統(tǒng)需要使用操作系統(tǒng),有些則用單個程序?qū)崿F(xiàn)整個邏輯,但所有嵌入式系統(tǒng)提供的功能都要比通用計算系統(tǒng)更專業(yè)些。嵌入式系統(tǒng)功能包括:

          1. 監(jiān)視環(huán)境-從輸入傳感器讀取數(shù)據(jù),然后處理數(shù)據(jù)并顯示結(jié)果。

          2. 控制環(huán)境-產(chǎn)生并向激勵器發(fā)送命令。

          3. 轉(zhuǎn)換信息-轉(zhuǎn)換并處理收集到的數(shù)據(jù)。

          雖然通過傳感器和激勵器完成與外部世界的交互是嵌入式系統(tǒng)的重要特點,但這些嵌入式系統(tǒng)還提供適合它們所在設(shè)備的特殊功能。嵌入式系統(tǒng)一般用來執(zhí)行控制程序、有限狀態(tài)機(jī)和信號處理算法。這些系統(tǒng)還必須檢測內(nèi)部計算環(huán)境和周圍電磁系統(tǒng)中發(fā)生的故障并對此做出響應(yīng)。

          嵌入式系統(tǒng)特性

          嵌入式系統(tǒng)的設(shè)計挑戰(zhàn)是使嵌入式系統(tǒng)的獨特性能與設(shè)備的特殊約束條件相一致。以下是一些嵌入式系統(tǒng)的重要特性:

          1. 特殊應(yīng)用系統(tǒng)-嵌入式系統(tǒng)不同于通用處理器,它針對特殊應(yīng)用進(jìn)行了優(yōu)化。

          2. 反應(yīng)性系統(tǒng)-反應(yīng)性計算的意思是系統(tǒng)(主要是軟件部分)根據(jù)傳感器信息對環(huán)境作出響應(yīng),并利用激勵器控制環(huán)境,同時系統(tǒng)速度能與環(huán)境速度同步。

          3. 分布式-嵌入式系統(tǒng)的一般特征是多個通信進(jìn)程在多個通過通信鏈路鏈接的CPU或ASIC上運行。

          4. 異類性-不同的嵌入式系統(tǒng)一般具有不同的結(jié)構(gòu),以便在處理嚴(yán)格設(shè)計約束的嵌入式系統(tǒng)時能夠提供更好的設(shè)計便利性。

          5. 苛刻環(huán)境-許多嵌入式系統(tǒng)并不工作在受控的環(huán)境中,因此它們必須能夠經(jīng)受過熱、振動、沖擊、電源波動和其它惡劣的物理環(huán)境條件的考驗。

          6. 系統(tǒng)安全性和可靠性-由于嵌入式系統(tǒng)復(fù)雜度和運算量的不斷增長,需要更多地系統(tǒng)安全因素。

          7. 小型化、重量輕-為了達(dá)到便攜目的,許多嵌入式系統(tǒng)的重量必須設(shè)計得很輕。

          8. 成本敏感性-不同的嵌入式系統(tǒng)對成本的敏感性有很大的不同。

          實時系統(tǒng)的特性

          實時系統(tǒng)要求在外部環(huán)境指定的時間間隔內(nèi)對來自環(huán)境的激勵信號作出響應(yīng)(包括物理時間的過渡)。從輸入時間到輸出時間的延遲必須足夠小,以滿足可以接受的時間值。通常實時系統(tǒng)需要對環(huán)境作出連續(xù)及時的響應(yīng)。

          計算的正確性不僅依賴于結(jié)果,而且取決于輸出發(fā)生的時間。一個實時系統(tǒng)必須滿足有限響應(yīng)時間約束條件,否則會產(chǎn)生嚴(yán)重的后果。如果后果是性能的劣化而不是故障,那么這種系統(tǒng)可以看作是一個軟實時系統(tǒng)。如果后果是系統(tǒng)發(fā)生故障,那么這種系統(tǒng)就是一種硬實時系統(tǒng)。

          實時系統(tǒng)有反應(yīng)式和嵌入式兩種類型。反應(yīng)式實時系統(tǒng)會與環(huán)境發(fā)生連續(xù)的互作用,而嵌入式實時系統(tǒng)主要用于控制大型系統(tǒng)中安裝的特殊硬件。

          嵌入式系統(tǒng)開發(fā)生命周期

          許多系統(tǒng)設(shè)計工程師都會經(jīng)歷硬件/軟件協(xié)同設(shè)計的過程(圖1),此過程中硬件與軟件將同時進(jìn)行開發(fā)。理解硬件與軟件功能相互之間的關(guān)系及界限有助于確保設(shè)計要求得到完整正確的理解和實現(xiàn)。

          早在設(shè)計要求的定義與分析階段,系統(tǒng)開發(fā)人員就必須與設(shè)計工程師協(xié)同分配硬件或/和軟件方面的要求。這種分配的依據(jù)是早期系統(tǒng)仿真、原型設(shè)計和行為建模結(jié)果、工程師自己的經(jīng)驗以及上文提及的各種因素權(quán)衡結(jié)果(圖2)。一旦分配結(jié)束,就可以立即著手具體的設(shè)計和實現(xiàn)。實時系統(tǒng)開發(fā)中的并行設(shè)計會使用到各種分析技術(shù),包括:

          1. 硬件與軟件仿真;

          2. 硬件/軟件協(xié)同仿真;

          3. 可調(diào)度的建模技術(shù),如速率恒定分析;

          4. 原型設(shè)計和漸進(jìn)式開發(fā)。

          可以在各種抽象層次使用的仿真技術(shù)主要用于開展早期的性能評估。低層仿真可以用來為總線寬度和數(shù)據(jù)流程建模,這對性能評估是非常有用的。高層仿真可以滿足功能的交互,并促成硬件/軟件權(quán)衡研究及有效性設(shè)計。利用仿真可以將一個復(fù)雜的系統(tǒng)向下抽象成基礎(chǔ)組件和行為。仿真還助于解決功能性問題(數(shù)據(jù)與算法)、行為(進(jìn)程排序)或性能問題(資源利用、吞吐量和時序)。圖1:嵌入式設(shè)計生命周期。

          理解設(shè)計要求

          在作執(zhí)行任何類型的處理器評估時,首先要詳細(xì)理解用戶的功能和非功能性要求。功能性要求通常比較容易獲得,而非功能性要求較難定量測量。但對于實時系統(tǒng)來說,定義響應(yīng)時間這樣的要求是非常重要的。實時要求可以有以下幾種:

          1. 激勵-激勵(S-S):到系統(tǒng)去的兩個激勵之間的實時關(guān)系;

          2. 激勵-響應(yīng)(S-R):一個激勵與來自系統(tǒng)的一個后序響應(yīng)之間的實時關(guān)系;

          3. 響應(yīng)-激勵(R-S):一個響應(yīng)與到系統(tǒng)去的一個后序激勵之間的實時關(guān)系;

          4. 響應(yīng)-響應(yīng)(R-R):來自系統(tǒng)的兩個響應(yīng)之間的實時關(guān)系。

          S- R和R-R關(guān)系定義了對指定系統(tǒng)的時序要求。這種情況下所實現(xiàn)的功能必須足夠快(或足夠慢)才能滿足時序要求。S-S和R-S約束暗示系統(tǒng)必須能夠從環(huán)境 (可能是一個用戶或另外一個系統(tǒng))中檢測出特定時序約束的破壞。這些約束與功能的快慢沒有關(guān)系,相反它們能夠檢測出某些遭到破壞的時序約束并采取必要的措施。

          因此要從最初系統(tǒng)要求設(shè)計時就很好地理解這一點,因為S-R和R-R約束可以引導(dǎo)設(shè)計工程師進(jìn)行代碼優(yōu)化,而S-S和R-S約束需要用額外的軟件來檢測和響應(yīng)時序沖突。

          處理器選擇

          嵌入式實時系統(tǒng)比較適合用于系統(tǒng)優(yōu)化。由于這些系統(tǒng)主要用來解決范圍相對較窄的問題,因此硬件和軟件能夠得到最佳優(yōu)化,并很好地應(yīng)用于單一設(shè)備。這樣做的目的是要在最佳折衷狀態(tài)下開展系統(tǒng)設(shè)計。影響這一階段設(shè)計的主要因素是處理器的選擇、軟硬件的分割和總體系統(tǒng)集成。

          在為嵌入式實時系統(tǒng)選擇處理器時需要以下幾個方面:

          1. 性能:處理器必須有足夠的性能執(zhí)行任務(wù)和支持產(chǎn)品生命周期。

          2. 實現(xiàn):根據(jù)具體應(yīng)用情況,處理器可能需要被高度集成。在DSP應(yīng)用中可以有好幾種選擇,專用集成電路(ASIC)就是其中的一種。這些器件可以被用作 DSP協(xié)處理器,但對于許多通用信號處理來說顯得不夠靈活。另外可以選擇精簡指令集計算機(jī)(RISC)處理器。這些處理器的時鐘速度特別快,但可擴(kuò)展性不是很強(qiáng),而且會發(fā)生其它實時(可預(yù)測性)問題。現(xiàn)場可編程陣列(FPGA)是一種快速器件,能夠快速高效地完成某些DSP功能,但與DSP相比開發(fā)難度比較大,因為在DSP中一個簡單的程序就能完成相同的功能。如果是主信號處理應(yīng)用,則最好采用性能強(qiáng)大功耗也較大的通用處理器。如果需要快速升級信號處理應(yīng)用,采用DSP等可編程器件比定制的硬件方案要更好些。

          3. 工具支持:支持軟件創(chuàng)建、調(diào)試、系統(tǒng)集成、代碼調(diào)整和優(yōu)化工具對整體項目成功與否非常。

          4. 操作系統(tǒng)支持:嵌入式系統(tǒng)應(yīng)用需要使用有幫助的抽象來減少其復(fù)雜性。針對處理器系列產(chǎn)品作過優(yōu)化的商用操作系統(tǒng)(OS)能夠縮短設(shè)備開發(fā)周期和上市時間。

          5. 過去的經(jīng)驗:擁有處理器或處理器系列產(chǎn)品的開發(fā)經(jīng)驗可以減少可觀的學(xué)習(xí)新處理器、工具和技術(shù)的時間。

          6. 仿真支持:循環(huán)精確仿真對某些類型的應(yīng)用來說非常重要,特別是數(shù)字信號處理應(yīng)用中許多功能正確性驗證都是采用仿真技術(shù)完成的。嵌入式系統(tǒng)的軟硬件協(xié)同設(shè)計模型也促使處理器仿真器成為開發(fā)流程中一個非常有用的工具。

          7. 應(yīng)用支持:應(yīng)用支持有多種方式,從通過熱線或網(wǎng)站取得的應(yīng)用專家支持,到預(yù)打包的軟件和應(yīng)用框架,甚至完好的測試平臺。一些DSP處理器能夠提供外圍器件的驅(qū)動器、板級支持包和其它“啟動幫助組件”。有了這些軟件組件后,應(yīng)用開發(fā)師就無需再編寫器件驅(qū)動器等“無附加值”的軟件,相反,他們可以把精力放在具有附加值的功能開發(fā)上,使他們的產(chǎn)品能獨樹一幟。

          8. 成本:嵌入式應(yīng)用對成本特別敏感,而產(chǎn)品成本的稍許差別都可能導(dǎo)致市場的失敗。

          9. 功耗:市場上有許多依靠電池工作的便攜嵌入式實時系統(tǒng),此時電池壽命將成為系統(tǒng)的重要參數(shù)。這種情況下應(yīng)該考慮使用針對便攜式應(yīng)用優(yōu)化的低功耗器件。

          10. 傳統(tǒng)代碼:如果選中的處理器需要設(shè)計人員編寫與現(xiàn)存代碼的接口,將會導(dǎo)致整個設(shè)計流程的嚴(yán)重滯后。因此需要選擇一款代碼兼容的器件來避免或減少這一步驟造成的影響。

          11. 算法復(fù)雜性:某些處理器能夠非常高效地處理某類算法,因此最好選擇能夠與應(yīng)用最佳匹配的處理器。例如,具有許多控制代碼的有限狀態(tài)機(jī)應(yīng)用應(yīng)該映射為類似 ARM處理器的RISC器件。編碼、解碼和回波抵消等信號處理應(yīng)用應(yīng)該映射為數(shù)字信號處理器,或具有信號處理加速器的某種器件。

          12. 上市時間:項目的完成時間會加快處理器的選擇過程,這一過程與先前講述的幾個關(guān)鍵事項密切相關(guān),如OS的可用性、其它軟件組件以及便攜性問題。

          設(shè)計還是購買?圖2:概念開發(fā)和系統(tǒng)定義。(點擊放大圖)

          是自己設(shè)計還是購買成品呢?如果有可能不重新設(shè)計,價格也比較合理的話,購買要比自己開發(fā)更有利。由于嵌入式系統(tǒng)預(yù)算的縮減、實時操作系統(tǒng)(RTOS)和 TCP/IP堆棧等商用技術(shù)的改進(jìn)、嵌入式系統(tǒng)要求的擴(kuò)展,采用商業(yè)性現(xiàn)成(COTS)技術(shù)正變得越來越普遍。采用COTS技術(shù)能夠縮短開發(fā)周期中編碼、調(diào)試、單元測試和代碼檢查階段的時間。

          然而,作出購買而非設(shè)計的決定會改變一個組織的基礎(chǔ)開發(fā)流程。一個組織希望實現(xiàn)的新業(yè)務(wù)有:供應(yīng)商調(diào)研和評估、產(chǎn)品評估以及實時的供應(yīng)商交流與關(guān)系建立。產(chǎn)品開發(fā)的其它活動不會取消,但會作出一些改變。這些變化包括更關(guān)注如何將系統(tǒng)硬件與軟件更好地組合在一起,而不再把重點放在模塊自己內(nèi)部的運作上。另外必須更側(cè)重于兼容性、可配置性和可集成性等結(jié)構(gòu)上的問題。

          必須很好的理解和高效地管理由于決定采用“購買”而非“設(shè)計創(chuàng)建”方式所導(dǎo)致的結(jié)果。首先,自然是對供應(yīng)商提出產(chǎn)品要求、產(chǎn)品可靠性、計劃和產(chǎn)品文檔等依賴請求。這種情況下產(chǎn)品要求中的靈活性會打些折扣。購買商用產(chǎn)品意味著接受現(xiàn)有的產(chǎn)品要求,但這種要求也許不能完美地匹配自身產(chǎn)品的要求,這就需要設(shè)計人員把這種缺點與COTS技術(shù)提供的成本與上市時間優(yōu)勢作一個理智的權(quán)衡。

          因此重要的是最終用戶與技術(shù)人員必須參與COTS供應(yīng)商的選擇,考慮的重點要放在業(yè)務(wù)需求上而非技術(shù)本身。性價比分析所要考慮的因素應(yīng)包括易學(xué)性、易用性、供應(yīng)商名聲和長期穩(wěn)定性、許可方式和培訓(xùn)。所有與性能有關(guān)的聲明必須盡可能采用內(nèi)部或外部基準(zhǔn)或演示來到得有效性認(rèn)證。為了避免可能出現(xiàn)的偏差,評估標(biāo)準(zhǔn)應(yīng)該在收到供應(yīng)商建議前就制定好。選擇供應(yīng)商的主要工作包括研究和理解技術(shù)標(biāo)準(zhǔn)和相當(dāng)?shù)奈募?、采用類似建議請求(RFP)的標(biāo)準(zhǔn)模式征求供應(yīng)商的建議、對供應(yīng)商建議進(jìn)行評估和排序、選擇供應(yīng)商并簽署合同。

          除了評估技術(shù)外,還應(yīng)對供應(yīng)商本身進(jìn)行評審。要充分了解供應(yīng)商開業(yè)時間的長短、供應(yīng)商的背景和名聲、供應(yīng)商的其它用戶對它的評價和意見、供應(yīng)商人力資源的投入和對你的計劃或項目的支持情況,以及供應(yīng)商對你業(yè)務(wù)和要求的理解程度,甚至對未來項目的承諾。以前軟件團(tuán)隊認(rèn)為軟件開發(fā)方案遵循類似于創(chuàng)建架構(gòu)的特定模式。提供符合一般模式的抽象方法能夠使軟件團(tuán)隊定制符合他們特殊要求的方案,同時遵循被前人證明是高效和正確的模式。

          嵌入式系統(tǒng)供應(yīng)商已經(jīng)認(rèn)識到需要通過提供軟件組件和類似于設(shè)計模式的框架來加快軟件開發(fā)進(jìn)程。在DSP領(lǐng)域,供應(yīng)商向DSP設(shè)計工程師提供包括參考框架(RF) 在內(nèi)的上百個以DSP為核心的軟件組件用于產(chǎn)品和系統(tǒng)開發(fā)。設(shè)計完好的參考框架能夠在設(shè)備開發(fā)的早期階段讓設(shè)計人員快速入門。RF內(nèi)含方便易用并且適合多種應(yīng)用的源代碼。由此可以取消許多早期的低層設(shè)計決策,使開發(fā)人員能有更多的時間用在真正顯示產(chǎn)品特色的代碼開發(fā)上。設(shè)計人員可以選擇能夠最大程度滿足他們系統(tǒng)需要的專業(yè)RF,然后集成適配的算法(可以是其它供應(yīng)商出售的DSP COTS算法,或供應(yīng)商自己的算法)生成適合各種終端設(shè)備的特殊應(yīng)用,如寬帶、語音、視頻圖像、生物測量和無線設(shè)施。這些RF提供百分之百的C語言源碼,并且沒有版稅要求。RF源代碼可以從www.ti.com/downloadrfnow網(wǎng)站下載。

          軟件性能工程

          許多嵌入式實時系統(tǒng)必須滿足一系列性能目標(biāo)。一般來講,性能是一個軟件系統(tǒng)或組件對時間要求滿足程度的一種指示。這里的時間指標(biāo)可以用響應(yīng)時間和吞吐量來衡量,該時間值是指響應(yīng)某種要求所需的時間,而吞吐量用以指示系統(tǒng)在特定時間間隔內(nèi)能夠處理的請求數(shù)量??蓴U(kuò)展性是嵌入式實時系統(tǒng)的另外一個重要指標(biāo),可以用它來衡量系統(tǒng)要求提高時系統(tǒng)能夠繼續(xù)滿足響應(yīng)時間或吞吐量要求的能力。

          如果在整個開發(fā)生命周期內(nèi)得不到正確的性能管理,那么即使選擇了正確的處理器和軟件也是徒勞的。性能故障的后果是非常嚴(yán)重的,它可能損傷與客戶的關(guān)系,造成收入下降,甚至導(dǎo)致整個項目失敗。因此在整個生命周期內(nèi)需要隨時關(guān)注性能問題。性能管理可以被動或主動完成。被動方式需要采用一個較大的處理器解決性能問題,它只在系統(tǒng)完成構(gòu)架、設(shè)計和實現(xiàn)后處理性能問題,在解決問題前一直處于等待狀態(tài),直到實際需要測量的事件發(fā)生。主動方式是指整個生命周期內(nèi)一直在跟蹤和交流性能問題,同時開發(fā)用以識別性能劣化的進(jìn)程,并在性能處理中培養(yǎng)團(tuán)隊成員。

          本文小結(jié)

          顯然開發(fā)嵌入式實時系統(tǒng)是一個相當(dāng)復(fù)雜的過程,本文旨在啟發(fā)設(shè)計人員在分析初始要求時如何權(quán)衡硬件與軟件之間的關(guān)系,要時刻在系統(tǒng)靈活性、速度、成本、計劃和可用工具之間作出權(quán)衡,并充分考慮各個供應(yīng)商提供長期可靠支持的可能性。

          作者:Robert Oshana,工程經(jīng)理,德州儀器公司

          1、嵌入式系統(tǒng)設(shè)計問題(剩余章節(jié)),作者Phillip Koopman,http://www-2.cs.cmu.edu/~koopman/iccd96/ index.html

          2、在嵌入式系統(tǒng)設(shè)計第2頁圖1-1基礎(chǔ)上作的修改,、工具和技術(shù)介紹,作者:Arnold Berger, CMP2002。

          3、電子設(shè)計新聞(EDN)雜志,“速率恒定分析使實時系統(tǒng)按時完成”,1997年9月1日。

          4、選擇DSP處理器,Berkeley設(shè)計技術(shù),2000,http://www.bdti.com/articles/choose_2000. pdf 和嵌入式系統(tǒng)設(shè)計,、工具和技術(shù)介紹,作者:arnold Berger, CMP, 2002.

          5、(SEI COTS基礎(chǔ)啟動http://www.sei.cmu.edu/cbs/cbs_description.html)

          6、基于COTS的軟件開發(fā);工藝和開放問題,V.R.Basili et al www.research.umbc.edu/~cseaman/papers /jss2001 .pdf

          7、“設(shè)計模式:可復(fù)用的面向?qū)ο筌浖幕驹怼保髡撸篍. Gamma, R. Helm, R. Johnson, 和J. Vlissides

          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); })();