ECU(AT89C51)+CAN控制器(SJA1000)+CAN收发器(PCA82C250)的电路结构以下是其核心芯片简介:
(1)CAN控制器
为了系统进一步扩展的需要,可选取支持CAN 2.0B通讯协议的芯片SJA1000。SJA1000是PHILIPS公司生产的既支持CAN 2.0B,又支持CAN 2.0A的CAN控制器,它与仅支持CAN 2.0A的CAN控制器PCA82C200在硬件和软件上完全兼容。
(2)CAN收发器
PCA82C250是PHILIPS推出的CAN控制器和物理总线接口芯片,可提供对总线的差分发送和接收。它与ISO 11898标准完全兼容,并有高速、斜率控制和待机3种不同的工作方式,可根据实际情况选择。
(3)单片机AT89C51
AT89C51是ATMEL公司的单片机。它是一种低功耗、高性能、内含4KB闪速存储器的8位CMOS微控制器,与工业标准MCS-51指令系统和引脚完全兼容。AT89系列的优越性在于其片内闪速存储器可进行1000次的编程与擦除,且数据不易丢失,数据可保存10年。
CAN总线控制器、总线驱动器和单片机连接基本方法如图2所示。

图2 CAN总线控制器、总线驱动器和单片机连接图
三、车身控制模块中的CAN应用层协议
1. 协议原则
本协议遵循CAN2.0B规范,根据车身控制模块的特点,采用源→目的方法,每个节点都有自己固定的标识地址,且节点数小于64,设计时可将中央控制模块设为主节点,而将车门、电动座椅子模块及自检子模块设置为从节点。本协议可完成以下功能:
(1)特定信息的广播;
(2)主从节点之间的连接;
(3)主从节点之间的信息交换(包括故障信息)。
本协议采用帧优先原则分配标识符,每一帧标识符中的高四位表示帧类型,不同帧类型有不同的优先权,优先权决定了各种信息帧在同等情况下的发送顺序,协议中的29位标识符的分配如下:
帧类型(4位)+目的地址(6位)+源地址(6位)+命令(或状态、报告)属性(13位)[或数据属性+分段标志+分段号(共13位)]。
对所有的命令或状态、数据、报告属性、除定时采集发送的数据外,原则上均需应答(发送确认帧以保证通讯正常)。
2. 帧格式仲裁场和控制场定义
仲裁场由29位标识符ID28-ID0以及SRR、IDE和RTR组成,SJA1000中的寄存器17-21用来存放扩展帧格式帧信息的标识符。发送时,SRR=1,IDE=1,RTR=1/0(远程帧/数据帧)。标识符中的ID28-ID25为车身控制模块交换报文的帧类型(共4位)。ID24-ID19为车身控制模块中帧信息使用者的地址(或称为目的地址,共6位)。ID18-ID13为车身控制模块中帧信息发送者的地址或称为源地址(共6位)。ID12-ID5为车身控制模块中交换的命令、状态、数据或报告属性(共8位),ID4位需附加命令或状态、数据、报告属性时的分段标志。ID3-ID0为附加命令或状态、数据、报告属性的分段号(共4位)。当ID4=0时,ID3-ID0控制场、数据寄存器0-7有效。对于远程帧,则可忽略ID4-ID0以及控制场的值。SJA1000的寄存器16低四位DLC3-DLC0可构成控制场,以决定数据帧的数据长度。