日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

首頁 > 汽車技術 > 正文

自動駕駛系統(tǒng)設計的那些底層軟件開發(fā)中的重點解讀

2022-11-09 14:51:14·  來源:焉知  
 
眾所周知,隨著自動駕駛和智能網(wǎng)聯(lián)技術的飛速發(fā)展,傳統(tǒng)的汽車開放系統(tǒng)架構CP Autosar已經(jīng)無法滿足日益復雜的汽車電子系統(tǒng)的功能需求。尤其底層軟件中,針對面向服務架構SOA開發(fā)需要使用高性能的處理器,自適應汽車開放系統(tǒng)架構AP Autosar有著不可比擬的優(yōu)勢

眾所周知,隨著自動駕駛和智能網(wǎng)聯(lián)技術的飛速發(fā)展,傳統(tǒng)的汽車開放系統(tǒng)架構CP Autosar已經(jīng)無法滿足日益復雜的汽車電子系統(tǒng)的功能需求。尤其底層軟件中,針對面向服務架構SOA開發(fā)需要使用高性能的處理器,自適應汽車開放系統(tǒng)架構AP Autosar有著不可比擬的優(yōu)勢。


而應用軟件中,自動駕駛整體架構主要涉及感知、規(guī)劃、決策、控制等節(jié)點。通過數(shù)據(jù)或信息的存儲、傳遞及有效及時處理,可以完成感知算法、決策算法、控制算法的整體遞進式集成。數(shù)據(jù)在采集單元與算法單元之間、每兩個算法節(jié)點之間進行傳遞時,都需要經(jīng)過“數(shù)據(jù)緩存”和“數(shù)據(jù)發(fā)布”兩個步驟。這一過程就涉及多項自動駕駛底層軟件技術,如內(nèi)存動態(tài)分配、芯片運算能力、芯片實時監(jiān)控策略。本文將針對這三方面內(nèi)容進行詳細說明。

功能安全攔路虎:內(nèi)存分配與訪問


在汽車電子系統(tǒng)的軟件開發(fā)標準中,強調(diào)需要保證軟件架構要素之間的獨立性,相互之間不能存在干擾。而這類干擾軟件要素的可能原因分為三部分:運算、內(nèi)存、通信。其中,運算能力涉及運算時序和執(zhí)行策略。這對開發(fā)符合功能安全要求的軟件提出了具體的要求,而這一分析過程無論從難度系數(shù)還是工作量上都很大,而“內(nèi)存分配”和“內(nèi)存訪問”是非常重要的一個原因。


1)內(nèi)存分配


內(nèi)存分配主要存在于自動駕駛底層軟件領域。通常的做法是,數(shù)據(jù)發(fā)布單元向底層操作系統(tǒng)申請適當?shù)膬?nèi)存,數(shù)據(jù)發(fā)布之后釋放內(nèi)存。在申請內(nèi)存和釋放內(nèi)存的過程中,主要有如下三種內(nèi)存分配方式存在:


圖片

如上圖所示,“靜態(tài)內(nèi)存分配”和“堆上內(nèi)存分配”兩種方式中,其相關技術需要在分配內(nèi)存空間時,都需要搜索連續(xù)且空閑的最小內(nèi)存分配單元,導致存在時間開銷大、內(nèi)存碎片化嚴重等問題。這對于在靈活且受限的內(nèi)存資源(SRAM、LDDR、FLash)中,將可能由于頻繁的進行動態(tài)內(nèi)存分配產(chǎn)生的內(nèi)存碎片,可能影響自動駕駛系統(tǒng)運行性能。


從對于系統(tǒng)功能安全設計上講這類內(nèi)存分配所帶來的影響將是不能被容忍的。所以在不同的自動駕駛底層軟件系統(tǒng)中,對于當前先進的自動駕駛系統(tǒng)程序不管是應用程序,還是平臺模塊,都是直接調(diào)用可移植操作系統(tǒng)接口或編程語言c++的接口進行內(nèi)存的動態(tài)申請/釋放。然而,汽車電子系統(tǒng)的軟件開發(fā)標準ISO26262要求盡可能不要動態(tài)申請/釋放內(nèi)存,甚至在某些高等級的自動駕駛安全等級,如ASIL D中考慮到動態(tài)申請/釋放內(nèi)存,頻繁的動態(tài)申請/釋放,會產(chǎn)生大量的內(nèi)存碎片,不但會增加申請結果和時間的不確定性,甚至還會影響性能,通常又是禁止動態(tài)申請/釋放內(nèi)存的,實際上這兩類需求卻又是相互矛盾的。


因此,對于動態(tài)內(nèi)存管理,需要開發(fā)許多不同種類的算法。不同的操作系統(tǒng)有不同的實現(xiàn)方式,為了程序的可移植性,一般在開發(fā)語言的庫中都提供了統(tǒng)一接口。在系統(tǒng)真正需要內(nèi)存時,才通過操作系統(tǒng)調(diào)用接口API來獲取實際的物理內(nèi)存。


此外,很多適配底軟開發(fā)的供應商當前在進行自適應汽車開放系統(tǒng)架構設計中,還重點傾注更多精力用于內(nèi)存保護和提高內(nèi)存利用率。例如,設置可用內(nèi)存池,在有需求時獲取內(nèi)存大小需求,從目標交換模塊對應的內(nèi)存集合中確定目標內(nèi)存,在有需要時,申請合適大小的目標尺寸,通過以上方法,可以有效減小運行時的資源瓶頸,減少內(nèi)存碎片化。


圖片


2)內(nèi)存訪問


隨著汽車電子系統(tǒng)復雜性的不斷提高、越來越多的軟件和機電設備的應用,來自電子系統(tǒng)失效和隨機硬件失效的風險日益增加。在功能安全中,相關失效分析是一項非常重要的工作。在ISO26262中要求,如果嵌入式軟件包含不同ASIL等級的軟件組件設計SWC,要么整個軟件工程都需要基于最高安全等級的要求進行開發(fā),這就需要保證擁有更高安全等級的SWC的操作不會受到其他SWC的干擾。


總結起來,SWC相關的內(nèi)存故障主要包含如下幾方面:


圖片


在基于面向服務的架構中需要基于更低安全等級要求開發(fā)的SWC,可能會出現(xiàn)錯誤地訪問到更高安全等級SWC的內(nèi)存區(qū)域,產(chǎn)生干擾。為此,SWC需要運行在不同的內(nèi)存區(qū)域,或者不同的內(nèi)存分區(qū),來防止類似的內(nèi)存訪問違例。


由于每個可編程核心(總線主機)都有一個內(nèi)存保護單元MPU(如果沒有MPU,則可以通過DMA守衛(wèi)來控制總線主設備的訪問),它定義了軟件訪問保護措施,當MPU嵌入很多異構芯中時也同時具有內(nèi)存保護功能,可以保護當前執(zhí)行的代碼不被一些“無關聯(lián)”的數(shù)據(jù)所侵害,防止對內(nèi)存數(shù)據(jù)的錯誤訪問,并控制外圍模塊的寄存器。這類保護措施主要是限制相關內(nèi)存地址權限,這類權限限制將確保其程序訪問內(nèi)存地址的范圍與其無關,組織關鍵數(shù)據(jù)不被破壞,整個系統(tǒng)更加健壯、安全。


自動駕駛異構計算能力提升:

超異構計算芯片集成


高階自動駕駛系統(tǒng)需要在AI單元的選型上采用了并行計算架構的AI芯片進行硬件加速、資源分配、調(diào)度、圖像識別、深度學習等。使用多核車規(guī)級CPU配置進行任務調(diào)度、執(zhí)行自動駕駛相關的大部分核心算法,同時整合多源數(shù)據(jù)完成路徑規(guī)劃、決策控制等邏輯運算處理。


AI芯片處理功能包含如下:

a)圖像感知:對攝像頭輸出的數(shù)字圖像進行包含ISP處理、編解碼、視頻圖像分割、目標識別、跟蹤處理等,同時,生成BEV鳥瞰圖、視覺定位建圖等;

b)激光點云處理:對激光雷達輸出的點云進行聚類、目標識別、跟蹤處理等;

c)融合處理:包括基于圖像識別得前融合,圖像、毫米波/激光雷達、高精定位目標后融合等;

d)軌跡規(guī)劃:利用檢測到的圖像目標信息,規(guī)劃自車行駛軌跡。


對于諸如如上各種功能的整體融合,當前的架構策略通常是采用多芯片融合技術進行相應的分片分模塊處理。但是,從整體執(zhí)行效率、執(zhí)行效果、開發(fā)周期上看,這種多芯片異構方式都不見得是最佳選擇。首先,為了集中達到對不同運算能力的需求,通常需要從不同芯片廠家拿貨進行接口及軟件適配,這將是一個比較長期且大量的開發(fā)工作。另外,各芯片適配過程中是否能夠完全兼容也并非能夠在開發(fā)初期能夠完全解釋清楚。因此,如果能夠搭建一種“超異構計算芯片”融合包含xPU的所有功能子項,那將是智駕系統(tǒng)架構的福音。


這里我們將對這類新型芯片進行詳細介紹。


“超異構處理器”,顧名思義可以認為是由CPU、GPU、各類DSA以及其他各類處理器引擎共同組成的,CPU、GPU和DPU整合重構的一種全系統(tǒng)功能融合的單芯片解決方案。


圖片


那么這類超異構處理器到底能對自動駕駛系統(tǒng)底層軟件帶來哪些好處呢?


首先,超異構處理器的融合策略有利于計算資源的充分整合,進一步提升數(shù)據(jù)計算效率。因為相比于需要三芯片實現(xiàn)異構計算的方案,這種超異構融合系統(tǒng),將內(nèi)部功能劃分和交互統(tǒng)一構建,可以顯著降低彼此功能和交互的各種掣肘。


其次,對于自動駕駛系統(tǒng)來說,其計算過程中的大部分場景(80%-90%)都是相對輕量級場景,通過超異構實現(xiàn)的單個芯片計算策略通過Chiplet加持以及多DIE單芯片的方式,實現(xiàn)重量級場景的覆蓋,完全可以cover住幾乎全部的通用場景。因此,在其復雜度和系統(tǒng)規(guī)模中均實現(xiàn)較好的反饋。


最后,超異構計算單元實際是一個整合多類芯片的大的芯片集合,同時在電路設計中最大程度的簡化其外圍邊緣件設計,實際是最大程度的減少了BOM表的數(shù)量。因此,對于芯片成本可以得到大幅降低。


實際上,當前已有部分芯片供應商已經(jīng)在這類芯片設計中,實現(xiàn)了類超異構芯片的設計能力。這家供應商就是TI的TDA4 系列芯片。


圖片


如下圖所示表示了當前被各家自動駕駛玩家鐘愛的TDA4 VM芯片,實際的內(nèi)部架構可以看出,其設計上,已經(jīng)將包含CPU(A72、R5F)、DPU(C7x)、GPU、主MCU等。這種雜糅式集成實際可看成簡單的超異構芯片。里面既能實現(xiàn)高實時性運算的R核(外置接攝像頭I/O連接模塊,直接控制攝像頭的開閉及數(shù)據(jù)實時傳輸),也有可提升運算量的A核(實現(xiàn)深度學習、卷及計算、MAC計算等大量感知端需要的運算能力)。最后還有為了滿足功能安全要求,設置了雙核MCU實現(xiàn)功能安全島需要的鎖步校驗功能。這樣一個高集成度低成本的芯片怎能不受各玩家的鐘愛呢?


自動車輛有效執(zhí)行的重中之重:實時性設計


在自動駕駛技術中,對功能模塊的實時性要求非常高,尤其是自動駕駛算法的復雜性造成數(shù)據(jù)分發(fā)節(jié)點非常多,內(nèi)存操作的時間開銷更大,影響到在突發(fā)事件的場景下(例如,有行人突然闖入)自動駕駛系統(tǒng)對實時響應性的要求,很可能會影響自動駕駛系統(tǒng)的安全。


由于高階自動駕駛系統(tǒng)一般都采用異構芯片進行不同數(shù)據(jù)信息源信息處理。需要嚴格限定硬件ECU在規(guī)定的時間內(nèi)完成任務,否則就可能導致系統(tǒng)功能的失效。例如對于線控轉(zhuǎn)向,如果駕駛員發(fā)出轉(zhuǎn)向操作后100ms內(nèi)車輪沒有執(zhí)行轉(zhuǎn)向,則可能導致碰撞事故,嚴重的甚至造成車毀人亡。橫縱向執(zhí)行域的系統(tǒng)(ESP、EPS)往往屬于這一領域。當然,如果硬件達標而軟件執(zhí)行期間出現(xiàn)一定的時間偏差,在設定的線性范圍之內(nèi)也是被允許的,例如有的應用要求系統(tǒng)在90%的情況下能夠確保在規(guī)定時間內(nèi)完成任務即可。車輛信息娛樂域(IVI)或動力域(VCU)的系統(tǒng)大多都屬于這類系統(tǒng)。


圖片


那么這種實時性到底指的是哪塊呢?這方面實時性又需要重點關注哪些要素呢?


總體而言,影響系統(tǒng)實時性的因素從軟件架構上可以分為通信、調(diào)度和代碼三個層面。從系統(tǒng)架構上,實時性實際又需要從整個傳感端、控制端到執(zhí)行端進行區(qū)分。


1、系統(tǒng)架構實時性解讀


1)傳感端:


對于集中式方案來說,傳感端的實時性處理有兩種情況需要區(qū)分。其一,如果傳感器能夠作為單獨小的ECU,那么整個環(huán)境數(shù)據(jù)采集工作則可以認為是由傳感自身自行控制和執(zhí)行的。如攝像頭曝光時間、雷達微波發(fā)生頻率、激光掃描頻率等。對于輸入域控的數(shù)據(jù)而言,域控只需要給出傳感器對應的同步時間戳即可。其二,如果傳感器不存在單獨控制的ECU端,那么整個傳感采集過程都將受制于域控制器。這個過程可以看成域控制器需要通過一定的控制線(如攝像頭的IIC線)對傳感器的采集速率、采集頻率、控制電壓、采集輸入時間點都要進行控制。那么整個實時性控制將完全交由域控來進行控制。


當前很多情況下,域控對傳感數(shù)據(jù)的控制只是部分實時性控制。如只對攝像頭數(shù)據(jù)采集的實時性進行直接控制,如控制曝光、傳輸速率等。而對于毫米波、激光雷達等則是分布式方式,其實時性控制只是簡單地全局時間注入及打時間戳等方式。

另外,如果是域控底層驅(qū)動傳感器I/O口的方式,還包括域控能夠?qū)崟r的將傳感器原始數(shù)據(jù)進行實時性處理,如底層ISP/白平衡、中間層AI深度學習感知聚類、頂層與其他傳感器數(shù)據(jù)的后融合等。


2)控制端:


對于控制端來講,其實時性則是相對復雜些,他包括底層軟件驅(qū)動的實時性,中間件資源整合調(diào)用的實時性以及頂層應用軟件的實時性。實際應用中,不同系統(tǒng)對于實時性的滿足程度并不相同。比如AEB這一對系統(tǒng)處理實時性要求極高的功能就需要系統(tǒng)能夠在異常場景中能夠?qū)?shù)據(jù)及時的采集到,并在內(nèi)部進行有效處理。這一處理過程實際是要求系統(tǒng)是一種處理實時性極高的系統(tǒng)。


以實時性滿足的不同需求可以分為實時性計算任務和實時性監(jiān)控任務。實時性計算任務主要是指規(guī)定時間內(nèi)完成的不同敏感性任務,如“硬實時系統(tǒng)”和“軟實時系統(tǒng)”。實時監(jiān)控任務則是針對運行的軟硬實時系統(tǒng)實施包含運行效率、運行安全度、執(zhí)行結果反饋等方面的信息監(jiān)控。以AUTOSAR標準為例,CP通常用于硬實時系統(tǒng)中,而AP多用于對實時性要求較低、但又比用于車機的Android實時性要求高的系統(tǒng)。


圖片


總之,自動駕駛車內(nèi)的各種系統(tǒng)對實時性有不同的要求。實時性是一個相對的概念,針對不同功能安全、信息安全,需要設計不同等級的實時運算和監(jiān)控系統(tǒng),以滿足系統(tǒng)的功能要求,綜合平衡系統(tǒng)升級的靈活性、成本等不同因素,設計滿足需求的實時性系統(tǒng)。


3)執(zhí)行端:


執(zhí)行端的實時性很容易理解,即是域控發(fā)送的執(zhí)行信息能夠得到執(zhí)行器的及時處理和反饋。這塊在當前也是簡單地通過對執(zhí)行器的接口需求進行規(guī)范。比如縱向執(zhí)行加速度會規(guī)范加速響應延遲、加速穩(wěn)態(tài)時間、穩(wěn)態(tài)波動最大最小值等。橫向執(zhí)行轉(zhuǎn)向角會規(guī)范轉(zhuǎn)角響應延遲、最大最小響應轉(zhuǎn)角、最大最小手力矩等。


從整車功能域角度出發(fā),自動駕駛是收集外部傳感器數(shù)據(jù)量最大的模塊,為了持續(xù)探測到車身四周各種復雜環(huán)境信息,需要毫米波、攝像頭和激光雷達配合以達到360度無死角感知。并且為了保證安全,所有數(shù)據(jù)都需要接近實時的速度處理,為了保證大量數(shù)據(jù)的實時處理,較低的數(shù)據(jù)延遲需要由高性能的計算單元和高帶寬的網(wǎng)絡通信,數(shù)據(jù)可輕易在不同內(nèi)核中共享。


2、軟件架構實時性解讀


這里主要是指運行于硬件SOC、MCU上的軟件架構平臺。從底之上主要包括底層驅(qū)動軟件實時性(I/O代碼驅(qū)動層面),涉及I/O函數(shù)層級、基本代碼塊、機器指令碼、操作狀態(tài)碼等。中間層軟件實時性(中間件調(diào)度)包括SOC層級、CPU層級、GPU層級、MCU層級的系統(tǒng)管理、算法接口、AI處理等。頂層通信層面則是針對環(huán)域控的整個車內(nèi)外網(wǎng)絡、云端服務等。


除開如上運算單元外,配置軟件實時性監(jiān)控、檢測和刪除錯誤的互連事務也是必不可少的環(huán)節(jié)。如總線監(jiān)控器、內(nèi)存訪問結果監(jiān)控、虛擬控制臺實時性監(jiān)測、系統(tǒng)CPU入侵檢測等。


總結


本文對自動駕駛系統(tǒng)中的內(nèi)存分配、多異構芯片、實時性進行全面較準確地分析,這將有助于大家更準確地理解車輛控制系統(tǒng)中的各項性能指標進行完整的解讀,并能夠?qū)隙鞔嬖趩栴}進行系統(tǒng)、全面的分析。其目的是使得開發(fā)出的智能駕駛產(chǎn)品功能更可靠,性能表現(xiàn)更優(yōu),真正降低交通事故的概率和產(chǎn)生的危害。

分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25