嵌入式實時系統(tǒng)開發(fā)的軟硬件考慮和關鍵工藝
隨著嵌入式實時系統(tǒng)復雜度的提高,設計工程師在定義和分析系統(tǒng)初始要求時必須認真考慮軟硬件的協(xié)同關系。通常設計工程師還必須權衡系統(tǒng)的靈活性、速度、成本、計劃和可用工具之間的關系。本文將描述嵌入式系統(tǒng)和實時系統(tǒng)的關鍵特性,并探討在選擇或開發(fā)硬件和軟件組件的基礎上開發(fā)高效嵌入式系統(tǒng)的解決方案,同時詳細說明嵌入式系統(tǒng)和實時系統(tǒng)開發(fā)所特有的關鍵工藝技術。
嵌入式系統(tǒng)通常是一個包含微處理器的特殊計算機系統(tǒng),是一個較大系統(tǒng)或設備的組成部分,它在很大程度上決定了設備的功能特性。許多具備數(shù)字接口的設備如微波設備、錄像機(VCR)和汽車等都會用到嵌入式系統(tǒng)。有些嵌入式系統(tǒng)需要使用操作系統(tǒng),有些則用單個程序實現(xiàn)整個邏輯,但所有嵌入式系統(tǒng)提供的功能都要比通用計算系統(tǒng)更專業(yè)些。嵌入式系統(tǒng)功能包括:
1. 監(jiān)視環(huán)境-從輸入傳感器讀取數(shù)據(jù),然后處理數(shù)據(jù)并顯示結果。
2. 控制環(huán)境-產(chǎn)生并向激勵器發(fā)送命令。
3. 轉換信息-轉換并處理收集到的數(shù)據(jù)。
雖然通過傳感器和激勵器完成與外部世界的交互是嵌入式系統(tǒng)的重要特點,但這些嵌入式系統(tǒng)還提供適合它們所在設備的特殊功能。嵌入式系統(tǒng)一般用來執(zhí)行控制程序、有限狀態(tài)機和信號處理算法。這些系統(tǒng)還必須檢測內(nèi)部計算環(huán)境和周圍電磁系統(tǒng)中發(fā)生的故障并對此做出響應。
嵌入式系統(tǒng)特性
嵌入式系統(tǒng)的設計挑戰(zhàn)是使嵌入式系統(tǒng)的獨特性能與設備的特殊約束條件相一致。以下是一些嵌入式系統(tǒng)的重要特性:
1. 特殊應用系統(tǒng)-嵌入式系統(tǒng)不同于通用處理器,它針對特殊應用進行了優(yōu)化。
2. 反應性系統(tǒng)-反應性計算的意思是系統(tǒng)(主要是軟件部分)根據(jù)傳感器信息對環(huán)境作出響應,并利用激勵器控制環(huán)境,同時系統(tǒng)速度能與環(huán)境速度同步。
3. 分布式-嵌入式系統(tǒng)的一般特征是多個通信進程在多個通過通信鏈路鏈接的CPU或ASIC上運行。
4. 異類性-不同的嵌入式系統(tǒng)一般具有不同的結構,以便在處理嚴格設計約束的嵌入式系統(tǒng)時能夠提供更好的設計便利性。
5. 苛刻環(huán)境-許多嵌入式系統(tǒng)并不工作在受控的環(huán)境中,因此它們必須能夠經(jīng)受過熱、振動、沖擊、電源波動和其它惡劣的物理環(huán)境條件的考驗。
6. 系統(tǒng)安全性和可靠性-由于嵌入式系統(tǒng)復雜度和運算量的不斷增長,需要更多地考慮系統(tǒng)安全因素。
7. 小型化、重量輕-為了達到便攜目的,許多嵌入式系統(tǒng)的重量必須設計得很輕。
8. 成本敏感性-不同的嵌入式系統(tǒng)對成本的敏感性有很大的不同。
實時系統(tǒng)的特性
實時系統(tǒng)要求在外部環(huán)境指定的時間間隔內(nèi)對來自環(huán)境的激勵信號作出響應(包括物理時間的過渡)。從輸入時間到輸出時間的延遲必須足夠小,以滿足可以接受的時間值。通常實時系統(tǒng)需要對環(huán)境作出連續(xù)及時的響應。
計算的正確性不僅依賴于結果,而且取決于輸出發(fā)生的時間。一個實時系統(tǒng)必須滿足有限響應時間約束條件,否則會產(chǎn)生嚴重的后果。如果后果是性能的劣化而不是故障,那么這種系統(tǒng)可以看作是一個軟實時系統(tǒng)。如果后果是系統(tǒng)發(fā)生故障,那么這種系統(tǒng)就是一種硬實時系統(tǒng)。
實時系統(tǒng)有反應式和嵌入式兩種類型。反應式實時系統(tǒng)會與環(huán)境發(fā)生連續(xù)的互作用,而嵌入式實時系統(tǒng)主要用于控制大型系統(tǒng)中安裝的特殊硬件。
嵌入式系統(tǒng)開發(fā)生命周期
許多系統(tǒng)設計工程師都會經(jīng)歷硬件/軟件協(xié)同設計的過程(圖1),此過程中硬件與軟件將同時進行開發(fā)。理解硬件與軟件功能相互之間的關系及界限有助于確保設計要求得到完整正確的理解和實現(xiàn)。
早在設計要求的定義與分析階段,系統(tǒng)開發(fā)人員就必須與設計工程師協(xié)同分配硬件或/和軟件方面的要求。這種分配的依據(jù)是早期系統(tǒng)仿真、原型設計和行為建模結果、工程師自己的經(jīng)驗以及上文提及的各種因素權衡結果(圖2)。一旦分配結束,就可以立即著手具體的設計和實現(xiàn)。實時系統(tǒng)開發(fā)中軟硬件的并行設計會使用到各種分析技術,包括:
1. 硬件與軟件仿真;
2. 硬件/軟件協(xié)同仿真;
3. 可調度的建模技術,如速率恒定分析;
4. 原型設計和漸進式開發(fā)。
可以在各種抽象層次使用的仿真技術主要用于開展早期的性能評估。低層仿真可以用來為總線寬度和數(shù)據(jù)流程建模,這對性能評估是非常有用的。高層仿真可以滿足功能的交互,并促成硬件/軟件權衡研究及有效性設計。利用仿真可以將一個復雜的系統(tǒng)向下抽象成基礎組件和行為。仿真還助于解決功能性問題(數(shù)據(jù)與算法)、行為(進程排序)或性能問題(資源利用、吞吐量和時序)。
理解設計要求
在作執(zhí)行任何類型的處理器評估時,首先要詳細理解用戶的功能和非功能性要求。功能性要求通常比較容易獲得,而非功能性要求較難定量測量。但對于實時系統(tǒng)來說,定義響應時間這樣的要求是非常重要的。實時要求可以有以下幾種:
1. 激勵-激勵(S-S):到系統(tǒng)去的兩個激勵之間的實時關系;
2. 激勵-響應(S-R):一個激勵與來自系統(tǒng)的一個后序響應之間的實時關系;
3. 響應-激勵(R-S):一個響應與到系統(tǒng)去的一個后序激勵之間的實時關系;
4. 響應-響應(R-R):來自系統(tǒng)的兩個響應之間的實時關系。
S- R和R-R關系定義了對指定系統(tǒng)的時序要求。這種情況下所實現(xiàn)的功能必須足夠快(或足夠慢)才能滿足時序要求。S-S和R-S約束暗示系統(tǒng)必須能夠從環(huán)境 (可能是一個用戶或另外一個系統(tǒng))中檢測出特定時序約束的破壞。這些約束與功能的快慢沒有關系,相反它們能夠檢測出某些遭到破壞的時序約束并采取必要的措施。
因此要從最初系統(tǒng)要求設計時就很好地理解這一點,因為S-R和R-R約束可以引導設計工程師進行代碼優(yōu)化,而S-S和R-S約束需要用額外的軟件來檢測和響應時序沖突。
處理器選擇
嵌入式實時系統(tǒng)比較適合用于系統(tǒng)優(yōu)化。由于這些系統(tǒng)主要用來解決范圍相對較窄的問題,因此硬件和軟件能夠得到最佳優(yōu)化,并很好地應用于單一設備。這樣做的目的是要在軟硬件最佳折衷狀態(tài)下開展系統(tǒng)設計。影響這一階段設計的主要因素是處理器的選擇、軟硬件的分割和總體系統(tǒng)集成。
在為嵌入式實時系統(tǒng)選擇處理器時需要考慮以下幾個方面:
1. 性能:處理器必須有足夠的性能執(zhí)行任務和支持產(chǎn)品生命周期。
2. 實現(xiàn):根據(jù)具體應用情況,處理器可能需要被高度集成。在DSP應用中可以有好幾種選擇,專用集成電路(ASIC)就是其中的一種。這些器件可以被用作 DSP協(xié)處理器,但對于許多通用信號處理來說顯得不夠靈活。另外可以選擇精簡指令集計算機(RISC)處理器。這些處理器的時鐘速度特別快,但可擴展性不是很強,而且會發(fā)生其它實時(可預測性)問題。現(xiàn)場可編程陣列(FPGA)是一種快速器件,能夠快速高效地完成某些DSP功能,但與DSP相比開發(fā)難度比較大,因為在DSP中一個簡單的程序就能完成相同的功能。如果是主信號處理應用,則最好采用性能強大功耗也較大的通用處理器。如果需要快速升級信號處理應用,采用DSP等可編程器件比定制的硬件方案要更好些。
3. 工具支持:支持軟件創(chuàng)建、調試、系統(tǒng)集成、代碼調整和優(yōu)化工具對整體項目成功與否非常關鍵。
4. 操作系統(tǒng)支持:嵌入式系統(tǒng)應用需要使用有幫助的抽象來減少其復雜性。針對處理器系列產(chǎn)品作過優(yōu)化的商用操作系統(tǒng)(OS)能夠縮短設備開發(fā)周期和上市時間。
5. 過去的經(jīng)驗:擁有處理器或處理器系列產(chǎn)品的開發(fā)經(jīng)驗可以減少可觀的學習新處理器、工具和技術的時間。
6. 仿真支持:循環(huán)精確仿真對某些類型的應用來說非常重要,特別是數(shù)字信號處理應用中許多功能正確性驗證都是采用仿真技術完成的。嵌入式系統(tǒng)的軟硬件協(xié)同設計模型也促使處理器仿真器成為開發(fā)流程中一個非常有用的工具。
7. 應用支持:應用支持有多種方式,從通過熱線或網(wǎng)站取得的應用專家支持,到預打包的軟件和應用框架,甚至完好的測試平臺。一些DSP處理器能夠提供外圍器件的驅動器、板級支持包和其它“啟動幫助組件”。有了這些軟件組件后,應用開發(fā)師就無需再編寫器件驅動器等“無附加值”的軟件,相反,他們可以把精力放在具有附加值的功能開發(fā)上,使他們的產(chǎn)品能獨樹一幟。
8. 成本:嵌入式應用對成本特別敏感,而產(chǎn)品成本的稍許差別都可能導致市場的失敗。
9. 功耗:市場上有許多依靠電池工作的便攜嵌入式實時系統(tǒng),此時電池壽命將成為系統(tǒng)的重要參數(shù)。這種情況下應該考慮使用針對便攜式應用優(yōu)化的低功耗器件。
10. 傳統(tǒng)代碼:如果選中的處理器需要設計人員編寫與現(xiàn)存代碼的接口,將會導致整個設計流程的嚴重滯后。因此需要選擇一款代碼兼容的器件來避免或減少這一步驟造成的影響。
11. 算法復雜性:某些處理器能夠非常高效地處理某類算法,因此最好選擇能夠與應用最佳匹配的處理器。例如,具有許多控制代碼的有限狀態(tài)機應用應該映射為類似 ARM處理器的RISC器件。編碼、解碼和回波抵消等信號處理應用應該映射為數(shù)字信號處理器,或具有信號處理加速器的某種器件。
12. 上市時間:項目的完成時間會加快處理器的選擇過程,這一過程與先前講述的幾個關鍵事項密切相關,如OS的可用性、其它軟件組件以及便攜性問題。
設計還是購買?
是自己設計還是購買成品呢?如果有可能不重新設計,價格也比較合理的話,購買要比自己開發(fā)更有利。由于嵌入式系統(tǒng)預算的縮減、實時操作系統(tǒng)(RTOS)和 TCP/IP堆棧等商用技術的改進、嵌入式系統(tǒng)要求的擴展,采用商業(yè)性現(xiàn)成(COTS)技術正變得越來越普遍。采用COTS技術能夠縮短開發(fā)周期中編碼、調試、單元測試和代碼檢查階段的時間。
然而,作出購買而非設計的決定會改變一個組織的基礎開發(fā)流程。一個組織希望實現(xiàn)的新業(yè)務有:供應商調研和評估、產(chǎn)品評估以及實時的供應商交流與關系建立。產(chǎn)品開發(fā)的其它活動不會取消,但會作出一些改變。這些變化包括更關注如何將系統(tǒng)硬件與軟件更好地組合在一起,而不再把重點放在模塊自己內(nèi)部的運作上。另外必須更側重于兼容性、可配置性和可集成性等結構上的問題。
必須很好的理解和高效地管理由于決定采用“購買”而非“設計創(chuàng)建”方式所導致的結果。首先,自然是對供應商提出產(chǎn)品要求、產(chǎn)品可靠性、計劃和產(chǎn)品文檔等依賴請求。這種情況下產(chǎn)品要求中的靈活性會打些折扣。購買商用產(chǎn)品意味著接受現(xiàn)有的產(chǎn)品要求,但這種要求也許不能完美地匹配自身產(chǎn)品的要求,這就需要設計人員把這種缺點與COTS技術提供的成本與上市時間優(yōu)勢作一個理智的權衡。
因此重要的是最終用戶與技術人員必須參與COTS供應商的選擇,考慮的重點要放在業(yè)務需求上而非技術本身。性價比分析所要考慮的因素應包括易學性、易用性、供應商名聲和長期穩(wěn)定性、許可方式和培訓。所有與性能有關的聲明必須盡可能采用內(nèi)部或外部基準或演示來到得有效性認證。為了避免可能出現(xiàn)的偏差,評估標準應該在收到供應商建議前就制定好。選擇供應商的主要工作包括研究和理解技術標準和相當?shù)奈募⒉捎妙愃平ㄗh請求(RFP)的標準模式征求供應商的建議、對供應商建議進行評估和排序、選擇供應商并簽署合同。
除了評估技術外,還應對供應商本身進行評審。要充分了解供應商開業(yè)時間的長短、供應商的背景和名聲、供應商的其它用戶對它的評價和意見、供應商人力資源的投入和對你的計劃或項目的支持情況,以及供應商對你業(yè)務和要求的理解程度,甚至對未來項目的承諾。以前軟件團隊認為軟件開發(fā)方案遵循類似于創(chuàng)建架構的特定模式。提供符合一般模式的抽象方法能夠使軟件團隊定制符合他們特殊要求的方案,同時遵循被前人證明是高效和正確的模式。
嵌入式系統(tǒng)供應商已經(jīng)認識到需要通過提供軟件組件和類似于設計模式的框架來加快軟件開發(fā)進程。在DSP領域,供應商向DSP設計工程師提供包括參考框架(RF) 在內(nèi)的上百個以DSP為核心的軟件組件用于產(chǎn)品和系統(tǒng)開發(fā)。設計完好的參考框架能夠在設備開發(fā)的早期階段讓設計人員快速入門。RF內(nèi)含方便易用并且適合多種應用的源代碼。由此可以取消許多早期的低層設計決策,使開發(fā)人員能有更多的時間用在真正顯示產(chǎn)品特色的代碼開發(fā)上。設計人員可以選擇能夠最大程度滿足他們系統(tǒng)需要的專業(yè)RF,然后集成適配的算法(可以是其它供應商出售的DSP COTS算法,或供應商自己的算法)生成適合各種終端設備的特殊應用,如寬帶、語音、視頻圖像、生物測量和無線設施。這些RF提供百分之百的C語言源碼,并且沒有版稅要求。RF源代碼可以從www.ti.com/downloadrfnow網(wǎng)站下載。
軟件性能工程
許多嵌入式實時系統(tǒng)必須滿足一系列性能目標。一般來講,性能是一個軟件系統(tǒng)或組件對時間要求滿足程度的一種指示。這里的時間指標可以用響應時間和吞吐量來衡量,該時間值是指響應某種要求所需的時間,而吞吐量用以指示系統(tǒng)在特定時間間隔內(nèi)能夠處理的請求數(shù)量??蓴U展性是嵌入式實時系統(tǒng)的另外一個重要指標,可以用它來衡量系統(tǒng)要求提高時系統(tǒng)能夠繼續(xù)滿足響應時間或吞吐量要求的能力。
如果在整個開發(fā)生命周期內(nèi)得不到正確的性能管理,那么即使選擇了正確的處理器和軟件也是徒勞的。性能故障的后果是非常嚴重的,它可能損傷與客戶的關系,造成收入下降,甚至導致整個項目失敗。因此在整個生命周期內(nèi)需要隨時關注性能問題。性能管理可以被動或主動完成。被動方式需要采用一個較大的處理器解決性能問題,它只在系統(tǒng)完成構架、設計和實現(xiàn)后處理性能問題,在解決問題前一直處于等待狀態(tài),直到實際需要測量的事件發(fā)生。主動方式是指整個生命周期內(nèi)一直在跟蹤和交流性能問題,同時開發(fā)用以識別性能劣化的進程,并在性能處理中培養(yǎng)團隊成員。
本文小結
顯然開發(fā)嵌入式實時系統(tǒng)是一個相當復雜的過程,本文旨在啟發(fā)設計人員在分析初始要求時如何權衡硬件與軟件之間的關系,要時刻在系統(tǒng)靈活性、速度、成本、計劃和可用工具之間作出權衡,并充分考慮各個供應商提供長期可靠支持的可能性。
作者:Robert Oshana,工程經(jīng)理,德州儀器公司
1、嵌入式系統(tǒng)設計問題(剩余章節(jié)),作者Phillip Koopman,http://www-2.cs.cmu.edu/~koopman/iccd96/ index.html
2、在嵌入式系統(tǒng)設計第2頁圖1-1基礎上作的修改,工藝、工具和技術介紹,作者:Arnold Berger, CMP2002。
3、電子設計新聞(EDN)雜志,“速率恒定分析使實時系統(tǒng)按時完成”,1997年9月1日。
4、選擇DSP處理器,Berkeley設計技術,2000,http://www.bdti.com/articles/choose_2000. pdf 和嵌入式系統(tǒng)設計,工藝、工具和技術介紹,作者:arnold Berger, CMP, 2002.
5、(SEI COTS基礎啟動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、“設計模式:可復用的面向對象軟件的基本原理”,作者:E. Gamma, R. Helm, R. Johnson, 和J. Vlissides
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論