CAN总线原理
CAN总线系统数据的格式
报文传送主要有四种类型的帧:数据帧、远程帧、出错帧以及超载帧。 数据帧:由7个不同的位场组成,分别是帧起始、仲裁场、控制场、数 据场、CRC场、应答场以及帧结束。在具体编程中只要正确地运用仲裁 场、控制场中的数据长度码、数据场即可。 帧起始―标志一个数据帧或远程帧的开始,它是一个显性位。 仲裁场―仲裁场由报文标识符和远程发送请求位(RTR位)组成。RTR 位在数据帧中为显性,在远程帧中为隐性。包括报文标识符11位 (CAN2.0A标准),这12位共同组成报文优先权信息。数据帧的优先权 比同一标识符的远程帧的优先权要高。 控制场―由6位组成,包括2位作为控制总线发送电平的备用位(留作 CAN通信协议扩展功能用)与4位数据长度码。其中数据长度码(DLC0DLC3)指出了数据场中的字节数目0~8其保留位必须发送为显性 。
技术数据说明:
最大安全传输速率:1 Mbps = 1 Megabit per sec. = 1 000 000 bits per sec.
ISO标准:高速/低速分界点 125000bps 一个完整的信息传递平均周期:大约1ms(根据信息长度) 控制单元数量:出于可靠性原因,最多允许接入32个控制单元 CAN bus 总线最大允许长度:40 m
CAN总线系统数据传输的基本概念
技术规范―CAN技术规范(Version2.0)包括2.0A和2.0B。 2.0A的报文标识符为11位,2.0B有标准和扩展两种报文格式, 前者的标识符19位,后者29位。 远程数据请求―通过发送一个远程帧,需要数据的节点可以 请求另一个节点发送一个相应的数据帧,该数据帧和对应的 远程帧以相同的标识符命名。 显性隐性―CAN总线数值为两种互补的逻辑数值:“显性” 和“隐性”。其中显性表示逻辑“0”,而隐性表示逻辑“1” 当显性和隐性位同时发送时,总线数值将为显性。
CAN总线系统数据的格式
超载帧:由超载标识和超载界定符组成。 在CAN中,存在两个条件导致发送超载帧。一个是接收器未准备就绪, 另一个是在间隙场检测到显性位。
CAN总线系统数据的格式
帧间空间:数据帧(或远程帧)与先行帧的隔离是通过帧间空间实现的, 无论此先行帧类型如何(数据帧、远程帧、错误帧、过载帧)。 所不同的是,过载帧与错误帧之前没有帧间空间,多个过载帧之间也不 是由帧间空间隔离的。
信息通过Bit字节进行传送
下表说明,信息量如何随着添加Bit 而增加。 越多字节进行组合, 可以传递越多的信息。 每增加一个字节都可使携带的信息将增加一倍。
1 个字节的变化 0伏 5伏 可能的信息 10° C 20° C 2 个字节的变化 0 伏, 0 伏 0 伏, 5 伏 5 伏, 0 伏 5 伏, 5 伏 可能的信息 10° C 20° C 30° C 40° C 3 个字节的变化 0 伏, 0 伏, 0 伏 0 伏, 0 伏, 5 伏 0 伏, 5 伏, 0 伏 0 伏, 5 伏, 5 伏 5 伏, 0 伏, 0 伏 5 伏, 0 伏, 5 伏 5 伏, 5 伏, 0 伏 5 伏, 5 伏, 5 伏 可能的信息 10° C 20° C 30° C 40° C 50° C 60° C 70° C 80° C
CAN总线上是差分信号,一个差分信号是用一个数值 来表示两个物理量之间的差异。 0—显性—CANH对地3.5V,CANL 1.5V 1—隐性—CANH对地2.5V,CANL 2.5V
正常情况下 CAN—H标准电压:隐性为2.6V左右;显性为3.8V左右
CAN—L标准电压:隐性为2.4V左右;显性为:1.2V左右
CAN总线系统数据的格式
远程帧:用来申请数据。当一个节点需要接收数据时,可以发送一个远 程帧,通过标识符与置RTR为高来寻址数据源,网络上具有与该远程帧 相同标识符的节点则发送相应的数据帧。 远程帧由帧起始、仲裁场、控制场、CRC场、应答场和帧结束组成。这 几个部分与数据帧中的相同,只是其RTR位为低而已。 远程帧的数据长度码为其对应的将要接收的数据帧中DLC的数值。
CAN程序版本: Bosch CAN 2.0
bps = bits per second 单位:位(比特)/秒 8 bits = 1 byte 8位=1字节 1 Mbps = 1 000 kbps = 1 000 000 bps
CAN总线系统数据的格式
CAN总线系统数据的格式
CAN总线系统数据的格式
CAN总线系统数据的格式
CAN总线的报错是通过发送错误帧完成的。在介绍错误帧前,先介绍一 下主动错误节点(Error Active)和被动错误节点(Error Passive)。每一个 节点都有两个计数器,分别用来计算接收数据错误数(REC)和发送数 据错误数(TEC),计数器如何进行增减在CAN协议里有详细的规定。 当一个节点的TEC和REC都小于128时,该节点为主动错误节点;当一 个节点的TEC或者REC大于等于128时,该节点为被动错误节点;当计 数器的值变化时,主动错误节点和被动节点会相互转化。当一个节点的 TEC大于等于256时,该节点进入BUS OFF状态,它将不能再与其他节 点通信。 错误帧:由两个不同场组成,一个是错误叠加标志,另一个是出错界定 符。 主动错误标志(6个显性位)和被动错误标志(6个隐性位)
约2,5 V
Antrieb 驱动总线
CAN总线系统数据的格式
0-优势
在CAN-数据总线系统中通常连接数个控制单 元。
只有当所有的控制单元发送“1”-Bit,在总 线个控制单元发送了“0”-Bit, 那么在总线线路上的信号逻辑上就是“0”。 一个控制单元的“0”-信息可覆盖其它控 制单元上的“1”-信息。
CAN总线系统数据传输的基本概念
报文―报文就是在总线上所传送的信息,该信息以不同的报 文传送,但报文长度要受帧结构的限制。当总线空闲时,任 何连接的单元均可开始发送一个新报文。 帧传送―在总线上传输的报文以帧结构进行传输。报文传送 由4种不同类型的帧来表示和控制:数据帧、远程帧、出错 帧和超载帧。 仲裁―仲裁用于处理总线访问冲突。方法是依据其报文优先 权,而优先权由报文标识符与RTR位来唯一确定。 标识符―一个报文的内容由其标识符ID命名,ID并不指出报 文的目的,但描述了数据的含义,以便网络中的所有节点有 可能借助报文滤波来决定该数据是否使它们激活。
CAN Low dominant 0
2.6 V
2.4 V
0.2 V = 1
差值> 2.3 V
= result bit value 0 = dominant = result bit value 1 = recessive
差值 < 2.3 V
CAN总线抗干扰能力
运行时产生电磁波的部件是车辆中的干扰源。
CAN总线系统数据的格式
负逻辑
优势信号 开关闭合 劣势信号 开关打开
灯不亮
灯亮
在CAN-总线规范中确定了负逻辑
状态值 收发器 闭合
状态值 收发器 打开 数据线路电压 Komfort 舒适总 0V至5V Komfort 舒适总线
数据线路电压
约2 V 至 3 V 线 约1,5 至 3,5 V Antrieb 驱动总线
CAN总线系统数据的传输
当CAN总线上的一个节点(站)发送数据时,它以报文形式广 播给网络中所有节点。对每个节点来说,无论数据是否是发 给自己的,都对其进行接收。 发动机电脑向某电脑CAN收发器发送数据,该电脑CAN收 发器接收到由发动机电脑传来的数据,转换信号并发给本电 脑的控制器。 CAN数据传输系统的其他电脑收发器均接收到此数据,但是 要检查判断此数据是否是所需要的数据,如果不是将忽略掉。
CAN总线原理
汽车工程系 郝金魁
CAN总线系统结构
传输介质为双绞线,线性拓扑结构 每个控制单元“并联”在总线上
CAN总线系统结构
CAN总线系统结构
CAN总线系统结构
CAN总线系统结构
CAN总线系统结构
CAN总线系统数据的传输
当CAN总线上的一个节点(站)发送数据时,它以报文形式广 播给网络中所有节点。对每个节点来说,无论数据是否是发 给自己的,都对其进行接收。 发动机电脑向某电脑CAN收发器发送数据,该电脑CAN收 发器接收到由发动机电脑传来的数据,转换信号并发给本电 脑的控制器。 CAN数据传输系统的其他电脑收发器均接收到此数据,但是 要检查判断此数据是否是所需要的数据,如果不是将忽略掉。
CAN总线系统数据的格式
CAN总线系统数据的格式
数据场―存储在发送缓冲器数据区或接收缓冲器数据区中以待发送或接收的数 据。按字节存储的数据可由微控制器发送到网络中,也可由其它节点接收。其 中第一个字节的最高位首先被发送或接收。 CRC场―又名循环冗余码校验场,包括CRC序列(15位)和CRC界定符(1个隐 性位)。CRC场通过一种多项式的运算,来检查报文传输过程中的错误并自动 纠正错误。这一步由控制器自身来完成。 应答场―包括应答间隙和应答界定符两位。在ACK场(应答场)里,发送节点 发送两个“隐性”位。当接收器正确地接收到有效的报文,接收器就会在应答 间隙(ACK Slot)期间向发送器发送一“显性”位以示应答。 帧结束―每一个数据帧和远程帧均结束于帧结束序列,它由7个隐性位组成。
为阻止对数据线路的干扰影响,两个数据总线-线 路相互捻合。 在两个线路上电压的变化大小一样,然而方向相反。
低位
因此两个向外反射的线路的电压总和,总是恒定的。 两个电压的差值(= 逻辑内容) 与外界影响电压无关, 总是一样大小。
高位
CAN Bus 数据总线优点
与其他数据传输方式相比,CAN数据总线有如下优点:
CAN总线系统数据的传输
CAN总线系统数据的传输