朱明工作室
zhubob@
授人以鱼不如授人以渔
主讲:朱明
高级技师、经济师、工程师
高级技能专业教师
汽车维修工高级考评员
第4章 CAN 控制器局域网
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
第4章 控制器局域网
第一节 概 述
第二节 CAN协议
第三节 CAN的基本组成和数据传输原理
第四节 CAN主要部件的结构原理
第五节 CAN设计基础
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
通信协议
通信协议——即所谓的交通规则和交通标
志的制定方
法。在CAN中决定哪种信
号具有优先读
取权,哪种信号需要传递
的速度快等。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔图6-1 奥迪轿车载网络拓扑图
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(1) CAN数据总线。
(2) LIN数据总线。
(3) MOST数据总线。
(4) BluetoothTM数据总线。
(5) 诊断总线。
为使条理清晰,本章以大众、奥迪车系为例进
行阐述,奥迪轿车车载网络拓扑如图6-1所示。
典型数据总线
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
第一节 概 述
由于使用的电子部件越来越多,各个控制单元之间的数据传
递就要求采用新的传送通道。因此20世纪90年代中期,在
奥迪车上引入了CAN数据总线这一重要概念。但是CAN数
据总线系统的缺点是,在信息传输方面的传输速率有限。
解决该问题的办法只能是采用能满足各种需要的传输系统,
本章详细阐述以下几种典型数据总线的原理、结构和工作
过程:
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
了解CAN-BUS
LAN (Local Area Network)是微
机网络中的一种类型,CAN只是LAN中的
高速网络协议之一。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
进入CAN-BUS
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
汽车控制局域网的分类
中 中 低 成本
40m 40m(典型) 40m 总线
最
大长
度
1Mb/s
(250kb/s)
10~1250kb/s 20kb/s 位速
率
双绞线 双绞线 单根线 介质
控制、诊断 控制、诊断 智能传感
器
用途
C类 B类 A类 类别
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
B类网络系统与C类网络系统
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
CAN-BUS 各级别(C)举例
电子器件及项目 位
启用
频率
(Hz
)
等
级
源于何种系统
信号类
型
传输速率
(bps)
碰撞传感器 16 200 C 汽车安全系统 传感型 12800
车速控制信号 16 200 C 巡航控制系统 监控型 12800
轮速传感器 16 200 C 汽车安全系统 传感型 12800
火花塞输出正时信号 16 200 C 动力控制模块 监控型 12800
防抱死制动ABS的泵速度
控制
16 200 C 汽车安全系统 监控型 12800
曲轴位置传感器 16 200 C 点火控制模块 传感型 12800
加速踏板位置信号传感器 16 200 C 牵引力控制系统 传感型 12800
液压转向助力
16 200 C
电控液压助力系
统
传感型 12800
ABS的泵速度控制 16 200 C 汽车安全系统 传感型 12800
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
CAN-BUS 各级别(B)举例
电子器件及项目 位
启用
频率
(Hz
)
等
级
源于何种系统
信号类
型
传输速率
(bps)
气缸识别传感器 16 50 B 动力控制模块 传感型 3200
点火诊断监测器 16 50 B 点火控制模块 监控型 3200
手动控制感位置 16 50 B 动力控制模块 传感型 3200
废气加热氧传感器 16 50 B 动力控制模块 传感型 3200
空气流量传感器 16 50 B 动力控制模块 传感型 3200
节气门位置传感器 16 50 B 动力控制模块 传感型 3200
发动机转速 16 50 B 动力控制模块 传感型 3200
蓄电池电压 16 10 B 点火控制模块 传感型 640
空调压缩机离合器 16 10 B 动力控制模块 传感型 640
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
CAN-BUS 各级别(A)举例
电子器件及项目 位
启用
频率
(Hz
)
等
级
源于何种系统
信号类
型
传输速率
(bps)
悬架状态 16 1 A 空气悬架 监控型 64
车外温度 16 1 A 空调控制系统 传感型 64
风扇速度控制 16 1 A 空调控制系统 监控型 64
设定/加速/复速 16 1 A 巡航控制系统 传感型 64
点火开关位置 16 1 A 仪表板显示系统 传感型 64
电动座椅 16 1 A 汽车安全系统 传感型 64
燃油油平面高度传感器 16 1 A 点火控制模块 传感型 64
辛烷值调节塞 16 1 A 动力控制模块 传感型 64
EGR真空调节器 16 1 A 动力控制模块 监控型 64
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
如此多的信息,CAN-BUS是如何解决的?
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
CAN-BUS局域网工作过程
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
CAN-BUS局域网的基本系统
控制单元A 控制单元B 控制单元C
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
信息如何交换
控制单元A 控制单元B 控制单元C
发动机转速
00010101
发动机转速
00010101
发动机转速
00010101
并
行
信
息
连
续
的
比
特
流
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
第一节 概 述
一、CAN总线的特性
二、CAN总线的位数值表示与通信距离
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
一、 CAN数据总线概述
CAN数据总线工作起来是非常可靠的,因此很少出现CAN故
障。
只有掌握了CAN数据总线的基本原理,才能充分运用测量方
法来查寻故障。
为了在必要时仔细检查CAN数据总线,VAS5051(大众、奥迪
原厂诊断仪是德国大众公司为其特约维修站指定的必备汽车诊断
仪器)会提供各种信息,比如“Motorsteuergeraet kein
Signal/Kommunikation”(发动机控制单元无信号/通信(偶然故障))或
“Datenbus-Antrieb defekt”(CAN驱动总线有故障)。故障源的其他
说明由“网关”测量数据块提供,CAN总线上所有控制单元的通
信状态都存储在这些数据块内。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
一、CAN总线的特性
1. CAN的特点
2. CAN数据传输系统的优点
3.传输线颜色特点
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1. CAN的特点
1)CAN支持从几千到1Mbit/s的传输速率。
2)使用廉价的物理传输媒介。
3)数据帧短,实时性好,降低了有效数据传输的速度。
4)错误检测校正能力强,系统可靠性高。
5)多站同时发送信息,模块可以优先获取数据。
6)能判断暂时错误和永久错误的节点,具有故障节点自动脱离
功能。
7)大部分CAN在丢失仲裁或出错时,具有信息自动重发功能。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2. CAN数据传输系统的优点
1)将传感器信号线减至最少,更多的传感器信号进行高速数据
传输。
2)组网自由,功能扩展能力强。
3)总线利用率高,数据传输距离长,可达10km;数据传输速率
高,可达1Mbit/s。
4)CAN总线符合国际标准,便于一辆车上不同生产厂家的电控
单元间进行数据交换。
5)电控单元实时监测。
6)电控单元和电控单元插接器端子最小化应用,节省电控单元
的有限空间。
7)节省大量有色金属,成本相对较低。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
3.传输线颜色特点
CAN总线基本颜色为橙色;
CAN-L(低位)均为棕色;
CAN-H(高位)中的驱动系统传输线为黑色,
舒适系统传输线为绿色,
信息系统传输线为紫色。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
二、CAN总线的位数值表示与通信距离
图3-1 总线位的数值表示
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
二、CAN总线的位数值表示与通信距离
表3-1 CAN总线任意两节点之间的最大传输距离
位速
率
/(K
bit/s
)
1000 500 250 125 100 50 20 10 5
最大
距离
/m
40 130 270 530 620 1300 3300 6700 1000
0
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
第二节 CAN协议
一、概述
二、CAN的分层结构
三、不同版本通信协议与互联
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
一、概述
CAN技术的应用推广,要求通信协议标准化。
1991年9月,Bosch公司制定并发布了CAN技术规
范(),
该技术规范包括A和B两部分。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-2 CAN协议与相关标准
名称 位速率/(Kbit/s) 规 格 使 用 范 围
SAE J1939—11 250 双线制,屏蔽式双绞
线
载货汽车,大型客车
SAE J1939—12 250 双线制,屏蔽式双绞
线,供给电压12V
农业机械
SAE J2284 500 双线制,双绞线(无
屏蔽)
汽车(高速:动力传
动系统)
SAE J2411 33.3,83.3 单线制 汽车(低速:车身系
统)
NMEA⁃2000 62.5,125,250,500,
1000
双线制,屏蔽式双绞
线,供给电源,供给电
压24V
船舶
Device Net 125,250,500 双线制,屏蔽式双绞
线,供给电源,供给电
压24V
工业设备
CANopen 10,20,50,125,250,
500,800,1000
双线制,双绞线,选
用(屏蔽,电源)
工业设备
SDS 50,125,500,1000 双线制,屏蔽式双绞
线选用(电源)
工业设备
一、概述
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-3 通信协议按速度分类
电通信
光通信
等级 通信速率
/(Kbit/s)
用 途 协 议
A 0~10(车
身系统)
照明装置、
电动车窗、电
动座椅、中央
门锁等
低速CAN
(0~125Kbit
/s),LIN
B 10~125
(状态信息系
统)
组合仪表、
驱动信息、自
动空调、故障
诊断
J1850,
VAN
C 125~
1000(实时控
制系统)
发动机、自
动变速器、
ABS、电子悬
架等
高速
CAN(125~
10000Kbit/
s)
D 50000(多
媒体)
— D2B光纤通
信,MOST,
IEEE 1394
一、概述
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
二、CAN的分层结构
1.数据链路层
2.物理层
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
二、CAN的分层结构
图3-2 数据链路层和物理层功能框图
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1.数据链路层
(1)逻辑链路控制(LLC)
(2)媒体访问控制
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1)功能。
① 接收滤波。
在LLC层上开始的帧跃变是独立的,其自身操作与先前的
帧跃变无关。
② 超载通知。
若接收器内部条件要求延迟下一个LLC数据帧或LLC远程
帧,则通过LLC子层开始发送超载帧。
2)LLC帧结构。
① LLC数据帧。
由3个位场,即标识符场、数据字长度码(DLC)场和数据
场组成,如图3-3所示。
② LLC远程帧。
由标识符场和DLC场组成,如图3-4所示。
(1)逻辑链路控制(LLC)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(1)逻辑链路控制(LLC)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(1)逻辑链路控制(LLC)
表3-4 由DLC表示的数据字节数编码
数据字节数 DLC
DLC3 DLC2 DLC1 DLC0
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1)功能模型
① 发送部分功能。
② 接收部分功能。
2)MAC帧结构
① 数据帧。
② MAC远程帧
③ 出错帧。
④ 超载帧。
⑤ 帧间空间。
(2)媒体访问控制
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1)功能模型
图3-5 媒体访问控制功能
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
① 发送部分功能。
发送数据封装:
接收LLC帧及接口控制信息,
循环冗余检验(CRC)通过向LLC帧附加帧起始(SOF)和远
程发送请求(RTR)、保留位、CRC、应答(ACK)和帧结束
(EOF)。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
② 接收部分功能。
接收媒体访问管理:由物理层接收串行位流;
解除串行结构并重新构建帧结构;检测填
充位(解除位填充);错误检测(CRC、格式
校验、填充规则校验);发送应答;构造错
误帧并开始发送;确认超载条件;重新激
活超载帧结构并开始发送。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
① 数据帧
图3-6 MAC数据帧
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
② MAC远程帧
图3-7 MAC远程帧
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
由两个不同场构成,
第一个由来自不同节点的错误标志叠加给出,
第二个为错误界定符。
错误标志:
分为活动错误标志和认可错误标志,前者由6位连续的“
显性”位组成,后者由6位连续的“隐性”位组成。认可
错误标志部分或所有位由来自其他节点的“显性”位改写。
③ 出错帧
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
存在两类具有相同格式的超载帧,即LLC要
求的超载帧和重激活超载帧,
前者为LLC层所要求,表明内部超载状态;
后者由MAC层的一些出错条件而启动发送。
④ 超载帧
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图3-8 帧间空间
a)非“错误-认可”或已收到先前帧节点的帧间空间
b)先前帧已发送“错误-认可”节点的帧间空间
⑤ 帧间空间
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
3)MAC帧编码和发送/接收
SOF、仲裁场、控制场、数据场和CRC序
列帧段均以位填充方法进行编码。当发送
器在发送位流中检测到5个数值相同的连续
位(包括填充位)时,在实际发送位流中,自
动插入一个补码位。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图3-9 位发送次序
4)媒体访问和仲裁
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
5)错误检测
① 错误类型
② 错误界定规则
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
① 错误类型
位错误:
正在向总线发送一位的节点同时在检测总线。当检测到的
位数值与送出的位数值不同时,则检验到位错误。
填充错误:
在使用位填充方法进行编码的帧场中,出现第六个连续相
同电平的位时,则检测到填充错误。
CRC错误:
CRC序列由发送器的CRC计算结果构成,接收器以发送器
相同的方法计算CRC。
形式错误:当固定格式位场含有一个或更多非法位时,则
检测到形式错误。但接收器在帧结束的最后位检测到显性
位时,不将其理解为形式错误。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
② 错误界定规则
“错误激活”节点:
可正常参与总线通信,并在检测到错误时,发出一个活动
错误标志。
“错误认可”节点:
不应发送活动错误标志,并参与总线通信,但在检测到错
误时,发送一个认可错误标志。认可错误标志由6个连续
的隐性位组成
“总线脱离”节点:
当一个节点由于请求故障界定实体而对总线处于关闭状态
时,其处于“总线脱离”状态。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图3-10 节点错误状态转换
② 错误界定规则
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2.物理层
(1)物理层结构
(2)位时间
(3)同步
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(1)物理层结构
图3-11 物理层结构
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(2)位时间
图3-12 正常位时间的组成
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(3)同步
1)在一个位时间内仅允许一种同步。
2)只有先前采样点检测到的数值(先前读总线数值)不
同于边沿后即现的总线数值时,边沿才被用于同步。
3)总线空闲期间,当存在隐性至显性的跳变沿时,
即完成硬同步。
4)所有满足规则1)和2)的其他隐性至显性的跳变沿
和在低位速率情况下,选择的显性至隐性跳变沿将被
用于重同步;若只有隐性至显性沿被用于重同步,由
于具有正相位的隐性至显性跳变沿,发送器将不完成
重同步。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
三、不同版本通信协议与互联
1. B类通信协议与C类通信协议互联
2.通用工作负荷特性
3.低速车身控制系统实施高速的CAN协议
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图3-13 网关处理内容
1. B类通信协议与C类通信协议互联
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图3-14 轿车CAN与SAE J1850网络互联
1. B类通信协议与C类通信协议互联
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2.通用工作负荷特性
为了合理分配通信速率,提高效率和降低成本,Bosch公
司开发了供不同等级通信选用的通用工作负荷特性表(见表
3-5),共有90项内容,可供CAN总线汽车使用或维修时参
考。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
3.低速车身控制系统实施高速的CAN协议
(1)低速车身控制系统的含义
(2)串行链路输入/输出控制器局域网
(3)SLIO的物理寻址方法
(4)SLIOCAN的信息发送方式
(5)SLIOCAN总线与CAN总线对比
(6)SLIOCAN车身控制系统的布局
(7)SLIOCAN网络发生故障时的“对抗措施”
(8)SLIOCAN车身控制系统的“即插即用”特性
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(1)低速车身控制系统的含义
低速(小于125Kbit/s)车身控制系统主要指汽
车灯光、刮水器、电动车窗、后视镜、中央门
锁、空调以及其他低速数据的通信系统。低优
先级和低通信量的低速车身控制信息,若采用
高速数据总线结构,会使生产成本和维修费用
提高。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(2)串行链路输入/输出控制器局域网
SLIOCAN是用于完成简单输入/输出功能的低智能
CAN芯片,其最简单的结构可以看做带有内部CAN
控制器的I/O端口,具有CAN协议规定的全部特征
和能力,并符合CAN 和CAN (无源)规格,
具有11位CAN标识符和29位忽略标识符,不会使总
线出错。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(3)SLIO的物理寻址方法
图3-15 同一总线包括有其他CAN节点的SLIO
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(4)SLIOCAN的信息发送方式
为了使SLIO的内部振荡器同步以供总线定时,
主控制器须每隔3800位时间发送1条标定帧,
只需标定SLIO节点,就能发送1条CAN信息。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(5)SLIOCAN总线与CAN总线对比
表3-7 SLIOCAN和CAN两个外主节点之间的最大容许距离
位速率/(Kbit/s) 总线长度/m
P82C150(SLIOCAN) P8XC592、
PCA82C200(CAN)
125 80 530
100 120 620
50 300 1300
20 850 3300
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(6)SLIOCAN车身控制系统的布局
图3-16 采用SLIOCAN的车身控制系统
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(7)SLIOCAN网络发生故障时的“对抗措施”
针对总线故障,SLIOCAN与智能的CAN节点相同,即
一旦CAN总线出现故障,各自独立的节点不能再与其
主机或其他节点通信,此时系统按照预定义参数进入
低效运行方式或缓复位。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(8)SLIOCAN车身控制系统的“即插即用”特性
图3-17 SLIOCAN车身控制系统
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(8)SLIOCAN车身控制系统的“即插即用”特性
图3-18 改进后的车身控制系统
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
4.大型汽车中应用最广泛的应用层协议SAE
SAE J1939由美国SAE组织维护和推广,其特点如下:
1)以CAN 协议为基础,物理层标准与ISO 11898规范
兼容,并采用符合该规范的CAN控制器和收发器。通信速率最
高可达250Kbit/s。
2)采用协议数据单元(PDU)传送信息,每个PDU相当于CAN
协议中的一帧。
3)利用CAN 扩展帧格式的29位标志符定义每一个PDU
的含义以及PDU的优先级。
4)J1939协议主要作为汽车中应用的通信协议,对汽车中应
用到的各类参数都进行了规定,参数的规定符合ISO 11992标
准。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
第三节 CAN的基本组成和数据传输原理
一、CAN的基本组成
二、数据传输原理
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
一、CAN的基本组成
1.电控单元
2. CAN控制器
3. CAN收发器
4.数据传递终端
5. CAN总线
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
通信协议
通信协议——即所谓的交通规则和交通标志的制定方
法。在CAN中决定哪种信号具有优先读
取权,哪种信号需要传递的速度快等。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
进入CAN-BUS
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
了解CAN-BUS
LAN (Local Area Network)是微
机网络中的一种类型,CAN只是LAN中的
高速网络协议之一。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
汽车控制局域网的分类
中 中 低 成本
40m 40m(典型) 40m 总线
最
大长
度
1Mb/s
(250kb/s)
10~1250kb/s 20kb/s 位速
率
双绞线 双绞线 单根线 介质
控制、诊断 控制、诊断 智能传感
器
用途
C类 B类 A类 类别
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
B类网络系统与C类网络系统
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
CAN-BUS 各级别(C)举例
电子器件及项目 位
启用
频率
(Hz
)
等
级
源于何种系统
信号类
型
传输速率
(bps)
碰撞传感器 16 200 C 汽车安全系统 传感型 12800
车速控制信号 16 200 C 巡航控制系统 监控型 12800
轮速传感器 16 200 C 汽车安全系统 传感型 12800
火花塞输出正时信号 16 200 C 动力控制模块 监控型 12800
防抱死制动ABS的泵速度
控制
16 200 C 汽车安全系统 监控型 12800
曲轴位置传感器 16 200 C 点火控制模块 传感型 12800
加速踏板位置信号传感器 16 200 C 牵引力控制系统 传感型 12800
液压转向助力
16 200 C
电控液压助力系
统
传感型 12800
ABS的泵速度控制 16 200 C 汽车安全系统 传感型 12800
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
CAN-BUS 各级别(B)举例
电子器件及项目 位
启用
频率
(Hz
)
等
级
源于何种系统
信号类
型
传输速率
(bps)
气缸识别传感器 16 50 B 动力控制模块 传感型 3200
点火诊断监测器 16 50 B 点火控制模块 监控型 3200
手动控制感位置 16 50 B 动力控制模块 传感型 3200
废气加热氧传感器 16 50 B 动力控制模块 传感型 3200
空气流量传感器 16 50 B 动力控制模块 传感型 3200
节气门位置传感器 16 50 B 动力控制模块 传感型 3200
发动机转速 16 50 B 动力控制模块 传感型 3200
蓄电池电压 16 10 B 点火控制模块 传感型 640
空调压缩机离合器 16 10 B 动力控制模块 传感型 640
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
CAN-BUS 各级别(A)举例
电子器件及项目 位
启用
频率
(Hz
)
等
级
源于何种系统
信号类
型
传输速率
(bps)
悬架状态 16 1 A 空气悬架 监控型 64
车外温度 16 1 A 空调控制系统 传感型 64
风扇速度控制 16 1 A 空调控制系统 监控型 64
设定/加速/复速 16 1 A 巡航控制系统 传感型 64
点火开关位置 16 1 A 仪表板显示系统 传感型 64
电动座椅 16 1 A 汽车安全系统 传感型 64
燃油油平面高度传感器 16 1 A 点火控制模块 传感型 64
辛烷值调节塞 16 1 A 动力控制模块 传感型 64
EGR真空调节器 16 1 A 动力控制模块 监控型 64
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
如此多的信息,CAN-BUS是如
何解决的?
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
第二章 CAN-BUS局域网工作
过程
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
第一节 CAN-BUS局域网的基
本系统
控制单元A 控制单元B 控制单元C
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
信息如何交换
控制单元A 控制单元B 控制单元C
发动机转速
00010101
发动机转速
00010101
发动机转速
00010101
并
行
信
息
连
续
的
比
特
流
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
一、CAN的基本组成
图3-19 CAN的基本组成
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
一、CAN的基本组成
图3-20 CAN接线
80C51—单片机 SJA1000—CAN控制器 PCA2C250—CAN收发器
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
CAN-BUS局域网元件的功能
微处理器
带有时间换算
的CAN区
故障记录
CAN-BUS
收发器
接收区
接收邮箱
CAN构件
1.电控单元
K线/诊断线
发送区
发送邮箱
输
入
储
存
输
出
储
存
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1.电控单元
图3-21 CAN网络框架
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1.电控单元
控制单元接收来自传感器的信号,
将其处理后再发送到执行元件上。控制单
元接收到的传感器值会被定期查询并按顺
序存入输入存储器。处理后的结果存入输
出存储器,然后传递给各个执行元件。为
了能够处理CAN信息,各控制单元内还有
一个CAN存储区,用于容纳接收到和要发
送的信息。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1.电控单元
图3-22 带有CAN收发功能的电控单元内部结构
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
CAN构件
CAN构件用于数据交换,
它分为两个区,一个接收区,一个发送区。
该构件一般集成在控制单元的微控制器芯片
内。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2. CAN控制器
CAN控制器由一块可编程芯片上的逻辑电路组成,实现通信
模型中物理层和数据链路层的功能,并对外提供与电控单元
的物理接口。
通过对CAN控制器编程,可设置其工作方式,控制其工作状
态,进行数据发送和接收,以它为基础建立应用层。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
3. CAN收发器
收发器就是一个发送-接收放大器,它把CAN
构件连续的比特流(逻辑电平)转换成电压值(线路传输电
平),或反之。
收发器通过TX-线(发送导线)或RX-线(接收导线)
与CAN构件相连。
RX-线通过一个放大器直接与CAN总线相连,总
在监听总线信号。
TX线与总线通过一个断路式集流器电路来进行耦
合。(见下图)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
3. CAN收发器
图3-23 与TX线耦合的收发器
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
3. CAN收发器
表3-8 收发器的特点
状态 晶 体 管 是否有源 电阻状态 总线电平
1 截止状态(开
关未接合)
无源 高 1
0 接通状态(开
关接合)
有源 低 0
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
收发器工作情况
RX TX
+5V
总线导线
状态 晶体管 电阻状
态
总线电
平
1 截止状态(开关未结合) 无源 高 1
0 导通(开关结合) 有源 低 0
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
三个收发器接到一根总线导线上
+5V +5V +5V
总线导线(0V)
收发器A 收发器B 收发器C
收发器A 收发器B 收发器C 总线导线
1 1 1 1(5V)
1 1 0 0(0V)
1 0 1 0(0V)
1 0 0 0(0V)
0 1 1 0(0V)
0 1 0 0(0V)
0 0 1 0(0V)
0 0 0 0(0V)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
4.数据传递终端
(1)分离终端
(2)多终端
(3)单终端
(4)非匹配终端
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(1)分离终端
图3-25 分离终端连接方式
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(2)多终端
图3-26 多终端连接方式
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(3)单终端
在某些情况下,仅仅只有一个终端电阻(124Ω或62Ω)位于
主节点中。
从CAN位定时要求方面考虑,系统配置应确保安全。
采用单终端接法的网络总线长度将小于正常终端接法总线
长度的50%。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(4)非匹配终端
该接法使终端电阻与线路的特性阻抗不匹配,以减少对线路
双绞的要求,在同等配置下可增加驱动能力或降低功耗。
其终端电阻阻值高于电缆的特性阻抗值,要求系统配置能确
保安全。
与采用标准终端接法相比,当终端电阻增大时,相应的总线
延时会急剧增加,位速率急剧降低。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
5. CAN总线
图3-27 CAN数据传输线
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
二、数据传输原理
1.信息格式转换与请求发送信息
2.发送开始(总线空闲判断)
3.发送信息
4.接收过程
5.位仲裁
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图3-28 CAN数据格式
1.信息格式转换与请求发送信息
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
二、数据传输原理
1.信息传递格式:
标识:(标识符11位
)用于识别信息
信息内容:数字区最大8位
包含信息的内容
16位CRC校验
数据安全的校验和数
确认(2位数据收到信号)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2.传递过程
发
送
开
始
发送
信息
查询总线
是否空闲
检查信息
是否正确
检查信息
是否可用
CRC
校验
需要
该信
息
接
收
信
息
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
发动机
控制单元
输
入
储
存
输
出
储
存
ABS
控制单元
输
入
储
存
输
出
储
存
组合仪表
控制单元
输
入
储
存
RX TX RX TX RX TX
发动机转速 发动机转速
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2.发送开始(总线空闲判断)
图3-29 总线空闲判断
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
3.发送信息
图3-30 发送信息
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
4.接收过程
图3-31 信息接收
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
4.接收过程
1)第一步:检查信息是否正确(监控层)。
2)第二步:检查信息是否可用(接收层)。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1)第一步:检查信息是否正确(监控层)。
图3-32 确认位(应答场)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1)第一步:检查信息是否正确(监控层)。
图3-33 监控层工作原理(所有电控单元)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2)第二步:检查信息是否可用(接收层)。
图3-34 接收层工作原理
(组合仪表电控单元)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
5.位仲裁
(1)位仲裁的特点
(2)位仲裁实施过程
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
如何避免数据冲突
如果多个控制单元同时发送信息,那么数据总
线上就必然会发生数据冲突,为了避免这种状况,CAN-
BUS采取仲裁方法来处理这类 冲突。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(1)位仲裁的特点
对数据进行实时处理时,必须快速传送数据,因此,要求数据
的物理传输通路有较高的速度。
在几个站同时需要发送数据时,要求快速地进行总线分配。
CAN总线以报文为单位进行数据传送,报文的优先级结合在11
位标识符中,最低二进制数的标识符具有最高的优先级。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
标
识
符
仲
裁
过
程
TX
位数:1 2 3 4 5 6 7 8
信息:1 0 1 0 1 0 1 0
RX
发动机
控制单元
TX
RX
ABS
控制单元
信息:1 0 1 0 1 0 1 1
TX
RX
组合仪表
控制单元
信息:1 0 1 1 1 1 1 1
数据总线
信息:1 0 1 0 1 0 1 0
有分配功能并保持
在发送模式
无分配功能并进入
接收模式
无分配功能并进入
接收模式
标识符中的号码越小,表示该信息越重要。这种方法称之为仲裁。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
信息仲裁过程
标识符 二进制 十六进制
发动机_1 010 1000 0000 280
制动 010 1010 0000 1A0
仪表 011 0010 0000 320
转向角传感器_1 000 1100 0000 0C2
自动变速器_1 100 0100 0000 440
数字最小的(前面的“0”最多),优先级越高。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
第四节 CAN主要部件的结构原理
一、CAN控制器
二、CAN收发器
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
一、CAN控制器
1. CAN独立控制器SJA1000
2. CAN集成电控单元P8xC591
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1. CAN独立控制器SJA1000
(1)SJA1000的特点
(2)SJA1000的结构
(3)SJA1000的工作模式
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(1)SJA1000的特点
1)与PCA82C200独立的CAN控制器端子兼容、电气兼容,
具有PCA82C200模式,即默认的BasicCAN模式。
2)扩展的接收缓冲器为64B,先进先出(FIFO)。
3)与CAN 协议兼容(PCA82C200兼容模式中的无源扩
展结构),同时支持11位和29位识别码
4)位速率可达1Mbit/s。
5)24MHz时钟频率。
6)对应不同电控单元的接口。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
7)可编程的CAN收发器配置。
8)温度适应范围扩大(-40~+125℃)。
9)PeliCAN模式扩展功能包括:可读写访问的错误计数器,
可编程的错误报警限制寄存器,最近一次错误代码寄存器,
对每一个CAN总线错误的中断,具体控制位控制的仲裁丢
失中断,单次发送无重发,只听模式(无确认、无活动的
出错标志),支持热插拔(软件位速率检测),接收过滤器
扩展(4B代码、4B屏蔽)和自身报文接收(自接收请求)。
(1)SJA1000的特点
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(2)SJA1000的结构
图3-36 SJA1000结构框图
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(2)SJA1000的结构
图3-37 SJA1000插接器端子布置
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(2)SJA1000的结构
图3-38 SJA1000在CAN中的布置
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(3)SJA1000的工作模式
1)BasicCAN模式
2)PeliCAN模式
3)命令寄存器
4)主要电气参数
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1)BasicCAN模式
① BasicCAN地址分配。SJA1000的地址区包括控制段和报文缓
冲区。控制段的初始化载入是通过被编程配置通信参数(如,位
时序),单片机通过控制段控制CAN总线通信。初始化时,
CLKOUT信号被单片机编程指定一个值。
② 寄存器复位模式配置。检测到有复位请求后,将终止当前接
收/发送的报文而进入复位模式。当向复位位传送了“1-0”的下
降沿,CAN控制器将返回工作模式。寄存器复位值见表3-13。
③ 控制寄存器(CR)。控制寄存器的内容用于改变CAN控制器的
行为,这些位被单片机设置或复制,并对控制寄存器进行读/写
操作。控制寄存器各位的功能说明见表3-14。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
④ 命令寄存器(CMR)。命令位初始化SJA1000传输层上
的动作。命令寄存器只写存储器,若读该地址,返回值为
1111 1111。两条命令之间至少有一个内部时钟周期,
内部时钟的频率是外部振荡频率的1/2。命令寄存器各位
的功能说明见表3-15。
⑤ 状态寄存器(SR)。状态寄存器的内容反映SJA1000的
状态,为只读存储器。状态寄存器各位的功能说明见表3-
16。
⑥ 中断寄存器(IR)。中断寄存器允许中断源识别,为只
读存储器。
⑦ 发送缓冲区列表。发送缓冲区列表见表3-18。缓冲器
用于存储单片机要SJA1000发送的信息,分为描述符区
和数据区。
1)BasicCAN模式
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
⑧ 接收缓冲器。接收缓冲器是RXFIFO中可访问
的部分,位于CAN地址的20~29之间,其全部
列表与发送缓冲器类似。RXFIFO共有64B的信
息空间(接收缓冲器当前的可用信息是信息1),如
图3-39所示。
⑨ 验收滤波器。在验收滤波器的帮助下,CAN控
制器允许RXFIFO只接收与识别码和验收滤波器
中预设值一致的信息。验收滤波器通过验收代码
寄存器和验收屏蔽寄存器定义。
1)BasicCAN模式
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图3-39 RXFIFO中的报文存储
1)BasicCAN模式
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-19 ACR的位分配(CAN地址4)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
AC.7 AC.6 AC.5 AC.4 AC.3 AC.2 AC.1 AC.0
1)BasicCAN模式
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2)PeliCAN模式
① PeliCAN地址列表
② 模式寄存器(MOD)
③ 命令寄存器(CMR)
④ 状态寄存器
⑤ 中断寄存器
⑥ 中断使能寄存器(IER)
⑦ 仲裁丢失捕捉寄存器(ALC)
⑧ 错误代码捕捉寄存器(ECC)
⑨ 错误报警限制寄存器(EMLR)
⑩ RX出错计数寄存器(RXERR)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(11)TX出错计数寄存器(TXERR)
(12)发送缓冲器的描述符区
(13)接收缓冲器
(14)验收滤波器
(15)RX信息计数器(RMC)
(16)RX缓冲器起始地址寄存器(RBSA)
2)PeliCAN模式
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
① PeliCAN地址列表
CAN控制寄存器的内部寄存器以外部寄存
器的形式存在,而作为片内内存使用。由
于CAN控制器可工作在不同模式(工作/复
位),因此必须区分不同的内部地址定义。
从CAN地址32开始所有的内部RAM80B被
映像为CPU的接口。PeliCAN的地址分配
见表3-21。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
② 模式寄存器(MOD)
模式寄存器用于改变CAN控制器的行为方
式,CPU将控制寄存器作为读/写寄存器,
可设置这些位,保留位读值为逻辑0。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-23 模式寄存器的复位值
位 符 号 MOD.7 SM AFM STM LOM RM
硬件复位 值 0(保留) 0(唤醒) 0(双向) 0(正常) 0(正常) 1(当前)
软件置
MOD.
0=1
或总线关
闭
0(保留) 0(唤醒) × × ×
② 模式寄存器(MOD)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
③ 命令寄存器(CMR)
表3-24 命令寄存器各位的功能说明(地址1)
位 符号 名 称 值 功 能
~
保留
SRR 自接收请 1 当前:信息
可以被同时发
送和接收
0 空缺
CDO 清除数据
溢
1 清除:数据
溢出状态位被
清除
0 无动作
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-24 命令寄存器各位的功能说明(地址1)
位 符号 名 称 值 功 能
RR 释放接收缓
冲
1 释放:接收
缓冲器
(RXFIFO)中
当前呈现的报
文的储存空间
0 无动作
AT 终止发 1 当前:如果
不是正在处理,
将取消等待中
的发送请求
0 空缺
TR 发送请 1 当前:报文
被发送
0 空缺:无动
作
③ 命令寄存器(CMR)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-25 命令寄存器的复位值
位符号 MOD
.7~5
SRR CDO RRB AT TR
硬件复
位
值 0(保
留)
0(空
缺)
0(无
动作)
0(无
动作)
0(空
缺)
0(空
缺)
软件置
MOD
.0=1
或总线
关闭
0(保
留)
0(空
缺)
0(无
动作)
0(无
动作)
0(空
缺)
③ 命令寄存器(CMR)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-27 状态寄存器的复位值与含义
位 符 号 BS ES TS RS TCS TBS DOS RBS
硬件
复位
值 0(总
线
开启)
0(OK
)
1(等
待
空闲)
0(等
待
空闲)
1(完
成)
1(释
放)
0(空
缺)
0(空)
软件
置
MOD
.
0=1
或总
线关
闭
× × 1(等
待
空闲)
0(等
待
空闲)
× 1(释
放)
0(空
缺)
④ 状态寄存器
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
⑤ 中断寄存器
中断寄存器用于识别中断源,为只读存储
器。当寄存器的一位或多位被置1时,将
CAN中断通知CPU,CPU将除接收中断位
外的所有位复位。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
⑥ 中断使能寄存器(IER)
中断使能寄存器使不同类型的中断源对CPU
有效,为可读/写存储器。中断使能寄存器各
位的功能见表3-29。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
⑦ 仲裁丢失捕捉寄存器(ALC)
图3-40 仲裁丢失位说明
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-30 仲裁丢失捕捉寄存器各位的功能说明(CAN地址11)
位 符号 名称 值 与 功 能
ALC.5~ALC.
7
保留 ALC.0~ALC.4,这5位的编
码数值对应仲裁丢失的位置,如
00010对应仲裁丢失在标识码的
BIT3;01010对应仲裁丢失在标识
码的BIT11
ALC.4 BITN04 第4位
ALC.3 BITN03 第3位
ALC.2 BITN02 第2位
ALC.1 BITN01 第1位
ALC.0 BITN00 第0位
⑦ 仲裁丢失捕捉寄存器(ALC)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
⑧ 错误代码捕捉寄存器(ECC)
表3-31 错误代码捕捉寄存器各位的功能说明(CAN地址12)
位 符号 名称 值 功 能
ECC.7 ERRC1 错误代码1 — —
ECC.6 ERRC0 错误代码0 — —
ECC.5 DIR 方向 1 RX:接收
时发生的错误
0 TX:发送
时发生的错误
ECC.4 SEG.4 段4 位ECC.0
~ECC.4组
合编码具有不
同的功能,见
表3⁃32
位~
组合
编码具有不
同的功能,
见表3-32
ECC.3 SEG.3 段3
ECC.2 SEG.2 段2
ECC.1 SEG.1 段1
ECC.0 SEG.0 段0
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
⑨ 错误报警限制寄存器(EMLR)
表3-33 错误报警限制寄存器各位的功能说明(CAN地址13)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
EML
R.7
EML
R.6
EML
R.5
EML
R.4
EML
R.3
EML
R.2
EML
R.1
EML
R.0
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
⑩ RX出错计数寄存器(RXERR)
表3-34 RXERR各位的功能说明(CAN地址14)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
RXER
R.7
RXER
R.6
RXER
R.5
RXER
R.4
RXER
R.3
RXER
R.2
RXER
R.1
RXER
R.0
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(11)TX出错计数寄存器(TXERR)
表3-35 TXERR各位的功能说明(CAN地址15)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
TXE
RR.
7
TXE
RR.
7
TXE
RR.
7
TXE
RR.
7
TXE
RR.
7
TXE
RR.
7
TXE
RR.
7
TXE
RR.
7
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(12)发送缓冲器的描述符区
图3-41 标准帧和扩展帧格式配置在发送缓冲器中的列表
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-36 TX帧信息(SFF)(CAN地址16)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
F RT DLC. DLC. DLC. DLC.
(12)发送缓冲器的描述符区
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-37 TX识别码1(SFF)(CAN地址17)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
ID.28 ID.27 ID.26 ID.25 ID.24 ID.23 ID.22 ID.21
(12)发送缓冲器的描述符区
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-38 TX识别码2(SFF)(CAN地址18)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
ID.20 ID.19 ID.18
(12)发送缓冲器的描述符区
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-39 TX帧信息(EFF)(CAN地址16)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
F RT DLC. DLC. DLC. DLC.
(12)发送缓冲器的描述符区
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-40 TX识别码1(EFF)(CAN地址17)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
ID.28 ID.27 ID.26 ID.25 ID.24 ID.23 ID.22 ID.21
(12)发送缓冲器的描述符区
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-41 TX识别码2(EFF)(CAN地址18)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
ID.20 ID.19 ID.18 ID.17 ID.16 ID.15 ID.14 ID.13
(12)发送缓冲器的描述符区
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-42 TX识别码3(EFF)(CAN地址19)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
ID.12 ID.11 ID.10 ID.9 ID.8 ID.7 ID.6 ID.5
(12)发送缓冲器的描述符区
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-43 TX识别码4(EFF)(CAN地址20)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
ID.4 ID.3 ID.2 ID.1 ID.0
(12)发送缓冲器的描述符区
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(13)接收缓冲器
图3-42 RXFIFO中的信息存储
注:接收缓冲器中当前的可用信息是信息1。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(14)验收滤波器
图3-43 接收标准帧报文时的单个滤波器配置
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图3-44 接收扩展帧报文时的单个滤波器配置
(14)验收滤波器
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(15)RX信息计数器(RMC)
图3-45 接收标准帧报文的双滤波器配置
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(16)RX缓冲器起始地址寄存器(RBSA)
图3-46 接收扩展帧报文的双滤波器配置
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
3)命令寄存器
① 总线定时寄存器0(BTR0)
② 总线定时寄存器1(BTR1)
③ SJA1000的BRP计算
④ 输出控制寄存器(OCR)
⑤ 时钟分频寄存器(CDR)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
① 总线定时寄存器0(BTR0)
表3-55 BTR0各位的功能说明(CAN地址6)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
SJW.1 SJW.0 BRP.5 BRP.4 BRP.3 BRP.2 BRP.1 BRP.0
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-56 BTR1各位的功能说明(CAN地址7)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
SAM TSEG2
.2
TSEG2
.1
TSEG2
.0
TSEG1
.3
TSEG1
.2
TSEG1
.1
TSEG1
.0
② 总线定时寄存器1(BTR1)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-57 采样位的功能说明
位 值 功 能
SAM 1 3倍:总线采样3次;
使用低/中速总线(A类
和B类),有利于过滤
总线上的毛刺波
0 单倍:总线采样一次;
用于高速总线(C类)
② 总线定时寄存器1(BTR1)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图3-47 一个位周期的整体结构
② 总线定时寄存器1(BTR1)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
③ SJA1000的BRP计算
1个系统时钟
1个位周期
则
设置BTR0和BTR1参数后,实际传输的波
特率范围
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-58 OCR各位的功能说明(CAN地址8)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
OCTP1 OCTN1 OCPOL
1
OCTP0 OCTN0 OCPOL
0
OCMO
DE1
OCMO
DE0
④ 输出控制寄存器
(OCR)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图3-48 收发器的输入/输出控制逻辑
④ 输出控制寄存器
(OCR)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-59 OCMODE位的说明
OCMODE1 OCMODE0 说 明
0 0 双向输出模式
0 1 测试输出模
1 0 正常输出模式
1 1 时钟输出模式
④ 输出控制寄存器
(OCR)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图3-49 时钟输出模式
图3-50 双相输出时序配置(输出控制寄存器为F8H)
④ 输出控制寄存器
(OCR)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
表3-60 输出端子配置
驱动 TXD OCTPX OCTNX OCPOL
K
TP TN TX
悬空 0 0 关 关 悬空
上拉 0 0 1 0 关 开 低
1 0 1 0 关 关 悬空
0 0 1 1 关 关 悬空
1 0 1 1 关 开 低
下拉 0 1 0 0 关 关 悬空
1 1 0 0 开 关 高
0 1 0 1 开 关 高
1 1 0 1 关 关 悬空
上拉 0 1 1 0 关 开 低
1 1 1 0 开 关 高
0 1 1 1 开 关 高
1 1 1 1 关 开 低
④ 输出控制寄存器
(OCR)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
⑤ 时钟分频寄存器(CDR)
表3-61 CDR各位的功能说明(CAN地址31)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
CAN模
式
CBP RXINT
EN
关闭时
钟
CD.2 CD.1 CD.0
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
⑤ 时钟分频寄存器(CDR)
表3-62 频率选择
CD.2 CD.1 CD.0 时 钟 频 率
0 0 0 /2
0 0 1 /4
0 1 0 /6
0 1 1 /8
1 0 0 /10
1 0 1 /12
1 1 0 /14
1 1 1
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2.括号中是功能说明。
表3-63 SJA1000的主要电气参数
参 数 条件 最小值 最大值
电源电压()/V 4.5 5.5
除TX0和TX1之
外所有端子的输入
/输出电流
(/)/mA
— ±4
TX0和TX1共消
耗电流
((Sink))/mA
— 30
TX0和TX1源电
流之和
((Souce))/mA
— -20
操作环境温度
()/℃
-40 125
储存温度()/℃ -65 150
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
4)主要电气参数
SJA1000的主要电气参数见表3-63。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2. CAN集成电控单元P8xC591
(1)硬件构成及其功能
(2)存储系统
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(1)硬件构成及其功能
图3-51 P8xC591功能框图
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(2)存储系统
1)程序存储器
2)数据存储器
3)I/O结构
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1)程序存储器
P8xC591包含16KB内部程序存储器,可
使用外部存储器扩展到64KB。当EA为高
电平时,P8xC591从内部ROM读取地址,
除非地址超过3FFFH。地址4000H~
FFFFH取自外部程序存储器。EA在复位时
锁存,复位之后不用考虑。对于ROM和
EPROM的P8xC591,器件执行防范措施,
以确保不会被非法的程序存储器读取。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2)数据存储器
分4个独立部分,即低128B RAM(地址
00H~7FH,可直接和间接寻址)、高
128B RAM(地址80H~FFH,为间接寻址
)、128B特殊功能寄存器(SFR,地址80H
~FFH,只能直接寻址)和256B辅助AUX-
RAM(地址00H~FFH),通过MOVX间接
寻址且EXTRAM位清零。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
3)I/O结构
① P0与80C51电控单元功能相同。复位后,P0口特殊功能
寄存器为FFH。P0还提供复用的低位地址和数据总线,
用于扩展P8xC591的标准存储器和外围设备。
② P1支持几种可选功能,具有不同的I/O状态。在复位
后,和为高电平,而~为高阻态(三
态)。
③ P2与80C51电控单元功能相同。复位后,P1口特殊功
能寄存器为FFH;P2还提供复用的高位地址和数据总线,
用于扩展P8xC591电控单元功能的外部存储器和域外部
数据存储器。
④ P3与80C51电控单元功能相同。复位后,P3口特殊功
能寄存器为FFH。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
二、CAN收发器
1. CAN收发器PCA82C250
2. CAN收发器TJA1040
3. PCA82C250/251与TJA1040、TJA1050的比较和升
级
4.工作模式
5.互操作性
6.硬件问题
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1. CAN收发器PCA82C250
(1)PCA82C250的主要特点
(2)PCA82C250的结构
(3)PCA82C250的工作原理
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(1)PCA82C250的主要特点
1)与ISO 11898标准完全兼容。
2)高速率(1Mbit/s)。
3)采用斜率控制,降低射频干扰(RFI)。
4)具有抗汽车环境下的瞬间干扰和保护总线的能力。
5)低电流待机模式。
6)在24V系统中防止电池对搭铁短路。
7)过热保护。
8)未上电时,节点不会干扰总线。
9)总线至少可连接110个节点。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(2)PCA82C250的结构
图3-52 CAN收发器PCA82C250
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(2)PCA82C250的结构
表3-64 PCA82C250基本性能参数
参 数 条 件 最小值 典型值 最大值
电源电压
()/V
4.5 — 5.5
电源电流
()/mA
显性位,V1=1V — — 70
隐性位,V1=4V — — 14
待机模式 — 0.1 0.17
CAN⁃H、
CAN⁃L端子直流
电压()/V
0<<5.5V -8 — 18
差动总线电压
(ΔV)/V
V1=1V 1.5 — 3.0
差动输入电压
(隐性值)
()/V
非待机模式 -1.0 — 0.4
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(2)PCA82C250的结构
表3-64 PCA82C250基本性能参数
差动输入
电压(显性
值)()/V
非待机模式 1.0 — 5.0
传播延迟
()/ ns
高速模式 — 50
工作环境
温度()/℃
—40 — 120
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(2)PCA82C250的结构
表3-65 PCA82C250端子功能
符 号 端 子 功 能
TXD 1 发送数据输入
GND 2 搭铁
3 电源电压
RXD 4 接收数据输入
5 参考电压输出
CAN⁃L 6 低电平CAN电压输入/
输出
CAN⁃H 7 高电平CAN电压输入/
输出
8 斜率电阻输入
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(3)PCA82C250的工作原理
PCA82C250驱动电路内部具有限流电路,可防止发
送输出级对电源、搭铁或负载短路。当短路出现时功
耗增加,可避免损坏输出级。若结温超过160℃,则
两个发送器输出端极限电流将减小。由于发送器是功
耗的主要部分,因而限制了芯片的温升,器件的其他
部分将继续工作。PCA82C250采用双线差分驱动,
有助于抑止汽车在恶劣电气环境下受到的瞬变干扰。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2. CAN收发器TJA1040
图3-53 TJA1040功能框图
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2. CAN收发器TJA1040
表3-68 TJA1040端子功能
符号 端子 功 能 符号 端子 功 能
TXD 1 发送数据
输入
SPLIT 5 共模稳压
输出
GND 2 搭铁 CAN⁃L 6 低电平
CAN电压
输入/输出
3 电源电压 CAN⁃H 7 高电平
CAN电压
输入/输出
RXD 4 接收数据
输出
STB 8 待机模式
控制输入
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2. CAN收发器TJA1040
(1)正常模式 收发器通过总线CAN-H和CAN-L
发送和接收数据。
(2)待机模式 发送器和接收器都关闭,只用低
功耗的差动收发器监控总线。
(3)分解网络 分解网络为的直流稳压源,
只在正常模式中接通。
(4)唤醒 在待机模式中,总线由低功耗的差动
比较器监控。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(5)过热检测 收发器在过热时会受到保护。若实
际连接点温度超过了165℃,收发器会被禁止,直到
实际连接点温度低于165℃后,TXD才会再一次变
成隐性。因此,收发器的振幅不会受到温度漂移的
影响。
(6)TXD显性超时功能 当端子TXD由于硬件和/或
软件程序的错误而被持续地置为低电平时,TXD显
性和斜率定时器电路可防止总线进入持续的显性状
态(阻塞所有网络通信)。 (7)自动防故障功能 端子
TXD提供了一个向VCC的上拉,当不使用端子TXD
时,保持隐性电平。端子STB提供了一个向VCC的上
拉,当不使用端子STB时,使收发器进入待机模式。
2. CAN收发器TJA1040
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
3. PCA82C250/251与TJA1040、TJA1050的比较和
升级
(1)PCA82C250/251与TJA1040、TJA1050的比较
(2)PCA82C250/251、TJA1050和TJA1040插接器的端子布置
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(1)PCA82C250/251与TJA1040、TJA1050的比较
TJA1040比PCA82C250/251有以下改进:
1)若不上电,则总线上完全无源。
2)改良的抗电磁干扰(EMI)性能。
3)改良的防电磁辐射性能。
4)在待机模式时,电流消耗非常低(最大
15μA)。
5)SPLIT端子代替Vref端子,有利于对总线的
直流稳压。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(2)PCA82C250/251、TJA1050和TJA1040插接器的
端子布置
图3-54 PCA82C250/251、TJA1050和TJA1040插接器的端子布置
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
4.工作模式
表3-70 工作模式及端子8相应的设置
工作模式 特 征 端子8的信号电平
TJA1040 PCA82C250/251 TJA1050
正常(高速) 发送功能
接收功能
低 低或悬空 低或悬空
待机 减小电流
远程唤醒
混串音保护
高或悬空 高 —
斜率控制 可变斜率 — 通过
10kΩ<<180kΩ连
接GND
—
静音 混串音保护
“只听”功
能
— — 高
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
4.工作模式
(1)正常(高速)模式
(2)待机模式
(3)斜率控制模式
(4)静音模式
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(1)正常(高速)模式
对于总线收发器,正常(高速)模式都相同。从
TXD输入的数字位流被转换成相应的模拟总线
信号,同时总线收发器监控总线,将模拟总线
信号转换成相应的数字位流从RXD输出。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(2)待机模式
PCA82C250/251和TJA1040提供了一个专用
的待机模式,电流消耗减到最低(如TJA1040最
大为15μA,PCA82C250最大为170μA)。在
待机模式中,TJA1040和PCA82C250/251发
送器完全禁能,TJA1040和PCA82C250/251
提供了与Babbling Idiot节点一致的静音功能。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(3)斜率控制模式
只有PCA82C250/251提供斜率控制模式。通
过RS端子和GND之间的电平连接电阻调整斜率。
TJA1050和TJA1040的抗电磁干扰性比
PCA82C250/251提高了20dB,可摆脱共模
扼流。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(4)静音模式
TJA1050提供一个专用的静音模式,发送器完
全禁能,以确保没有信号能从TXD发送至总线。
如同TJA1040待机模式,该静音模式可建立一
个Babbling Idiot保护。静音模式中,接收器
保持激活状态,可执行“只听”功能。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
5.互操作性
(1)TJA1040和PCA82C250/C251、TJA1050混合使用
(2)TJA1040和TJA1041节点混合使用
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
5.互操作性
表3-71 不同工作模式和不上电情况下的总线偏压
收发器
条件
PCA82C250/251 TJA1050 TJA1040
模式 总线偏
压
模式 总线偏
压
模式 总线偏
压
低(端
子8)
正常 Vcc/2 正常 Vcc/2 正常 Vcc/2
高(端
子8)
待机 Vcc/2 静音 Vcc/2 待机 GND
悬空
(端子
8)
正常 Vcc/2 正常 Vcc/2 待机 GND
不上电 — GND — GND — 悬空
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
5.互操作性
图3-55 TJA1040和PCA82 C250节点总线处于隐性状态的补偿电
路
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(1)TJA1040和PCA82C250/C251、TJA1050混合使用
表3-72 不同的总线偏压和补偿电流
PCAC250/251和
TJA1050
TJA1040
所 有 模 式 不 上 电
普通/高速 — ×
待机 × —
不上电 — —
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(2)TJA1040和TJA1041节点混合使用
表3-73 TJA1040和TJA1041节点的混合模式
TJA1041
TJA1040
普通/高速 Pwon 待机 休眠 不上电
普通/高速 — — × × ×
待机 × × — — —
不上电 — — — — —
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
6.硬件问题
图3-56 PCA82C250/251的典型应用电路
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
6.硬件问题
图3-57 TJA1050的典型应用电路
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
6.硬件问题
图3-58 TJA1040的典型应用电路
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
第五节 CAN设计基础
一、CAN智能节点设计
二、CAN网桥设计
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
一、CAN智能节点设计
1. CAN智能节点硬件设计
2. CAN智能节点软件设计
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1. CAN智能节点硬件设计
图3-59 CAN总线系统智能节点硬件电路
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2. CAN智能节点软件设计
(1)初始化过程
(2)发送过程
(3)接收过程
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(1)初始化过程
SJA1000的初始化只能在复位模式下进行,主
要包括工作方式、接收滤波方式、接收屏蔽寄
存器(AMR)和接收代码寄存器(ACR)、波特率
参数和中断允许寄存器(IER)的设置等。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(2)发送过程
发送子程序负责节点报文的发送。发送时只需
将待发送的数据按特定格式组合帧报文,送入
SJA1000发送缓存区中,然后启动SJA1000发
送即可。在向SJA1000发送缓存区送报文之前,
必须先作一些判断。发送程序分发送数据帧和
远程帧两种,远程帧无数据场。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(3)接收过程
接收子程序负责节点报文的接收以及其他情况
的处理,比发送子程序复杂,其原因是在处理
接收报文的过程中,要对诸如总线关闭、错误
报警、接收溢出等情况进行处理。SJA1000报
文的接收主要有中断接收方式和查询接收方式,
二者编程思路基本相同。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
二、CAN网桥设计
1. CAN网桥硬件电路设计
2. CAN网桥软件设计
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1. CAN网桥硬件电路设计
图3-60 CAN网桥硬件结构
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2. CAN网桥软件设计
(1)主监控程序设计
(2)接收中断子程序设计
(3)发送子程序设计
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(1)主监控程序设计
图3-61 主监控程序流程
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(2)接收中断子程序设计
图3-62 网桥第一路接收中断子程序流程
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
(3)发送子程序设计
发送子程序进行FIFO中的数据发送,网桥软件
中共有两个发送子程序,分别对应两路CAN总
线控制器。发送子程序的调用在主监控程序中
进行,当主监控程序确认某一路CAN总线控制
器非空时,调用发送子程序向另一路发送数据。
在发送子程序中,除了将FIFO中数据向另一方
发送外,同样FIFO也进行相应的参数调整,包
括发送数据指针和FIFO中存储数据的有效字节
长度。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
. 大众、奥迪车CAN数据总线简介
大众、奥迪车上使用多种CAN数据总线,第一种
CAN数据总线是舒适CAN数据总线,传输速率为
Kb/s;第二种是动力CAN数据总线,传输速率是500 Kb/s。
目前所有车型都使用动力CAN数据总线。例如,宝来轿
车的数据总线系统如图6-2所示。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图6-2 宝来轿车的数据总线系统
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
从2000年的车型起,大众、奥迪车开始使用“新
型的舒适CAN数据总线和信息CAN数据总线”,其传
输速率均为100 Kb/s。
通过带网关的组合仪表,新型的舒适CAN数据总
线和信息CAN数据总线也可以与动力CAN数据总线进
行数据交换。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
1.具体分类
根据信号的重复率、产生的数据量和可用性(准备状态)
,CAN数据总线系统分为如下三类:
(1) 动力CAN数据总线(高速):速率为500 Kb/s,用于
将驱动线束上的控制单元联网。
(2) 舒适CAN数据总线(低速):速率为1×105 b/s,用于
将舒适系统中的控制单元联网。
(3) 信息CAN总线(低速):速率为100 Kb/s,用于将收音
机、电话和导航系统联网。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2.所有系统的共性
各系统在数据高速公路上采用同样的交通规则,即“
传输协议”。为了保证有很高的抗干扰性(如来自发动机
舱),所有的CAN数据总线都采用双线式系统。
将要发送的信号在发送控制单元的收发器内转换成不
同的信号电平,并输送到两条CAN导线上,只有在接收控
制单元的差动信号放大器内才能建立两个信号电平的差值,
并将其作为唯一经过校正的信号继续传至控制单元的CAN
接收区。
信息CAN数据总线与舒适CAN数据总线的特性是一
致的。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
3.各系统的重要区别
(1) 动力CAN数据总线通过15号接线柱进行切断,或经
过短时无载运行后切断。而舒适CAN数据总线由30号接线
柱供电且必须保持随时可用的状态。
(2) 为了尽可能降低对供电网产生的负荷,在15号接线
柱关闭后,如果总系统不再需要舒适数据总线,那么舒适
数据总线就进入所谓的“休眠模式”。
(3) 舒适/信息CAN数据总线在一条数据线短路或一条
CAN线断路时,可以用另一条线继续工作,这时会自动切
换到“单线工作模式”。
(4) 动力CAN数据总线的电信号与舒适/信息CAN数据
总线的电信号是不同的。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
大众、奥迪车CAN的链路
1.CAN的导线
CAN数据总线是一种双线式数据总线,脉冲频率为
100 Kb/s(舒适/信息数据总线)或500 Kb/s(驱动数据总线)。
舒适/信息CAN数据总线也叫低速总线,动力CAN数据总线
也叫高速总线。
各个CAN系统的所有控制单元都并联在CAN数据总线
上。CAN数据总线的两条导线分别叫做CAN-High和CAN-
Low线,两条扭绞在一起的导线称为双绞线,如图6-3所示。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图6-3 双绞线
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
控制单元之间的数据交换就是通过这两条导
线来完成的,这些数据可能是发动机转速、油箱
油面高度及车速等。
CAN导线的基色为橙色。对于动力CAN数据
总线来说,CAN-High线上还多加了黑色作为标志
色;对于舒适CAN数据总线来说,CAN-High线上
的标志色为绿色;对于信息CAN数据总线来说,
CAN-High线上的标志色为紫色。CAN-Low线的
标志色都是棕色。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2.CAN导线的布线图
大众集团使用的CAN数据总线有一个特点:
控制单元之间呈树形连接,这在CAN标准中是
没有的。车上CAN导线的实际布置状态称为拓
扑结构图,不同的车,拓扑结构也不同。
图6-4是Phaeton车的动力CAN拓扑结构图,
可以很清楚地看到树形的网络结构。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图6-4 Phaeton车的树形网络结构
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
动力CAN数据总线
1.动力CAN数据总线的主要联网单元
动力CAN数据总线的速率为500 Kb/s,用于将动力
CAN数据总线方面的控制单元联成网络。动力CAN数
据总线的控制单元如下:
(1) 发动机控制单元。
(2) ABS控制单元。
(3) ESP控制单元。
(4) 变速器控制单元。
(5) 安全气囊控制单元。
(6) 组合仪表。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
与所有的CAN导线一样,动力CAN数据总线也
是双线式数据总线,其脉冲频率为
500 Kb/s,因此也称为高速CAN总线。控制单元通
过动力CAN数据总线的CAN-High线和CAN-Low线
来进行数据交换。
控制单元循环往复地发送信息,信息的重复周
期一般为10~25 ms。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2.动力CAN数据总线上的信号电压变化
以动力CAN数据总线为例,在静止状态时,这
两条导线上作用有相同的预先设定值,该值称为静
电平。对于动力CAN数据总线来说,这个值大约为
V。静电平也称为隐性状态,与其相连接的所有
控制单元均可修改它。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
在显性状态时,CAN-High线上的电压值会升高一个
预定值(对动力CAN数据总线来
说,这个值至少为1 V),而CAN-Low线上的电压值会降
低一个同样值(对动力CAN数据总线来说,这个值至少为
1 V)。于是在动力CAN数据总线上,CAN-High线就处
于激活状态,其电压不低于 V( V+1V= V),
而CAN-Low线上的电压值最多可降至 V
( V-1 V= V)。
因此在隐性状态时,CAN-High线与CAN-Low线上
的电压差为0 V,在显性状态时该差值最低为2 V,如图
6-5所示。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图6-5 CAN数据总线上的信号电压变化
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图6-6中所示的是一个真实的CAN电报变化图,
它由一个收发器产生,并由VAS5051的数字存储式
示波器(DSO)接收下来。两个电平之间的叠加信号
变化表示 V的隐性电平。CAN-High线上的显性
电压约为 V,CAN-Low线约为 V。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图6-6 DSO现实的动力CAN总线信号电压变化
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
3.动力CAN的收发器
收发器内,CAN-High线和CAN-Low线
上的信号转换控制单元是通过收发器连接到
动力CAN总线上的,在这个收发器内有一
个接收器,该接收器是安装在接收一侧的差
动信号放大器,如图6-7所示。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图6-7 动力CAN数据总线的差动信号放大器
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
差动信号放大器用于处理来自CAN-High线和
CAN-Low线的信号,除此以外还负责将转换后的信
号传至控制单元的CAN接收区。这个转换后的信号称
为差动信号放大器的输出电压,如图6-8所示。
差动信号放大器用CAN-High线上的电压(UCAN-
High)减去CAN-Low线上的电压(UCAN-Low),就得
出了输出电压,用这种方法可以消除静电平(对于动
力CAN数据总线来说是 V)或其他任何重叠的电压
(例如干扰)。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图6-8 差动信号放大器内的信号处理
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
4.动力CAN数据总线差动信号放大器内的干扰过滤
由于数据总线也要布置在发动机舱内,因此数据总线
就会受到各种干扰。在保养时要考虑对地短路和蓄电池电
压、点火装置的火花放电和静态放电。
CAN-High信号和CAN-Low信号经过差动信号放大器
处理后(就是所谓的差动传递技术),可最大限度地消除干
扰的影响,如图6-9所示。这种差动传递技术的另一个优点
是:即使车上的供电电压有波动(例如在启动发动机时),
也不会影响各个控制单元的数据传递(数据传递可靠性)。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图6-9 差动信号放大器内的干扰过滤
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
在该图的上部可清楚地看到这种传递的效果。因为
CAN-High线和CAN-Low线是扭绞在一起的(双绞线),所
以干扰脉冲X就总是有规律地作用在两条线上。
由于差动信号放大器总是用CAN-High线上的电压
(-X)减去CAN-Low线上的电压( V-X),因此在
经过差动处理后,( V-X)-( V-X)=2 V,差动
信号中就不再有干扰脉冲了。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
舒适/信息CAN数据总线
1.舒适/信息CAN数据总线的联网单元
舒适/信息CAN数据总线的速率为100 Kb/s,用于将舒适
CAN总线和信息CAN总线方面的控制单元联成网络。舒
适/信息CAN数据总线的控制单元如下:
(1) 全自动空调/空调控制单元。
(2) 车门控制单元。
(3) 舒适控制单元。
(4) 收音机和导航显示单元控制单元。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
与所有的CAN导线一样,舒适/信息CAN数据总线也
是双线式数据总线,其脉冲频率为100 Kb/s,因而也称为
低速CAN总线。
控制单元通过舒适/信息CAN数据总线的CAN-High线
和CAN-Low线来进行数据交换,如车门开/关、车内灯开/
关、车辆位置(GPS)等等。
由于使用同样的脉冲频率,因此舒适CAN数据总线
和信息CAN总线可以共同使用一对导线,当然前提条件
是相应的车上有这两种数据总线。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
2.舒适/信息CAN数据总线上的信号电压变化
为了增强抗干扰性且降低电流消耗,低速CAN与动力
CAN数据总线相比就需做一些改动。
首先,由于使用了单独的驱动器(功率放大器),这两个
CAN信号就不再有彼此依赖的关系。与动力CAN数据总线不
同,舒适/信息CAN数据总线的CAN-High线和CAN-Low线不
是通过电阻相连的。也就是说,CAN-High线和CAN-Low线
不再彼此相互影响,而是彼此独立作为电压源来工作。
另外,共同的中压也发生了变化,在隐性状态(静电平)
时,CAN-High信号为0 V,在显性状态时不小于 V;对
于CAN-Low信号来说,隐性电平为5 V,显性电平不大于
V,如图6-10所示。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图6-10 舒适/信息总线的信号变化
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
于是,这两个信号在差频信号放大器内相减后,隐性
电平为-5 V,显性电平为 V,那么隐性电平和显性电
平之间的电压变化(电压提升)就达到 V以上了。
VAS5051上的数字存储式示波器(DSO)图如图6-11所示。
为清楚起见,CAN-High信号和CAN-Low信号彼此分开
了,从图中所示的不同的零点即可看出这一点。
从图中可清楚看出CAN-High信号和CAN-Low信号的静
电平是不同的。还能看出:与动力CAN数据总线相比,电
压提升增大了( V);显性电平和隐性电平交替转换;在
显性状态时CAN-High信号为 V,CAN-Low信号为 V。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图6-11 VAS5051上的数字存储式示波器(DSO)图(静态图)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
3.舒适/信息CAN数据总线的CAN收发器
舒适/信息CAN数据总线的收发器如图6-12所示,其工
作原理与动力CAN数据总线收发器基本是一样的,只是输
出的电压电平和出现故障时切换到CAN-High线或CAN-
Low线(单线工作模式)的方法不同。另外CAN-High线和
CAN-Low线之间的短路会被识别出来,并且在出现故障时
会关闭CAN-Low驱动器,在这种情况下,CAN-High和
CAN-Low信号是相同的。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图6-12 舒适/信息CAN数据总线收发器的结构
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
CAN-High线和CAN-Low线上的数据传递由安装在
收发器内的故障逻辑电路来监控,故障逻辑电路检验两
条CAN导线上的信号,如果出现故障(如某条CAN导线
断路),那么故障逻辑电路会识别出该故障,从而使用完
好的那一条导线(单线工作模式)。
在正常的工作模式下,使用的是CAN-High“减去
”CAN-Low所得的信号(差动数据传递),这样就可将故障
对舒适/信息CAN数据总线的两条导线的影响降至最低
(与动力CAN数据总线一样)。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
4.单线工作模式下的舒适/信息CAN数据总线
如果因断路、短路或与蓄电池电压相连而导致两条CAN导
线中的一条不工作了(ISO故障1~7),那么就会切换到单线
工作模式。在单线工作模式下,只使用完好的CAN导线中
的信号,这样就使得舒适/信息CAN数据总线仍可工作。
同时,控制单元记录一个故障信息:系统工作在单线模式。
单线工作模式下DSO上的信号如图6-13所示。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图6-13 单线工作模式下DSO上的信号变化图(静态图)
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
CAN数据总线上的阻抗匹配
控制单元信号在收发器内进行放大。收发器发送一侧的
任务是将控制单元内CAN控制器的较弱信号进行放大,使之
达到CAN导线上的信号电平和控制单元输入端的信号电平。
连接在CAN数据总线上的控制单元的作用就像是CAN导
线上的一个负载电阻(因为装有电子元件)。这个负载电阻取
决于连接的控制单元数量及其电阻值。
例如:发动机控制单元会在动力CAN数据总线的CAN-
High线和CAN-Low线之间形成66 Ω的电阻,所有其他控制
单元均可在数据总线上产生 kΩ的电阻,如图6-14所示。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图6-14 数据总线的CAN-High线和CAN-Low线上的负载电阻
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
根据连接的控制单元数量,所有控制单元形成的
总电阻为53~66 Ω。如果15号接线柱(点火开关)已切断,
就可以用欧姆表测量CAN-High线和CAN-Low线之间的
电阻了。
收发器将CAN信号输送到CAN数据总线的两条导
线上,相应地,CAN-High线上的电压会升高,而CAN-
Low线上的电压会降低一个同样大小的值。对于驱动
CAN数据总线来说,一条导线上的电压改变值不低于
1 V;对于舒适/信息CAN数据总线总线来说,这个值
不低于 V。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
最初的数据总线的两个末端有两个终端电阻,如图6-
15所示。但是,大众汽车公司在1999年以后生产的车型上
采用了被称为“中心总线连接”的方式,即发动机控制单
元内的“中央末端电阻”和其他控制单元内的高欧姆电阻,
如图6-14所示。这样会产生很大的影响,但由于轿车上的
数据总线不是很长,因此不会有什么负面作用。CAN标准
中有关数据总线长度的规定就不适用于大众集团的动力
CAN数据总线了。
舒适/信息CAN数据总线的特点是:控制单元内的负载
电阻不是作用于CAN-High线和CAN-Low线之间,而是体
现在每根导线对地或对5 V之间。如果蓄电池电压被切断,
那么电阻也就没有了,这时用欧姆表无法测出电阻。
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
图6-15 最初数据总线的两个末端的终端电阻
mailto:zhubob@
朱明工作室
zhubob@
授人以鱼不如授人以渔
mailto:zhubob@