近年來,隨著智能駕駛的興起,傳統的汽車電子開發模式已不再適用于智駕的系統開發場景,基于智能駕駛中間件的開發模式成為突破口。2023年9月21日,在2023第三屆智能汽車域控制器與中央計算平臺創新峰會上,華玉通軟聯合創始人兼CTO李堅表示,通過面向智能駕駛芯片以及上層軟件需求開發的基礎軟件/中間件,可以讓智能駕駛的系統開發成本得到極大的降低,同時縮短開發周期,提高軟件的可靠性。 ![]() 李堅 |華玉通軟聯合創始人兼CTO 以下為演講內容整理: 在傳統的汽車電子控制開發的模式中,使用基于AUTOSAR CP的中間件進行開發已經成為行業中主流的開發模式。隨著智能駕駛的興起,雖然其在應用的需求以及應用所使用的技術和傳統的汽車電子控制是截然不同的兩個領域,但它的系統規模更加復雜。因此在智能駕駛的場景中,基于基礎軟件或者基于中間件的開發模式仍然是非常必要的。通過基礎軟件,我們可以讓智能駕駛的系統開發成本得到極大的降低,縮短開發周期,提高軟件的可靠性。 面向智能駕駛的基礎軟件/中間件行業目前仍處于發展期,技術壁壘很高。不論是ADAS輔助智能駕駛的應用,還是高階自動駕駛,系統軟件都是整個軟件體系架構的重要組成,高度關乎系統的可靠性和安全性。 ![]() 圖源:演講嘉賓素材 正是基于此,華玉通軟致力于面向智能駕駛的基礎軟件研發,目前已經推出了完整的面向智能駕駛的基礎軟件系列產品。在和多個主機廠、Tier1進行量產合作的過程中,我們也發現了基礎軟件在量產過程中出現的一系列挑戰,并逐一進行了解決。下面將和大家分享我們遇到了怎樣的問題,以及在華玉產品中的解決策略。 DDS量產案例 在量產過程中,從通信、執行管理到確定性調度以及工具鏈是我們在搭建智能駕駛系統時繞不開的話題。用開源的DDS或開源的ROS去搭建demo級別的自動駕駛軟件平臺所能達到的系統可靠性以及穩定性,與基于華玉基礎軟件去構建滿足嚴苛量產需求的系統化軟件架構所能實現的是截然不同的。 通信層面,例如在ARM A核上,量產過程中通常會遇到的問題是多個應用、算法帶來的通信場景復雜、數據收發節點多、通信頻次高,數據量非常大等挑戰。用成本很高的大算力芯片去解決這些問題是目前常用的方式。但隨著智能駕駛系統普及的需求越來越高,車企都希望能使用低成本的芯片構建自動駕駛系統,將CPU的性能盡可能充分利用,以將CPU用滿為目標來做資源分配。那么如何在高系統負載下保證通信的低延遲抖動就成為了非常重要的問題。同時,在這樣一個復雜的通信場景下,不同節點對于通信性能和通信場景的需求是不同的。華玉通信中間件可以通過非常簡單的QoS配置,來滿足客戶復雜多變的通信場景需求。此外,SoC的資源非常豐富,有多種底層通信channel,如何根據不同應用需求(進程內/進程間/核間/芯片間/域間)選擇效率最高的channel,也是華玉通信中間件能夠幫客戶解決的實際問題。在通信過程中,華玉通信中間件可以提供完整的通信診斷支持,幫助用戶快速定位與通信相關的故障所在。 下面是我們在和某Tier1量產項目中的實際通信場景。在TDA4和J5之間,TDA4的A核和R核之間要做大量的數據交互。 ![]() 圖源:演講嘉賓素材 TDA4的A核上要發布的topic數量為56個,要接收來自A核數據的節點的數量為105個,接收來自R核數據的節點為8個。通信的頻次是為25赫茲、50赫茲、100赫茲。通信數據包的平均大小從30字節到3M字節不等,平均每秒要收發的數據包數量是6000個,每秒鐘吞吐量為500M字節。這種復雜的場景如果不依賴通信中間件,要從底層直接實現一個車規級通信的框架是很困難的,并且需要消耗大量的人力、物力和時間成本。 在這個復雜通信場景下,我們使用華玉SWIFT DDS實現了數據互通。在J5及TDA4的A核/R核上都部署了SWIFT DDS,所有的通信都通過SWIFT DDS完成,并且可以根據應用的部署位置及需求來選擇最優的通訊方式。 ![]() 圖源:演講嘉賓素材 另一個案例是一個雙Orin加雙TC397的架構。在所有的芯片上同樣是通過SWIFT DDS來打通所有的通信鏈路。這里面有一顆Orin還會運行一些車云的相關應用,可以用擴展的DDS協議,包括DDS-SECURITY、DDS-RPC和DDS-WEB,幫助客戶方便快捷的直接打通車端和云端的連接并且滿足車端和云端通信的特定需求。在這樣的場景下,使用同一華玉的通信中間件就可以把車內通信、車間通信以及車云通信全部統一起來。 在這個案例中,為何客戶選擇了SWIFT DDS而不是其他方案?首先,SWIFT DDS可以實現對復雜場景的支持。通過其他方式也可以將通信場景搭建起來,但通信過程中,其他的搭建方式無法滿足除通信本身之外的功能以及性能的需求。而SWIFT DDS則可以通過DDS的配置工具輕松實現復雜場景下的通信功能及性能需求。 其次,SWIFT DDS有多種高性能通信的支持。例如在TDA4 A核R核通信中,SWIFT DDS會自動切換底層channel使用效率更高的RPMessage進行通信。 第三是對于通信延遲抖動的控制。量產過程中,A核需要運行數十個甚至上百個進程,這些進程都有自己的周期。一旦通信發生抖動,這個抖動是不可控制的。比如用Some/IP,普通抖動的平均值可能是5毫秒,但如果它在一段時間內抖動的最大值能達到幾百毫秒甚至秒的量級,對于時序要求非常嚴格的上層應用來說,是沒有辦法使用的。因此SWIFT DDS提供支持確定性調度的接口,針對前面所提到的抖動問題做了深度的優化。 最后是對于診斷和多種通信QoS的支持。SWIFT DDS針對智能駕駛汽車的場景或做了非常多的優化和改進,而其他幾種方案是沒有這些功能的。 ![]() 圖源:演講嘉賓素材 量產過程中的執行和狀態管理 SoC上運行了非常多的進程,這些進程之間有各自的依賴關系。大部分公司是按模塊開發,最后將模塊放在一起拼成一個系統。在這個過程中,程序以怎樣的形式部署到硬件上?怎樣開始運行和結束?這當中并沒有統一的框架進行規定。 對于狀態管理而言,在量產過程中必須要有一個統一的框架,比如相關的二進制文件。對于依賴庫,對于運行的參數進行統一的管理和配置。同時,對于應用要進行統一的部署,進行OTA的升級等,也都必須在一個獨立的統一框架下完成才能以最高的效率實現。 另外,我們的執行和狀態管理要做到進程和資源的隔離,保證A核上運行的多個進程一旦有崩潰的,不會影響其他進程。 針對這些挑戰,我們開發了“云雀”執行管理中間件,在量產過程中使用我們的中間件可以將應用程序的配置、開發、部署、運行,以及OTA統一到一個框架下來進行。 從應用程序的生命周期管理和狀態管理而言,通過“云雀”執行管理中間件,可以和上層業務進行解耦。用戶在只有system design(所有模塊節點的框圖以及節點之間數據流圖),還沒有實際的業務代碼之前,就可以根據這些信息把程序生命周期管理和狀態管理全部實現,而不依賴于實際的算法實現。而如果在應用里把這些功能實踐出來,造成的結果就是狀態管理、執行管理本身會和上層業務有嚴重的耦合,會非常難以調試,以及后續擴展困難。 對于部署和OTA來說,“云雀”執行管理中間件把程序的部署和OTA一并放到執行管理框架下,只要用同樣一個框架就可以實現程序開發、部署、執行、OTA,所有相關的東西都在同一個框架下實現,高度保證其連續性和一致性。 ![]() 圖源:演講嘉賓素材 我們在量產中面臨的另一挑戰是確定性執行。Linux的調度機制是盡最大的能力去做調度,但不會保證程序在確定的時間內執行完畢,而目前在A核上運行的很多智能駕駛算法是有明確的截止時間和周期要求的。一旦某個程序的執行時間不確定,就會造成整個系統狀態陷入混亂。這個過程中整個系統不僅在節點上進行計算、處理業務邏輯,節點和節點之間還要做通信,通信本身也會帶來不確定性。 有人提出用TSN解決這個問題,TSN解決的是硬件層面確定性的數據傳輸,但如果用戶不愿意在數據鏈路層使用TSN做傳輸,而在傳輸層使用UDP做數據傳輸,從鏈路層到傳輸層的數據處理過程中,kernel會帶來新的不確定性。因此,確定性的執行必須解決通信過程中數據從用戶進程發送到用戶進程接收的端到端確定性通信問題。針對這一挑戰,我們對用戶空間到內核空間數據全鏈路的收發流程做了細致的研究、分析以及優化,推出了華玉確定性版本的全鏈路通信。 通過華玉確定性執行模塊,用戶只需要把任務相關信息輸入到確定性調度generator里,產生確定性調度的方案之后,再通過確定性調度的runtime,把確定性調度方案實現出來,就可以實現跨芯片的全局確定性調度。 ![]() 圖源:演講嘉賓素材 量產過程中的工具鏈需求 對于傳統的MCU或者AUTOSAR CP的開發,相應的中間件廠商都提供了一套完整的工具鏈。但我們在A核上開發智能駕駛應用的時候,相應的工具鏈是非常少的。在Linux上做開發一般都是通過API接口調用,需要一定量的程序開發工作把應用和底層的中間件使用glue code黏合到一起。另外,上層業務的數據流是抽象的算法層面的東西,如何把算法層面比如發送數據的類型映射到中間件數據類型上也需要一定的工作量。 通常開發過程中的V字模型全流程的閉環,包括分析,設計,開發,測試,部署和維護,V字型的流程對于現在汽車電子面向智能駕駛的系統軟件是非常缺失的。 而針對V字模型開發中的每一個環節,華玉都有對應的工具來幫大家完成這些任務。比如我們的System Configurator和Code Generator針對用戶可以使用配置的方式來實現它想要的DDS的通信場景。Monitor可以讓用戶在做DDS測試和調試時直接獲取DDS實時通信狀態。DDS-Recorder、DDS-Replayer可以讓用戶在實驗室環境回放錄制的DDS數據,方便用戶進行通信調試。 Green Engine是華玉推出的自動化集成工具。通過Green Engine,用戶僅需提供上層算法就可以完成整個智能駕駛應用的集成。Green Engine替代了用戶手動去集成核心系統軟件模塊的工作。用戶只需要提供系統節點之間的框圖以及數據流的關系圖和擬采用的算法,再使用Green Engine SDK進行處理,就可以生成能直接運行的、基于車規級中間件搭建的智能駕駛應用。這樣一來,用戶可以只專注于智能駕駛應用程序的業務本身,而底層的數據通信、計算調度、執行管理等均由Green Engine做綜合和集成,從而實現智能駕駛系統的快速構建及部署。 ![]() 圖源:演講嘉賓素材 中間件與SOA架構密不可分,目前SOA的底層基礎架構功能基本全部通過中間件進行搭建。雖然SOA可以降低應用、節點之間的耦合,但是其中還帶來了不小的開發集成工作。比如直接使用第三方的中間件會有較高的配置復雜度。一個量產項目中車企可能會用到多個中間件供應商,需要協調多個供應商進行溝通和對接,過程中會花費大量的時間/人力成本,導致最后的集成變得非常復雜且不可控。 使用華玉Green Engine進行開發集成,因為所有中間件都是華玉自研,并且可以涵蓋用戶上層應用的全部底層需求,所以用戶只需要提供算法,就可以方便快捷地實現量產級別的智能駕駛軟件系統。 (以上內容來自華玉通軟聯合創始人兼CTO李堅于2023年9月21日-22日在2023第三屆智能汽車域控制器與中央計算平臺創新峰會發表的《全場景車規芯片助力跨域融合》主題演講。) |
![]() |
中國鍛壓網官方微信:掃一掃,立即關注!
關注"中國鍛壓網",獲取獨家行業新聞資訊。 添加方法1: 在“添加好友”中直接添加微信賬號:chinaforge 添加方法2: 微信中掃描左側的二維碼 |