嵌入式系統(tǒng)設計過程



單擊此處編輯母版標題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,,*,1.3 嵌入式系統(tǒng)設計過程,本節(jié),主要介紹嵌入式系統(tǒng)設計的一般過程和嵌入式系統(tǒng)設計的主要步驟我們將采用自頂向下的方法,從對系統(tǒng)最抽象的描述開始,一步一步地推進到細節(jié)內容如圖1-3所示,,,首先從系統(tǒng)需求開始然后是規(guī)格說明,在這一步對想要的進行更加細致地描述,但是規(guī)格說明只對系統(tǒng)如何工作(工作過程)進行了描述,這些描述并不涉及它的組成系統(tǒng)內部的詳細構造要在開發(fā)系統(tǒng)的體系結構時才能展現(xiàn)出來,這一階段以大的構件為單位給出了系統(tǒng)的結構一旦知道了需要的構件,就可以設計這些構件,包括軟件模塊和任何所需要的專用硬件模塊在這些構件的基礎上,可以構造出所需要的完整的系統(tǒng)如圖1-3所示,,首先從系統(tǒng)需求開始然后是規(guī)格說明,在這一步對想要的進行更加細致地描述,但是規(guī)格說明只對系統(tǒng)如何工作進行了描述,這些描述并不涉及它的組成系統(tǒng)內部的詳細構造要在開發(fā)系統(tǒng)的體系結構時才能展現(xiàn)出來,這一階段以大的構件為單位給出了系統(tǒng)的結構一旦知道了需要的構件,就可以設計這些構件,包括軟件模塊和任何所需要的專用硬件模塊在這些構件的基礎上,可以構造出所需要的完整的系統(tǒng)。
1.系統(tǒng)需求分析,,確定設計任務和設計目標,并提煉出設計規(guī)格說明書,作為正式設計指導和驗收的標準系統(tǒng)的需求一般分功能性需求和非功能性需求兩方面功能性需求是系統(tǒng)的基本功能,,,如輸入輸出信號,操作方式等;非功能性需求包括系統(tǒng)性能,成本,功耗,體積,重量,,等因素2.體系結構設計,,描述系統(tǒng)如何實現(xiàn)所述的功能和非功能需求,包括對硬件,軟件和執(zhí)行裝置的功能劃分.,,以及系統(tǒng)的軟件,硬件選型等一個好的體系結構是設計成功與否的關鍵3.硬件/軟件設計,,基于體系結構,對系統(tǒng)的軟件,硬件進行詳細設計為了縮短產品開發(fā)周期,設計往往,,并行的應該說嵌入式系統(tǒng)設計的工作大部分都集中在軟件設計上,采用采用面向對象技術,軟件組件技術,模塊化設計是現(xiàn)代軟件工程經(jīng)常采用的方法4.系統(tǒng)集成,,把系統(tǒng)的軟件,硬件和執(zhí)行裝置集成在一起,進行調試,發(fā)現(xiàn)并改進單元設計過程中的錯誤,5.系統(tǒng)測試,,對設計好的系統(tǒng)進行測試,看其是否滿足規(guī)格說明書中給定的功能要求針對系統(tǒng)的不同的復雜程度,目前有一些常用的系統(tǒng)設計方法,如瀑布設計方法,自頂向下設計的方法,自下向上的設計方法,螺旋設計方法,逐步細化設計方法和并行設計方法等,根據(jù)設計對象復雜程度的不同,可以靈活的選擇不同的系統(tǒng)設計方法。
1.3.1 需求分析,,顯然,在設計一個系統(tǒng)之前,必須清楚在設計什么在設計的最初階段,截取這些信息,以此來設計系統(tǒng)的體系結構和構件這一階段的任務通常通過兩種過程來實現(xiàn):,,首先,從客戶那里收集系統(tǒng)的非形式描述(這叫做需求);,,然后,對需求進行提煉,得到系統(tǒng)的規(guī)格說明,這些規(guī)格說明里包含了進行系統(tǒng)體系結構設計所需要的足夠信息1,.,需求與規(guī)格說明,區(qū)分需求,和,規(guī)格說明,是必要的,因為在客戶關于所需系統(tǒng)的描述和體系結構系統(tǒng)設計師所需的信息之間存在極大的距離嵌入式系統(tǒng)的客戶通常不是嵌入式系統(tǒng)的設計人員,甚至也不是最終產品的設計人員,他們對嵌入式系統(tǒng)的理解是建立在他們想象的與系統(tǒng)之間的交互的基礎上的,對系統(tǒng)可能有一些不切實際的期望,或者是使用他們自己的話而不是專業(yè)術語來表達其需求將客戶的描述轉化為系統(tǒng)設計者的描述的結構化方法就是從客戶的需求中獲取一組一致性的需求,然后從中整理成正式的規(guī)格說明通常,需求包括功能部分和非功能部分當然,我們必須從中獲取系統(tǒng)的基本功能,但是,只有功能的描述是不夠的非功能需求包括:,,,(1) 性能,,系統(tǒng)的處理速度通常是該系統(tǒng)的實用性和最終成本的主要決定因素正如我們已經(jīng)注意到的,性能是軟件性能度量(如執(zhí)行一個用戶級函數(shù)的大致時間和必須完成的一個特定操作的硬時限)的組合。
2) 價格,,產品最終的成本或者銷售價格也是一個主要的考慮因素產品的成本包含兩個主要部分:生產成本,包括購買構件以及組裝它們的花費;不可再生的工程成本(NRE), 包括人力成本以及設計系統(tǒng)的其他花費3) 系統(tǒng)的尺寸和重量,,最終產品的物理特性會因為使用的領域不同而大不相同一臺控制裝配線的工業(yè)控制系統(tǒng)通常裝配在一個標準尺寸的柜子里,它對重量沒有什么約束,但是手持設備對系統(tǒng)的尺寸和重量就有很嚴格的限制4) 功耗,,對于那些靠電池來供電的系統(tǒng)以及其他一些電器來說,電源是十分重要的,電源問題在需求階段以電池壽命的方式提出因為顧客通常不能夠以瓦為單位描述允許的功率,2. 確認需求,確認這一系列的需求不僅需要理解什么是用戶需要的,而且需要理解他們是如何表達這些需求的精煉系統(tǒng)需求的好方法,至少是精煉用戶界面部分的方法是建立一個模型這個模型可以使用已存數(shù)據(jù)來模擬功能,并且可以在個人電腦或工作站上運行它應該讓用戶了解系統(tǒng)是如何使用的,以及用戶如何和它進行交互通常,設備的非功能模型可以讓用戶了解系統(tǒng)的特性,比如系統(tǒng)的尺寸和重量3. 簡單的需求表格,對一個大系統(tǒng)進行需求分析是一項復雜而費時的工作,但是,取得相對少量的格式清晰、簡單的信息是理解系統(tǒng)需求的一個好的開始。
表1-2,展示了一個需求表格的樣本,這個表格在某項工程的開始時填寫在考慮系統(tǒng)基本特征時可以將這個表格作為檢查表表格內容包括:,,(1) 名稱,,這一項十分簡單,但卻十分有用給該項工程取一個名字不僅在和別人討論這個工程時更加方便,也可以使設計的目的更加明確2) 目的,,這一項可以是簡單的一到兩行的關于系統(tǒng)將要滿足的需求的描述,如果你不能用一兩句話來描述你所設計的系統(tǒng)的主要特性的話,說明你還不是十分了解它3) 輸入和輸出,,這兩項內容比較復雜,對系統(tǒng)的輸入和輸出包含了大量細節(jié):,,① 數(shù)據(jù)類型:模擬電信號?數(shù)字數(shù)據(jù)?機械輸入?,,② 數(shù)據(jù)特性:周期性到達的數(shù)據(jù),比如數(shù)字音頻信號?或者是用戶的輸入?每個數(shù)據(jù)元素多少位?,,③ 輸入/輸出設備的類型:按鍵?模/數(shù)轉換器?視頻顯示器?,,(4) 功能,,,這一項是關于系統(tǒng)所做的工作的更加詳細的描述從輸入到輸出進行分析是提出功能的一種好方法:當系統(tǒng)接收到輸入時,它執(zhí)行哪些動作?用戶通過界面輸入的數(shù)據(jù)如何對該功能產生影響?不同功能之間是如何相互作用的?,,,(5) 性能,,許多嵌入式系統(tǒng)都要花費一定的時間來控制物理設備,或是處理從外界輸入的數(shù)據(jù)在大部分情況下,這些計算必須在一定的時間內處理完,對性能的要求必須盡早地明確,因為這些要求在執(zhí)行過程中得認真加以考慮,以便隨時檢查我們的系統(tǒng)是否達到了這些要求。
6) 生產成本,,,這中間主要包含了硬件構件的花費如果你不能確定將要花費在硬件構件上的費用的確切數(shù)目,那么你起碼得對最終產品的價格有一個粗略的了解因為價格最終影響了系統(tǒng)的體系結構:一臺將要以10美元出售的設備的內部結構和一臺打算以100美元出售的機器的內部結構肯定是不同的7) 功耗,,對系統(tǒng)的功耗你可能只有一個粗略的了解但是,沒有關于這方面的信息是不行的通常,決定系統(tǒng)是靠電池供電還是通過墻上的插座供電是系統(tǒng)設計過程中的一個重大決定靠電池供電的系統(tǒng)必須認真地對功耗問題進行考慮8) 物理尺寸和重量,,對系統(tǒng)的物理尺寸和重量有一定的了解有助于對系統(tǒng)體系結構的設計一臺臺式機在對構件的選擇上比那些佩帶式錄音機要寬松得多對一個大系統(tǒng)進行更加深入的需求分析可以使用與表1-2類似的表格作為更長的需求文檔的總結在介紹完關于這個表格的章節(jié)之后,更長的需求文檔包括上面提到的每一項的細節(jié)例如,前面用一句話描述的每個單個的特征可能在規(guī)格說明中被詳細描述為一節(jié)4. 需求的內部一致性,,在寫完需求分析以后,你應該對它們的內部一致性進行檢查:,,是否忘記了給某個功能指定輸入或輸出?,,是否考慮了系統(tǒng)運行的所有方式? 是否把一些不切實際的要求放到了一個電池供電、低成本的機器中了?,,為了練習如何獲得系統(tǒng)需求,示例1.1創(chuàng)建了GPS移動地圖系統(tǒng)的需求。
示例1.1 GPS移動地圖的需求分析,移動地圖是一種手持設備,該設備為用戶顯示他當前所處位置周圍的地形的一張地圖;地圖的內容隨著用戶以及該設備所處的位置的改變而改變移動地圖從GPS上得到其位置信息,GPS是一個衛(wèi)星導航系統(tǒng)移動地圖的顯示,如圖1-4所示,針對GPS移動地圖我們有什么需求?下面是一些最初的清單:,,,功能性 本系統(tǒng)主要針對高速公路上開車的用戶或類似用戶,而不是需要使用更專用的數(shù)據(jù)庫和功能的航海或航空人員系統(tǒng)應展示可在標準地形圖數(shù)據(jù)庫中得到的主要道路和其他陸地標志用戶界面 屏幕至少應該有,400×600,像素分辨率該設備的控制按鈕不應多于三個按下按鈕時菜單系統(tǒng)應在屏幕上彈出,允許用戶系統(tǒng)控制做出選擇性能 地圖應該平滑滾動加電后,顯示在,1,秒鐘內出現(xiàn),系統(tǒng)應可以核查其位置并在,15,秒內顯示當前地圖4),成本 單個設備售價(零售價)不高于500美元5),設備物理尺寸和重量應非常適于放在手掌中6),功耗 四節(jié)AA電池至少可以連續(xù)運行8小時注意,:上述許多需求并不是按工程單位規(guī)定的,例如,物理尺寸是相對于手而不是用厘米標出的雖然這些需求必須最終轉換成可以被設計者使用的某種東西,但是保持某種顧客想要的記錄將有助于解決設計期間后期出現(xiàn)的有關規(guī)格說明的問題。
基于上述討論,讓我們?yōu)橐苿拥貓D系統(tǒng)編寫一份需求表格,如表1-3:,名稱,CPS移動地圖,目的,為駕駛者提供的用戶級移動地圖,輸入,一個電源按鈕,兩個控制按鈕,輸出,逆光LCD,顯示400×600像素分辨率,功能,使用5種接收器的GPS系統(tǒng);三種用戶可選的分辨率總是顯示當前的經(jīng)緯度,性能,0.25s內即可更新一次屏幕,生產成本,100美元,功耗,100mW,物理尺寸和重量,不大于2×16m2,12盎司(約340g),,,表1-3,加上了設計人員所要使用的某些用工程術語表述的需求例如,它提供了設備的實際尺寸生產成本與銷售價格有關,通過使用簡單的經(jīng)驗法則可以得到:銷售價4~5倍于所售商品的成本(所有構件的成本之和)1.3.2,規(guī)格說明,,,規(guī)格說明更精確一些,它起到客戶和生產者之間的合同的作用正因為如此,規(guī)格說明必須小心編寫,以便精確地反映客戶的需求并且作為設計時必須明確遵循的要求規(guī)格說明應該足夠明晰,以便別人可以驗證它是否符合系統(tǒng)需求并且完全滿足客戶的期望它亦不能有歧義,設計者應知道什么是他們需要構造的設計者可能碰到各種不同類型的由于不明確的規(guī)格說明而導致的問題如果在某個特定的狀況下的,某些特性,的行為在規(guī)格說明中不明確,那么設計者可能實現(xiàn)錯誤的功能。
如果規(guī)格說明的,全局特征,是錯的或者是不完整的,那么由該規(guī)格說明建造的整個系統(tǒng)體系結構可能就不符合實現(xiàn)的要求GPS,系統(tǒng)的規(guī)格說明包括下列構件:,從GPS衛(wèi)星接收到的數(shù)據(jù)地圖數(shù)據(jù)用戶界面必須執(zhí)行的滿足客戶需求的操作保持系統(tǒng)運行所需的后備動作,如操縱GPS接收機體系結構設計,,規(guī)格說明不講系統(tǒng)如何做,而只是講系統(tǒng)做什么描述系統(tǒng)如何實現(xiàn)那些功能是體系結構的目的體系結構是系統(tǒng)整體結構的一個計劃,而后用于設計搭建整個體系結構的構件體系結構的創(chuàng)建是許多設計者認為的設計的第一階段為了理解體系結構描述是什么,讓我們來看一下示例1.1的移動地圖樣例的體系結構圖1-5,以框圖形式展示了樣例系統(tǒng)體系結構,這些框圖展示了它的主要操作和其間的數(shù)據(jù)流.,,框圖仍很抽象,還沒有規(guī)定運行在CPU上的軟件執(zhí)行什么操作,專用硬件完成什么等等.不過,為描述如何實現(xiàn)在規(guī)格說明中規(guī)定的功能框圖還要做許多事情例如,可以清楚地看到需要搜索地形圖數(shù)據(jù)庫、繪制顯示的結果我們已經(jīng)選擇分離那些功能以便可能并行地完成這些工作,比如從搜索數(shù)據(jù)庫分離出繪制功能可以有助于更平滑地更新屏幕只有在設計了一個并未偏向于太多實現(xiàn)細節(jié)的初始體系結構之后,才可能把系統(tǒng)框圖細分成,兩部分框圖,:一部分針對硬件,另一部分針對軟件。
這兩部分細化過的框圖,如圖1-6所示硬件框圖清楚地展示了有一個CPU,周圍有存儲器和I/O設備尤其是,我們已選擇使用兩種存儲器:一種是針對像素顯示的幀緩沖器,另一種是CPU使用的通用程序/數(shù)據(jù)存儲器軟件框圖基本上與系統(tǒng)框圖一致,但是增加了一個計時器,控制何時讀取用戶界面上的按鈕,并在屏幕上繪制數(shù)據(jù)為了得到一個真正完整的體系結構描述,我們需要更多細節(jié),比如軟件框圖中的單元在硬件框圖的什么地方執(zhí)行,何時操作準時執(zhí)行等體系結構描述必須同時滿足功能上和非功能上的需求不僅所需求的功能要體現(xiàn),而且必須符合成本、速度、功率和其他非功能上的約束先從系統(tǒng)體系結構開始,逐步把這一結構細化為硬件和軟件體系結構是確保系統(tǒng)符合所有規(guī)格說明的一種好方法.,,首先集中考慮系統(tǒng)框圖中的功能元素然后在建造硬件和軟件體系結構時考慮非功能約束如何知道硬件和軟件體系結構實際上符合速度、成本等方面的限制呢?,,必須有某種方式估算框圖中的構件,如移動地圖系統(tǒng)中的搜索和繪制功能的特性精確估算源于經(jīng)驗,既有一般的設計經(jīng)驗也有類似系統(tǒng)的特定經(jīng)驗不過,有時建造一個簡化的模型有助于做出更精確的估算在體系結構建造階段所有非功能約束的合理估算是至關重要的,因為基于有問題的數(shù)據(jù)的決策在設計的最后階段會顯現(xiàn)出來,表明我們的設計實際上不符合規(guī)格說明。
1.3.4 設計硬件構件和軟件構件,體系結構描述告訴我們需要什么樣的構件構件設計使得構件與體系結構和規(guī)格說明一致構件通常既包括硬件——現(xiàn)場可編程門陣列(FPGA) ﹑電路板等等,還包括軟件模塊一些構件是現(xiàn)成的,例如CPU在任何情況下都是一個標準構件,同樣的還有存儲器芯片和很多其他構件在移動地圖中,GPS接收器雖然是預先設計的標準構件利用標準軟件模塊,訪問標準地形數(shù)據(jù)庫這些數(shù)據(jù)庫的數(shù)據(jù)不僅使用預定義的格式,而且被高度地壓縮以節(jié)省存儲空間在這些訪問函數(shù)中使用標準軟件不僅節(jié)約設計時間,也較快地實現(xiàn)像數(shù)據(jù)解壓縮這樣的專用函數(shù)但是,我們必須自己設計一些構件,即使使用標準集成電路,也必須設計連接它們的印刷線路板同時,很有可能要做大量定制編程當然,建立嵌入式軟件模塊時,你必須用你的專業(yè)技能確保系統(tǒng)實時性良好并且在允許的范圍內不占用更多的存儲空間移動地圖軟件例子中的電能消耗特別重要,你可能要非常小心地讀寫存儲器以減小功耗,例如,由于存儲器訪問是主要的功耗來源,存儲器事務必須精心安排以避免多次讀取同樣的數(shù)據(jù)1.3.5 系統(tǒng)集成,只有建立構件后才能將它們合并得到一個能運轉的系統(tǒng),當然這個階段不僅僅是把所有的東西插在一起。
在系統(tǒng)集成中通常可以發(fā)現(xiàn)錯誤,而好的計劃能幫助我們快速找到這些錯誤按階段架構系統(tǒng)并且正確運行選好的測試,經(jīng)常能更容易地找到這些錯誤如果每次只對一部分模塊排錯,很可能更容易發(fā)現(xiàn)和識別簡單的錯誤只有在早期修正這些簡單的錯誤,才能發(fā)現(xiàn)那些只有在系統(tǒng)高負荷時才能確定的、比較復雜或是含混的錯誤我們必須確保在體系結構和各構件設計階段盡可能容易地按階段組裝系統(tǒng)和相對獨立地測試系統(tǒng)功能因為嵌入式系統(tǒng)使用的調試工具比在桌面系統(tǒng)中可找到的工具有限得多,因此,要在系統(tǒng)集成時發(fā)現(xiàn)問題,需要詳細地觀察系統(tǒng)以準確確定錯誤1.3.6 系統(tǒng)測試,對設計好的系統(tǒng)進行測試,看其是否滿足規(guī)格說明書中給定的功能要求針對系統(tǒng)的復雜程度不同,目前有一些常用的系統(tǒng)設計方法,如瀑布設計方法、自頂向下的設計方法、自下向上的設計方法、螺旋設計方法、逐步細化設計方法和并行設計方法等,根據(jù)設計對象復雜程度的不同,可以靈活地選擇不同的系統(tǒng)設計方法1.4 本章小結,,本章主要介紹了嵌入式系統(tǒng)的概念、嵌入式系統(tǒng)的特點及分類、嵌入式系統(tǒng)的主要應用領域、主流嵌入式微處理器、主流嵌入式實時操作系統(tǒng)以及嵌入式系統(tǒng)設計方法,希望讀者能夠通過對本章的閱讀,對以上知識作到初步掌握,為學習以后章節(jié)知識打好基礎。
嵌入式系統(tǒng)的一般設計方法,,通常在單片機系統(tǒng)中的開發(fā)和應用中,是按照,如圖1-7所示,的流程進行的可見,在嵌入式系統(tǒng)的開發(fā)的過程中,因為對應每一個處理器的硬件平臺都是通用的,固定的,成熟的所以,再開發(fā)過程中減少了硬件系統(tǒng)錯誤的引入機會;同時,因為嵌入式操作系統(tǒng)屏蔽掉了底層硬件的很多復雜信息,使得開發(fā)者通過操作系統(tǒng)提供的API函數(shù)可以完成大部分工作,大大地簡化了開發(fā)過程,提高了系統(tǒng)的穩(wěn)定性綜上所述,嵌入式系統(tǒng)的開發(fā)可以說是把開發(fā)者從反復進行硬件平臺設計過程中解放出來,從而可以把主要的精力放在編寫特定的應用程序上這個過程更類似于系統(tǒng)機(如PC機)上的某個操作系統(tǒng)下開發(fā)程序練 習 題,1.嵌入式系統(tǒng)的定義2.嵌入式系統(tǒng)有哪些特點?,,3.嵌入式系統(tǒng)是如何分類的?,,4.簡述嵌入式處理器、嵌入式實時操作系統(tǒng)的種類和特點5.如何選擇嵌入式處理器和嵌入式操作系統(tǒng)?,,6.簡述嵌入式系統(tǒng)的設計過程圖 1-3 設計過程的主要抽象層次,,,需求分析,規(guī)格說明,體系結構設計,硬件設計,系統(tǒng)集成,系統(tǒng)測試,產品,軟件設計,執(zhí)行裝置設計,返回,,名稱,,目的,,輸入,,輸出,,功能,,性能,,生產成本,,功耗,,物理尺寸和重量,,,表1-2需求表格樣本,返回,,圖 1-4 GPS移動地圖,,,緯度:4013 經(jīng)度:3219,1-78,蘇格蘭路,用戶所在位置經(jīng)緯度,用戶當前位置,返回,,基于上述討論,讓我們?yōu)橐苿拥貓D系統(tǒng)編寫一份需求表格,如表1-3:,名稱,CPS移動地圖,目的,為駕駛者提供的用戶級移動地圖,輸入,一個電源按鈕,兩個控制按鈕,輸出,逆光LCD,顯示400×600像素分辨率,功能,使用5種接收器的GPS系統(tǒng);三種用戶可選的分辨率總是顯示當前的經(jīng)緯度,性能,0.25s內即可更新一次屏幕,生產成本,100美元,功耗,100mW,物理尺寸和重量,不大于2×16m2,12盎司(約340g),返回,,GPS接受信號,數(shù)據(jù)庫,顯示器,搜索引擎,轉換器,用戶界面,圖1-5 移動地圖框圖,返回,,顯示器,Zhen,,緩沖器,CPU,GPS信號接收器,I/O面板,存儲器,硬件,數(shù)據(jù)庫搜索,轉換器,位置,用戶界面,時鐘,像素,軟件,返回,圖1-6移動地圖的硬件和軟件系統(tǒng),,用戶需求,開發(fā)結束,整個系統(tǒng)測試,按照設計的硬件平臺編寫軟件,軟件測試通過,選擇處理器設計硬件平臺,否,是,遇到硬件問題,修改硬件平臺,否,是,單片機系統(tǒng)的開發(fā)流程,,用戶需求,開發(fā)結束,整個系統(tǒng)測試,選擇合適的嵌入式操作系統(tǒng),在操作系統(tǒng)上開發(fā)應用程序,應用程序測試通過,選擇嵌入式處理器,,及硬件平臺,否,是,嵌入式系統(tǒng)開發(fā)流程,返回,,。