《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 一种新型汽车OBD信息无线发射机设计
一种新型汽车OBD信息无线发射机设计
来源:电子技术应用2012年第11期
代妮娜1, 蔡 黎1, 邱 刚1, 邓 明2
1. 重庆三峡学院 数字与信号处理重点实验室,重庆 404000; 2. 长安汽车研发中心系统所5室, 重庆 400023
摘要: 提出了一种新型汽车OBD信息无线发射机的设计方法。发射机以PIC18F2480单片机和MCP2551车载CAN总线收发模块为核心,连接器硬件读取OBD接口的CAN总线实时数据,解析相关参数值,最后通过蓝牙模块发射进行无线传输。具体阐述了硬件模块电路图和工作原理、给出了软件流程图。该方案已经实现。工程实测证明,此种设计方案高效可靠,能够达到无线发射汽车OBD接口信息的目的。
中图分类号: TP274
文献标识码: A
文章编号: 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)即“车载诊断系统”,2000年以后生产的汽车都配置有OBD接口[1]。OBD接口能够输出汽车各项运行参数和故障码,广泛应用在安全驾驶、行驶预警、汽车维修等领域。

    OBD接口是美国汽车工程师协会(SAE)制定的汽车行业标准,有独立的电气和信息定义规范,OBD信息读取终端通常要配置专用的接口与OBD接口对接,这极大地限制了OBD接口的应用。
    本文介绍一种新型的汽车OBD信息无线发射机设计方案,它不需要OBD连接电缆,利用蓝牙模块无线传输OBD信息,使配置蓝牙接收功能的终端如PC机、笔记本电脑、智能手机、车载导航仪等都能接收到OBD信号。
1 方案总体设计
    用系统工程知识划分发射机设计工作,参照模块化硬件、软件开发规范,按照以下模块划分发射机的总体设计:
    (1)发射机硬件:提供供电,读取CAN总线信号并进行OBD解析转换,通过蓝牙模块和天线发送输出;
    (2)发射机软件:对CAN总线进行命令控制并解析CAN总线信息。方案总体框图如图1所示。

2 硬件设计
2.1 供电模块

    供电模块给整个发射机提供+5 V工作电压环境。
    OBD接口电气规范定义规定:接口4号引脚为电源负,16号引脚为电源正,电源正负电压与车载蓄电池电压一致[1],乘用车车载蓄电池电压为12 V。汽车启动后,因为发电机的作用,其实际电压约在12.5 V~14 V之间,所以需要构造稳压降压电路,将蓄电池电压降压并稳定在+5 V。此处选用LTC3340稳压芯片搭建稳压降压电路,设计供电电路如图2所示。

    图2中,LTC3340从OBD接口4号、 16号引脚提取12 V电压,转换成稳定的TTL电平电压从Vout引脚输出供整个发射机使用。
2.2 CAN总线采集收发模块
    CAN总线采集收发模块的作用是发送查询请求到行车电脑,然后读取返回的CAN总线信息。
    不同型号汽车的OBD接口总线传输速率不一定相同,但传输速率一般限制为CAN2.0协议规定的1 MB/s,为了扩大发射机的应用范围,需要向下兼容所有低速率,所以选用支持1 MB/s传输速率的MCP2551高速CAN总线信号收发芯片作为本模块的主芯片。
    MCP2551作为CAN协议控制器和物理总线接口,分别从OBD的7号、15号引脚收发高速CAN信号和低速CAN信号[2],两组信号差分收发、锁存而后送PIC18F2480单片机解析。
    在实际工作中, 蓝牙无线信号电磁波频率高达2.45 GHz,易干扰MCP2551使其不能工作在正常状态,对电路稍加改造,在输入输出引脚都连接可调电容进行滤波抗干扰处理,如图3。微调电容使其达到最佳状态后,用4路跟踪示波器检测经过抗干扰处理后的差分收发后的CAN总线信号,时序图如图4所示。

    图4中上、下部两组信号分别为发送、接收模式下CAN总线的TXD和RXD信号。显而易见,发送和接收时序波形信息位相同,触发位不同,证明该模块完成了读取CAN信息并中断触发后送PIC18F2480的功能,具有较强的抗干扰能力。
2.3 CAN总线控制和OBD解析模块
     CAN总线控制和OBD解析模块由专用单片机实现,一般的单片机如单独进行CAN总线控制,则需要很高的主频和专门的程序,不适合选用,因此选用PIC18系列的F2480单片机。
    PIC18F2480内部自带CAN控制器和16 KB Flash储存,并提供专用CAN总线操作指令集,只需对其内部的CAN控制器进行简单的指令操作,就能实现CAN总线控制和OBD模块解析。
2.4 蓝牙发射模块
    蓝牙电路实现将解析后的OBD信号处理并无线发射到终端机的功能。
    方案选用BC417143B作为主芯片, 如图5解析模块输出的信号为TTL电平,将其直接连入BC417143B芯片的数据输入端口D+和D-,经芯片基带层编码和分组处理,传入无线层完成频率合成,最后传入RF射频模块予以发射[3]。虽然2.2节中的信息为差分收发,但BC417143B发射电路中带锁相环,所以发射可以在不同的时隙进行,提高了发射的效率。

    为提高发射效果,方案硬件实现时使用大增益全向天线,而不使用印刷版电路布线的隐藏天线。为了防止发射时出错中断,硬件实现时需连接RESET开关。
3 软件设计
3.1 CAN报文格式

    根据ISO 15765标准,CAN报文信息主要集中在数据帧中,数据分为显性和隐性,显性时表示有CAN信息出现[4]。数据按帧发送,每帧数据格式如图6所示。

3.2 OBD报文解析
    3.1节所述数据存放在CAN总线控制和OBD解析模块的核心器件PIC18F2480单片机的CAN控制器中,编程依次解析各域的值即可。软件流程图如图7所示。

    (1)初始化:设定MCP2551和PIC18F2480单片机的端口、工作模式、传输速率、数据格式等信息,关键代码如下:
        Init_PIC18F2480();
    //PIC18F2480接口初始化
     Init_MCP2515();           //MCP2515初始化
     TRISA=0B00000001;                                  //打开通道
     ADCON1=0B00001110;                        //定义输如引脚
     ADCON2=0B10100001;              //转换结果按格式对齐
     write_MCP2515(TXB0CTRL,0x03);
                                 //设置为发送最高优先级
     write_MCP25150(TXB0SIDL,0xEB);                  //扩展帧
     write_MCP2515(TXB0DLC,0x02);
                                                //发送数据长度为8字节
     write_MCP2515Write(TXB0DLC, 0x80);    //配置工作模式
    (2)发送查询请求:MCP2551提供专门的发送请求指令,关键指令如下:
     void   MCP2515ReqTx (TXB0SIDL,0xEB);
     当查询请求达到OBD接口送入行车电脑后,则会反馈当前CAN总线数据报文至OBD接口。
    (3)接收数据:MCP2551提供专门的接收请求指令,关键指令如下:
    BOOL CANGetMsg(int Channel, TXB0SIDL,
0xEB)
    OBD接口数据按帧发送,此时应该监视接收数据的缓冲区,当接收缓冲区的数据满时,代表接收数据完毕,即开始解析数据流程[5]。
    (4)解析数据:如3.1节所述,每帧数据分为多位,按位处理即可解析数据。关键代码如下:
    do
    {
    uint8  MCP2515RdStus  (void);                        //读状态
    void   MCP2515BitModify (TXB0DLC, 0x03); //按位读取
    }while(MCP2515ReadRXBuf  (TXB0DLC, 0x80));
                                   //当接收缓冲区满的时候开始解析
    解析过程中,每解析一位,数据关键寄存器减1,直至0,表示数据解析完毕。
    (5)出错处理:错误帧为显性,则出错,此时点亮出错报警LED并闪烁,提醒使用者按下复位按钮重新启动发射机。
4 工程实测

 


    以Android2.3.2版本设备摩托罗拉ME722作为测试终端,以长安福特CAF7180A48轿车作为实测车辆。开启终端蓝牙端口,将前述蓝牙发射机实物安装在OBD接口并开启,运行三方OBD信息提取显示软件Torque软件。
    在汽车怠速和行驶状态下,终端均通过蓝牙端口成功接收发射机传输的汽车时速、发动机转速等参数信息,在拔下响应传感器模拟故障的情况下,终端能够读取故障码。
    新型汽车OBD信息无线发射机设计方案真实有效,其通用性好、实用性强,特别是无线传输的模式,极大地扩展了可以接收OBD信息的终端类型。
    新型汽车OBD信息无线发射机可以直接用于小型载客汽车,也可以在对电源模块稍作改造后用于重型汽车或其他支持OBD协议的交通工具。
参考文献
[1] BOSCH Company. CAN Specification Version2.0[EB/OL]. http://www.bosch. Com. Germany.2011.
[2] 吕立亚, 王兆伍. 基于蓝牙的汽车CAN网络信号无线测量系统[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协议的Android平台汽车虚拟仪表设计[J].电子技术应用,2012,38(1):69-72.

此内容为AET网站原创,未经授权禁止转载。