ADAS/AD開發04
Architecture decomposition from SYS to SW:
系統架構向軟體架構的過渡框圖
一、Host 軟體架構
Host作為主晶片,包含很多general的系統Building Blocks,對應的SW-layer,也存在不少相似的模組組成,例如:Power Mode Manager(電源模組管理者)、Voltage Range Monitor (電壓監控者)、Vision Output Processing (視覺輸出處理)、EDR(事件資料記錄器)、Feature Models(功能Simulink模型)、Feature Switch(功能開關處理)、High Side/Low Side Driver(高邊/低邊驅動)、Heater Control & FET Protection Strategy(加熱控制及場效電晶體的保護策略)、VCAN Interface Handler(車輛CAN介面處理者)、SPI Communication(SPI通訊)、Diagnostic(診斷)、Configuration & Calibration & Tuning Files(配置/標定模組)、Keep-Alive Memory Manager(KAM管理者)、Memory Management(記憶體管理)、MCU常見軟體機制的實現(如資料防寫、NVM、晶體與晶振等)。以下針對幾個較為重要的模組進行詳細展開。Host軟體架構圖如下:
圖1 Host晶片的軟體架構
- Vision Output Processing
視覺輸出處理模組,包括了溫度處理模組、遮擋探測模組、Feature與Host-SW之間引數的Mapping模組(Feature介面)、Host與EyeQ3之間關於Feature引數的Mapping(Feature的SPI介面)、TSR Feature等;
a. 溫度處理模組:板上溫度感測器的對應溫度直方圖資訊要儲存在NVM中(NVM的DataFlash部分,不能存在CodeFlash中);且資料可以通過UDS診斷服務(PID-ECU Internal Temp)讀取;溫度取樣週期一般120秒;一般溫度狀態有三個等級,Normal正常、HighTemp高、OverTemp過高。
b. 遮擋探測模組:遮擋演算法會持續的探測感測器是否被遮擋;一旦被遮擋,演算法會持續探測clear scene,即探測遮擋物什麼時候被移除。演算法初始化後,會預設進入未遮擋狀態;對於攝像頭感測器,一旦探測到被遮擋,就會觸發加熱功能來嘗試解決遮擋條件(霜、霧等);如果加熱仍舊不能解決遮擋問題,那麼Host-SW會disable相關的視覺Features。同時,要提醒駕駛員感測器被遮擋的狀態。
圖2 Blockage相關引數
圖3 Blockage相關引數 輔表
c. Feature介面:feature介面需要具備檢測來自感測器層的狀態。該模組需要檢測的狀態包括:RadarSystemNotOperational、VisionSystemNotOperational、RadarAlignmentOutOfRange、VisionAlignmentOutOfRange、RadarBlockageDetected、VisionBlockageDetected、SensorDataUpdating、CommunicationError、RadarExternalConditionsNotOK、VisionExternalConditionsNotOK、RadarAlignmentIncomplete、RadarAlignmentNotStarted、VisionAlignmentIncomplete、VisionAlignmentNotStarted。
d. Feature的SPI介面:有些SPI signals可以與feature signals直接mapping,但是還有一些signals需要在host-sw中做些轉換與處理才能mapping到features中;這些介面中,與剎車使能相關的幾個訊號的功能安全要求非常高,因此需要做好以下兩項措施:1)剎車使能相關訊號的checksum(總和校驗碼)有效性驗證;2)RollingCounter(滾動計數)有效性驗證。除了剎車訊號外,SPI介面還有一些配置資訊需要設定,例如:變速箱型別(手動/自動)、AHBC自動遠光燈控制功能的交通型別(靠左行駛還是靠右行駛,這是為了inhibit對於無來車側的探測,例如在中國車輛靠右行駛,那麼對向來車都在左邊,右前方就不需要detection)。除了可以配置交通型別外,也可以根據視覺感知來檢測識別交通型別,即檢測左右兩側車流的車速,假如檢測到的情況是: 右邊車流車速有同向行駛的(RangeRate為正或RangeRate為負,且負值的RangeRate大於一定值,這裡假設一個數,-30m/s),也有對向行駛(RangeRate < -30m/s),而左邊車流的車速始終為同向行駛的(-30m/s < RangeRate < Max RangeRate Detection value),且這種狀況滿足了一定時間要求,那麼就可以判斷車輛是靠左行駛的。因為左邊車流都是同向行駛,而右側同向行駛時,因為在右邊也有同向車道,但是右側更遠的位置因在對向車道,所以能檢測出很多對向來車。
e. TSR Scene Separation:TSR功能在Vision Output Processing模組中,需要有一個配置引數,用來配置速度的單位,是kph還是mph。
- EDR
EDR的Trigger(觸發)條件有:AEB緊急制動事件發生時,要記錄;發生碰撞事件時要記錄。EDR的資料要儲存在NVM中的Dataflash中。EDR記錄的事件要包含6秒鐘的資訊,其中包括Trigger時間點前兩秒和Trigger時間點後4秒。
EDR的Ring-Buffer:RingBuffer(迴圈緩衝區)需要在NVM中實現,用於迴圈儲存data和Images。RingBuffer需要設計足夠的儲存空間,用來儲存至少一次pre-trigger(預觸發)記錄。若後續有新增pre-trigger記錄,則覆蓋原記錄,只儲存最新記錄。且對於以下幾個引數的資訊,新record複寫舊record之間要停頓20個IGN以上的點火週期,才允許複寫,他們分別是:EDRTriggerEvntSync、RstrnImpactEvntStatus、RstrnImpactEvnt
以下是FCW/AEB的EDR常見儲存資訊:
圖4 FCW/AEB常見EDR資訊
圖5 FCW/AEB常見EDR資訊2
圖5 FCW/AEB常見EDR資訊3
以下是LDW/LKA的EDR常見儲存資訊:
圖6 LDW/LKA常見EDR資訊1
圖7 LDW/LKA常見EDR資訊2
圖8 LDW/LKA常見EDR資訊3
圖9 LDW/LKA常見EDR資訊4
圖10 LDW/LKA常見EDR資訊5
圖11 LDW/LKA常見EDR資訊6
另外,一旦Host的EDR觸發,也需要通過SPI通知到VFP。VFP會基於當前全域性實際時間,將一幀圖片儲存在NVM中。該方式只支援EyeQ3,不支援EyeQ3Lite。
- Feature Models 功能模型
支援雙盒模式(Two-Box Mode),即通過DID可設定一個開關量,在等於0時代表Normal模式:feature model在ADAS-ECU的Host中執行,並通過VCAN輸出訊號;在等於1時代表Autobox模式:禁止host的feature model向VCAN上發訊息,避免與Autobox發出的訊息衝突。
- VFP Mode Manager
VFP有4中模式:Vision Application Mode、Target Auto-Calibration Mode、Service-Station Mode和Diagnostic Mode。
其中Vision Application Mode視覺應用模組,是預設的正常工作模式;
Target Auto-Calibration Mode即EOL下線標定模式;
Service-Station Mode即4S店標定模式;
Diagnostic Mode即診斷模式。
- SPI通訊
Host 在檢測到SPI timeout(超時)後應該等待500ms,仍無響應,再重置EyeQ3晶片。
SPI訊息包括以下幾類:
Vehicle Independent Calibration Parameters
Vehicle Dependent Calibration Parameters
Vision Drive-Cycle Parameters
AHBC/TAC/SPC Parameters
Vision Obstacle Parameters
Delphi VFP SW Parameters
CWMP VEH STATE MSG (CWMP即為Host MCU)
CWMP CONTROL MSG
二、General Software Requirement
- Memory Management 記憶體管理
Flash的Memory Map如下圖
圖12 LDW/LKA常見EDR資訊6
a. Application Memory: 支援ICAN標定(Instrumentation CAN Calibration),且在標定過程中,需要disable掉checksum的檢查。因為checksum在官方標定版本釋放後是固定值,標的過程中一定會改一些引數,造成checksum的改變,如果繼續做週期檢查,肯定會報錯,因此需要disable掉。
b. Calibration Memory:Host應該包括三個local配置標定塊兒,即SWP1、SWP2和SWP4.這些local的配置標定塊兒中,應該包含hardware和vehicle variants資訊。對於這些memory的刷寫,無需重新編譯APP code。
2. MCU的需求:
資料防寫:所有的NVM資料應該有三個副本。即便一部分資料被改寫,仍舊可以通過其他副本(最近版本)來恢復。副本的有效壽命為20ms。