CAN总线原理与技术应用.ppt
- 文档编号:18794623
- 上传时间:2023-11-18
- 格式:PPT
- 页数:94
- 大小:6.88MB
CAN总线原理与技术应用.ppt
《CAN总线原理与技术应用.ppt》由会员分享,可在线阅读,更多相关《CAN总线原理与技术应用.ppt(94页珍藏版)》请在冰点文库上搜索。
CAN总线原理与技术应用,主讲人:
王畅,第一章:
绪论,1、总线、现场总线和车用总线的关系2、CAN总线的起源3、CAN总线的特点及优势,1、总线、现场总线和车用总线的关系,什么是总线?
什么是现场总线?
什么是车载总线?
所谓总线(BUS)是指利用分时复用的方式,将信息以一个或多个源部件传送到一个或多个目标部件的一组传输线。
现场总线(FILEDBUS)适用于过程自动化和制造自动化最底层的现场设备或现场仪表互联的通信网络,是现场控制网络与控制系统的集成。
车用总线是指用于车载网络中底层的车用设备或仪表互联的通信网络,是车用网络与车载设备控制系统的集成,,车用总线,车用总线是指汽车内部导线采用总线控制的一种技术,通常叫汽车总线或汽车总线技术。
目前,绝大多数车用总线都被SAE(美国汽车工程师协会)下属的汽车网络委员会按照协议特性分为A、B、C、D四类。
车用总线,A类总线:
面向传感器或执行器管理的低速网络,它的位传输速率通常小于20KB/S。
以LIN(LocalInterconnectNetwork本地互联网)规范最有前途。
其由摩托罗拉(Motorola)与奥迪(Audi)等知名企业联手推出的一种新型低成本的开放式串行通讯协议,主要用于车内分布式电控系统,尤其是面向智能传感器或执行器的数字化通讯场合。
B类总线:
面向独立控制模块间信息共享的中速网络,位速一般在10125KB/S之间。
以CAN(ControllerAreaNetwork控制器局域网络)最为著名。
CAN网络最初是BOSCH公司为欧洲汽车市场所开发的,只用于汽车内部测量和执行部件间的数据通讯,逐渐的发展完善技术和功能,1993年ISO正式颁布了道路交通运输工具一数字信息交换一高速通讯控制器局域网(CAN)国际标准(ISO11898-1),近几年低速容错CAN的标准ISO11519-2也开始在欧洲的一些车型中得到广泛的应用。
B类总线主要应用于车身电子的舒适型模块和显示仪表等设备中。
车用总线,C类总线:
面向闭环实时控制的多路传输高速网络,位速率多在125KB/S1MB/S之间。
主要用于车上动力系统中对通讯的实时性要求比较高的场合,主要服务于动力传递系统。
在欧洲,汽车厂商大多使用“高速CAN”作为C类总线,它实际上就是ISO11898-1中位速率高于125KB/S的那部分标准。
美国则在卡车极其拖车、课程、建筑机械和农业动力设备中大量使用专门的通讯协议SAEJ1939。
D类总线:
面向多媒体设备、高速数据流传输的高性能网络,位速率一般在2MB/S以上,主要用于CD等播放机和液晶显示设备。
近期才被采纳入SAE对总线的分类范畴之中。
其带宽范畴相当大,用到的传输介质也有好几种。
车用总线,2、CAN总线的起源,现代社会对汽车的要求不断提高,这些要求包括:
极高的主动安全性和被动安全性;乘坐的舒适性;驾驶与使用的便捷和人性化;尤其是低排放和低油耗的要求等。
在汽车设计中运用微处理器及其电控技术是满足这些要求的最好方法,而且已经得到了广泛的运用。
目前这些系统有:
ABS(防抱系统)、EBD(制动力分配系统)、EMS(发动机管理系统)、多功能数字化仪表、主动悬架、导航系统、电子防盗系统、自动空调和自动CD机等。
CAN总线的起源,汽车发展的同时也带来了诸多的问题:
(1)汽车电子技术的发展汽车上电子装置越来越多汽车的整体布置空间缩小
(2)传统电器设备多为点到点通信导致了庞大的线束(3)大量的连接器导致可靠性降低。
粗大的线束与汽车中有限的可用空间之间的矛盾越来越尖锐,电缆的体积、可靠性和重量成为越来越突出的问题,而且也成为汽车轻量化和进一步电子化的最大障碍,汽车的制造和安装也变得非常困难。
(4)存在冗余的传感器。
CAN总线的起源,Volvo汽车近三十年来线束增长的情况,CAN总线的起源,于是人们就想通过总线将汽车上的各种电子装置与设备连成一个网络,实现相互之间的信息共享,既减少了线束,又可更好地控制和协调汽车的各个系统,使汽车性能达到最佳。
这样CAN总线就顺其自然产生了。
CAN总线的起源,3、CAN总线的特点及优势,对比下面两张图,就能很清晰的明白采用CAN总线的优势。
CAN总线的优势,用线少、重量轻、空间小、接口简单、维修诊断方便等。
1、实时性2、所传递的过程数据较简单(每个帧最多含8个字节的数据)总线长度:
40m至1km3、传输速率:
最大1Mbd(总线长度为40m),5Kbd(总线长度至1km)4、节点数:
最多200个CAN节点,每个节点上可连有多个传感器和执行元件5、传输媒介:
双绞线6、拓扑结构:
总线型7、通过多种错误检测机制,保证较高的传输安全性8、总线访问方式:
多主结构/CSMA/CA9、与别的网络不同,CAN-Bus上的工作站没有具体的地址,而是通过标识符确定各自的身份,同时标识符还决定了各工作站的优先级,CAN总线的特点,第二章:
CAN基础知识,1、CAN总线的基本工作原理2、CAN-总线上的控制单元及其信息传递3、CAN-数据传输线及总线上的信号电平,1、CAN总线的基本工作原理,CAN总线的基本工作原理,CAN是一种世界标准的串行通讯协议,为数据高速公路确定统一的“交通”规则。
跟其他总线一样,CAN总线的通信也是通过一种类似于“会议”的机制实现的,只不过会议的过程并不是由一方(节点)主导,而是,每一个会议参加人员都可以自由的提出会议议题(多主通信模式),二者对应关系如下:
CAN总线的基本工作原理,1、多个控制单元以并联方式经收发器与总线连接。
2、每个控制单元都有权向总线发送信息(多主处理器结构)。
3、同一时刻只有一个控制单元向总线发送信息。
其它的控制单元接收信息,其中一些控制单元对这些数据感兴趣并采用这些数据,而另一些控制单元则可能不理会这些数据。
CAN总线的基本工作原理,CAN总线的基本工作原理,2、CAN-总线上的控制单元及其信息传递,CAN-Bus部件,CAN-控制器,数据传输线,收发器,CAN-数据控制区,CAN控制器:
接收由控制单元微处理器芯片传来的数据。
CAN控制器对这些数据进行处理并将其传递给CAN收发器;同样CAN控制器也接收收发器传来的数据,处理后传递给控制单元微处理器。
CAN收发器:
具有接收和发送的功能。
它将CAN控制器传来的数据转化为电信号并将其送入数据传输线;同样也为CAN控制器接收和转化数据。
数据传输线:
它是双向的,对数据进行传输。
这两条线传输相同的数据,分别被称为CAN高线和CAN低线。
CAN-Bus各部件功能,传感器采集的数据经节点向总线发送,每次只允许一个控制单元发送数据,其他节点根据需要选择是否接受总线上的数据。
CAN-总线中数据发送过程,在肯定没有其它发送数据传递的情况下,才允许控制单元发送数据。
CAN-总线中数据发送过程,3、CAN-数据传输线及总线上的信号电平,为了减少干扰,CAN-Bus的传输线采用双绞线,其绞距为20mm,截面积为0.35mm2或0.5mm2,称这两根线为CAN-高线(CAN-H)和CAN-低线(CAN-L),CAN-数据传输线,双绞线,导线颜色,驱动系-CANCAN-高线=橙/黑CAN-低线=橙/棕舒适系-CANCAN-高线=橙/绿CAN-低线=橙/棕信息/娱乐系-CANCAN-高线=橙/紫CAN-低线=橙/棕,组合仪表-CANCAN-高线=橙/蓝CAN-低线=橙/棕诊断-CANCAN-高线=橙/红CAN-低线=橙/棕,CAN2.0A/B标准规定:
总线空闲时,CAN_H和CAN_L上的电压为2.5V在数据传输时:
显性电平(逻辑0):
CAN_H3.5VCAN_L1.5V隐性电平(逻辑1):
CAN_H2.5VCAN_L2.5V,总线上的信号电平,从双线信号中获得信号电平,通过压差保持不变来确保抗干扰性,CAN-总线抗干扰措施,第三章:
CAN技术规范,1、帧类型2、位仲裁机制3、报文滤波4、波特率设置5、位同步,1、帧类型,报文传输格式按功能分可以具体分为以下四种:
数据帧(DataFrame):
数据帧携带数据从发送器至接收器。
远程帧(RemoteFrame):
总线单元发出远程帧,请求发送具有同一识别符的数据帧。
错误帧(ErrorFrame):
任何单元检测到总线错误就发出错误帧。
过载帧(OverloadFrame):
过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。
帧类型,数据帧由7个不同的区域组成:
帧起始(StartofFrame)、仲裁区域(ArbitrationField)、控制区域(ControlField)、数据区域(DataField)、CRC区域(CRCField)、应答区域(ACKField)、帧结尾(EndofFrame)。
数据帧,
(1)帧起始它标志数据帧或远程帧的起始,由一个单独的“显性”位组成。
只在总线空闲时,才允许节点发送信号。
所有节点必须同步于首先开始发送信息的节点的帧起始前沿。
数据帧,
(2)仲裁区域仲裁区域包括识别符(ID)和远程发送请求位(RTR)。
标示符(ID):
标示符的长度为11位或29位。
含有11位标示符的帧称为标准帧(CAN2.0A);含有29位标示符的帧称为扩展帧(CAN2.0B)。
数据帧,标准帧(CAN2.0A),数据帧,数据帧,扩展帧(CAN2.0B),标准帧与扩展帧的不同还来自于对标识符扩展(IDE)位的使用,当其位于RTR位之后且为显性时,则报文作为标准帧来发送,而当其位于RTR位之前且为隐性时则报文作为扩展帧来发送。
通常为:
标准帧的报文总是比扩展帧的报文优先级高。
支持扩展帧格式的CAN控制器(CANController)同样也能发送和接收标准帧,当仅仅支持标准帧的CAN控制器被用在网络上时,则只有标准帧能在整个网络上传送,扩展帧将不能被识别,但是会被当作标准帧处理。
RTR位:
该位在数据帧里必须为“显性”,而在远程帧里必须为“隐性”。
数据帧,(3)控制区域控制区域由6位组成,包括数据长度代码和两个将来作为扩展用的保留位。
所发送的保留位必须为“显性”。
接收器接收所有由“显性”和“隐性”组合在一起的位。
数据长度代码(DLC):
数据长度代码指示了数据场中字节数量。
数据长度代码由4位构成,数据帧允许数据字节数目范围为0到8。
数据帧,数据长度代码DLC确定数据字节的数目,数据帧,(4)数据区域数据区域由数据帧中的发送数据组成。
它可以为08个字节,每字节包含了8个位,首先发送最高有效位。
数据帧,(5)CRC区域CRC区域包括CRC序列(CRCSEQUENCE),其后是CRC界定符(CRCDELIMITER)。
CRC序列:
由循环冗余码求得的帧检查序列最适用于位数低于127位BCH码的帧。
为进行CRC计算,被除的多项式系数由无填充位流给定,组成这些位流的成分是:
帧起始、仲裁场、控制场、数据场(假如有),而15个最低位的系数是0。
数据帧,将此多项式被下面的多项式发生器除(其系数以2为模):
X15+X14+X10+X8+X7+X4+X3+1这个多项式除法的余数就是发送到总线上的CRC序列(CRCSEQUENCE)。
为了实现这个功能,可以使用15位的位移寄存器CRC_RG(14:
0)。
如果用NXTBIT标记指示位流的下一位,它由从帧的起始到数据区域末尾都由无填充的位序列给定。
在传送或接收完数据区域的最后一位以后,CRC_RG包含有CRC序列。
CRC序列之后是CRC界定符,它包含一个单独的“隐性”位。
数据帧,(6)应答区域应答区域长度为2个位,包含应答间隙(ACKSLOT)和应答界定符(ACKDELIMITER)。
在应答场里,发送节点发送两个“隐性”位。
当接收器正确地接收到有效的报文,接收器就会在应答间隙(ACKSLOT)期间(发送ACK信号)向发送器发送一“显性”的位以示应答。
数据帧,应答间隙:
所有接收到匹配CRC序列(CRCSEQUENCE)的节点会在应答间隙(ACKSLOT)期间用一“显性”的位写入发送器的“隐性”位来作出回答。
ACK界定符:
ACK界定符是ACK区域的第二个位,并且是一个必须为“隐性”的位。
因此,应答间隙(ACKSLOT)被两个“隐性”的位所包围,也就是CRC界定符(CRCDELIMITER)和ACK界定符(ACKDELIMITER)。
数据帧,(7)帧结尾每一个数据帧或远程帧均可由一标志序列界定。
这个标志序列由7个“隐性”位组成。
数据帧,远程帧标识符格式与数据帧标识符格式基本相同,只是不存在数据区域。
并且远程帧的RTR位是“隐性”的。
因为它没有数据区域,所以数据长度代码的数值是不受制约的(可以标注为容许范围里0到8的任何数值),此数值对应于数据帧的数据长度代码。
远程帧,错误帧由两个不同的区域组成。
第一个区域用不同节点提供的错误标志(ERRORFLAG)叠加而成。
第二个区域是错误界定符。
有两种形式的错误标志,主动错误标志(Activeerrorflag)和被动错误标志(Passiveerrorflag)。
主动错误标志由6个连续的“显性”位组成。
被动错误标志由6个连续的“隐性”的位组成,错误标志的形式破坏了从帧起始到CRC界定符的位填充规则,或者破坏了应答区域的固定形式。
所有其他的节点由此检测到错误条件并与此同时开始发送错误标志。
错误帧,过载帧包括两个位域:
过载标志和过载界定符。
有三种过载的情况,这三种情况都会引发过载标志的传送:
1.接收器的内部情况(此接收器对于下一数据帧或远程帧需要有一延时)。
2.在间歇的第一和第二字节检测到一个“显性”位。
3.如果CAN节点在错误界定符或过载界定符的第8位(最后一位)采样到一个显性位,节点会发送一个过载帧(不是错误帧)。
错误计数器不会增加。
过载帧,2、CAN总线位仲裁技术,为什么要总线仲裁?
要对数据进行实时处理,就必须将数据快速传送,这就要求数据的物理传输通路有较高的速度。
在几个站同时需要发送数据时,要求快速地进行总线分配。
如果2个或2个以上的单元同时开始传送报文,那么就会有总线访问冲突。
通过使用识别符的位形式仲裁可以解决这个冲突。
CAN总线以报文为单位进行数据传送,报文的优先级结合在11位标识符中,具有最低二进制数的标识符有最高的优先级。
这种优先级一旦在系统设计时被确立后就不能再被更改。
总线读取中的冲突可通过位仲裁解决。
位仲裁技术,位仲裁技术,肿么办?
位仲裁技术,仲裁的机制确保信息和时间均不会损失。
当具有相同识别符的数据帧和远程帧同时初始化时,数据帧优先于远程帧。
CAN总线采用非归零(NRZ)编码,所有节点以“线与”方式连接至总线。
如果存在一个节点向总线传输逻辑0(显性),则总线呈现逻辑0状态,而不管有多少个节点在发送逻辑1。
CAN网络的所有节点可能试图同时发送,但其简单的仲裁规则确保仅有一个节点控制总线、并发送信息。
低有效输出状态(0)起决定性作用。
仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。
如果电平相同,则这个单元可以继续发送。
如果发送的是一“隐性”电平(逻辑1)而监测到一“显性”电平(逻辑0),那么该单元就失去了仲裁,必须退出发送状态。
位仲裁技术,如下:
所有标识符都有相同的两位01,直到第3位进行比较时,站1的报文被丢掉,因为它的第3位为高,而其它两个站的报文第3位为低。
站2和站3报文的4、5、6位相同,直到第7位时,站3的报文才被丢失。
位仲裁技术,位仲裁技术,优点在网络最终确定哪一个站的报文被传送以前,报文的起始部分已经在网络上传送了。
所有未获得总线读取权的站都成为具有最高优先权报文的接收站,并且不会在总线再次空闲前发送报文。
CAN具有较高的效率是因为总线仅仅被那些请求总线悬而未决的站利用,这些请求是根据报文在整个系统中的重要性按顺序处理的。
位仲裁技术,缺点由于CAN总线采用的是固定优先级,当所有的节点都随机的向总线发送数据时,具有低优先级的节点是比具有高优先级的节点具有较大的发送失败几率。
每次具有较低优先级的节点都会在总线竞争中失败,从而导致它一个数据都发不出去,或者发送的数据有较大的延时。
3、报文滤波,通过滤波节点可以选择接收自己需要的数据,报文滤波,滤波器的滤波值由标识符验收控制寄存器(CANIDAC)和标识符掩码寄存器(CANIDMR0-CANIDMR7)决定。
根据BoschCAN2.0A/B协议规范,一共有三中不同的滤波器模式。
第一种:
32位可屏蔽标识符接收滤波器,报文滤波,第二种:
16位可屏蔽标识符接收滤波器,报文滤波,第三种:
8位可屏蔽标识符接收滤波器,报文滤波,滤波器使用三组寄存器来提供滤波器配置。
首先,CANIDAC寄存器决定页配置中的滤波器大小和滤波器数量;其次,寄存器CANIDMR0/1/2/3通过把0放在滤波器寄存器中的适当位位置来决定将比较的滤波器位;最后,寄存器CANIDAR0/1/2/3决定CANIDMR0/1/2/3所决定的位的值。
例如,当滤波器值为:
0001x1001x0TheCANIDMR0/1/2/3寄存器将被配置为:
00001000010因此,所有报文标识符位(除位1和位6)会与CANIDAR0/1/2/3寄存器进行比较。
这些寄存器将配置为:
00010100100在这种情况下,位1和6设置为0,但由于它们被忽略,因此效力等同于把它们设置为1。
报文滤波,从上面的例子可以看出,滤波规律为:
与寄存器CANIDMR中为1的位相对应的标识符位不用进行滤波,若寄存器CANIDMR中的某一位为0,相对应标示符位要想通过滤波,则标示符的此位值必须和寄存器CANIDAR相对应位相同。
CANIDMR0/1/2/3为00001000010CANIDAR0/1/2/3为00010100100则能通过此滤波器的标示符有1、000101001102、000111001103、000101001004、00011100100,报文滤波,4、波特率设置,波特率(Baudrate)即调制速率,指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数。
通过对CAN位定时寄存器CANBIT及CAN波特率预分频扩展寄存器CANBRPE的设置可以得到需要的CAN通信波特率。
波特率设置,在了解波特率之前,先了介绍位时间的概念。
位时间是指每一bit传输所需要的时间。
若通信波特率为250Kbit/s,那么每一个bit的时间就为4s,即位时间为4s。
根据CAN规范,位时间被分成4个时间段:
同步段、传播时间段、相位缓冲段1和相位缓冲段2。
波特率设置,每个段由具体、可编程数量的时间份额(timequanta)组成。
时间份额是位时间的基本时间单元,它的长度(tq)由CAN控制器的系统时钟()和波特率预分频器(BRP)定义:
CAN模块的系统时钟是其CAN模块时钟(CAN_CLK)输入的频率。
波特率设置,同步段(Sync_Seg):
是位时间的一部分,在此段内期望有一个CAN总线电平边沿出现;如果边沿出现在Sync_Seg之外,那么它与Sync_Seg之间的长度叫做沿相位误差。
传播时间段(Prop_Seg):
这部分时间用于补偿网络内的物理延时时间。
它是信号在总线上的传播时间、接收电路延时及总线驱动器延时的总和的2倍。
相位缓冲段(Phase_Seg1和Phase_Seg2):
这些相位缓冲段用于补偿跳变沿的相位误差,可以在重同步时延长或缩短。
通过不同的位时间配置可以得到指定的位速率,但是为了CAN网络可以正常的工作,必须考虑物理延迟时间和振荡器的容限。
波特率设置,位定时配置是由CANBIT寄存器中的2个寄存器字节来完成的。
Prop_Seg与Phase_Seg1的和(作为TSEG1)与Phase_Seg2(作为TSEG2)组合成1个字节,而SJW和BRP组合成另一个字节。
也就是总线计时寄存器0(CANBTR0)和总线计时寄存器1(CANBTR1)。
CANBTR0设置SJW和BRP的值:
波特率设置,SJW(同步跳转宽度)表示:
决定重同步会将采样点移动多远,移动距离的上限由用于补偿沿相位误差的相位缓冲段给定。
波特率设置,BRP(波特率预分频器):
该位确定用来构建位计时的时间冲量(Tq)时钟。
波特率设置,CANBTR1设置TSEG和SAMP的值。
波特率设置,SAMP表示采样的个数,0每位1个样本1每位3个样本1如果SAMP=0,得到的位值等于采样点上定位的单个位的值。
如果SAMP=1,得到的位值通过在总共三个采样点上使用多数规则来决定。
要实现更高比特速率,建议每个位时间只采集一个样本。
波特率设置,TSEG表示:
位时间内的时间段固定每个位时间的时钟周期数和采样点的位置。
值设置如下:
波特率设置,波特率设置,例:
设总线频率为32MHz,要使总线传输速度(波特率)为250kbit/s,则应当如何设置寄存器CANBTR0和CANBTR1的值?
波特率设置,波特率设置,波特率设置,5、位同步,所谓同步就是接收端要按照发送端发送每个码元的起止时刻和速率来接收数据。
在通信时发送与接收之间由于各种原因都会导致一定的延迟,接受端要校准自己的实时和重复频率,以便和发送端取得一致,这一过程就称为同步过程。
CAN总线位同步的实现:
CAN总线的位同步只有在节点检测到“隐性位”逻辑1到“显性位”逻辑0的跳变时才会产生。
位同步,CAN协议规定了两种类型的同步情硬同步和重同步同步是由节点自身完成的,节点将检测到来自总线的沿与其自身的位定时相比较,并通过硬同步或重同步适配(调整)位定时。
位同步,所谓硬同步,就是由节点检测到的,来自总线的沿强迫节点立即确定出其内部位时间的起始位置(同步段的起始时刻)。
硬同步的结果是,沿到来时刻的前一时刻(以时间份额tQ量度),即成为节点内部位时间同步段的起始时刻,并使内部位时间从同步段重新开始。
这就是规范中所说的“硬同步强迫引起硬同步的沿处于重新开始的位时间同步段之内”。
硬同步一般用于帧的开始,即总线上的各个节点的内部位时间的起始位置(同步段)是由来自总线的一个报文帧的帧起始的前沿决定的。
位同步,同步段的时间长度为1个时间份额来自总线的引起硬同步的沿在t1时刻到来,则节点检测到该沿。
将t1时刻的前一时刻t0(以tQ为周期)作为内部位时间同步段的起始时刻。
位同步,所谓重同步,就是节点根据沿相位误差的大小调整其内部位时间,以使节点内部位时间与来自总线的报文位流的位时间接近或相等。
作为重同步的结果,PHASE-SEG1可被延长或PHASE-SEG2可被缩短,从而使节点能够正确地接收报文。
位同步,位同步,上图有两位,第一位的开始帧位于同步段,可用硬同步实现同步。
但是第二位的开始帧没有处于同步段,而是位于PS1段中,说明节点内部的位时间小于总线位流的位时间。
为了使节点能从总线上通过采样得到正确的位数值,需使节点内部的位时间延长,以使节点内部位时间与总线位流位时间接近或相等。
因此,在这种情况下节点应采取的重同步策略为:
使PS1延长一定宽度(上图中PS1延长2个时间份额,即同步跳转宽度为大于等于2个时间份额,如为3个时间份额),位同步,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAN 总线 原理 技术 应用
![提示](https://static.bingdoc.com/images/bang_tan.gif)