1.一种车载系统用蓝牙与CAN的数据转换装置,其特征在于:包括车载自动诊断系统OBD接口(1)、CAN收发器(2)、电源模块(3)、控制器(4)、串口蓝牙模块(5)及RS232电路(6);
所述车载自动诊断系统OBD接口(1)分别与CAN收发器(2)及电源模块(3)相连接,所述电源模块(3)分别与CAN收发器(2)、控制器(4)、串口蓝牙模块(5)及RS232电路(6)连接并供电;
所述CAN收发器(2)与控制器(4)相连接并通信,所述控制器(4)分别通过串口UART与串口蓝牙模块(5)及RS232电路(6)相连接;
其中所述车载自动诊断系统OBD接口(1)用于通过该接口访问汽车CAN网络;所述CAN收发器(2)用于通过车载自动诊断系统OBD接口(1)与汽车ECU进行通信;所述电源模块(3)用于将输入电压进行转换并给CAN收发器(2)、控制器(4)、串口蓝牙模块(5)及RS232电路(6)供电;所述控制器(4)用于接收蓝牙数据并转换成CAN数据发送给CAN收发器(2);所述蓝牙数据并转换成CAN的数据转换步骤包括:A1、系统初始化控制器(4),设置控制器(4)的波特率,设置CAN波特率的方法包括以下步骤:S11:判断是否修改波特率,该步骤具体为:该装置上电初始化后会进入等待状态,此时通过手机蓝牙连接到该装置,选择是否需要修改波特率;S12:根据终端命令选择波特率,该步骤具体为:当需要修改波特率时,通过手机终端发送命令的方式来选择合适的波特率;S13:使用默认波特率,该步骤具体为:如果不需要修改波特率,可以使用默认的波特率,此处设置为250kbps;S14:初始化CAN控制器;该步骤具体为:按照设置的波特率初始化CAN控制器,进入正常通信模式;在控制器(4)中设置FIFO数组,当用户通过手机终端给串口蓝牙模块(5)发送诊断服务请求时,跳转至步骤A2;当控制器(4)接收汽车电子控制单元ECU的响应报文时,跳转至步骤A4;A2、所述串口蓝牙模块(5)通过串口UART接收到的诊断服务请求为蓝牙数据,所述串口蓝牙模块(5)将蓝牙数据转发给控制器(4),所述控制器(4)判断接收到的蓝牙数据是否为起始帧,若是,则判断起始位是否为0XEE,若正确则开始蓝牙数据接收,否则丢弃该蓝牙数据重新接收;
A3、控制器(4)开始接收步骤A2中的蓝牙数据,并提取该蓝牙数据的ID和CAN数据,计算校验和,若校验和值与接收到的校验位值相等则表示接收正确,存入步骤A1中的FIFO数组中,若接收正确则返回0,否则返回1并通知手机终端再次发送该数据,结束;A4、控制器(4)提取步骤A1中接收的响应报文中的标识符和数据,并且将该标识符和数据根据起始位、标示符、数据、校验位及结束位的格式进行转换,存储入FIFO数组中;
所述串口蓝牙模块(5)用于蓝牙数据的接收和发送;所述RS232电路(6)用于进行调试和下载程序。
2.根据权利要求1所述的车载系统用蓝牙与CAN的数据转换装置,其特征在于:所述CAN收发器(2)采用SJA1050作为CAN的收发器,所述控制器(4)采用STM32F103C8T6作为控制器,集成CAN控制器和2路串口UART。
3.一种基于权利要求1所述装置的车载系统用蓝牙与CAN的数据转换方法,其特征在于,包括以下步骤:
301、系统初始化控制器(4),设置控制器(4)的波特率,在控制器(4)中设置FIFO数组,当用户通过手机终端给串口蓝牙模块(5)发送诊断服务请求时,跳转至步骤302;当控制器(4)接收汽车电子控制单元ECU的响应报文时,跳转至步骤304;
302、所述串口蓝牙模块(5)通过串口UART接收到的诊断服务请求为蓝牙数据,所述串口蓝牙模块(5)将蓝牙数据转发给控制器(4),所述控制器(4)判断接收到的蓝牙数据是否为起始帧,若是,则判断起始位是否为0XEE,若正确则开始蓝牙数据接收,否则丢弃该蓝牙数据重新接收;
303、控制器(4)开始接收步骤302中的蓝牙数据,并提取该蓝牙数据的ID和CAN数据,计算校验和,若校验和值与接收到的校验位值相等则表示接收正确,存入步骤301中的FIFO数组中,若接收正确则返回0,否则返回1并通知手机终端再次发送该数据,结束;
304、控制器(4)提取步骤301中接收的响应报文中的标识符和数据,并且将该标识符和数据根据起始位、标示符、数据、校验位及结束位的格式进行转换,存储入FIFO数组中。