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