《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種新型汽車OBD信息無(wú)線發(fā)射機(jī)設(shè)計(jì)
一種新型汽車OBD信息無(wú)線發(fā)射機(jī)設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2012年第11期
代妮娜1, 蔡 黎1, 邱 剛1, 鄧 明2
1. 重慶三峽學(xué)院 數(shù)字與信號(hào)處理重點(diǎn)實(shí)驗(yàn)室,重慶 404000; 2. 長(zhǎng)安汽車研發(fā)中心系統(tǒng)所5室, 重慶 400023
摘要: 提出了一種新型汽車OBD信息無(wú)線發(fā)射機(jī)的設(shè)計(jì)方法。發(fā)射機(jī)以PIC18F2480單片機(jī)和MCP2551車載CAN總線收發(fā)模塊為核心,連接器硬件讀取OBD接口的CAN總線實(shí)時(shí)數(shù)據(jù),解析相關(guān)參數(shù)值,最后通過(guò)藍(lán)牙模塊發(fā)射進(jìn)行無(wú)線傳輸。具體闡述了硬件模塊電路圖和工作原理、給出了軟件流程圖。該方案已經(jīng)實(shí)現(xiàn)。工程實(shí)測(cè)證明,此種設(shè)計(jì)方案高效可靠,能夠達(dá)到無(wú)線發(fā)射汽車OBD接口信息的目的。
關(guān)鍵詞: PIC18F2480 藍(lán)牙 OBD MCP2551 BC417
中圖分類號(hào): TP274
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)11-0097-04
Design of new car′s OBD information wireless transmitter
Dai Nina1, Cai Li1, Qiu Gang1, Deng Ming2
1. Key Lab of Digital Signal and Information Processing, Chongqing Three Gorges University, Chongqing 404000, China; 2. Room 5 of System Department, Chang-an Automobile R & D Center, Chongqing 404000, China
Abstract: A new type of wireless transmitter of the vehicle OBD information is introduced in this paper. The core of the transmitter is the microchip PIC18F2480 and vehicle CAN bus transceiver module MCP2551. Connector hardware gets the real-time data from the CAN bus of the OBD interface, resolves the relevant parameter values, and then transmits them with Bluetooth module. The circuit diagram and working principle of the hardware module and the software flow chart are elaborated specifically. The scheme has been realized and proved that it is efficient and reliable to achieve the purpose of transmitting the information from vehicle OBD interface wirelessly and directly.
Key words : PIC18F2480; Bluetooth; OBD; MCP2551; BC417

    OBD(On Board Diagnostics)即“車載診斷系統(tǒng)”,2000年以后生產(chǎn)的汽車都配置有OBD接口[1]。OBD接口能夠輸出汽車各項(xiàng)運(yùn)行參數(shù)和故障碼,廣泛應(yīng)用在安全駕駛、行駛預(yù)警、汽車維修等領(lǐng)域。

    OBD接口是美國(guó)汽車工程師協(xié)會(huì)(SAE)制定的汽車行業(yè)標(biāo)準(zhǔn),有獨(dú)立的電氣和信息定義規(guī)范,OBD信息讀取終端通常要配置專用的接口與OBD接口對(duì)接,這極大地限制了OBD接口的應(yīng)用。
    本文介紹一種新型的汽車OBD信息無(wú)線發(fā)射機(jī)設(shè)計(jì)方案,它不需要OBD連接電纜,利用藍(lán)牙模塊無(wú)線傳輸OBD信息,使配置藍(lán)牙接收功能的終端如PC機(jī)、筆記本電腦、智能手機(jī)、車載導(dǎo)航儀等都能接收到OBD信號(hào)。
1 方案總體設(shè)計(jì)
    用系統(tǒng)工程知識(shí)劃分發(fā)射機(jī)設(shè)計(jì)工作,參照模塊化硬件、軟件開發(fā)規(guī)范,按照以下模塊劃分發(fā)射機(jī)的總體設(shè)計(jì):
    (1)發(fā)射機(jī)硬件:提供供電,讀取CAN總線信號(hào)并進(jìn)行OBD解析轉(zhuǎn)換,通過(guò)藍(lán)牙模塊和天線發(fā)送輸出;
    (2)發(fā)射機(jī)軟件:對(duì)CAN總線進(jìn)行命令控制并解析CAN總線信息。方案總體框圖如圖1所示。

2 硬件設(shè)計(jì)
2.1 供電模塊

    供電模塊給整個(gè)發(fā)射機(jī)提供+5 V工作電壓環(huán)境。
    OBD接口電氣規(guī)范定義規(guī)定:接口4號(hào)引腳為電源負(fù),16號(hào)引腳為電源正,電源正負(fù)電壓與車載蓄電池電壓一致[1],乘用車車載蓄電池電壓為12 V。汽車啟動(dòng)后,因?yàn)榘l(fā)電機(jī)的作用,其實(shí)際電壓約在12.5 V~14 V之間,所以需要構(gòu)造穩(wěn)壓降壓電路,將蓄電池電壓降壓并穩(wěn)定在+5 V。此處選用LTC3340穩(wěn)壓芯片搭建穩(wěn)壓降壓電路,設(shè)計(jì)供電電路如圖2所示。

    圖2中,LTC3340從OBD接口4號(hào)、 16號(hào)引腳提取12 V電壓,轉(zhuǎn)換成穩(wěn)定的TTL電平電壓從Vout引腳輸出供整個(gè)發(fā)射機(jī)使用。
2.2 CAN總線采集收發(fā)模塊
    CAN總線采集收發(fā)模塊的作用是發(fā)送查詢請(qǐng)求到行車電腦,然后讀取返回的CAN總線信息。
    不同型號(hào)汽車的OBD接口總線傳輸速率不一定相同,但傳輸速率一般限制為CAN2.0協(xié)議規(guī)定的1 MB/s,為了擴(kuò)大發(fā)射機(jī)的應(yīng)用范圍,需要向下兼容所有低速率,所以選用支持1 MB/s傳輸速率的MCP2551高速CAN總線信號(hào)收發(fā)芯片作為本模塊的主芯片。
    MCP2551作為CAN協(xié)議控制器和物理總線接口,分別從OBD的7號(hào)、15號(hào)引腳收發(fā)高速CAN信號(hào)和低速CAN信號(hào)[2],兩組信號(hào)差分收發(fā)、鎖存而后送PIC18F2480單片機(jī)解析。
    在實(shí)際工作中, 藍(lán)牙無(wú)線信號(hào)電磁波頻率高達(dá)2.45 GHz,易干擾MCP2551使其不能工作在正常狀態(tài),對(duì)電路稍加改造,在輸入輸出引腳都連接可調(diào)電容進(jìn)行濾波抗干擾處理,如圖3。微調(diào)電容使其達(dá)到最佳狀態(tài)后,用4路跟蹤示波器檢測(cè)經(jīng)過(guò)抗干擾處理后的差分收發(fā)后的CAN總線信號(hào),時(shí)序圖如圖4所示。

    圖4中上、下部?jī)山M信號(hào)分別為發(fā)送、接收模式下CAN總線的TXD和RXD信號(hào)。顯而易見,發(fā)送和接收時(shí)序波形信息位相同,觸發(fā)位不同,證明該模塊完成了讀取CAN信息并中斷觸發(fā)后送PIC18F2480的功能,具有較強(qiáng)的抗干擾能力。
2.3 CAN總線控制和OBD解析模塊
     CAN總線控制和OBD解析模塊由專用單片機(jī)實(shí)現(xiàn),一般的單片機(jī)如單獨(dú)進(jìn)行CAN總線控制,則需要很高的主頻和專門的程序,不適合選用,因此選用PIC18系列的F2480單片機(jī)。
    PIC18F2480內(nèi)部自帶CAN控制器和16 KB Flash儲(chǔ)存,并提供專用CAN總線操作指令集,只需對(duì)其內(nèi)部的CAN控制器進(jìn)行簡(jiǎn)單的指令操作,就能實(shí)現(xiàn)CAN總線控制和OBD模塊解析。
2.4 藍(lán)牙發(fā)射模塊
    藍(lán)牙電路實(shí)現(xiàn)將解析后的OBD信號(hào)處理并無(wú)線發(fā)射到終端機(jī)的功能。
    方案選用BC417143B作為主芯片, 如圖5解析模塊輸出的信號(hào)為TTL電平,將其直接連入BC417143B芯片的數(shù)據(jù)輸入端口D+和D-,經(jīng)芯片基帶層編碼和分組處理,傳入無(wú)線層完成頻率合成,最后傳入RF射頻模塊予以發(fā)射[3]。雖然2.2節(jié)中的信息為差分收發(fā),但BC417143B發(fā)射電路中帶鎖相環(huán),所以發(fā)射可以在不同的時(shí)隙進(jìn)行,提高了發(fā)射的效率。

    為提高發(fā)射效果,方案硬件實(shí)現(xiàn)時(shí)使用大增益全向天線,而不使用印刷版電路布線的隱藏天線。為了防止發(fā)射時(shí)出錯(cuò)中斷,硬件實(shí)現(xiàn)時(shí)需連接RESET開關(guān)。
3 軟件設(shè)計(jì)
3.1 CAN報(bào)文格式

    根據(jù)ISO 15765標(biāo)準(zhǔn),CAN報(bào)文信息主要集中在數(shù)據(jù)幀中,數(shù)據(jù)分為顯性和隱性,顯性時(shí)表示有CAN信息出現(xiàn)[4]。數(shù)據(jù)按幀發(fā)送,每幀數(shù)據(jù)格式如圖6所示。

3.2 OBD報(bào)文解析
    3.1節(jié)所述數(shù)據(jù)存放在CAN總線控制和OBD解析模塊的核心器件PIC18F2480單片機(jī)的CAN控制器中,編程依次解析各域的值即可。軟件流程圖如圖7所示。

    (1)初始化:設(shè)定MCP2551和PIC18F2480單片機(jī)的端口、工作模式、傳輸速率、數(shù)據(jù)格式等信息,關(guān)鍵代碼如下:
        Init_PIC18F2480();
    //PIC18F2480接口初始化
     Init_MCP2515();           //MCP2515初始化
     TRISA=0B00000001;                                  //打開通道
     ADCON1=0B00001110;                        //定義輸如引腳
     ADCON2=0B10100001;              //轉(zhuǎn)換結(jié)果按格式對(duì)齊
     write_MCP2515(TXB0CTRL,0x03);
                                 //設(shè)置為發(fā)送最高優(yōu)先級(jí)
     write_MCP25150(TXB0SIDL,0xEB);                  //擴(kuò)展幀
     write_MCP2515(TXB0DLC,0x02);
                                                //發(fā)送數(shù)據(jù)長(zhǎng)度為8字節(jié)
     write_MCP2515Write(TXB0DLC, 0x80);    //配置工作模式
    (2)發(fā)送查詢請(qǐng)求:MCP2551提供專門的發(fā)送請(qǐng)求指令,關(guān)鍵指令如下:
     void   MCP2515ReqTx (TXB0SIDL,0xEB);
     當(dāng)查詢請(qǐng)求達(dá)到OBD接口送入行車電腦后,則會(huì)反饋當(dāng)前CAN總線數(shù)據(jù)報(bào)文至OBD接口。
    (3)接收數(shù)據(jù):MCP2551提供專門的接收請(qǐng)求指令,關(guān)鍵指令如下:
    BOOL CANGetMsg(int Channel, TXB0SIDL,
0xEB)
    OBD接口數(shù)據(jù)按幀發(fā)送,此時(shí)應(yīng)該監(jiān)視接收數(shù)據(jù)的緩沖區(qū),當(dāng)接收緩沖區(qū)的數(shù)據(jù)滿時(shí),代表接收數(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í)候開始解析
    解析過(guò)程中,每解析一位,數(shù)據(jù)關(guān)鍵寄存器減1,直至0,表示數(shù)據(jù)解析完畢。
    (5)出錯(cuò)處理:錯(cuò)誤幀為顯性,則出錯(cuò),此時(shí)點(diǎn)亮出錯(cuò)報(bào)警LED并閃爍,提醒使用者按下復(fù)位按鈕重新啟動(dòng)發(fā)射機(jī)。
4 工程實(shí)測(cè)

 


    以Android2.3.2版本設(shè)備摩托羅拉ME722作為測(cè)試終端,以長(zhǎng)安福特CAF7180A48轎車作為實(shí)測(cè)車輛。開啟終端藍(lán)牙端口,將前述藍(lán)牙發(fā)射機(jī)實(shí)物安裝在OBD接口并開啟,運(yùn)行三方OBD信息提取顯示軟件Torque軟件。
    在汽車怠速和行駛狀態(tài)下,終端均通過(guò)藍(lán)牙端口成功接收發(fā)射機(jī)傳輸?shù)钠嚂r(shí)速、發(fā)動(dòng)機(jī)轉(zhuǎn)速等參數(shù)信息,在拔下響應(yīng)傳感器模擬故障的情況下,終端能夠讀取故障碼。
    新型汽車OBD信息無(wú)線發(fā)射機(jī)設(shè)計(jì)方案真實(shí)有效,其通用性好、實(shí)用性強(qiáng),特別是無(wú)線傳輸?shù)哪J?,極大地?cái)U(kuò)展了可以接收OBD信息的終端類型。
    新型汽車OBD信息無(wú)線發(fā)射機(jī)可以直接用于小型載客汽車,也可以在對(duì)電源模塊稍作改造后用于重型汽車或其他支持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ò)信號(hào)無(wú)線測(cè)量系統(tǒng)[J]. 計(jì)算機(jī)測(cè)量與控制,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平臺(tái)汽車虛擬儀表設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2012,38(1):69-72.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。