王麗,趙奕笑,劉琛,胡孟杰
隨著新能源汽車的電控系統(tǒng)結(jié)構(gòu)日益復(fù)雜,電子系統(tǒng)發(fā)生故障的原因和對故障的判斷變得更加困難[1].診斷汽車故障的傳統(tǒng)經(jīng)驗(yàn)方法是通過對故障現(xiàn)象看、問、聽、試、嗅等分析判斷得出結(jié)論,這種方法雖直觀但無法準(zhǔn)確了解汽車行車電腦的數(shù)據(jù)狀態(tài),很難完成對具有復(fù)雜電控系統(tǒng)新能源汽車的故障作出更精確的診斷[2?3].手持終端式汽車故障檢測儀在當(dāng)前的汽修行業(yè)得到了廣泛應(yīng)用,這種檢測儀可以采集到汽車的行車電腦數(shù)據(jù),但通信方式一般采用藍(lán)牙或USB 接口,其傳輸速度慢,通信距離不夠遠(yuǎn)[4?6].新能源汽車的電子控制系統(tǒng)里有多個傳感器,采集到的數(shù)據(jù)量大且數(shù)據(jù)內(nèi)容多,因此本文為了提高新能源汽車數(shù)據(jù)的傳輸速率,方便用戶實(shí)時獲取診斷信息,設(shè)計(jì)了一種基于Android 的汽車智能診斷裝置,該裝置采用CAN 總線對汽車OBD 接口采集數(shù)據(jù),通過LTE 4G 網(wǎng)和開發(fā)手機(jī)APP 實(shí)現(xiàn)對數(shù)據(jù)遠(yuǎn)程傳輸和實(shí)時查閱.用戶通過手機(jī)APP 可以快速讀取汽車電控系統(tǒng)中的故障,從而縮短了汽車檢修的時間.
汽車智能診斷裝置主要采用CAN 總線與汽車OBD 接口建立通信,對汽車的數(shù)據(jù)進(jìn)行實(shí)時采集和處理,采集到的數(shù)據(jù)通過4G 無線通信網(wǎng)絡(luò)傳輸?shù)竭h(yuǎn)程服務(wù)器端.手機(jī)通過訪問服務(wù)器獲取汽車數(shù)據(jù),在智能手機(jī)的Android平臺上開發(fā)汽車智能診斷APP,方便實(shí)時查詢汽車故障信息.
汽車智能診斷裝置的總體設(shè)計(jì)方案如圖1 所示,該裝置采用兩組CAN 收發(fā)器分別與汽車OBD 接口連接,進(jìn)行數(shù)據(jù)和控制命令的通信.系統(tǒng)的MCU 主控芯片采用STM32F 32 位ARM Cortex?M3,該芯片集成了CAN 控制器,因此在其CAN 引腳上外設(shè)兩組CAN 收發(fā)器,即可完成CAN 通信.
圖1 汽車智能診斷裝置的設(shè)計(jì)方案
由于LTE 模塊可接收的串口信號電壓低于3.3 V,為了保護(hù)芯片不被燒壞,在MCU 和LTE 模塊之間設(shè)計(jì)了電壓轉(zhuǎn)換電路.LTE 模塊中還設(shè)置了裝載4G SIM 卡和天線的位置,通過軟件將系統(tǒng)的IP 地址設(shè)置為云服務(wù)器的公網(wǎng)IP.當(dāng)接上4G 天線,安裝好4G SIM 卡后,系統(tǒng)就可以上傳數(shù)據(jù)到云服務(wù)器,智能手機(jī)通過云服務(wù)器獲取汽車數(shù)據(jù),此時用戶在手機(jī)APP 上就可以實(shí)時查閱.
(1)汽 車OBD 接口設(shè)計(jì).根 據(jù)ISO/DIS 15031?3 規(guī)定,汽車故障診斷接口OBD?Ⅱ統(tǒng)一采用梯形的16 針DLC 形式接插件,如圖2 所示[7].其中引腳6 和引腳14 分別是高速 的CAN_H 和CAN_L線,引腳3 和引腳11 分別定義為低速的CAN_H 線和CAN_L 線.
圖2 汽車OBD 與CAN 收發(fā)器的接口
(2)CAN 收發(fā)器采集OBD 數(shù)據(jù)的設(shè)計(jì).在設(shè)計(jì)中采用兩組CAN 收發(fā)器采集汽車OBD?Ⅱ接口的汽車數(shù)據(jù).如圖3 所示,CAN1 的引腳6和引腳7 分別與OBD 的引腳14 與6 連接,CAN2 的引腳6 和引腳7 分別與OBD 的引腳11與引腳3 連接.CAN 總線發(fā)送數(shù)據(jù)給行車電腦,行車電腦接收到數(shù)據(jù)后會返回車輛信息.
圖3 CAN 收發(fā)器的電路設(shè)計(jì)
(3)MCU 主控電路與LTE 組網(wǎng)的電壓轉(zhuǎn)換電路設(shè)計(jì).MCU 采用STM32 處理器,它的標(biāo)準(zhǔn)晶振是8 MHZ,內(nèi)置CAN 控制器,因此與CAN 收發(fā)器接口設(shè)計(jì)簡單[8].兩 組CAN 收發(fā)器將采集的汽車數(shù)據(jù)通過CAN 接口傳輸給STM32 主控電路,如圖4 所示.
圖4 MCU 主控電路
圖5 設(shè)計(jì)的電壓轉(zhuǎn)換電路會將主控電路的PA2 和PA3 口輸出的串口電壓信號從3.3 V轉(zhuǎn)換成1.8 V,并輸入到EC20 無線網(wǎng)絡(luò)模塊的TXD 和RXD口,即完成了主控電路與LTE 網(wǎng)絡(luò)的通信.
圖5 LTE 組網(wǎng)的電壓轉(zhuǎn)換電路
診斷終端通過CAN 總線發(fā)送數(shù)據(jù)的通用格式為:
例如從OBD 口獲取到發(fā)動機(jī)轉(zhuǎn)速,則發(fā)送和接收的命令如下:
發(fā)送命令中的7DF 為CANID,所有具有診斷功能的行車電腦都會有一個相應(yīng)的CANID.發(fā)送的數(shù)據(jù)中02 代表數(shù)據(jù)長度,后面有效字節(jié)長度為2,即010C.01 代表服務(wù)號,也叫SID,0C 代表參數(shù)ID,也叫PID,此處0C 是發(fā)動機(jī)轉(zhuǎn)速的PID.
行車電腦返回的數(shù)據(jù)中7E8 為行車電腦的物理ID,也是CANID.CAN 報(bào)文數(shù)據(jù)為:04,代表后續(xù)有效字節(jié)有4 個.41 是對01 服務(wù)的一個應(yīng)答,所有行車電腦都會在請求數(shù)據(jù)0x01的基礎(chǔ)上加0x40 返回,即0x41.0C 對應(yīng)請求命令中的0C,代表發(fā)動機(jī)轉(zhuǎn)速.0B3E 代表轉(zhuǎn)速值,轉(zhuǎn)換為十進(jìn)制是2 878轉(zhuǎn),但是實(shí)際轉(zhuǎn)速為2 878/4≈719 轉(zhuǎn).
通過對汽車智能診斷儀的產(chǎn)品需求進(jìn)行市場調(diào)研和分析,應(yīng)用Android 開發(fā)環(huán)境和JAVA 語言開發(fā)了一個功能較齊全的汽車智能診斷手機(jī)APP 應(yīng)用軟件,在其界面上設(shè)計(jì)了汽車的常規(guī)信息如OBD 協(xié)議、當(dāng)前速度、車架號、故障碼、發(fā)動機(jī)轉(zhuǎn)速、進(jìn)氣溫度、進(jìn)氣岐管絕對壓力、發(fā)動機(jī)冷卻液溫度等,APP 界面設(shè)計(jì)的主要java 程序如下所示.
為了研究方便,本文應(yīng)用汽車數(shù)據(jù)模擬器代替汽車行車電腦,將模擬器的OBD 接口與汽車故障診斷裝置相連.模擬器的數(shù)據(jù)可以通過模擬器的上位機(jī)控制界面設(shè)置.在汽車故障診斷裝置中插入4G 網(wǎng)的SIM卡,就可以將數(shù)據(jù)傳輸?shù)竭h(yuǎn)程服務(wù)器上,手機(jī)通過遠(yuǎn)程訪問服務(wù)器,此時APP 上可以實(shí)時查看汽車狀態(tài)數(shù)據(jù),如圖6 所示.
圖6 手機(jī)APP 顯示的測試數(shù)據(jù)
設(shè)置故障碼在車速為0 km/h 的情況下才會上傳給系統(tǒng),因此在系統(tǒng)調(diào)試時,需要先把車速降為0 km/h,再在汽車數(shù)據(jù)模擬器里設(shè)置故障碼,此時在APP 上能實(shí)時查看故障碼.對診斷裝置測試了10 組數(shù)據(jù)如表1 所示,模擬器中預(yù)先設(shè)置的10 組數(shù)據(jù)都能準(zhǔn)確地在APP 上顯示,該系統(tǒng)可以實(shí)現(xiàn)汽車數(shù)據(jù)的采集、遠(yuǎn)程傳輸和顯示,為汽車檢修提供了有效的數(shù)據(jù)支持.
表1 系統(tǒng)測試數(shù)據(jù)
本文設(shè)計(jì)的汽車智能診斷系統(tǒng)采用CAN總線采集汽車信息,運(yùn)用ISO15765?4 診斷協(xié)議發(fā)送數(shù)據(jù),LTE 4G 組網(wǎng)及遠(yuǎn)程服務(wù)器配置完成數(shù)據(jù)的無線傳輸,在智能手機(jī)的安卓平臺上開發(fā)應(yīng)用APP,使用戶隨時隨地都可以查閱汽車的行車數(shù)據(jù)與故障信息,滿足了用戶的行車需求.為了研究方便,該系統(tǒng)測試時采集的是汽車數(shù)據(jù)模擬器中設(shè)置的數(shù)據(jù),今后在系統(tǒng)改進(jìn)的測試中將會在汽車行車電腦中采集數(shù)據(jù)并增加分析功能.