汽车CAN总线数据记录仪开发
1、引言
本文引用地址:https://www.eepw.com.cn/article/196680.htm20世纪80年代以来,随着汽车电子技术的不断发展,汽车上的电子控制单元越来越多,例如电子燃油喷射装置、防抱死制动装置(ABS)、安全气囊装置、电控门窗装置和主动悬架等等。在这种情况下,如果仍采用传统点到点的并行布线方式,将导致车上电线数目急剧增加,布线越来越困难,电线质量占整车质量越来越多,复杂电路同时也降低了汽车的可靠性,增加了维修的难度。为适应汽车电子设备迅速增加的应用需要,控制器局域网络CAN应运而生。目前,在汽车设计领域中,CAN几乎成了一种必须采用的技术手段,尤其是在欧洲,如奔驰(BENZ)、宝马(BMW )等都采用CAN总线实现汽车内部控制系统与各检测和执行机构间的数据通信[1]。汽车CAN总线数据记录仪能实时采集汽车CAN总线数据信息,它的研制对于熟悉和掌握汽车CAN总线的通信协议和信息内容,对于汽车故障维修以及进行汽车网络技术方面的应用研究具有重要意义。
2、CAN总线介绍
CAN是控制器局域网络(Controller Area Network)的简称,它是由德国Bosch公司及几个半导体生产商开发出来的,CAN总线是一种串行多主站控制器局域网总线。它具有很高的网络安全性、通讯可靠性和实时性,而且简单实用,网络成本低。特别适用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。CAN总线可有效支持分布式控制或实时控制。该总线的通信介质可以是双绞线、同轴电缆或光纤[2-3]。其主要特点如下:
•CAN总线为多主站总线,各节点可在任意时刻向网络上的其他节点发送信息,且不分主从;
•CAN总线采用独特的非破坏性总线仲裁技术,高优先级节点优先传送数据,故实时性好;
•CAN总线具有点对点、一点对多点及全局广播传送数据的功能;
•CAN总线采用短帧结构,每帧有效字节数最多为8个,数据传输时间短,并有CRC及其它校验措施,数据出错率极低;
•CAN总线上某一节点出现严重错误时,可自动脱离总线,而总线上的其他操作不受影响;
•CAN总线系统扩充时,可直接将新节点挂在总线上,因而走线少,系统扩充容易,改型灵活;
•CAN总线的最大传输速率可达1Mb/s,直接通信距离最远可达到10km(速率在5kbps以下);
•CAN总线上的节点数取决于总线驱动电路。在标准帧(11位报文标识符)时可达到110个,而在扩展帧(29位报文标识符)时,个数不受限。
3、CAN总线数据记录仪硬件设计
CAN总线数据记录仪工作时应挂接到汽车CAN总线上成为一个CAN节点,以便采集CAN数据信息。其系统硬件结构采用图1所示电路结构。各核心模块介绍如下。
图1 CAN总线数据记录仪结构框图
(1)主控模块(MCU)
本系统主控模块采用ATMEL公司的单片机AT89C52。它是一种低功耗、高性能、内含8KB闪速存储器的8位CMOS微控制器,与工业标准MCS-51指令系统和引脚完全兼容。AT89系列的优越性在于其片内闪速存储器可进行1000次的编程与擦除,且数据不易丢失,数据可保存10年。
(2)数据存储电路
CAN总线数据传输速率较高,而单片机运算速度慢且任务繁重。为确保数据采集过程中数据不丢失,单片机外部扩展数据存储器。当CAN模块接收到汽车CAN总线上一帧数据引起单片机中断时,中断服务程序将接收到的数据存储到外部数据存储器后马上中断返回,对于数据的处理及显示等繁琐的工作在主程序中完成。这样,确保了CAN总线数据接收的完整性和实时性。
(3)人机接口模块
CAN总线数据记录仪采用OCMJ5×10B中文液晶显示模块显示信息和接收到的数据。该模块内含点阵国标一级简体汉字和ASCⅡ码,可实现文本显示。其用户硬件接口采用REQ/BUSY握手协议,简单可靠。BUSY高电平有效,表示OCMJ忙,不能接受命令;BUSY=0时,表示OCMJ空闲[4]。同时REQ=1时通知OCMJ处理当前数据线上的数据。本系统利用单片机P1.6和P1.7作为与液晶显示模块的REQ和BUSY联络口。
本系统主要有设置、增、减按键。利用单片机P1.0-P1.2实现按键输入。
(4)通信模块
CAN总线数据记录仪接收到的汽车CAN总线数据可在液晶显示器上实时显示,也可以利用串行通信接口传输到上位机进行显示或数据处理和数据分析。本系统利用电平转换芯片MAX232实现单片机与PC机的串行数据通信。
(5)CAN模块
本系统采用的CAN控制器是SJA1000。SJA1000是PHILIPS公司生产的既支持CAN 2.0B,又支持CAN 2.0A的CAN控制器。与SJA1000配套使用的CAN收发器是PCA82C250,它是PHILIPS推出的CAN控制器和物理总线接口芯片,可提供对总线的差分发送和接收。它与ISO 11898标准完全兼容,并有高速、斜率控制和待机3种不同的工作方式,可根据实际情况选择。CAN模块总线控制器、总线驱动器连接基本方法如图2所示。为增强CAN总线节点的抗干扰能力,SJA1000通过高速光耦6N137后与82C250相连,这样就很好的实现了本系统与汽车CAN总线的电气隔离[5]。电源的隔离采用小功率电源隔离模块。这些部分虽然增加了接口电路的复杂性,但是却提高了系统的稳定性和安全性。
82C250与CAN总线的接口部分也采用了一定的安全和抗干扰措施。82C250的CANH和CANL引脚各自通过一个5Ω的电阻与CAN总线相连,电阻可起到一定的限流作用,保护82C250免受过流的冲击。CANH和CANL与地之间并连的30pF电容,可以滤除总线上的高频干扰和提高防电磁辐射的能力;而防雷击管可消除输入端与地之间的瞬变干扰。82C250的RS脚上接有一个斜率电阻,电阻大小可根据总线速度适当调整,一般在16~140kΩ之间。
图2 CAN总线控制器、总线驱动器电路连接图
4、CAN总线数据记录仪软件设计
CAN总线数据记录仪软件设计要求简单、实用、高效、便于扩充。本系统程序主要由主模块、CAN总线控制器初始化模块、中断处理模块等组成。主模块主要完成单片机初始化、键值处理、数据显示等任务。其中,键值处理主要是根据键值修改CAN数据接收波特率;数据显示是将存储在外部数据存储器的CAN总线数据逐帧显示。
双绞线传输器相关文章:双绞线传输器原理
评论