當前位置: 首頁 > 工業(yè)電子產(chǎn)品 > 半導體產(chǎn)品 > 微控制器MCU
發(fā)布日期:2022-04-22 點擊率:50
開發(fā)物聯(lián)網(wǎng) (IoT) 設備可能比許多開發(fā)人員或公司所設想的更具挑戰(zhàn)性。將嵌入式系統(tǒng)連接至云端極大地增加了系統(tǒng)的時序復雜性。時序復雜性的增加意味著開發(fā)人員需要一種更好的方法,用以管理軟件何時應該運行什么代碼。要避免編寫自定義調(diào)度程序或處理裸機時序,最佳方法是使用實時操作系統(tǒng) (RTOS) 來管理時序復雜性。
目前,使用 RTOS 的一項挑戰(zhàn)在于許多開發(fā)人員習慣于沒有操作系統(tǒng) (OS) 的裸機環(huán)境,因而為特定應用選擇合適的 RTOS 難度頗大。對 RTOS 市場的快速網(wǎng)絡調(diào)查表明,市面上共有百余種 RTOS 可供開發(fā)人員使用,從開源系統(tǒng)到經(jīng)認證的商業(yè) RTOS。那么,該如何選擇 RTOS 并開始使用呢?
本文將闡示如何評估最適合應用的 RTOS,并介紹支持 RTOS 的 STMicroelectronics 和 Renesas 開發(fā)平臺。
實時操作系統(tǒng)是開發(fā)人員構建應用程序代碼的基礎。為確保應用基礎牢固且能經(jīng)受考驗,選擇合適的 RTOS 至關重要。不過在多數(shù)情況下,RTOS 選擇僅依據(jù)單一參數(shù):成本。
雖然成本是一個重要的考慮因素,但不應該是唯一的因素。如果開發(fā)團隊難以連接、實施系統(tǒng)或?qū)λx擇的 RTOS 缺乏支持,即便花費十倍于商業(yè) RTOS 的成本也是很平常的,更不用說因此而損失的項目時間。一般而言,開發(fā)團隊為應用選擇 RTOS 時應考慮八個不同的類別,其中包括:
法律責任與風險
性能
特性
成本
生態(tài)系統(tǒng)
中間件
RTOS 供應商
工程偏好
每個類別均可能包含幾項標準,評估各款 RTOS 時應參照這些標準。例如,在法律責任方面,團隊可能需要考慮以下事項:
RTOS 侵權責任
賠償
保修
需要從法律角度審查 RTOS
在性能方面,開發(fā)人員可能需要考慮以下事項:
可執(zhí)行內(nèi)存占用
RAM 占用
最高的確定性
運行時效率
開發(fā)和執(zhí)行團隊檢查各個主要類別,確定用于評估 RTOS 的標準。一旦確定了標準,就可以使用 Kepner-Tregoe (KT) 矩陣來評估幾種不同的 RTOS。這種合理的決策模型有助于收集、優(yōu)先排序和評估信息,且側(cè)重于評估和確定風險的優(yōu)先級,以期消除決策過程中的個人偏見,進而作出最佳選擇,同時將負面影響降至最低。下面將詳細說明如何使用 KT 矩陣來選擇 RTOS。
用于 RTOS 選擇的 KT 矩陣如圖 1 和圖 2 所示。整體構想是,確定每個選擇類別的選擇標準并在一列中逐一羅列。為各標準分別確定權重,并按重要性對權重賦值,從 1 到 5,其中 5 代表至關重要(如成本),1 表示不重要(如法律責任)。然后團隊各成員就各標準對每款待評估 RTOS 的重要性進行排名,并將結果逐列填入矩陣中,再對各標準進行加權、求和,進而生成無偏見的數(shù)值結果。具有最高數(shù)值的 RTOS 則是最符合標準的 RTOS。
圖 1:用于 RTOS 選擇的 KT 矩陣上半部分,包括對責任風險、RTOS 性能、特性和成本的評估。(圖片來源:Beningo Embedded Group)
圖 2:用于 RTOS 選擇的 KT 矩陣下半部分,包括對生態(tài)系統(tǒng)、中間件、供應商和業(yè)務的評估。(圖片來源:Beningo Embedded Group)
圖 1 和圖 2 中示例的評估標準數(shù)量多,涵蓋面廣,可能超出了大部分開發(fā)團隊所設想的評估范圍,而只需將權重設置為 0 或隱藏電子表格相應的行,即可輕松刪減標準數(shù)量。
開發(fā)人員認為較難評估 RTOS 的一個領域,可能是確定其是否滿足性能和功能的需求。除非開發(fā)人員深入評估,開始使用該 RTOS 卻使他們陷入困境,否則多數(shù)情況下無從知曉。事實證明,一種簡單又經(jīng)濟的 RTOS 評估和測試方法是利用支持 RTOS 的現(xiàn)有開發(fā)平臺。下面我們將了解一些支持常用開源 FreeRTOS 和 Express Logic 的 ThreadX 操作系統(tǒng)的平臺。
首先介紹的是 STMicroelectronics 的 STM32Cube 平臺。STM32Cube 平臺支持 FreeRTOS,屬于 STMicroelectronics 的 STM32CubeMx 和 STM32CubeIDE 開發(fā)環(huán)境的一部分。這些工具可讓開發(fā)人員方便地啟用 FreeRTOS,他們只需選中 FreeRTOS 框,然后使用 FreeRTOS 配置工具來設置所有配置值即可。因此開發(fā)人員能夠非常快速地著手運行 FreeRTOS,以便開始評估其功能和性能特點。
在 STMicroelectronics 的工具鏈中,有多種不同的開發(fā)板可供選擇。多年來,一款久經(jīng)考驗的開發(fā)板一直深受青睞,STM32F429 Discovery 板 (STM32F429I-DISC1)(圖 3)。
STM32F429 采用 Arm? Cortex?-M4 處理器,時鐘速度高達 168 MHz。該微控制器支持 2 MB 的閃存和 256 KB 的 SRAM,代碼和內(nèi)存足以用于高級應用的開發(fā)。該開發(fā)板還包括 LCD、數(shù)個 LED 和可擴展的 I/O。
圖 3:STM32F429I Discovery 開發(fā)板成本低廉,采用 Arm Cortex-M4 處理器,可為開發(fā)人員提供充分的處理能力以評估 RTOS。(圖片來源:STMicroelectronics)
若基于 RTOS 的物聯(lián)網(wǎng)邊緣設備還需執(zhí)行機器學習,則開發(fā)人員更適合選用 STM32F7 Discovery 板 (STM32F746G-DISCO)(圖 4)。STM32F7 Discovery 板基于 Arm Cortex-M7 處理器,帶緩存,時鐘速度高達 216 MHz,具有 1 MB 的閃存和 340 KB 的 SRAM。此外,該開發(fā)板還包括 4.3 英寸 480 x 272 像素顯示屏、以太網(wǎng)、SD 插槽、USB、麥克風和揚聲器連接等。
圖 4:STM32F746G Discovery 開發(fā)板成本低廉,采用 Arm Cortex-M7 處理器。開發(fā)人員不僅可用于評估 RTOS,還可評估物聯(lián)網(wǎng)邊緣設備上所需使用的任何機器學習接口。(圖片來源:STMicroelectronics)
最后介紹的一款開發(fā)板是 STM32L0 Nucleo 板 (NUCLEO-L073RZ)(圖 5)。STM32L0 Nucleo 板基于 Arm Cortex-M0+,旨在實現(xiàn)最低能耗,非常適合電池供電的低功耗物聯(lián)網(wǎng)邊緣設備。STM32L0 微控制器的時鐘速度高達 24 MHz,具有 192 KB 的閃存和 20 KB 的 SRAM。該開發(fā)板的特性可滿足 RTOS 運行的最低需求,組件很簡單,只包括用戶開關和 LED。
圖 5:NUCLEO-L073RZ STM32L0 開發(fā)板基于 Arm Cortex-M0+ 處理器,旨在為低功耗設備提供高性能。(圖片來源:STMicroelectronics)
接下來介紹的是 Renesas Synergy? 平臺。在嵌入式行業(yè)中,該平臺的獨特之處在于附帶豐富的第三方軟件和各供應商的開發(fā)工具。
例如,如果開發(fā)人員使用 STMicroelectronics 開發(fā)板,并希望將 Express Logic 的 ThreadX RTOS 與 IAR Systems 的 Embedded Workbench 編譯器和開發(fā)環(huán)境結合使用,那么編譯器需要使用 IAR 產(chǎn)品,RTOS 需使用 Express Logic 產(chǎn)品,就必須分別購買使用許可證。但是,開發(fā)人員只需購買 Renesas Synergy 平臺中的某個微控制器,就能免費使用這些工具和 RTOS 以及其他中間件。
若開發(fā)人員希望在高端處理器上測試 ThreadX,Renesas Synergy 的 SK-S7G2 開發(fā)板 (YSSKS7G2E30) 不失為絕佳的選擇(圖 6)。SK-S7G2 基于 Arm Cortex-M4 處理器,時鐘速度達 240 MHz,具有 3 MB 的閃存和 640 KB 的 RAM。該開發(fā)板組件豐富,包括 LCD、大量 LED、I/O 擴展、CAN、PMOD 擴展,可輕松訪問串口和附加 I/O。
圖 6:Renesas Synergy 的 SK-S7G2 開發(fā)板附帶商用開發(fā)工具,包括 Express Logic 的 ThreadX RTOS。(圖片來源:Renesas)
另一款可用于測試 ThreadX 的開發(fā)板是 Renesas Synergy 的 TB-S5D5 (YSTBS5D5E10)(圖 7)。TB-S5D5 開發(fā)板成本低廉,采用 Arm Cortex-M4 處理器,時鐘速度達 120 MHz,具有 1 MB 的閃存和 384 KB 的 SRAM。該開發(fā)板的功能較少,從而能最大限度地降低成本,只包括用戶按鈕、電容式觸控和 LED。
圖 7:Renesas Synergy 的 TB-S5D5 開發(fā)板為開發(fā)人員提供 1 MB 的代碼閃存和 384 KB 的 SRAM,可用于測試 ThreadX。(圖片來源:Renesas)
對于開發(fā)人員,尤其是對物聯(lián)網(wǎng)應用感興趣的開發(fā)人員,其他值得關注的選擇還有 Renesas Synergy 的 AE-Cloud1 物聯(lián)網(wǎng)套件 YSAECLOUD1(圖 8)和 Renesas Synergy 的 AE-Cloud2 蜂窩物聯(lián)網(wǎng)套件 YSAECLOUD2(圖 9)。
Synergy Cloud1 物聯(lián)網(wǎng)套件讓開發(fā)人員可以通過 Wi-Fi 連接至云端,而 Cloud2 蜂窩物聯(lián)網(wǎng)套件則可通過蜂窩網(wǎng)絡連接。這兩款開發(fā)板均基于 S5D9 處理器,具有板載傳感器和 LED 可從云端進行監(jiān)視和控制。此外,這兩款套件還附帶 ThreadX 等預裝軟件,因此開發(fā)人員可使用自帶 RTOS 測試整個連接解決方案。(開發(fā)人員可以此評估上述 KT 矩陣的中間件部分。)
圖 8:Renesas Synergy 的 AE-Cloud1 物聯(lián)網(wǎng)套件是專為物聯(lián)網(wǎng)設備設計的開發(fā)板,可通過 Wi-Fi 連接至云端。該套件可以控制 LED、監(jiān)控來自 Amazon Web Services (AWS) 或 Microsoft Azure 等云服務提供商的傳感器值。(圖片來源:Renesas)
圖 9:Renesas Synergy 的 AE-Cloud2 蜂窩物聯(lián)網(wǎng)套件是專為物聯(lián)網(wǎng)設備設計的開發(fā)板,可通過 Wi-Fi 或蜂窩網(wǎng)絡連接至云端。該套件可以控制 LED、監(jiān)控來自 AWS 或 Azure 等云服務提供商的傳感器值。(圖片來源:Renesas)
關于上述平臺的一個重要注意事項:評估 RTOS 時,請確保執(zhí)行同環(huán)境比較。例如,若在時鐘速度達 168 MHz 的 STM32F429 Discovery 板上評估 FreeRTOS,則請確保使用相同的開發(fā)板或時鐘速度相同的開發(fā)板來評估其他 RTOS。
每款 RTOS 都有各自的“技巧與訣竅”,但有幾條經(jīng)驗法則可以普遍應用于各款 RTOS:
靜態(tài)分配任務和 RTOS 對象。動態(tài)分配任務和對象需要使用內(nèi)存分配程序 (malloc()),而這具有非確定性,可能會導致堆碎片問題,從而導致性能變差,甚至在最壞的情況下導致系統(tǒng)崩潰。
根據(jù)應用需求更改默認堆棧大小。對于多數(shù)任務而言,許多 RTOS 提供的默認堆棧值過大,這會導致 RAM 浪費。手動配置默認堆棧大小,但請務必根據(jù)任務的功能和需求調(diào)整各任務的堆棧大小。
從任務調(diào)用的函數(shù)必須可重入。從多個任務調(diào)用該函數(shù)時,若被更高優(yōu)先級的任務中斷,即可確保不存在損壞其他任務數(shù)據(jù)的風險。
盡量使用內(nèi)存塊池(如有)。內(nèi)存塊池是具有確定性行為的內(nèi)存池,可用于運行時動態(tài)分配內(nèi)存。該方法比使用 malloc() 更穩(wěn)妥,但多數(shù)開源操作系統(tǒng)并不具備此內(nèi)存管理功能。
最大限度地減少應用中使用的任務數(shù)。使用 RTOS 時,許多開發(fā)人員喜歡創(chuàng)建大量任務,但是創(chuàng)建任務就需要任務控制塊及相關的獨立堆棧空間,因此創(chuàng)建不必要的任務會大幅減少可用內(nèi)存。
物聯(lián)網(wǎng)設備的應用促使嵌入式系統(tǒng)的軟件復雜度相應增加,因此為了幫助開發(fā)人員克服這一挑戰(zhàn)并將復雜性進行抽象化,使用 RTOS 已成為必要之舉。然而,訣竅不僅僅在于選擇 RTOS。每款 RTOS 都各有所長,若選擇的 RTOS 與開發(fā)人員的應用需求不符,則可能會浪費大量的時間和精力。
相反,開發(fā)人員應采取積極主動的方法來選擇 RTOS,仔細評估各個不同方面,不光是 RTOS 本身的特性,還包括 RTOS 供應商以及遇到問題時可用的支持等外圍因素。一種有效方法則是使用 KT 矩陣仔細評估待選 RTOS,然后在完全支持該系統(tǒng)的微控制器平臺上運行所選擇的 RTOS,以確保其適合應用。
下一篇: PLC、DCS、FCS三大控
上一篇: 近零時間的 Z-Wave: