時間:2023-05-24 已閱讀:2842次
隨著科技的發(fā)展,嵌入式系統(tǒng)在我們的生活中得到了廣泛的應(yīng)用。從傳統(tǒng)的家電主控模塊、投影儀、路由器、手機等等,發(fā)展到目前的無人機、智能家居、掃地機器人、智能手表、健康手環(huán)等等。除了生活消費方面,汽車、工業(yè)、醫(yī)療器械甚至智慧城市等都各類嵌入式系統(tǒng)的應(yīng)用。
嵌入式系統(tǒng)是以應(yīng)用為中心,以現(xiàn)代計算機技術(shù)為基礎(chǔ),能夠根據(jù)需求(功能、可靠性、成本、體積、功耗、環(huán)境等)靈活裁剪軟硬件模塊的專用計算機系統(tǒng)。
與嵌入式系統(tǒng)相對應(yīng)的,則是通用計算機系統(tǒng),如個人電腦、工控機、服務(wù)器等。通用計算機系統(tǒng)不針對特定應(yīng)用需求,而是可以運行各種軟件和程序,具有極高的通用性和擴展性。可以通過下表的對比,來提高對嵌入式系統(tǒng)的理解。
嵌入式系統(tǒng)的設(shè)計方案會隨應(yīng)用領(lǐng)域千差萬別,但其分析和設(shè)計方法也遵循一般原則,許多成熟的分析和設(shè)計方法都可以使用。嵌入式系統(tǒng)開發(fā)的步驟一般可分為需求分析、系統(tǒng)設(shè)計、硬件設(shè)計、軟件設(shè)計、系統(tǒng)集成、測試和維護。
一、需求分析
需求分析階段的主要任務(wù)是:
1.問題的識別和分析
對目標(biāo)應(yīng)用相關(guān)的問題進行抽象識別以產(chǎn)生如下的需求:功能需求、性能需求、環(huán)境需求、可靠性需求、安全需求、用戶界面需求、資源使用需求、軟件成本與開發(fā)進度需求。
2.制定規(guī)格說明文檔
經(jīng)過對問題的識別,產(chǎn)生了系統(tǒng)各方面的需求。通過對規(guī)格的說明,文檔得以清晰、準(zhǔn)確地描述。這些說明文檔包括需求規(guī)格說明書和初級的用戶手冊等。
3.需求評審
需求評審作為系統(tǒng)進入下一階段前最后的需求分析復(fù)查手段,在需求分析的最后階段對各項需求進行評估,以保證需求的質(zhì)量。需求評審的內(nèi)容包括正確性、無歧義性、安全性、可驗證性、一致性、可理解性、可修改性、可追蹤性等多個方面。
二、系統(tǒng)設(shè)計
嵌入式系統(tǒng)設(shè)計階段,需要解決以下幾個方面的問題:
1.硬件的取舍:在滿足需求和控制成本的約束下,合理選擇處理器、儲存器、外設(shè)等等硬件模塊。
2.系統(tǒng)性能:除提高處理器速度的方法外,綜合多種因素考慮設(shè)計以滿足應(yīng)用對性能的需求。
3.系統(tǒng)功耗:無論是否采用電池供電,系統(tǒng)功耗都是嵌入式系統(tǒng)的敏感問題。需在滿足性能需求的基礎(chǔ)上降低功耗。
4.系統(tǒng)可升級性:系統(tǒng)的硬件平臺可能使用較長時間,或產(chǎn)生不同的型號,系統(tǒng)設(shè)計時,必須考慮通過改變軟件來提供現(xiàn)在未能開發(fā)的功能或性能。
5.系統(tǒng)可靠性:可靠性是嵌入式系統(tǒng)重要的指標(biāo)。
6.測試:嵌入式系統(tǒng)往往難以測試,也不能離開其工作環(huán)境而測試,需要在早期就加以設(shè)計。
解決上述方面的問題后,根據(jù)上一階段的需求分析,設(shè)計嵌入式系統(tǒng)的硬件和軟件架構(gòu),選擇合適的微處理器、存儲器、外設(shè)、操作系統(tǒng)等,確定系統(tǒng)的模塊劃分和接口定義。
這部分的輸出包括系統(tǒng)設(shè)計的初步說明文檔、設(shè)計方案和設(shè)計描述文檔。這些文檔的確立是使用系統(tǒng)流程圖或其他工具,描述每一種可能的系統(tǒng)組成,估計每一種方案的成本和效益,在充分權(quán)衡各種方案利弊的基礎(chǔ)上,選擇一個較好的方案。
在開始軟硬件具體設(shè)計之前,需要最后確定設(shè)計方案與用戶需求之間的合理性,并對設(shè)計方案的正確性、無歧義性、安全性、可驗證性、可理解性、可修改性等多個方面進行綜合評估,以確定是否進入下一步的實施階段。
三、硬件設(shè)計
根據(jù)系統(tǒng)設(shè)計,設(shè)計電路原理圖和PCB布局圖,選購電子元器件,制作電路板,進行硬件調(diào)試和測試。
四、軟件設(shè)計
根據(jù)系統(tǒng)設(shè)計,編寫軟件需求規(guī)格說明書,確定軟件的功能、流程、數(shù)據(jù)結(jié)構(gòu)等,選擇合適的編程語言、開發(fā)工具、編譯器等,編寫軟件代碼,進行軟件調(diào)試和測試。
五、系統(tǒng)集成
將測試完成的軟件系統(tǒng)裝入制作好的硬件系統(tǒng)中,進行系統(tǒng)的綜合測試,驗證系統(tǒng)功能是否能被正確無誤的實現(xiàn)。
六、測試和維護
對系統(tǒng)進行各種場景和條件下的測試,驗證系統(tǒng)的正確性、可靠性、安全性等,記錄并修復(fù)測試中發(fā)現(xiàn)的缺陷,對系統(tǒng)進行必要的更新和優(yōu)化。