文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2012)11-0097-04
OBD(On Board Diagnostics)即“車載診斷系統(tǒng)”,2000年以后生產(chǎn)的汽車都配置有OBD接口[1]。OBD接口能夠輸出汽車各項運行參數(shù)和故障碼,廣泛應(yīng)用在安全駕駛、行駛預(yù)警、汽車維修等領(lǐng)域。
OBD接口是美國汽車工程師協(xié)會(SAE)制定的汽車行業(yè)標(biāo)準(zhǔn),有獨立的電氣和信息定義規(guī)范,OBD信息讀取終端通常要配置專用的接口與OBD接口對接,這極大地限制了OBD接口的應(yīng)用。
本文介紹一種新型的汽車OBD信息無線發(fā)射機設(shè)計方案,它不需要OBD連接電纜,利用藍(lán)牙模塊無線傳輸OBD信息,使配置藍(lán)牙接收功能的終端如PC機、筆記本電腦、智能手機、車載導(dǎo)航儀等都能接收到OBD信號。
1 方案總體設(shè)計
用系統(tǒng)工程知識劃分發(fā)射機設(shè)計工作,參照模塊化硬件、軟件開發(fā)規(guī)范,按照以下模塊劃分發(fā)射機的總體設(shè)計:
(1)發(fā)射機硬件:提供供電,讀取CAN總線信號并進(jìn)行OBD解析轉(zhuǎn)換,通過藍(lán)牙模塊和天線發(fā)送輸出;
(2)發(fā)射機軟件:對CAN總線進(jìn)行命令控制并解析CAN總線信息。方案總體框圖如圖1所示。
2 硬件設(shè)計
2.1 供電模塊
供電模塊給整個發(fā)射機提供+5 V工作電壓環(huán)境。
OBD接口電氣規(guī)范定義規(guī)定:接口4號引腳為電源負(fù),16號引腳為電源正,電源正負(fù)電壓與車載蓄電池電壓一致[1],乘用車車載蓄電池電壓為12 V。汽車啟動后,因為發(fā)電機的作用,其實際電壓約在12.5 V~14 V之間,所以需要構(gòu)造穩(wěn)壓降壓電路,將蓄電池電壓降壓并穩(wěn)定在+5 V。此處選用LTC3340穩(wěn)壓芯片搭建穩(wěn)壓降壓電路,設(shè)計供電電路如圖2所示。
圖2中,LTC3340從OBD接口4號、 16號引腳提取12 V電壓,轉(zhuǎn)換成穩(wěn)定的TTL電平電壓從Vout引腳輸出供整個發(fā)射機使用。
2.2 CAN總線采集收發(fā)模塊
CAN總線采集收發(fā)模塊的作用是發(fā)送查詢請求到行車電腦,然后讀取返回的CAN總線信息。
不同型號汽車的OBD接口總線傳輸速率不一定相同,但傳輸速率一般限制為CAN2.0協(xié)議規(guī)定的1 MB/s,為了擴(kuò)大發(fā)射機的應(yīng)用范圍,需要向下兼容所有低速率,所以選用支持1 MB/s傳輸速率的MCP2551高速CAN總線信號收發(fā)芯片作為本模塊的主芯片。
MCP2551作為CAN協(xié)議控制器和物理總線接口,分別從OBD的7號、15號引腳收發(fā)高速CAN信號和低速CAN信號[2],兩組信號差分收發(fā)、鎖存而后送PIC18F2480單片機解析。
在實際工作中, 藍(lán)牙無線信號電磁波頻率高達(dá)2.45 GHz,易干擾MCP2551使其不能工作在正常狀態(tài),對電路稍加改造,在輸入輸出引腳都連接可調(diào)電容進(jìn)行濾波抗干擾處理,如圖3。微調(diào)電容使其達(dá)到最佳狀態(tài)后,用4路跟蹤示波器檢測經(jīng)過抗干擾處理后的差分收發(fā)后的CAN總線信號,時序圖如圖4所示。
圖4中上、下部兩組信號分別為發(fā)送、接收模式下CAN總線的TXD和RXD信號。顯而易見,發(fā)送和接收時序波形信息位相同,觸發(fā)位不同,證明該模塊完成了讀取CAN信息并中斷觸發(fā)后送PIC18F2480的功能,具有較強的抗干擾能力。
2.3 CAN總線控制和OBD解析模塊
CAN總線控制和OBD解析模塊由專用單片機實現(xiàn),一般的單片機如單獨進(jìn)行CAN總線控制,則需要很高的主頻和專門的程序,不適合選用,因此選用PIC18系列的F2480單片機。
PIC18F2480內(nèi)部自帶CAN控制器和16 KB Flash儲存,并提供專用CAN總線操作指令集,只需對其內(nèi)部的CAN控制器進(jìn)行簡單的指令操作,就能實現(xiàn)CAN總線控制和OBD模塊解析。
2.4 藍(lán)牙發(fā)射模塊
藍(lán)牙電路實現(xiàn)將解析后的OBD信號處理并無線發(fā)射到終端機的功能。
方案選用BC417143B作為主芯片, 如圖5解析模塊輸出的信號為TTL電平,將其直接連入BC417143B芯片的數(shù)據(jù)輸入端口D+和D-,經(jīng)芯片基帶層編碼和分組處理,傳入無線層完成頻率合成,最后傳入RF射頻模塊予以發(fā)射[3]。雖然2.2節(jié)中的信息為差分收發(fā),但BC417143B發(fā)射電路中帶鎖相環(huán),所以發(fā)射可以在不同的時隙進(jìn)行,提高了發(fā)射的效率。
為提高發(fā)射效果,方案硬件實現(xiàn)時使用大增益全向天線,而不使用印刷版電路布線的隱藏天線。為了防止發(fā)射時出錯中斷,硬件實現(xiàn)時需連接RESET開關(guān)。
3 軟件設(shè)計
3.1 CAN報文格式
根據(jù)ISO 15765標(biāo)準(zhǔn),CAN報文信息主要集中在數(shù)據(jù)幀中,數(shù)據(jù)分為顯性和隱性,顯性時表示有CAN信息出現(xiàn)[4]。數(shù)據(jù)按幀發(fā)送,每幀數(shù)據(jù)格式如圖6所示。
3.2 OBD報文解析
3.1節(jié)所述數(shù)據(jù)存放在CAN總線控制和OBD解析模塊的核心器件PIC18F2480單片機的CAN控制器中,編程依次解析各域的值即可。軟件流程圖如圖7所示。
(1)初始化:設(shè)定MCP2551和PIC18F2480單片機的端口、工作模式、傳輸速率、數(shù)據(jù)格式等信息,關(guān)鍵代碼如下:
Init_PIC18F2480();
//PIC18F2480接口初始化
Init_MCP2515(); //MCP2515初始化
TRISA=0B00000001; //打開通道
ADCON1=0B00001110; //定義輸如引腳
ADCON2=0B10100001; //轉(zhuǎn)換結(jié)果按格式對齊
write_MCP2515(TXB0CTRL,0x03);
//設(shè)置為發(fā)送最高優(yōu)先級
write_MCP25150(TXB0SIDL,0xEB); //擴(kuò)展幀
write_MCP2515(TXB0DLC,0x02);
//發(fā)送數(shù)據(jù)長度為8字節(jié)
write_MCP2515Write(TXB0DLC, 0x80); //配置工作模式
(2)發(fā)送查詢請求:MCP2551提供專門的發(fā)送請求指令,關(guān)鍵指令如下:
void MCP2515ReqTx (TXB0SIDL,0xEB);
當(dāng)查詢請求達(dá)到OBD接口送入行車電腦后,則會反饋當(dāng)前CAN總線數(shù)據(jù)報文至OBD接口。
(3)接收數(shù)據(jù):MCP2551提供專門的接收請求指令,關(guān)鍵指令如下:
BOOL CANGetMsg(int Channel, TXB0SIDL,
0xEB)
OBD接口數(shù)據(jù)按幀發(fā)送,此時應(yīng)該監(jiān)視接收數(shù)據(jù)的緩沖區(qū),當(dāng)接收緩沖區(qū)的數(shù)據(jù)滿時,代表接收數(shù)據(jù)完畢,即開始解析數(shù)據(jù)流程[5]。
(4)解析數(shù)據(jù):如3.1節(jié)所述,每幀數(shù)據(jù)分為多位,按位處理即可解析數(shù)據(jù)。關(guān)鍵代碼如下:
do
{
uint8 MCP2515RdStus (void); //讀狀態(tài)
void MCP2515BitModify (TXB0DLC, 0x03); //按位讀取
}while(MCP2515ReadRXBuf (TXB0DLC, 0x80));
//當(dāng)接收緩沖區(qū)滿的時候開始解析
解析過程中,每解析一位,數(shù)據(jù)關(guān)鍵寄存器減1,直至0,表示數(shù)據(jù)解析完畢。
(5)出錯處理:錯誤幀為顯性,則出錯,此時點亮出錯報警LED并閃爍,提醒使用者按下復(fù)位按鈕重新啟動發(fā)射機。
4 工程實測
以Android2.3.2版本設(shè)備摩托羅拉ME722作為測試終端,以長安福特CAF7180A48轎車作為實測車輛。開啟終端藍(lán)牙端口,將前述藍(lán)牙發(fā)射機實物安裝在OBD接口并開啟,運行三方OBD信息提取顯示軟件Torque軟件。
在汽車怠速和行駛狀態(tài)下,終端均通過藍(lán)牙端口成功接收發(fā)射機傳輸?shù)钠嚂r速、發(fā)動機轉(zhuǎn)速等參數(shù)信息,在拔下響應(yīng)傳感器模擬故障的情況下,終端能夠讀取故障碼。
新型汽車OBD信息無線發(fā)射機設(shè)計方案真實有效,其通用性好、實用性強,特別是無線傳輸?shù)哪J?,極大地擴(kuò)展了可以接收OBD信息的終端類型。
新型汽車OBD信息無線發(fā)射機可以直接用于小型載客汽車,也可以在對電源模塊稍作改造后用于重型汽車或其他支持OBD協(xié)議的交通工具。
參考文獻(xiàn)
[1] BOSCH Company. CAN Specification Version2.0[EB/OL]. http://www.bosch. Com. Germany.2011.
[2] 呂立亞, 王兆伍. 基于藍(lán)牙的汽車CAN網(wǎng)絡(luò)信號無線測量系統(tǒng)[J]. 計算機測量與控制,2009,17(2):281-283, 286.
[3] IDWAN S A. Developing a mobile application via bluetooth wireless technology for enhancing Communication[J]. International Journal of Interactive Mobile Technologies, 2009:34-37.
[4] Wu Jianjun, Hu Juan. Application of CAN-bus network in Intelligent parking[J]. Physics Procedia, 2009:615-628.
[5] 蔡黎,代妮娜,鄧明,等.基于OBD協(xié)議的Android平臺汽車虛擬儀表設(shè)計[J].電子技術(shù)應(yīng)用,2012,38(1):69-72.