基于ARM单片机和智能手机的CAN总线分析仪设计

图1蓝牙CAN分析仪总体设计框图

由于CAN分析仪是一种波特率较高的通信协议,且对通信质量分析和故障定位需要复杂的运算处理,所以本文提出的蓝牙CAN分析仪在整体设计中包含3个部分:一部分是以ARM为处理核心的处理主板,负责CAN总线波特率检测、数据采集以及蓝牙通信信号发射;第二部分是锂电池,负责给主板提供电源,锂电池电压为5V,容量为3000mAh,尺寸为11.6mmX42mm×69ram,可保证系统工作lOh以上;第三部分为智能手机,负责接收CAN总线数据以及对数据的处理。

1.2主板设计

主板上有4个模块,分别为隔离CAN接口模块、ARM处理器模块、蓝牙串口模块、电源电路模块。设计框图如图2所示,实物图如图3所示。

隔离CAN接口模块负责将ARM的数据发送到CAN总线上,并将CAN总线上的数据发送给ARM处理器。

基于ARM单片机和智能手机的CAN总线分析仪设计

图2主板系统设计框图

基于ARM单片机和智能手机的CAN总线分析仪设计

图3主板买物图

ARM处理器模块是本分析仪的核心,采用NXP公司的LPC2119处理器。LPC2119是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-STMCPU,带有128KB嵌入高速Flash存储器,并内部集成2个CAN控制器。其主要特点是:单个总线上的数据传输速率高达1MB/s;32位寄存器和RAM访问;兼容CAN2.0B,IS011898.1规范;全局验收滤波器可以识别所有的11位和29位标识符;验收滤波器为选择的标准标识符提供FullCAN-style自动接收。它主要负责将CAN总线上的数据进行处理,然后通过蓝牙串口发送到手机,此外,ARM模块还负责检测未知CAN总线上的波特率,并发送给手机端。

蓝牙串口模块负责ARM与手机交换数据,其串口的通信速率达到1382400bps。电源模块负责为各个模块供电。

2软件设计

软件是蓝牙CAN分析仪的关键。根据硬件系统结构,软件包括两个部分,即运行于ARM处理器的波特率检测以及数据传输软件;运行在智能手机上的CAN分析仪操作界面。对于运行在ARM处理中的软件,本文着重介绍一种新型的波特率自动检测方法。

2.1波特率自动检测软件设计

实现CAN总线和CAN分析仪之间的通信,需有相同的波特率,因而波特率的检测十分重要。当下主流的波特率检测方法是利用应答机制建立的波特率检测方法。其开始时通过试听一些推荐的CAN总线优选波特率,即1Mbit/s,800kbit/s,500kbit/s,250kbit/s,125kbit/s,(100kbit/s),50kbit/s,20kbit/s,10kbit/sHl:若能无故障地接受到完整的CAN消息,说明波特率检测成功;如果CAN总线的波特率不是优选波特率,则可以通过主机和CAN总线的应答来测定波特率。此种检测方法速度慢,存在一定误差且对被测网络有一定影响。