自動駕駛QNX,Linux,Autosar概述
QNX是一個分布式、嵌入式、可規模擴展的實時操作系統。遵循POSIX.1 (程序接口)和POSIX.2 (Shell和工具)、部分遵循POSIX.1b(實時擴展)。
LynxOS是一個分布式、嵌入式、可規模擴展的實時操作系統,遵循POSIX.1a、POSIX.1b和POSIX.1c標准。
RT-Linux是一個嵌入式硬實時操作系統,它部分支持POSIX.1b標准。
KURT-Linux不是為嵌入式應用設計的,不同於硬實時/軟實時應用,提出“嚴格(firm)”實時應用的概念,非常適合一些多媒體應用和ATM網絡應用,KURT也同樣為這些應用設計的“嚴格的”實時系統。
QNX、RTLinux、uC/OS-II、Nucleus Plus、VRTX、VxWorks、eCos的相互比較
到目前為止接觸過QNX、RTLinux、uC/OS-II、Nucleus Plus、VRTX、VxWorks、eCos,總結下來有以下特點:
1:QNX的可靠性很好,協議棧、各種外設驅動穩定,只是運行所需資源有些多,需要MMU。如果需要高可靠性應用,QNX可能是最好的選擇,本人公司現在就是基於QNX開發RTOS的。
2:RTLinux的實時性與其它RTOS相比有些差。但是,因為好多Linux資源可以利用,是RTLinux的優點。但是運行所需資源比QNX還多,也是需要MMU。可以選用開源的RTLinux或內容新的商用RTLinux。
3:uC/OS-II比較小巧,移植容易,網上資源很多,核心可以做得很小。但不是免費的,並且驅動需要自己編寫,協議棧、圖形驅動都要另外加。
4:Nucleus Plus比uC/OS-II龐大,另外提供了文件系統、協議棧、圖形界面等許多東西。當然也是分開賣的,不是免費的東西。使用起來比較容易上手。
5:VRTX是一款比較早的RTOS,現在使用的人已經很少。運行還是比較可靠。配套的文件、協議棧等模塊很少。
6:VxWorks是RTOS中的大牛,國內外用的人很多,開發工具功能強大,使用方便,但是價格昂貴。也有基於MMU的高可靠性的產品。所需資源比QNX小,比uC/OS、eCos多。對於一些私企或者好似小公司來說,可用性值得商榷。
7:eCos是開源的RTOS。針對不同的CPU已經做了許多現成的移植。代碼尺寸比Nucleus的略大。如果不用USB host等,並且不想花費太多的金錢,應該是不錯的選擇。
8、MINIX3
AUTOSAR架構概述
什么是AUTOSAR架構?AUTOSAR為汽車開放系統架構,英文為Automotive Open System Arichitecture。汽車開放系統架構包含微控制器抽象層:基礎軟件中最低一層,主要包含驅動,大部分是一些軟件模塊。ECU抽象層:這一層是與微控制器抽象層進行對接外部驅動設備訪問提供API(應用程序編程接口)。
AUTOSAR基礎軟件最高層與應用軟件關系密切,在IO信號訪問ECU抽象層中時提供操作系統、存儲管理、診斷服務、ECU狀態管理。Runtime Environment 運行時環境是AUTOSAR虛擬功能總線的接口(Virtual Function Bus)簡稱VFB。RTE包含系統服務、實時操作系統、錯誤管理器、庫功能。Operating System 操作系統,AUTOSAR.OS包含中斷處理、調度處理、系統時間和始終同步、本地消息處理、錯誤檢驗機制、看門狗監控技術(主要監控與計時約束有關的應用執行)可以提高可靠性。
如圖所示:汽車開放系統架構從最底層開始包括ECU硬件、基礎軟件模塊、服務系統模塊、操作系統、復雜的驅動裝置、ECU抽象層、AUTOSAR運行時環境、應用層軟件。其中我們平時應用到最多的便是應用層軟件,根據汽車的不同需求建立控制模型,然后進行仿真及自動代碼的生成。在這個過程中少不了CAN控制器局域網絡,通常說的ECU就是掛在CAN上的節點,每個汽車零部件控制器均可以看做是一個節點,ECU通訊是通過ID優先級來決定通訊時序的,通常情況VCU整車控制器的ID優先級是最高的,所以當通訊發生堵塞時,VCU的通訊是不會受到影響的。
AUTOSAR汽車開放系統架構在電動汽車的發展帶動下越來越受到設計師的歡迎,但是AUTOSAR架構本身涵蓋的知識系統比較復雜。