丁會利,王迅佳,陳曉
(華域汽車系統股份有限公司,上海 200433)
超聲波傳感器,因為其具有工作穩定,算法相對簡單的特點,很早就被廣泛用于車輛輔助系統中,用于障礙物檢測,泊車輔助等功能。最近幾年,隨著智能駕駛的興起,超聲波傳感器又被用于智能泊車輔助系統、側視輔助系統、高速橫向輔助系統等應用中。而以超聲波為基礎的解決方案成本相對較低,可以滿足中低端車型對于智能駕駛的需求。
常見的超聲波傳感器有兩種,第一種是安裝在汽車前后保險杠上的,也就是用于測量汽車前后障礙物的倒車雷達,這種雷達業內稱為UPA;第二種是安裝在汽車側面的,用于測量側方障礙物距離的超聲波雷達,業內稱為APA。超聲波目前的使用場景,基本有三種,一種是實現簡單的倒車輔助、警告障礙物的預警功能,配置的超聲波雷達數量一般是4 個;另一種是增加了汽車在前進過程中的預警,配置數量在8 個;最后一種就是配置12 個,實現水平、垂直、斜向全自動泊車的功能[1]。
在系統研發階段,經常需要為系統提供距離信號以便調試或者用于測試系統功能。通過移動物體讓超聲波雷達檢測這種方式并不方便實驗室中使用,因為真實物體的移動需要空間,而且控制物體移動的精度和速度會限制到開發系統功能[2]。這種條件下,仿真超聲波傳感器輸出信號,模擬物體的距離信號,從而“騙過”控制系統就變成了一種切實可行的實驗室測試解決方案。超聲波雷達仿真系統可以用于算法設計、功能測試、硬件在環測試等諸多場景,具有體積小,受環境干擾低,響應速度快,同時仿真傳感器數量多、測試重復性好等特點。
超聲波傳感器測量距離是利用了聲波在固定介質內傳播速度固定的原理。目前,常用探頭的工作頻率有40kHz,48kHz和58kHz 三種。一般來說,頻率越高,靈敏度越高,但水平與垂直方向的探測角度就越小。超聲波傳感器在某一時刻通過脈沖激發傳感器發射超聲波,超聲波遇到障礙物后反射回波,傳感器探測到回波后,計算發射出超聲波與接收到超聲波的時間差(T),再根據聲速(V)算出傳感器與障礙物之間的距離(L)[3]。
計算公式:


圖1 超聲波傳感器工作原理示意圖[4]
一般車用超聲波傳感器都采用寬壓設計,符合車用12V直流供電。ECU(與電子控制單元)之間信號傳遞采用數字信號,既可以提高抗干擾能力,保證數據的準確性,又便于命令傳輸,增加信息傳輸的豐富性。
超聲波傳感器多采用2 線制或3 線制,信號收發使用同一根信號線,分時占用資源。這種設計可以大大減少車輛內部走線,同時減少ECU 設計過程中對接口資源的占用。基于此,在做傳感器仿真設計的時候,需要考慮到信號線的復用,收發整合在一起,而軟件設計過程中也需要滿足這種分時占用的特征。
超聲波傳感器有自己固定的工作時鐘,命令傳輸、發射聲波、接收回波等都會按照時鐘的整數倍進行。

圖2 聲波信號轉換示意圖[4]
超聲波傳感器會將聲波、回波轉換成通訊信號傳輸給ECU,轉換標準跟閾值相關。當檢測到的聲波或者回波強度超過預設閾值時,會產生信號下邊沿,而當聲波或者回波強度再次低于閾值時,會產生信號上邊沿,當這個過程完成后,可以判斷接收到了一個聲波或者回波。
除了檢測到聲波后會產生信號外,傳感器還需要與ECU之間傳輸命令、傳輸配置信息,這些命令按照一定的邏輯特征在信號線上傳輸。
超聲波傳感器傳輸的是數字信號,信號之間的分別是通過脈沖寬度來識別的,以標準時鐘的整數倍作為計數,例如6 倍基準時鐘代表0、3 倍基準時鐘代表1。
超聲波傳感器命令結構按照“命令標志”?“命令類別”?“命令數據”的順序依次在信號線發送。而“命令類別”和“命令數據”并不一定發生,這種情況導致信號線上一條信號的長度并不固定,這為仿真時處理信號邏輯帶來了一定的困難。

圖3 超聲波傳感器信號邏輯示意圖[4]
第一章我們已經詳細描述了超聲波傳感器的各方面特征,我們的仿真工作就是需要把這些特征用仿真設備實現出來。不僅如此,我們還要在仿真設備上實現自動化測試輔助功能,以便接入到自動化測試設備中。基于這些要求,我們開發了一套測試系統,仿真超聲波信號,實現對超聲波泊車輔助或者自動泊車功能的測試。
設計的測試系統框圖如下,主要包括PC 機、Linux 實時機、FPGA 板卡、CAN 通信板卡和被測ECU 等組成,其中,仿真系統使用NI cRIO 開發。

圖4 仿真系統框圖
仿真系統主體是FPGA(現場可編程門陣列)設備。FPGA進行傳感器邏輯運算并且將運算結果通過數字接口發送給ECU,ECU 接收仿真信號并正常工作。實時操作系統負責調配FPGA 程序、CAN(控制器局域網絡)總線通訊和與上位機PC 通訊[5]。CAN 總線負責為ECU 提供CAN 總線仿真信號,以保證ECU 正常工作。最后,所有數據都會通過網絡傳輸到上位PC 機,用于顯示和存儲。
FPGA 程序是超聲波傳感器仿真的核心邏輯實現。原始數據是脈沖序列,根據第一章介紹,信號的內容并不是直接反應在數據值中,而是跟脈沖寬度相關,不能直接使用,因此需要通過FPGA 進行計時與整理,得到可以識別與使用的數據。

圖5 FPGA 程序框圖
FPGA 程序框圖如上圖所示,“IO 驅動層”從接口硬件中取得數據后,傳遞到“數據識別”模塊,“數據識別”模塊通過計時器識別出具體的命令或是數據,再傳遞給“邏輯層”供使用。
“邏輯層”負責整理命令和數據,根據傳感器工作邏輯處理數據,再根據處理結果向硬件發送相應命令和數據。“邏輯層”還需要把整理好的命令和數據傳遞給傳輸層,用于更高一層邏輯處理、顯示和保存。
“數據整理”模塊接收到邏輯層的命令和數據后,把命令和數據整理成超聲波傳感器標準的脈沖序列發送給驅動層,驅動層執行序列給ECU 發出相應的命令和數據。
FPGA 程序需要按照一定流程運行。FPGA 仿真程序工作流程圖如下:

圖6 FPGA 仿真程序工作流程圖
一般來說,ECU 啟動后,會向超聲波傳感器發送初始化命令,當收到工作正常反饋后才能繼續工作,因此FPGA 程序開始后需要等待初始化命令,并且正確處理反饋。如果有配置命令,傳感器會先處理配置命令。配置結束后,進入等待狀態,等待ECU 通知傳感器發送超聲波。仿真系統收到發送命令后,需要向ECU 模擬發送超聲波的脈沖波形,同時根據預先設置好的位置信息,進行時間上的延時后,繼續向ECU 發送模擬接收到回波的脈沖波形。至此,一個完整的距離測量仿真周期完成。
超聲波傳感器仿真過程中,除了處理好整個FPGA 程序邏輯框架以外,一些跟時間相關的設計細節也必須注意。因為超聲波傳感器的所有命令和數據傳輸都與脈寬和時序相關。
超聲波傳感器一般工作在50kHz 時鐘下[2],相當于20μs一個基礎時間周期(Tunit),傳感器仿真工作必須滿足20μs內完成全部12 個傳感器(當前主流APA 系統中有12 個超聲波傳感器同時工作)仿真計算工作,同時又不能超過設備計算能力的限度,經過實踐中證明,采用1-10μs 為一個計算周期是比較合理的。
超聲波傳感器的硬件設計中,信號線只有一條,無論收發都會反映在信號線的脈沖序列里,而命令或者數據并沒有完全的互斥性,不同的命令或者數據可能會有相同的脈寬計時,這為FPGA 軟件設計帶來了困難。以elmos 的E524.03傳感器為例,SEND 命令(發送超聲波)的時序脈寬是6 個時間單位(Tunit),而CMD 命令中的數據0,也是6 個時間單位(Tunit),如果不加區分可能會產生歧義。
解決的辦法是在命令計時后,將CMD 命令和SEND 命令序列徹底分開,一個序列沒執行完,不對進行命令脈寬計時,這樣可以杜絕命令歧義發生。下圖為FPGA 仿真程序處理命令序列流程圖。

圖7 FPGA 仿真程序處理命令序列流程圖
除此之外,在FPGA 程序中還需要設計合理的超時機制,當計時計算超出必要的限度時退出計時計算進入主程序框架,以免陷入“卡死”狀態,失去對其他命令的相應。
基于上述方法實現的超聲波傳感器仿真系統與一款乘用車APA 控制器聯合調試,檢驗仿真系統效果。
超聲波傳感器仿真系統仿真CMD 命令以及CMD 命令數據實測波形如下:

圖8 仿真CMD 命令以及CMD 命令數據實測波形
實測波形圖中標尺24000 代表第24000μs,以此類推。實測波形符合超聲波傳感器中CMD 命令及其數據的標準,實際使用中,傳感器仿真系統可以識別此命令。
超聲波傳感器仿真系統仿真距離信號實測波形如下:

圖9 仿真95cm 距離信號實測波形
仿真系統在接收到ECU 發出的SEND 命令后,緊接著仿真一個發出超聲波的脈沖波形,經過延時后,仿真一個接收回波的脈沖波形。實測波形符合超聲波傳感器標準,也可以被ECU 所識別。
綜合實測波形顯示,仿真系統有效,可以完成超聲波傳感器波形的仿真。

圖10 不同仿真距離與ECU 計算距離對比圖
超聲波傳感器仿真系統最大的意義在于仿真距離,所以我們需要對實際仿真的距離與ECU 讀取的距離進行比較,評判是否可以用于ECU 測試。實際驗證中,我們通過CAN 網絡監測ECU 讀取信號后計算得到的距離值,并且與仿真系統預設的距離信息比較,用來評判仿真系統仿真的準確度。
由以上對比圖可以發現,在有效距離范圍內,仿真距離與ECU 計算距離之間存在相對固定的差值,分析原因后可以推斷是仿真系統距離算法參數與ECU 距離算法參數略有不同造成的,最終根據不同ECU 產品,可以微調仿真系統算法參數,就可以達到相吻合的效果。500cm 以上,ECU 測量距離不再變化,已經到計算距離上限,因此在500cm 以上不在仿真系統考慮范圍內。
通過以上比較可以發現,仿真系統可以滿足ECU 測試需要。
本文以elmos E524.03 傳感器為例,介紹了超聲波傳感器的工作原理,并且根據這些特點設計了一套超聲波傳感器仿真系統。系統搭建中注重框架和時序邏輯的設計,并且對重點細節進行詳細描述,最終實現了超聲波傳感器仿真系統。
根據最終與ECU 的聯合調試結果表明,這套超聲波傳感器仿真系統可以完成對實際傳感器監測目標的模擬,能夠用于未來基于超聲波傳感器的智能駕駛系統設計驗證與測試。實際使用中通過調整算法參數可以適配不同傳感器和ECU,通用性較強。