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