實踐經驗分享嵌入式系統(tǒng)開發(fā)
隨著嵌入式系統(tǒng)不斷普及,我們可以從積累的開發(fā)知識中獲得巨大優(yōu)勢,構建更出色的系統(tǒng)。
本文引用地址:http://butianyuan.cn/article/201808/385688.htm工程師一刻也沒忘記交付能同時滿足質量、時間安排和預算目標的項目的需求。一個事半功倍的方法 就是借鑒嵌入式系統(tǒng)開發(fā)人員社區(qū)多年來累計的經驗教訓。下面我們就來了解一些為嵌入式開發(fā)帶來了最佳實踐的重要經驗。大家隨用隨取哈。
系統(tǒng)地思考
系統(tǒng)工程是一個廣泛的專業(yè)領域,覆蓋從航空母艦及衛(wèi)星到實現(xiàn)其性能的嵌入式系統(tǒng)的所有開發(fā)工作。我們可以運用系統(tǒng)工程方法管理從概念到使用周期結束處置的嵌入式系統(tǒng)工程生命周期。系統(tǒng)工程方案的第一階段不是確立系統(tǒng)需求,而是制定系統(tǒng)工程管理規(guī)劃。這一規(guī)劃不僅將為系統(tǒng)定義工程生命周期以及開發(fā)團隊將要開展的設計評審,而且還將定義這些評審的預期輸入輸出。該規(guī)劃可根據工程事件的次序和每個階段的先決條件,為項目管理、工程和客戶群體做出明確的定義。簡而言之,它可展示預期和可交付項。
在清楚理解工程生命周期的情況下,系統(tǒng)思考的下一步是確立正在開發(fā)嵌入式系統(tǒng)的需求。良好的需求集應覆蓋三個方面:
功能需求定義嵌入式系統(tǒng)如何開展工作。
非功能需求定義法規(guī)遵從與可靠性等方面的問題。
環(huán)境需求定義工作溫度和沖擊與振動以及電氣環(huán)境(例如 EMI 和 EMC)等方面的需求。
在較大規(guī)模的開發(fā)工作中,這些需求將從較高層次的規(guī)范向下延伸并且可跟蹤,比如系統(tǒng)或子系統(tǒng)規(guī)范(圖 1)。如果沒有較高層次的規(guī)范,我們必須在開發(fā)過程中接觸利益相關方,確立一套明確的利益相關方需求,然后將其用于確立嵌入式系統(tǒng)需求。
圖 1:在開發(fā)工作中,需求從較高層次的規(guī)范向下延伸并且可跟蹤
生成一個良好的需求集,需要我們充分思考每一個需求,才能確保其符合這些標準:
它是必要的。沒有需求,我們的項目就不會取得成功。
它是可驗證的。我們必須確保該需求能通過檢驗、測試、分析或演示實現(xiàn)。
它是可實現(xiàn)的。在給定的約束條件下,該需求在技術層面上是可以實現(xiàn)的。
它是可追蹤的。該需求能夠從較低層次的需求進行追蹤,而且可追蹤較高層次的需求。
它是唯一的。這項標準可防止需求之間的界限不清。
它是簡單清晰的。每條需求指定一項功能。
為體現(xiàn)意圖,在定義需求時還常常使用特定語言。一般我們對強制性要求使用“必須”,對非強制性要求使用“應該”。非強制性要求可讓我們表達必要的系統(tǒng)屬性。
在我們確立了我們的需求底線后,最佳實踐就是創(chuàng)建一個合規(guī)矩陣,說明符合每項需求。我們還可以通過為每項需求分配一種驗證方法開始確立我們的驗證策略。這些方法一般是測試、分析、檢驗、演示和交叉讀取。根據合規(guī)及驗證矩陣創(chuàng)建需求能讓我們:
清晰地了解系統(tǒng)行為。
向內部測試團隊和外部客戶都演示驗證方法。這不僅可在開發(fā)過程的早期階段發(fā)現(xiàn)任何困難的測試方法,而且還可幫助我們確定所需的資源。
確定技術性能指標。這些指標來自合規(guī)矩陣,由存在無法合規(guī)的風險的各種需求構成。
分配工程預算
每個工程項目都涵蓋一定數量的預算,我們應將其分配給在架構中識別的解決方案。預算分配不僅可確保項目實現(xiàn)整體需求,而且還可確保每個模塊的設計牽頭人理解模塊的分配,以創(chuàng)建適當的解決方案。我們分配預算的典型領域有功能的總質量、功能的總功耗、用平均故障間隔時間或成功概率定義的可靠性以及設計中信號類型間的正當串擾(一般是一套適用于大量功能的通用規(guī)則集)。確立工程預算最重要的方面之一是確保我們有足夠的應急分配。但我們必須戰(zhàn)勝應急再加應急的想法,因為這會成為影響時間安排和成本的嚴重技術問題。
為在我們架構中使用的每項技術分配一個技術就緒指數,再結合合規(guī)矩陣,可幫助我們確定技術風險的所在位置。
管理技術風險
從合規(guī)矩陣及工程預算的生成看,我們應該能夠識別在技術上有難度的需求。每一個這類有風險的需求都應該有明確的規(guī)避計劃,其將說明我們將如何實現(xiàn)這一需求。展示這一點的最佳途徑之一是使用技術就緒指數 (TRL)。TRL 有 9 級,從所觀察到的基本原理 (TRL1) 到完整功能與實地部署 (TRL9) 描述設計成熟度級數。把 TRL 分配給我們架構中使用的每一項技術,再結合合規(guī)矩陣,可幫助我們確定技術風險的所在位置。我們隨后可啟動一個 TRL 開發(fā)規(guī)劃,確保在項目不斷推進時,低 TRL 領域會提升到所需的 TRL 水平。該規(guī)劃涉及的內容可確保我們在項目推進時實現(xiàn)和測試正確的功能,或是在項目推進的過程中執(zhí)行功能或環(huán)境/動態(tài)測試。
圖 2:在本電源架構示例中,模塊的輸出軌需要二級穩(wěn)壓。
該架構不應僅限于硬件(電氣)解決方案,還應包含 FPGA/SoC 及相關軟件的架構。
創(chuàng)建架構
理解嵌入式系統(tǒng)要求的行為后,我們就需要為解決方案創(chuàng)建一個架構。該架構將由分組成功能塊的需求構成。例如,如果嵌入式系統(tǒng)必須處理模擬輸入或輸出,架構就將包含模擬 I/O 模塊。其它模塊可能會更加明顯,比如電源調節(jié)、時鐘和復位生成。
該架構不應僅限于硬件(電氣)解決方案,還應包含 FPGA/SoC 及相關軟件的架構。當然,模塊化設計的關鍵是針對模塊及功能行為的良好接口文檔編制。
該架構的一個關鍵方面是展現(xiàn)如何在高層次上創(chuàng)建系統(tǒng),這樣工程團隊就能輕松理解其實現(xiàn)方式。該步驟也是在系統(tǒng)運行生命周期中為系統(tǒng)提供支持的關鍵。
在確定我們的架構時,我們需要考慮模塊化方法,這樣不僅能在當前項目上進行復用,而且還能在未來的項目上進行復用。模塊化要求我們從第一天起就考慮可能的復用,并要求我們把每個模塊存檔為一個獨立的單元。就內部 FPGA/SoC 模塊而言,像 ARM? AMBA? 高級可擴展接口 (AXI) 這樣的通用接口標準有助于實現(xiàn)復用。
評論