嵌入式系統分析與設計

總述:嵌入式系統在這裏主要是做了簡單科普,然後根據嵌入式系統的特點重點講嵌入式系統的需求分析、開發、設計等,特別是這些環節中落地時需要抓住的關鍵點。

 

1、嵌入式系統概述

答:嵌入式系統是一種以應用爲中心,以計算機技術爲基礎,適應不同應用功能、可靠性、成本、梯級、功耗等方面的要求,集可配置、可裁剪的軟硬件於一體的專用計算機系統。嵌入式、專用性、計算機系統是嵌入式系統的三個核心要素。嵌入式系統具有專用性強、實時性強、軟硬件依賴性強、處理器專用、多種技術緊密結合、系統透明性、系統資源受限等特點。

嵌入式系統的硬件基礎是由嵌入式處理器、存儲器、外部設備組成。嵌入式的軟件基礎分爲系統軟件、應用支撐軟件、應用軟件三個層次。

 

2、嵌入式數據庫系統

答:嵌入式數據庫系統是一個包含EDBMS在內跨越移動通信設備、工作站或臺式機、數據庫服務器的綜合系統,受系統使用環境影響較大。嵌入式數據庫系統使用環境具有設備隨時移動性、網絡頻繁斷接、網絡條件多樣化、通信能力不對稱的特點。一個完整的EDBMS由若干子系統組成,包括主數據庫、同步服務器、嵌入式數據庫、連接網絡等。嵌入式移動數據庫在實際應用中必須解決數據的一致性、高效的事務處理、數據安全性等關鍵問題。

 

3、嵌入式實時操作系統

答:嵌入式操作系統(EOS)是運行在嵌入式系統上,支持嵌入式應用程序的操作系統,是控制和管理嵌入式系統中硬件和軟件資源,提供系統服務的軟件集合。與通用操作系統相比,EOS具有微型化、代碼質量高、專業化、實時性強、可裁剪配置等特點。

嵌入式操作系統的硬件抽象層結構根據抽象程度不同分爲系統結構抽象層、處理器變種抽象層、平臺抽象層三個層次。每個EOS都有一個內核,大多數內核都包含調度器、內核對象、內核服務三個公共構件。調度器是EOS的新倉,提供一組算法決定何時執行哪個任務;內核對象是特殊的內核構件,幫助創建嵌入式應用;內核服務是內核在對象上執行的操作或通用操作。

嵌入式系統的實時性能是由硬件、實時操作系統(RTOS)、應用程序共同決定的,其中RTOS內核的性能起關鍵性作用。評估RTOS設計性能時,時間是最重要的一個性能指標,常用的時間性能指標有任務切換時間、中斷處理相關的時間指標中斷延遲時間和中斷響應時間、系統響應時間。

多任務調度算法根據時限的性質、週期性、可搶佔性、靜態或動態等準則,分爲軟時限算法和硬時限算法、週期性和非週期性算法、可搶佔和非搶佔算法、靜態算法和動態算法、單處理器調度和多處理器調度算法、在線調度和離線調度算法等。大多數內核支持兩種普遍的調度算法 ,基於優先級的搶佔調度和時間輪轉調度算法,優先級可以分爲動態優先級和靜態優先級。

對於一個實時系統,如果每個任務都能滿足時限要求,則稱該系統是可調度的或者該系統滿足可調度性,也稱該系統爲健壯的系統。速率單調調度(RMS)算法是一個靜態的固定優先級算法,任務的優先級與週期表現爲單調函數關係,執行最頻繁的任務優先級最高,及任務的週期越短,優先級越高。RMS是靜態調度算法中最有效的算法。如果一組任務能夠被任何一種靜態調度算法調度,在RMS下也是可調度的。RMS是基於以下假設:1、所有任務都是週期性的;2、任務間不需要同步,沒有資源共享,沒有任務間的數據交換等問題;3、系統採用搶佔式調度,總是優先級最高且就緒的任務被執行;4、任務的時限是其下一週期的開始;5、每個任務具有不隨時間變化的定常時間;6、所有任務具有同等重要的關鍵性級別。要使具有n個任務的實時系統中所有任務都滿足硬實時條件,必須使RMS定理成立:E1/T1+E2/T2+... ...+En/Tn <= n * (2的1/n次方-1) 。Ei/Ti是任務i所需的CPU時間。通常,作爲實時系統設計的第一個原則,CPU利用率應當在60%到70%之間。

在時間輪轉調度中,當有兩個或兩個以上就緒任務具有相同優先級,且優先級是就緒任務最高優先級時,調度程序會依次調度每個任務運行一個小的時間片,然後在調度另一個任務運行一個小的時間片,依次進行。在時間輪轉調度中,時間片的大小是至關重要的。通常純粹的時間輪轉調度無法滿足實時系統的要求,取而代之的是基於優先級的搶佔式時間輪轉調度。截止時間優先(EDF)調度算法是指進程的優先級隨執行時間變化,執行時限越靠近,則相對優先級越高,系統中進程的優先級隨時調整。EDF是一種動態優先級調度算法,根據最大延遲最小化思想,遵循如下基本定理:給定一組n個獨立任務和一組任意的到達時間,任務可調度的充要條件是E1/T1+E2/T2+... ...+En/Tn <=1 。EDF算法的優點是其可調度性上限爲100%,對於任何一組任務,如果EDF不能滿足其調度性要求,則沒有其他算法滿足這組任務的調度性要求。實際上,在實時系統中實現EDF的難度較大,主要是動態確定任務優先級有較大開銷,達不到100%的上限。

優先級反轉是由於資源競爭,低優先級的任務在執行而高優先級的任務在等待的現象。解決優先級反轉問題的常用方法主要有兩種:採用優先級繼承協議與採用優先級天花板協議。優先級繼承協議是當低優先級任務持有高優先級任務的資源時,其優先級提升到高優先級任務一樣的優先級,到退出臨界區釋放完成資源後,優先級恢復到原先的低優先級。天花板優先級協議解決了優先級繼承協議具有死鎖和阻塞鏈問題,通過調整資源的優先級等同於需要它的最高優先級任務的優先級,當這個任務執行完成後,調整資源的優先級爲需要它的任務中優先級最高任務的優先級。優先級天花板協議是控制訪問臨界資源的信號量的優先級天花板,信號量的優先級天花板是所有使用該信號量任務中有最高優先級的任務的優先級。

 

4、嵌入式系統開發

答:嵌入式系統的應用軟件是面向特定用戶和特定應用的軟件系統,是實現嵌入式系統功能的關鍵。嵌入式系統的軟件開發方法採用交叉式開發方法,即軟件在一個通用平臺上開發,在另一個嵌入式目標平臺上運行。開發嵌入式軟件的平臺稱爲宿主機系統,被開發的嵌入式系統稱爲目標機系統,當軟件執行環境和開發環境一致時,開發過程則稱爲本地開發。宿主機提供的基本開發工具是交叉編譯器、交叉鏈接器、源代碼調試器,作爲目標機的嵌入式系統可能提供動態裝載器、鏈接裝載器、監視器和調試代理等。目標機和宿主機之間有一組連接,通過這組連接實現源代碼、調試信息等關鍵信息的傳輸。

嵌入式系統軟件的開發過程大體分爲項目計劃、可行性分析、需求分析、概要設計、詳細設計、程序建立、下載、調試、固化、測試、運行等幾個階段,各階段不斷反覆,知道最終完成設計目標。實時嵌入式開發環境中,嵌入式系統快速麪向對象過程(ROOPES)是使用非常多的一種模型。ROOPES是半螺旋式生命週期模型,主要是因爲在開發初期有大量的硬件開發而且開始階段需求並不明確。

嵌入式系統常用的分析與設計方法主要有改進的結構化方法、面向對象方法、基於構件方法。這些分析和設計方法都因爲嵌入式系統的特殊性作出一些改變。嵌入式系統的設計包含硬件設計和軟件設計兩個方面,其中前端活動(如規格說明和系統架構)需要同時考慮硬件和軟件兩個方面。協同設計是一種在設計的最初階段就將軟件與硬件兩方面結合起來,權衡功能的分配,在軟件與硬件並行設計過程中實現軟硬件的交互,滿足系統功能與性能要求的設計方法。協同設計是嵌入系統設計的主要設計方法。嵌入式系統的協同設計工具分爲協同合成工具和協同模擬工具兩大類。協同合成工具主要有POLIS、COSYMA、Chinook等,協同模擬工具有PTOLEMY、TSS兩種。POLIS是開發交互式嵌入式系統的軟硬件協同設計框架,適用小型控制系統的設計,系統描述支持基於有限狀態機的語言。POLIS主要關注高級語言轉換、規則檢查、軟硬件界面綜合等技術,比較適合實時控制領域的嵌入式系統設計。COSYMA是一種探索軟硬件協同設計綜合進程的平臺,面向軟件系統,支持自動分割和協同處理器綜合,在綜合時期可以對設計空間進行探索。Chinook是專門處理控制系統設計的工具,它將整個系統的描述作爲一個輸入,內部模式基於類似等級狀態的模式,不對代碼進行分割,爲整個設計提供單一的模擬環境。PTOLEMY混合使用面向對象內核的計算模型,可用於模擬多種系統。TSS是系統模擬工具,可模擬複雜硬件,採用C編寫,單個模塊的提取可由用戶控制,支持多核系統模擬。

5、嵌入式系統分析與設計的要點

答:嵌入式操作系統一般是面向產品開發的,需求分析階段的系統規格說明書中需要描述物理尺寸、操作環境、存放環境、指示燈裝置、無線電標準、無線電功率和頻率、數據傳輸率、存儲器、平均無故障時間、工號、電源適配器、散熱、系統復位、協議等內容。

嵌入式系統架構有硬件架構和軟件架構組成,通常先考慮系統的軟件架構,再考慮硬件實現。系統架構需要滿足性能和功能的要求,還要滿足成本、速度、功耗等約束。

在系統實時性方面,對硬實時系統,必須進行嚴格的時序分析。對於簡單的中小型嵌入式系統,可以採用先硬件後軟件的方法;對於複雜、大型嵌入式系統,必須採用軟硬件協同設計的方法,還要考慮軟件和硬件互相制約和影響。對於複雜的和日後需要繼續開發和移植的系統,最好採用EOS來增強系統的可擴展性。在所有滿足系統功能和性能要求的方案中,應先選用最簡單的架構。

嵌入式系統開發環境由目標硬件平臺、EOS、編程語言、開發工具組成,其中處理器和操作系統的選擇應該考慮更多因素,避免錯誤決策影響項目進度。嵌入式系統設計的主要挑戰是如何使互相競爭的設計指標同時達到最佳化。在硬件子系統的設計中,先將硬件劃分爲部件或模塊,並繪製部件連接框圖;其次對每個部件進行細化,繼續分解爲可單獨實現的部件。在具體實現過程中,同樣的功能分配到軟件還是硬件去實現需要具體的實現人員來決定,同時在實現過程中還要平衡性能和成本。嵌入式系統中接口電路的設計需要考慮電平匹配問題、驅動能力問題、干擾問題。

嵌入式系統的軟件設計需要根據應用的實時性要求、應用場合、可用資源情況等約束下進行任務劃分,是嵌入式系統應用軟件設計的關鍵。在軟件設計過程中,首先明確系統的實時性指標,然後確認任務大體的數目,接下來是可調度性分析,最後再具體實現上根據系統特點確定任務優先級。任務優先級分配一般考慮與中斷的關聯性、緊迫性、任務的頻繁性、傳遞性等方面的原則。

在選擇EOS時,需要考慮EOS的功能、配套開發工具、可移植性、內存需求、附加軟件包、實時性、靈活性等方面的信息,綜合判定。

嵌入式系統編程語言的選擇需要考慮通用性、可移植性、執行效率、可維護性等方面進行判定。

低功耗設計是嵌入式系統設計的難點,是一個系統化的綜合問題,需要從軟件和硬件兩個方面上進行考慮。常用的典型CMOS集成電路,功耗由靜態功耗、靜態漏電流功耗、內部短路功耗、動態功耗組成,其中動態功耗佔比在70%到90%,內部短路功耗在10%到30%。在硬件方面降低功耗是從降低器件工作時功耗爲主,解決思路是降低工作電壓。嵌入式系統設計人員基於硬件的低功耗設計會從板機電路低功耗設計、低功耗處理器選擇、總線低功耗設計、接口驅動電路設計、分區分時供電技術等方面下手。嵌入式系統軟件低功耗設計的主要措施有編譯優化、軟件與硬件協同設計、算法優化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章