在軟件定義汽車(chē)中使用DDS中間件的安全機(jī)制
2021-12-06
作者:Jochen Seemann, Yuting Fu, Andrei Terechko與Emilio Guijarro Cameros
來(lái)源:恩智浦
軟件定義汽車(chē)將需要多種機(jī)制,保證汽車(chē)在各種情況下的安全和正常行駛。這些機(jī)制的專(zhuān)有解決方案需要大量的驗(yàn)證工作,并且很難與不同的軟件架構(gòu)集成。安全關(guān)鍵型分布式通信是否有標(biāo)準(zhǔn)化軟件框架?
向軟件定義汽車(chē)轉(zhuǎn)變
多年來(lái),傳統(tǒng)車(chē)身系統(tǒng)中執(zhí)行分立功能的電子控制單元(ECU)數(shù)量一直在增加,這些單元的可編程性較弱。然而,目前先進(jìn)的汽車(chē)設(shè)計(jì)開(kāi)始有所轉(zhuǎn)變,逐步轉(zhuǎn)向只分布在幾個(gè)(域)處理器上的靈活且可互操作的軟件。分布式軟件執(zhí)行自動(dòng)駕駛、娛樂(lè)中控、動(dòng)力和車(chē)身控制等協(xié)調(diào)任務(wù),同時(shí)共享處理器、網(wǎng)絡(luò)和傳感器,能夠降低系統(tǒng)成本。轉(zhuǎn)向軟件定義汽車(chē)是汽車(chē)行業(yè)最重要的趨勢(shì)之一,軟件功能將成為重要的差異化優(yōu)勢(shì)。
要在這個(gè)領(lǐng)域贏得競(jìng)爭(zhēng),汽車(chē)制造商需實(shí)現(xiàn)快速輕松構(gòu)建模塊化分布式應(yīng)用,而運(yùn)行這些應(yīng)用需要可編程、可靠且低成本的半導(dǎo)體設(shè)備。因此,具有易于使用的應(yīng)用編程接口(API)的標(biāo)準(zhǔn)化軟件平臺(tái)(如POSIX和AUTOSAR)日益受到歡迎。這些軟件平臺(tái)的一個(gè)關(guān)鍵組件是中間件,它是各種操作系統(tǒng)和高級(jí)應(yīng)用之間的軟件層(見(jiàn)下圖)。簡(jiǎn)單地說(shuō),中間件是一個(gè)軟件庫(kù),它使分布式系統(tǒng)組件能夠相互通信。軟件定義汽車(chē)的安全性在很大程度上取決于中間件和底層網(wǎng)絡(luò)處理器,依靠這兩者才能實(shí)現(xiàn)分布式進(jìn)程之間可靠的實(shí)時(shí)數(shù)據(jù)通信。
面向自動(dòng)駕駛的S32G處理器上的安全檢查工具原型
一流的自動(dòng)駕駛(AD)系統(tǒng)通常采用雙通道架構(gòu)來(lái)實(shí)現(xiàn)冗余,即在正常情況下控制AD系統(tǒng)的主通道旁邊部署備用通道。如果主通道出現(xiàn)故障,汽車(chē)控制將切換回備用通道。這樣能夠同時(shí)提高AD系統(tǒng)的安全性和可用性。這種架構(gòu)需要一個(gè)安全檢查工具來(lái)驗(yàn)證主通道的運(yùn)行狀態(tài),并在必要時(shí)觸發(fā)安全機(jī)制,如安全停車(chē)。顯然,安全檢查工具的計(jì)算和通信功能非常關(guān)鍵,這對(duì)其容錯(cuò)和可靠性提出了很高的要求。
恩智浦S32G汽車(chē)網(wǎng)絡(luò)處理器非常適合執(zhí)行具有各種安全機(jī)制的高度可靠的AD系統(tǒng)。S32G中的Arm? Cortex?-A53內(nèi)核提供高性能計(jì)算能力,ASIL D Cortex-M7安全內(nèi)核鎖步模式適合運(yùn)行安全關(guān)鍵型功能。此外,面向服務(wù)型網(wǎng)關(guān)的S32G GoldBox參考設(shè)計(jì)上集成的SJA1110以太網(wǎng)交換機(jī)提供了時(shí)間敏感網(wǎng)絡(luò)(TSN)功能,可與網(wǎng)絡(luò)上分布的高級(jí)AD應(yīng)用進(jìn)行實(shí)時(shí)可靠的通信。
除了完整性較高的硬件外,在S32G中的Cortex-A53和Cortex-M7內(nèi)核上運(yùn)行的數(shù)據(jù)分發(fā)服務(wù)(DDS)中間件軟件負(fù)責(zé)管理分布式系統(tǒng)的數(shù)據(jù)和通信。DDS中間件協(xié)議基于對(duì)象管理組織?(OMG?)標(biāo)準(zhǔn)化的發(fā)布-訂閱模式。DDS已集成到各種關(guān)鍵的汽車(chē)平臺(tái)生態(tài)合作體系中,例如AUTOSAR Adaptive和ROS2。DDS提供低延遲數(shù)據(jù)連接、可靠性和可擴(kuò)展的以數(shù)據(jù)為中心的通信。此外,DDS附帶了一組豐富的內(nèi)置服務(wù)質(zhì)量(QoS)策略,可控制DDS行為,如資源消耗和通信可靠性。如需了解DDS的基本原理和QoS策略,可以嘗試互動(dòng)式Shape演示應(yīng)用或觀看演示視頻。
請(qǐng)注意,面向資源極度受限環(huán)境的DDS通過(guò)使用OMG DDS-XRCE協(xié)議實(shí)現(xiàn)。這是客戶端到代理協(xié)議,意味著DDS-XRCE客戶端節(jié)點(diǎn)通過(guò)外部代理節(jié)點(diǎn)與DDS網(wǎng)絡(luò)通信。DDS-XRCE非常適合為物聯(lián)網(wǎng)設(shè)備開(kāi)發(fā)輕量級(jí)DDS應(yīng)用,但在安全關(guān)鍵型系統(tǒng)中使用時(shí),該代理可能會(huì)成為單點(diǎn)故障。然而,運(yùn)行在S32G Cortex-M7上的RTI Connext?DDS Micro無(wú)需任何橋接或代理,可直接與功能齊全的DDS網(wǎng)絡(luò)進(jìn)行通信,從而消除了單點(diǎn)故障。ISO 26262汽車(chē)安全環(huán)境中也可構(gòu)建集成RTI Connext DDS Micro,其安全等級(jí)最高可達(dá)ASIL D級(jí)。
以下是對(duì)實(shí)施冗余自動(dòng)駕駛通道特別有意義的DDS QoS策略:
?“截止日期”表示是否滿足數(shù)據(jù)發(fā)送和接收時(shí)間要求。每當(dāng)不滿足發(fā)送和/或接收時(shí)間限制時(shí),數(shù)據(jù)寫(xiě)入器和數(shù)據(jù)讀取器都會(huì)通知應(yīng)用。
?“活躍度”表示新的數(shù)據(jù)寫(xiě)入器(DDS發(fā)布者節(jié)點(diǎn))是否加入或仍然存在于網(wǎng)絡(luò)中。
?“獨(dú)占所有權(quán)”和“所有權(quán)強(qiáng)度”規(guī)定,只有具有最高強(qiáng)度值的數(shù)據(jù)寫(xiě)入器才能寫(xiě)入特定實(shí)例。
?“傳輸優(yōu)先級(jí)”表明數(shù)據(jù)寫(xiě)入器或數(shù)據(jù)讀取器發(fā)送的數(shù)據(jù)具有特定優(yōu)先級(jí)。要了解此QoS策略如何將DDS主題鏈接到TSN流的更多信息,請(qǐng)查看我們關(guān)于DDS和TSN集成的在線研討會(huì)以及我們?cè)贕itHub上集成DDS-TSN的開(kāi)源示例項(xiàng)目。
一旦DDS中間件層就緒,就可以使用DDS內(nèi)置QoS策略。這簡(jiǎn)化了開(kāi)發(fā)過(guò)程,極大地提高了軟件組件的互操作性和可重用性。DDS多種發(fā)行版本,可滿足分布式AD組件的不同系統(tǒng)要求。在分布式AD系統(tǒng)中實(shí)施DDS既設(shè)立了一個(gè)通用的通信和數(shù)據(jù)管理框架,也毫不費(fèi)力地增加了系統(tǒng)多樣性。此外,基于DDS構(gòu)建的系統(tǒng)可以使用單個(gè)DDS XML文件輕松建模和配置。XML文件格式使系統(tǒng)開(kāi)發(fā)更加容易,可幫助架構(gòu)師和應(yīng)用開(kāi)發(fā)人員在系統(tǒng)層面設(shè)計(jì)軟件定義汽車(chē)。
使用DDS QoS策略的安全機(jī)制
如果組合得當(dāng),DDS QoS策略可啟用各種故障處理機(jī)制和安全措施,應(yīng)對(duì)性能限制。DDS中間件層為在其上運(yùn)行的所有AD組件設(shè)立了一個(gè)通用框架。無(wú)需太多工程工作即可實(shí)現(xiàn)不同規(guī)模的各種安全機(jī)制,例如故障切換到完全冗余的AD通道或組件的無(wú)縫接管。下面將詳細(xì)介紹在概念驗(yàn)證演示設(shè)置中實(shí)現(xiàn)的安全機(jī)制。
無(wú)縫故障切換
故障切換是安全關(guān)鍵型系統(tǒng)中廣泛使用的安全機(jī)制。它通常依賴故障靜默組件,這些組件在發(fā)生故障時(shí)停止產(chǎn)生輸出。通常,當(dāng)主AD通道發(fā)生靜默故障時(shí),系統(tǒng)應(yīng)退回到冗余安全通道,操縱汽車(chē)進(jìn)入安全狀態(tài)。該機(jī)制可以使用DDS活躍度和所有權(quán)QoS策略來(lái)實(shí)現(xiàn)。如果主通道中的汽車(chē)控制數(shù)據(jù)寫(xiě)入者發(fā)生靜默故障或失去與系統(tǒng)其余部分的通信,那么由所有權(quán)強(qiáng)度較低的安全通道的數(shù)據(jù)寫(xiě)入者生成的樣本將自動(dòng)對(duì)汽車(chē)執(zhí)行器可見(jiàn),并開(kāi)始無(wú)縫控制車(chē)輛。同時(shí),使用安全檢查工具來(lái)監(jiān)測(cè)由于數(shù)據(jù)寫(xiě)入者故障而導(dǎo)致的DDS網(wǎng)絡(luò)活躍度變化。系統(tǒng)可以根據(jù)此類(lèi)診斷信息實(shí)施恢復(fù)機(jī)制,例如重啟。
無(wú)縫接管
即使發(fā)生故障的AD組件不是故障靜默的,系統(tǒng)也可以實(shí)施接管安全機(jī)制,在不影響系統(tǒng)可用性的情況下主動(dòng)否決故障或不可靠的組件??梢允褂肈DS獨(dú)占所有權(quán)和所有權(quán)強(qiáng)度QoS策略來(lái)實(shí)現(xiàn)接管。這些QoS策略控制允許哪個(gè)數(shù)據(jù)寫(xiě)入者向數(shù)據(jù)讀取者發(fā)送數(shù)據(jù)。當(dāng)安全檢查工具檢測(cè)到主數(shù)據(jù)寫(xiě)入者未正常運(yùn)行(例如錯(cuò)過(guò)截止日期或發(fā)送越界數(shù)據(jù))時(shí),會(huì)觸發(fā)所有權(quán)強(qiáng)度更高的健康數(shù)據(jù)寫(xiě)入者將數(shù)據(jù)發(fā)送到數(shù)據(jù)讀取者。
故障切換與接管相結(jié)合的混合方法
DDS截止日期、活躍度、獨(dú)占所有權(quán)和所有權(quán)強(qiáng)度可以結(jié)合在一起,實(shí)現(xiàn)同時(shí)利用故障切換和接管機(jī)制的混合機(jī)制。例如,通過(guò)監(jiān)測(cè)DDS網(wǎng)絡(luò)的活躍度,安全檢查工具可以在節(jié)點(diǎn)靜默故障時(shí)靈活地觸發(fā)故障切換機(jī)制,或者在運(yùn)行的節(jié)點(diǎn)未故障靜默并發(fā)布錯(cuò)誤數(shù)據(jù)或錯(cuò)過(guò)截止日期時(shí)激活接管機(jī)制。由于所有權(quán)強(qiáng)度QoS值不同,系統(tǒng)在主通道和安全通道之間無(wú)縫切換時(shí),也可以輕松處理系統(tǒng)中的過(guò)渡故障。
安全機(jī)制評(píng)估
為了在真實(shí)環(huán)境中評(píng)估在S32G上實(shí)施的基于DDS的安全機(jī)制,恩智浦與RTI(Real-Time Innovations)公司的汽車(chē)工程專(zhuān)家團(tuán)隊(duì)合作。RTI是一家領(lǐng)先的自動(dòng)駕駛系統(tǒng)軟件框架提供商,經(jīng)營(yíng)名為Connext DDS的DDS產(chǎn)品和工具組合。我們攜手將恩智浦安全檢查工具集成到基于Auoware.Auto的自動(dòng)代客停車(chē)(AVP)演示中,Auoware.Auto是Autware基金會(huì)的一個(gè)開(kāi)源項(xiàng)目。該演示展示了汽車(chē)如何自動(dòng)駛?cè)氪屯\?chē)場(chǎng)。Autoware.Auto是一個(gè)基于ROS2的成熟的端到端自動(dòng)駕駛框架,它使用DDS作為底層中間件。
演示設(shè)置架構(gòu)
硬件在環(huán)評(píng)估演示設(shè)置的架構(gòu)如下圖所示:
?大多數(shù)Autoware.Auto AD堆棧(如定位、感知、預(yù)測(cè)、路徑規(guī)劃)都運(yùn)行在恩智浦BlueBox汽車(chē)高性能計(jì)算開(kāi)發(fā)平臺(tái)Layerscape處理器的ROS2/DDS上。本例中的DDS中間件是RTI的Connext Pro,通過(guò)RTI的rmw_connextdds RMW層組件與ROS2集成。
?恩智浦車(chē)聯(lián)網(wǎng)GoldBox中的S32G在演示中充當(dāng)區(qū)域控制器,其中線控驅(qū)動(dòng)軟件接口在S32G Cortex-A53內(nèi)核的ROS2/DDS上運(yùn)行。在真實(shí)汽車(chē)中,該接口用于將以太網(wǎng)數(shù)據(jù)包中的車(chē)輛控制命令轉(zhuǎn)換為執(zhí)行器的CAN消息。在模擬環(huán)境中,使用它將數(shù)據(jù)在Autoware.Auto和開(kāi)源LG SVL端到端模擬平臺(tái)使用的格式之間進(jìn)行轉(zhuǎn)換。安全檢查工具帶有安全接管和故障切換機(jī)制,基于運(yùn)行在S32G Cortex-M7內(nèi)核上的RTI DDS Connext Micro。
?外部模擬PC上運(yùn)行的LG SVL模擬器可模擬道路使用者、自主車(chē)輛執(zhí)行器和傳感器的數(shù)據(jù)。
使用基于DDS的安全機(jī)制處理故障的演示視頻
在評(píng)估設(shè)置中,我們將類(lèi)似于現(xiàn)實(shí)問(wèn)題的故障注入AD系統(tǒng),并觀察基于DDS的安全機(jī)制如何處理這種情況。下面的演示視頻展示了安全檢查工具是如何監(jiān)測(cè)、檢測(cè)和應(yīng)對(duì)系統(tǒng)故障的,如軟件崩潰、掉電和網(wǎng)絡(luò)連接中斷。
結(jié)論
為了順應(yīng)向軟件定義汽車(chē)轉(zhuǎn)變的發(fā)展趨勢(shì),汽車(chē)系統(tǒng)軟件需要模塊化、可靠和可擴(kuò)展。正如Autoware.Auto AVP實(shí)驗(yàn)所示,恩智浦S32G ASIL D Cortex-M7處理器內(nèi)核能夠很好地在自動(dòng)駕駛系統(tǒng)中充當(dāng)安全檢查工具。RTI Connext DDS中間件為整個(gè)汽車(chē)系統(tǒng)的強(qiáng)大處理器和資源受限的微控制器提供了一個(gè)通信框架,從而促進(jìn)了這一進(jìn)程。DDS憑借其豐富的服務(wù)質(zhì)量策略,在軟件定義汽車(chē)中實(shí)現(xiàn)了多種安全機(jī)制,其工程工作量低,互操作性強(qiáng)。
作者:
Jochen Seemann是恩智浦半導(dǎo)體的嵌入式軟件架構(gòu)師。他畢業(yè)于巴登-沃爾滕堡合作州立大學(xué)應(yīng)用計(jì)算機(jī)科學(xué)專(zhuān)業(yè),在工業(yè)PC接口全棧軟件開(kāi)發(fā)方面擁有5年經(jīng)驗(yàn)。Jochen還擔(dān)任過(guò)5年的汽車(chē)領(lǐng)域一級(jí)軟件工程師和架構(gòu)師,主要致力于IVI和自動(dòng)駕駛產(chǎn)品的工作。此外,他還促進(jìn)了開(kāi)源Qt框架的開(kāi)發(fā)。
Yuting Fu是恩智浦半導(dǎo)體公司的系統(tǒng)工程師。她擁有埃因霍溫理工大學(xué)和柏林理工大學(xué)嵌入式系統(tǒng)碩士學(xué)位。Yuting編寫(xiě)了3本與自動(dòng)駕駛系統(tǒng)車(chē)輛安全機(jī)制有關(guān)的科學(xué)出版物。此外,她還是經(jīng)過(guò)認(rèn)證的IEC 61508功能安全專(zhuān)家。
Andrei Terechko是恩智浦半導(dǎo)體公司的高級(jí)首席架構(gòu)師。Andrei擁有15年跨國(guó)公司工作經(jīng)驗(yàn),10年初創(chuàng)公司工作經(jīng)驗(yàn)。目前,他致力于自動(dòng)駕駛的安全機(jī)制和架構(gòu)工作。Andrei與他人合作申請(qǐng)了15項(xiàng)專(zhuān)利、合著了20多本國(guó)際出版物和公開(kāi)演講稿。
Emilio Guijarro是Real-Time Innovations (RTI)的高級(jí)汽車(chē)應(yīng)用工程師,在國(guó)防和汽車(chē)行業(yè)(包括汽車(chē)娛樂(lè)中控系統(tǒng))方面擁有超過(guò)15年的工作經(jīng)驗(yàn)。他于2019年加入RTI,致力于將DDS集成到汽車(chē)用例和特定開(kāi)發(fā)環(huán)境(包括AUTOSAR生態(tài)系統(tǒng))。