首頁 > 新能源汽車

選擇用于高速控制的 RTOS

來源:新能源汽車網(wǎng)
時間:2023-03-29 17:03:11
熱度:

選擇用于高速控制的 RTOS近年來,嵌入式設(shè)備的爆炸式增長已經(jīng)模糊了真正的實(shí)時操作系統(tǒng) (RTOS) 和可以為嵌入式系統(tǒng)服務(wù)的操作系統(tǒng)之間的界限。一般來說,實(shí)時操作系統(tǒng)是嵌入式操作

近年來,嵌入式設(shè)備的爆炸式增長已經(jīng)模糊了真正的實(shí)時操作系統(tǒng) (RTOS) 和可以為嵌入式系統(tǒng)服務(wù)的操作系統(tǒng)之間的界限。一般來說,實(shí)時操作系統(tǒng)是嵌入式操作系統(tǒng)的一個子集。雖然您可以使用嵌入式操作系統(tǒng)解決許多應(yīng)用挑戰(zhàn),但有些挑戰(zhàn)只能通過硬 RTOS 提供的確定性來解決。

屬于此類的重要應(yīng)用之一是高速控制。從醫(yī)療儀器和包裝機(jī)到汽車發(fā)動機(jī)模擬,許多設(shè)備和系統(tǒng)都存在高速控制。

需要實(shí)時執(zhí)行的常見的控制類型是閉環(huán)控制系統(tǒng)。閉環(huán)控制系統(tǒng)通常執(zhí)行三個基本操作:

? 從被控系統(tǒng)(通常稱為設(shè)備)獲取反饋信號。

? 根據(jù)期望的行為對輸入信號執(zhí)行邏輯和/或信號處理。

? 生成影響設(shè)備的輸出信號,如圖 1 所示。



要將高速控制系統(tǒng)與所有其他控制應(yīng)用區(qū)分開來,請考慮高速控制系統(tǒng)需要以 1 毫秒或更小的循環(huán)速率運(yùn)行,或者以至少 1 kHz 的速率確定性地執(zhí)行上述三個動作。此外,這些系統(tǒng)必須達(dá)到控制環(huán)路速率以避免關(guān)鍵任務(wù)系統(tǒng)故障。

因此,高速控制系統(tǒng)需要硬實(shí)時解決方案。雖然性能重要,但高速控制系統(tǒng)還有其他要求。要為您的控制應(yīng)用找到合適的 RTOS,您必須考慮以下因素:

? 表現(xiàn)

? 軟件開發(fā)工具

? 調(diào)試

? 控制算法集成

? 硬件和 I/O 支持

? 代碼足跡

? 溝通


性能 
選擇 RTOS 時重要的考慮因素是可靠性能。操作系統(tǒng)必須滿足基本的馬力要求才能使控制軟件完成其任務(wù)。重要的要求之一是低中斷延遲,如圖 2 所示。系統(tǒng)必須能夠快速且可預(yù)測地響應(yīng)新輸入信號等事件。衡量此性能的術(shù)語是中斷服務(wù)例程 (ISR) 延遲和中斷服務(wù)線程 (IST) 延遲。硬件在環(huán)仿真和運(yùn)動控制系統(tǒng)等高速控制應(yīng)用通常要求 ISR 和 IST 時間小于 10 μs。



大多數(shù)真正的 RTOS,例如 Wind River 的 VxWorks、QNX 的 Neutrino 和 Green Hills 的 Integrity,都可以滿足這些要求。此外,Linux 和實(shí)時調(diào)度程序的各種合并,例如 RTLinux 和 RTAI,可以解決高速控制應(yīng)用程序的挑戰(zhàn)。另一方面,從一開始就不是為實(shí)時設(shè)計的操作系統(tǒng),例如 Windows XP Embedded 和 Linux 的一般發(fā)行版,不滿足中斷延遲要求。

軟件開發(fā)工具 
接下來,考慮編寫特定 RTOS 所需的軟件開發(fā)環(huán)境。正如性能類似于 RTOS 的馬力一樣,開發(fā)環(huán)境類似于使它使用起來舒適的懸掛和“騎行”。雖然 RTOS 可能具有所有正確的規(guī)范,但開發(fā)環(huán)境對開發(fā)的質(zhì)量和速度以及項(xiàng)目的整體成功有著巨大的影響。這些功能可以像語法突出顯示和函數(shù)完成一樣簡單,也可以像代碼生成向?qū)Ш驮创a控制兼容性一樣強(qiáng)大。有效的通用功能代碼生成工具可以為新手和有經(jīng)驗(yàn)的開發(fā)人員節(jié)省數(shù)天的開發(fā)時間。另一個需要考慮的因素是用于開發(fā)環(huán)境的附加工具的可用性。

調(diào)試 
知道系統(tǒng)能夠進(jìn)行高速控制是一回事,而始終如一地實(shí)現(xiàn)它又是另一回事。實(shí)時軟件開發(fā)工具的調(diào)試功能可能意味著創(chuàng)建成功的控制系統(tǒng)與無休止地尋找難以捉摸的錯誤之間的區(qū)別。單步執(zhí)行、printf() 和syslog() 方法等標(biāo)準(zhǔn)功能是必需的,但如果沒有調(diào)試工具,則很難優(yōu)化實(shí)時應(yīng)用程序。其中包括應(yīng)用程序分析、內(nèi)存分析和執(zhí)行跟蹤工具。

應(yīng)用程序和內(nèi)存分析器可以深入了解系統(tǒng)上運(yùn)行的每個任務(wù)的處理器和內(nèi)存使用情況。通過識別哪些任務(wù)使用多的 CPU 和內(nèi)存資源,您可以快速找到需要優(yōu)化的區(qū)域。請記住,RTOS 供應(yīng)商提供的技術(shù)支持水平在開發(fā)和調(diào)試階段可能至關(guān)重要。

執(zhí)行跟蹤工具通過提供線程執(zhí)行、中斷、搶占和其他事件的可見表示,達(dá)到了另一個級別的調(diào)試。使用這些工具,您可以發(fā)現(xiàn)棘手的調(diào)度問題并確定應(yīng)用程序中導(dǎo)致控制不穩(wěn)定的時序問題。調(diào)試工具的示例包括 Green Hills 的 Integrity OS EventAnalyzer、National Instruments 的 LabVIEW Execution Trace Toolkit、QNX 的 Neutrino Momentics 系統(tǒng)分析器以及 Wind River 的 VxWorks 和 Linux 的 ScopeTools。

算法集成 
“高速”的稱號不僅意味著快速的控制處理,也意味著先進(jìn)的控制策略。事實(shí)上,控制系統(tǒng)的是處理輸入信號以產(chǎn)生適當(dāng)輸出的算法或邏輯。根據(jù)應(yīng)用的不同,控制算法的范圍可以從驅(qū)動閥門和繼電器的簡單離散邏輯到確定運(yùn)動曲線的復(fù)雜微分方程。隨著算法變得越來越復(fù)雜,可能需要訪問復(fù)雜數(shù)學(xué)函數(shù),例如快速傅立葉變換 (FFT) 和比例-積分-微分 (PID) 算法。

由于大多數(shù) RTOS 集成開發(fā)環(huán)境不包含此類庫,因此您必須探索多種選擇。你可以自己開發(fā)算法;然而,這可能需要大量的開發(fā)時間,并且需要不易獲得的知識。您可以在開源庫中找到這些算法,也可以從 IP 供應(yīng)商處購買?;蛘撸绻褂镁哂写a生成功能的建模工具(例如 I-Logix 的 Statemate 或 Dynasim 的 Dymola)創(chuàng)建控制算法,則代碼生成可能是一個選項(xiàng)。,您可以考慮使用包含分析功能并可直接針對嵌入式控制器的開發(fā)工具,而無需生成代碼。

嵌入式硬件 
如果不討論合適的硬件處理目標(biāo),那么關(guān)于高速控制系統(tǒng)的討論就不會完整。通常,可用的軟件選項(xiàng)由預(yù)定的硬件平臺控制,或者硬件受限于特定軟件工具鏈的支持。您必須考慮處理器性能、成本和環(huán)境規(guī)格等重要因素。例如,運(yùn)行密集控制模型的硬件在環(huán)仿真系統(tǒng)需要高性能處理器,通常由多核處理器提供服務(wù)。并非所有 RTOS 都對多核處理器提供同等支持,因此支持的深度是您選擇過程中的一個重要考慮因素。

在某些情況下,工業(yè)機(jī)器控制系統(tǒng)或現(xiàn)場控制設(shè)備可能需要處理器能夠處理 -40° 至 +70°C 或更高的極端溫度。當(dāng)然,電池供電的控制設(shè)備需要低功耗處理器。滿足惡劣環(huán)境和功率限制的處理器的性能本質(zhì)上低于通用處理器。這意味著 RTOS 的工作能力較弱,從而使性能和占用空間變得更加重要。

控制系統(tǒng)與工廠的連接是 I/O 硬件,它與受控系統(tǒng)的物理信號進(jìn)行交互。I/O可以包括模擬電壓、電流、數(shù)字信號、脈寬調(diào)制信號、射頻信號等的任意組合。尋找廣泛支持所需 I/O 類型的 RTOS。無論您是選擇單獨(dú)的 I/O 組件,如 ADC 和 DAC,還是選擇具有大量 I/O 通道的多功能 PCI 數(shù)據(jù)采集板,都要考慮軟件開發(fā)。與 PCI、PCI Express、CompactPCI、PXI、PXI Express 和 VME 等總線的現(xiàn)成硬件相比,在處理單個組件時期望開發(fā)更多低級代碼。

現(xiàn)成的設(shè)備通常有更別的驅(qū)動程序,但這些可能因供應(yīng)商而異。有些僅提供帶有 peek 和 poke 接口的板級支持包 (BSP),而另一些則提供成熟的應(yīng)用程序編程接口 (API),其中包括直接內(nèi)存訪問 (DMA) 傳輸?shù)裙δ堋/O 板在控制系統(tǒng)的關(guān)鍵規(guī)格方面也各不相同,例如精度、隔離和與信號調(diào)節(jié)的連接性。

當(dāng)控制系統(tǒng)通過 I/O 連接到工廠時,它通過通信協(xié)議和圖形用戶界面與操作員通信。由于以太網(wǎng)無處不在,TCP 通信是重要的協(xié)議之一。用于控制軟件的 RTOS 必須具有強(qiáng)大的 TCP 堆棧才能與外界連接。

還有許多其他通用嵌入式接口,如 USB、藍(lán)牙、I2C 和 SPI,可用于控制系統(tǒng),但也有控制系統(tǒng)可能需要的行業(yè)特定接口。例如,航空航天市場使用 ARINC 429 和 AFDX 等協(xié)議;汽車市場使用 CAN、LIN 和 FlexRay;工業(yè)自動化市場使用 DeviceNet、PROFIBUS 和 Modbus。同樣,您必須了解適用于您的 RTOS 的可用 BSP 和 API,以及將特定協(xié)議集成到您的應(yīng)用程序中所需的開發(fā)量。

避免重新發(fā)明輪子 
雖然本文研究了如何通過選擇 RTOS 和開發(fā)工具來開發(fā)控制系統(tǒng)以從頭開始創(chuàng)建控制軟件,但還有一種替代方法。多年來,工業(yè)自動化工程師一直在使用現(xiàn)成的可編程邏輯控制器 (PLC) 和模塊化 I/O 創(chuàng)建控制系統(tǒng)。從歷史上看,PLC 一直局限于主要采用離散邏輯和簡單控制算法的低性能控制應(yīng)用。

然而,近年來,一種稱為可編程自動化控制器 (PAC) 的新型嵌入式系統(tǒng)將嵌入式計算的特性與 PLC 的堅固可靠性相結(jié)合。從軟件的角度來看,PAC 具有具有編程環(huán)境的實(shí)時平臺,可以為更的應(yīng)用程序冒險進(jìn)入較低級別的編碼。PAC 的單位硬件成本高于準(zhǔn)系統(tǒng)嵌入式硬件,但開發(fā)成本通常較低,因此上市時間較短。對于大批量,自定義嵌入式路線通常是有效的路線。但是,在實(shí)施小批量部署時,請考慮可部署的 PAC 是否是更好的解決方案。