文獻標識碼: 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è)標準,,有獨立的電氣和信息定義規(guī)范,OBD信息讀取終端通常要配置專用的接口與OBD接口對接,,這極大地限制了OBD接口的應(yīng)用,。
本文介紹一種新型的汽車OBD信息無線發(fā)射機設(shè)計方案,它不需要OBD連接電纜,,利用藍牙模塊無線傳輸OBD信息,使配置藍牙接收功能的終端如PC機,、筆記本電腦、智能手機,、車載導(dǎo)航儀等都能接收到OBD信號,。
1 方案總體設(shè)計
用系統(tǒng)工程知識劃分發(fā)射機設(shè)計工作,參照模塊化硬件,、軟件開發(fā)規(guī)范,,按照以下模塊劃分發(fā)射機的總體設(shè)計:
(1)發(fā)射機硬件:提供供電,讀取CAN總線信號并進行OBD解析轉(zhuǎn)換,,通過藍牙模塊和天線發(fā)送輸出,;
(2)發(fā)射機軟件:對CAN總線進行命令控制并解析CAN總線信息。方案總體框圖如圖1所示,。
2 硬件設(shè)計
2.1 供電模塊
供電模塊給整個發(fā)射機提供+5 V工作電壓環(huán)境,。
OBD接口電氣規(guī)范定義規(guī)定:接口4號引腳為電源負,16號引腳為電源正,,電源正負電壓與車載蓄電池電壓一致[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,,為了擴大發(fā)射機的應(yīng)用范圍,,需要向下兼容所有低速率,所以選用支持1 MB/s傳輸速率的MCP2551高速CAN總線信號收發(fā)芯片作為本模塊的主芯片,。
MCP2551作為CAN協(xié)議控制器和物理總線接口,,分別從OBD的7號、15號引腳收發(fā)高速CAN信號和低速CAN信號[2],,兩組信號差分收發(fā),、鎖存而后送PIC18F2480單片機解析。
在實際工作中,, 藍牙無線信號電磁波頻率高達2.45 GHz,,易干擾MCP2551使其不能工作在正常狀態(tài),對電路稍加改造,,在輸入輸出引腳都連接可調(diào)電容進行濾波抗干擾處理,,如圖3。微調(diào)電容使其達到最佳狀態(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),一般的單片機如單獨進行CAN總線控制,,則需要很高的主頻和專門的程序,,不適合選用,因此選用PIC18系列的F2480單片機,。
PIC18F2480內(nèi)部自帶CAN控制器和16 KB Flash儲存,,并提供專用CAN總線操作指令集,只需對其內(nèi)部的CAN控制器進行簡單的指令操作,,就能實現(xiàn)CAN總線控制和OBD模塊解析,。
2.4 藍牙發(fā)射模塊
藍牙電路實現(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ā)射可以在不同的時隙進行,,提高了發(fā)射的效率,。
為提高發(fā)射效果,方案硬件實現(xiàn)時使用大增益全向天線,,而不使用印刷版電路布線的隱藏天線,。為了防止發(fā)射時出錯中斷,硬件實現(xiàn)時需連接RESET開關(guān),。
3 軟件設(shè)計
3.1 CAN報文格式
根據(jù)ISO 15765標準,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),; //擴展幀
write_MCP2515(TXB0DLC,0x02);
//發(fā)送數(shù)據(jù)長度為8字節(jié)
write_MCP2515Write(TXB0DLC, 0x80); //配置工作模式
(2)發(fā)送查詢請求:MCP2551提供專門的發(fā)送請求指令,,關(guān)鍵指令如下:
void MCP2515ReqTx (TXB0SIDL,0xEB);
當查詢請求達到OBD接口送入行車電腦后,,則會反饋當前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ū),當接收緩沖區(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));
//當接收緩沖區(qū)滿的時候開始解析
解析過程中,每解析一位,,數(shù)據(jù)關(guān)鍵寄存器減1,,直至0,表示數(shù)據(jù)解析完畢,。
(5)出錯處理:錯誤幀為顯性,,則出錯,此時點亮出錯報警LED并閃爍,,提醒使用者按下復(fù)位按鈕重新啟動發(fā)射機,。
4 工程實測
以Android2.3.2版本設(shè)備摩托羅拉ME722作為測試終端,以長安福特CAF7180A48轎車作為實測車輛,。開啟終端藍牙端口,,將前述藍牙發(fā)射機實物安裝在OBD接口并開啟,運行三方OBD信息提取顯示軟件Torque軟件,。
在汽車怠速和行駛狀態(tài)下,,終端均通過藍牙端口成功接收發(fā)射機傳輸?shù)钠嚂r速、發(fā)動機轉(zhuǎn)速等參數(shù)信息,,在拔下響應(yīng)傳感器模擬故障的情況下,,終端能夠讀取故障碼。
新型汽車OBD信息無線發(fā)射機設(shè)計方案真實有效,,其通用性好,、實用性強,特別是無線傳輸?shù)哪J?,極大地擴展了可以接收OBD信息的終端類型,。
新型汽車OBD信息無線發(fā)射機可以直接用于小型載客汽車,也可以在對電源模塊稍作改造后用于重型汽車或其他支持OBD協(xié)議的交通工具,。
參考文獻
[1] BOSCH Company. CAN Specification Version2.0[EB/OL]. http://www.bosch. Com. Germany.2011.
[2] 呂立亞, 王兆伍. 基于藍牙的汽車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.