虛擬CAN系統力助車輛診斷 整合通訊模擬/App介面(1)

作者: 李雲鵬 / 林華川
2024 年 09 月 10 日

虛擬CAN車用系統符合車輛診斷系統傳輸格式,可以產生OBD2 PID查詢與回應的CAN訊息。並且結合OBD2連接器的功能,使虛擬CAN車用系統可以與電腦、手機等外部連接。

控制區域網路(Controller Area Network, CAN)是常見的車用通訊協定,隨著車載技術的進步會愈來愈重要。車輛診斷系統模擬器是學習與開發車用系統好用的輔助工具,但市售的車輛診斷系統模擬器,價格昂貴且要與電腦端做連接需另外購買OBD2連接器,才能連接上車輛診斷系統軟體。上述所提及的車輛診斷系統模擬器與OBD2連接器,它們都具有CAN介面。

想學習車輛的車用診斷系統(OBD2),需觀察車輛資料的輸出,並通過車輛診斷系統的協議進行分析與研究,然而車輛的對外接口為標準SAE J1962接頭,其符合所有法定OBD2通訊協議。SAE J1962接頭的通訊協議種類多樣,有符合SAE J1850 (PWM/VPW)、ISO 9141-2、ISO 14230-4(KWP2000)與ISO 15765-4 (CAN 250/500 kbps, 11/29 bit)等通訊協定。若想將車輛與電腦、手機等外部設備做連接來分析學習,則需要再另外接上OBD2連接器。

由於微控制器(Microcontroller, MCU)HT66F3370H內包含一般標準MCU HT66F2390架構及Bosch公司所授權的CAN Core模組功能,因此只要加接上一個CAN收發器(Transceiver),例如MCP2551,即能組成一個實用的具有MCU 控制的CAN模組。

首先,依OBD2標準利用此CAN模組,來設計CAN通訊協定車用模擬系統,並且可以模擬車輛正常狀態運作的車輛資訊。由於市售抬頭顯示器可透過OBD介面來讀取車輛的CAN通訊資訊,因此可透過與抬頭顯示器連接,來測試與驗證車用模擬系統。

再來,為了方便用電腦對車用系統做開發與測試,需要一套可以將車用系統與電腦做連接的連接器。設計一套OBD2連接器,它可以執行OBD2介面微控制器ELM327指令與查詢車輛診斷系統代碼。

最後將上述兩系統整合在一個CAN模組裡,組成虛擬CAN車用系統。它符合車輛診斷系統傳輸格式,可以產生OBD2 PID查詢與回應的CAN訊息。並且結合OBD2連接器的功能,使虛擬CAN車用系統可以與電腦、手機等外部連接。外部設備只需透過UART對虛擬CAN車用系統發送OBD2 PID指令,它便會使用UART傳送OBD2 PID回應,並在CAN網路輸出相對應的OBD2 PID查詢與回應。同時此虛擬CAN系統架構,方便在此架構建立新的車輛控制模組來測試,自定義車輛控制ECU,CAN ID為711h。

此外,本產品利用指紋辨識模組,辨識感應的指紋是否為註冊過的用戶。如果辨識成功,WiFi模組會透過LINE告知用戶,並啟動車用系統。如果辨識失敗,WiFi模組會透過LINE告知用戶指紋辨識失敗,並且車用系統將無法使用。團隊也針對此系統設計App,App包含兩大介面,一個為指紋介面,另一個為車輛控制介面。

指紋介面可以看到所有已註冊的指紋,並且可以新增與刪除指紋。指紋訊息與MySQL資料庫同步,避免出現不確定指紋是否註冊過的情形。車輛控制介面有兩個Switch開關,一個為車燈開關Switch,另一個為門鎖開關Switch,可以透過車輛控制介面遠端遙控虛擬CAN系統。

本產品使用微控制器作為虛擬CAN系統的主控,模擬車內的電子控制單元(ECU),並依照OBD2,在CAN上實現車內電子實際的通訊情況。此虛擬CAN系統有兩個對外通訊介面:UART傳輸介面和CAN觀測介面。虛擬CAN車用系統模擬OBD2介面微控制器ELM327指令,並依據指令執行相對應的動作與回應。因此它可以透過UART介面接收OBD2指令。而當UART介面接收到OBD2指令,虛擬CAN車用系統會透過CAN介面輸出相對應的OBD2 PID查詢與回應。透過觀察CAN介面的輸出,來分析OBD2的傳輸格式與資料內容。

此車用系統利用指紋辨識模組,搭配自行開發的手機App,打造一輛屬於使用者的虛擬車輛。可以透過手機App來新增或刪除指紋,並將已註冊的指紋存入MySQL資料庫中。

在指紋辨識失敗時,WiFi模組會透過LINE發出通知來告知用戶,直到指紋辨識成功才能啟動虛擬CAN系統。App內具有車輛控制介面,透過App的Switch開關來控制車輛的車燈與門鎖。當MCU收到車輛控制的指令後,它會執行相對應的動作,並且透過CAN介面輸出相對應的CAN訊號。

工作原理

圖1為虛擬CAN系統結構圖,本產品使用MCU做為主控,搭配CAN收發器MCP2551組成一個CAN節點,具有指紋辨識模組、WiFi模組、LED、電控鎖。

圖1 系統架構圖

首先利用指紋辨識模組,辨識感應的指紋是否為註冊過的用戶,如果辨識成功,會啟動車用系統,如果辨識失敗,系統將無法使用。MCU作為虛擬CAN系統的主控,模擬了車內的電子控制單元。其對外的通訊介面有兩個:UART傳輸介面和CAN觀測介面。CAN觀測介面的傳輸速度為500kbps,訊息的ID長度為11-bit。UART介面的傳輸速度為38400bps,電腦可以透過UART介面直接與虛擬CAN系統做連接。虛擬CAN系統可以透過UART介面接收ELM327指令,並依據指令執行相對應的動作與回應。它還可以透過UART介面接收OBD2 PID指令,並給予相對應的OBD2 PID回應;當UART介面接收到OBD2 PID指令,虛擬CAN系統會透過CAN介面輸出相對應的OBD2 PID查詢與回應。

App的車輛控制介面具有車燈與門鎖控制開關。按下開關後,App會傳送控制指令,透過WiFi模組傳送給MCU,MCU再執行相對應的車輛控制,並會透過CAN觀測介面輸出車控ECU的控制訊號。

產品結構

指紋辨識系統設計

圖2為指紋辨識系統的軟體流程,要啟動車用系統需先通過指紋辨識,若是指紋辨識失敗,則會透過Wi-Fi IoT控制晶片向LINE發送指紋辨識失敗訊息。若是指紋辨識成功,則會透過IoT控制晶片向LINE發送指紋辨識成功訊息,並會啟動車用系統模式。

圖2 指紋辨識流程圖

車用模擬系統設計

車用系統使用MCU實現ECU模擬器與OBD2連接器的功能。首先,設計一套ECU模擬器,它符合OBD2標準,並且模擬了車內的主引擎控制器、傳輸控制模組、防鎖死剎車系統。其CAN ID分別為7E8h、7E9h、7EAh。模擬的OBD2模式有01與09。其他模式都為故障診斷與元件測試等功能,這些功能一般是給車廠做測試與維修檢測使用,在車輛狀態沒有異常,不需要診斷與測試時,不需要讀取其他模式。

圖3為ECU模擬器的軟體流程圖。在使用MCU的CAN功能前,需先設置CAN接腳、CAN鮑率500kbps、訊息物件的接收傳送分配。MCU接腳為多工,透過軟體程式來規劃接腳功能。

圖3 ECU模擬器軟體流程圖

MCU的訊息記憶體總共有32個訊息物件。為了避免CPU讀取訊息記憶體和CAN訊息接收與傳送發生衝突,MCU有兩個介面控制暫存器來緩衝資料傳輸,將其分別用於傳送與接收。將訊息傳輸方向、資料長度、遮罩ID、訊息ID等設置透過介面控制暫存器寫入訊息物件裡,將訊息物件1~31設置為接收,訊息物件32設置為傳送。

當接收到CAN資料後會先判斷CAN ID是否為廣播位置。因有些設備會使用CAN 29位元的查詢格式查詢,因此設計為11位元的7DF與29位元的18DB33F1的CAN ID都可接受,若不是廣播位置的CAN ID則忽略資料繼續讀取CAN網路。若是,則會判斷模式與PID(圖4)。

圖4 模擬的車載系統電路圖

團隊設計的ECU只有模擬OBD2 PID中的模式 01與模式 09,模式01為車輛當前狀態,模式09為車輛資訊。模式01模擬了22種,其中包括引擎負載、引擎溫度、引擎轉速、車速、燃油調整等。模式09模擬了5種,其中包括車輛識別碼、校正ID、校正驗證碼、ECU名稱。如果接收到的OBD2 PID查詢不是支援的模式,與PID則忽略資料繼續讀取CAN網路。若是則回應相對應的OBD2 PID回應資料。

由於市售抬頭顯示器可透過OBD介面來讀取車輛之CAN通訊資訊,因此可透過與抬頭顯示器連接,來測試與驗證車用模擬系統,圖5分別為測試引擎溫度與引擎轉速畫面。

圖5 ECU模擬器測試畫面

 

虛擬CAN系統力助車輛診斷 整合通訊模擬/App介面(1)

虛擬CAN系統力助車輛診斷 整合通訊模擬/App介面(2)

》想看更多內容?快來【免費加入會員】【登入會員】,享受更多閱讀文章的權限喔!
標籤
相關文章

虛擬CAN系統力助車輛診斷 整合通訊模擬/App介面(2)

2024 年 09 月 10 日

高效能繪圖系統控制器助陣 車載圖形化顯示效能邁大步

2011 年 02 月 24 日

防範聯網車輛個資遭竊 信任錨強化汽車電子系統安全

2014 年 01 月 02 日

橋接感測器/雲端更有效  乙太網MCU實踐智慧閘道

2018 年 05 月 27 日

觸控點名/智慧鞋櫃雙管齊下 低功耗指紋辨識加值門禁管理

2020 年 12 月 13 日

後照鏡自動轉向/盲區照明神助攻 機車騎乘輔助系統安全上路(1)

2023 年 10 月 17 日
前一篇
虛擬CAN系統力助車輛診斷 整合通訊模擬/App介面(2)
下一篇
Nordic推出其最小型/最低功耗蜂巢式IoT方案