控制器局域网总线CAN协议规范

上传人:博****1 文档编号:584548478 上传时间:2024-08-31 格式:PPT 页数:92 大小:1,005.50KB
返回 下载 相关 举报
控制器局域网总线CAN协议规范_第1页
第1页 / 共92页
控制器局域网总线CAN协议规范_第2页
第2页 / 共92页
控制器局域网总线CAN协议规范_第3页
第3页 / 共92页
控制器局域网总线CAN协议规范_第4页
第4页 / 共92页
控制器局域网总线CAN协议规范_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《控制器局域网总线CAN协议规范》由会员分享,可在线阅读,更多相关《控制器局域网总线CAN协议规范(92页珍藏版)》请在金锄头文库上搜索。

1、控制器局域网总线控制器局域网总线CAN什么是什么是CAN ?vCAN CAN 全称为全称为Controller Area Network Controller Area Network 即控制器局域网,是即控制器局域网,是国际上应用最广泛的现场总线之一;国际上应用最广泛的现场总线之一;v最初最初CAN CAN 被设计作为汽车环境中的微控制器通讯在车载各电被设计作为汽车环境中的微控制器通讯在车载各电子控制装置子控制装置ECU ECU 之间交换信息形成汽车电子控制网络比如发之间交换信息形成汽车电子控制网络比如发动机管理系统变速箱控制器仪表装备电子主干系统中均嵌入动机管理系统变速箱控制器仪表装备电子

2、主干系统中均嵌入CAN CAN 控制装置;控制装置;v一个由一个由CAN CAN 总线构成的单一网络中理论上可以挂接无数个节总线构成的单一网络中理论上可以挂接无数个节点,实际应用中节点数目受网络硬件的电气特性所限制。例点,实际应用中节点数目受网络硬件的电气特性所限制。例如当使用如当使用Philips P82C250 Philips P82C250 作为作为CAN CAN 收发器时同一网络中允收发器时同一网络中允许挂接许挂接110 110 个节点;个节点;vCAN CAN 可提供高达可提供高达1Mbit/s 1Mbit/s 的数据传输速率这使实时控制变得的数据传输速率这使实时控制变得非常容易,另

3、外硬件的错误检定特性也增强了非常容易,另外硬件的错误检定特性也增强了CAN CAN 的抗电磁的抗电磁干扰能力干扰能力。CAN 是怎样发展起来的?是怎样发展起来的? vCANCAN最初出现在最初出现在8080年代末的汽车工业中,由德国年代末的汽车工业中,由德国BoschBosch公司最先提出。当时,由于消费者对于汽车功公司最先提出。当时,由于消费者对于汽车功能的要求越来越多,而这些功能的实现大多是基于能的要求越来越多,而这些功能的实现大多是基于电子操作的,这就使得电子装置之间的通讯越来越电子操作的,这就使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线。提出复杂,同时意味着需要更多

4、的连接信号线。提出CANCAN总线的最初动机就是为了解决现代汽车中庞大的电总线的最初动机就是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。子控制装置之间的通讯,减少不断增加的信号线。于是,他们设计了一个单一的网络总线,所有的外于是,他们设计了一个单一的网络总线,所有的外围器件可以被挂接在该总线上。围器件可以被挂接在该总线上。19931993年,年,CAN CAN 已成已成为国际标准为国际标准ISO11898(ISO11898(高速应用高速应用) )和和ISO11519ISO11519(低速(低速应用)。应用)。 vCANCAN是一种多主方式的串行通讯总线,基本设是一种多

5、主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传而且能够检测出产生的任何错误。当信号传输距离达到输距离达到10Km10Km时,时,CAN CAN 仍可提供高达仍可提供高达50Kbit/s50Kbit/s的数据传输速率。的数据传输速率。v由于由于CANCAN总线具有很高的实时性能,因此,总线具有很高的实时性能,因此,CANCAN已经在汽车工业、航空工业、工业控制、已经在汽车工业、航空工业、工业控制、安全防护等领域中得到了广泛应用。安全防护等领域中得到了广泛应用。 CAN总线的主要特点v它是一种多主总

6、线,通信介质可以是双绞线、同轴电缆和光纤,通信距离最远可达10km(5kb/s),最高速率可达1Mb/s(40m).vCAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。vCAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采用这种方法的优点可使网络内的节点个数在理论上不受限制,数据块的标识码可由11位或29位二进制数组成,因此可以定义211或229个不同的数据块,让各节点通过滤波的方法分别接收指定标识码的数据。这种按数据块编码的方式,还可使不同的节点同时接收到相同的数据

7、,这一点在分布式控制系统中非常有用。CAN总线的特点v数据段长度最多为8个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而保证了通信的实时性。在每帧中都有CRC校验及其它检错措施,保证了数据通信的可靠性。vCAN总线采用了多主竞争式总线结构,具有多主站运行和分散仲裁的串行总线以及广播通信的特点。CAN总线上任意节点可在任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。v网络上的节点可以定义成不同的优先级,利用接口电路中线与功能,巧妙地实现无破坏性的基于优先权的仲裁v网络上的节点在错误严重的情况下,具有自动

8、关闭总线的功能CAN 是怎样工作的?是怎样工作的?vCAN 通讯协议主要描述设备之间的信息传递方式,CAN 层的定义与开放系统互连模型OSI 一致。每一层与另一设备上相同的那一层通讯实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。vCAN 的规范定义了模型的最下面两层:数据链路层和物理层。应用层协议可以由CAN 用户定义成适合特别工业领域的任何方案。已在工业控制和制造业领域得到广泛应用的标准是DeviceNet ,这是为PLC 和智能传感器设计的;在汽车工业许多制造商都应用他们自己的标准。CAN的工作原理的工作原理v当CAN总线上的一个节点(站)发送数据时,它以报文

9、形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。vCAN总线的报文发送和接收。当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时, 转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些

10、报文是否是发给自己的,以确定是否接收它。 v由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。CAN的一些基本概念的一些基本概念v报文报文 总线上的信息以不同的固定报文格式发送,但长度受限。当总线空闲时任何连接的单元都可以开始发送新的报文。v信息路由信息路由 在CAN系统里,节点不使用任何关于系统配置的信息

11、(比如站地址)。以下是几个重要的概念: 系统灵活性:不需要改变任何节点的应用层及相关的软件或硬件,就可以在CAN网络中直接添加节点。 报文路由:报文的内容由识别符命名。识别符不指出报文的目的地,但解释数据的含义。因此网络上所有节点都可以通过报文滤波确定是否应对该数据做出反应。 多播:由于引入了报文滤波的概念,任何数目的节点都可以接受报文,并同时对此报文做出反应。 数据连贯性:在CAN网络内,可以确保报文同时被所有的节点接受(或同时不接受)。因此系统的连贯性是通过多播和错误处理的原理实现的。v报文报文 总线上的信息以不同的固定报文格式发送,但长度受限。当总线空闲时任何连接的单元都可以开始发送新的

12、报文。v位速率位速率: 不同的系统,CAN的速度不同。可是在一个给定系统中,位速率是唯一的,并且是固定的。v优先权优先权: 在总线访问期间,识别符定义一个静态的报文优先权。v远程数据请求远程数据请求: 通过发送远程帧,需要数据的节点可以请求另一节点发送相应的数据帧。数据帧和相应的远程帧是由相同的标识符命名的。v多主机多主机: 总线空闲时,任何单元都可以开始传送报文。具有较高优先权报文的单元可以获得总线访问权。v仲裁:仲裁: 只要总线空闲,任何单元都可以开始发送报文。如果2个或2个以上的单元同时开始传送报文,那么就会有总线访问冲突。通过使用识别符的位形式仲裁就可以解决冲突。仲裁的机制确保信息和时

13、间均不会损失。当具有相同识别符的数据帧和远程帧同时初始化时,数据帧优先于远程帧。仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送。如果发送的是“隐性”电平而监控到“显性”电平(见总线值),那么该单元就失去了仲裁,必须退出发射状态。v安全性安全性:为了获得最安全的数据发送,CAN的每一个节点均采取了很强的措施进行错误检测、错误标定及错误自检。v错误检测错误检测:为了检测错误,必须采取以下的措施: 监视(发送器对发送位的电平与被监控的总线电平进行比较) 循环冗余检查 位填充 报文格式检查v错误检测的执行:错误检测的执行:错误检测的机制要具有以下

14、的属性: 检测到所有的全局错误 检测到发送器所有的局部错误 可以检测到报文里多达5个的任意分布错误 检测到一个报文长度低于15位的突发性错误 检测到一个报文里奇数个的错误 对于没有被检测到的错误报文,其残余错误可能性概率低于报文错误率4.710-11。v错误标定和恢复时间错误标定和恢复时间: 任何检测到错误的节点会标志出已损坏的报文。此报文会失效并自动开始重新传输。如果不再出现新错误的话,从检测到错误到下一报文的传送开始为止,恢复时间最多为29个位的时间。v故障界定:故障界定: CAN节点能够把永久故障和短暂扰动区分开,永久故障的节点会被关闭。v连接:连接: CAN串行通讯链路是可以连接许多单

15、元的总线。理论上,可连接无数多的单元。但由于实际上受延迟时间或总线线路上电气负载的影响,连接单元的数量是有限的。v单通道单通道: 总线是由单一进行双向位信号传送的通道组成。通过此通道可以获得数据的再同步信息。要使此通道实现通讯,有许多方法可以采用,如使用单芯线(加上接地)、2条差分线、光缆等。这本技术规范不限制这些实现方法的使用,即未定义物理层。v总线值总线值: 总线可以具有两种互补的逻辑值之一:“显性”位和“隐性”位同时传送时,总线的结果值为“显性”。比如,在执行总线的“线与”时,逻辑0代表显性等级,逻辑1代表隐性等级。本技术规范不给出这些逻辑电平的物理状态(如电压和光)。v应答应答: 所有

16、的接收器检查报文的连贯性。对于连贯的报文,连接器应答;对于不连贯的报文,接收器做出标志。v睡眠模式睡眠模式/唤醒唤醒: 为了减少系统电源的功率消耗。可以将CAN器件设为睡眠模式以便停止内部活动及断开与总线驱动器的连接。CAN器件可由总线激活,或系统内部状态而被唤醒。唤醒时,虽然传输层要等待一段时间使系统振荡器稳定,然后还要等待一段时间直到与总线活动同步(通过检查11个连续的隐性的位),但在总线驱动器被重新设置为“总线在线”之前,内部运行已重新开始。为了唤醒系统上正处于睡眠模式的其他节点,可以使一特殊的唤醒报文,此报文具有专门的、最低等级的识别符。(rrr rrrd rrrr; r=“隐性” d

17、 =“显性”)CAN 具有以下的属性具有以下的属性v报文的优先权报文的优先权v保证延迟时间保证延迟时间v设置灵活设置灵活v时间同步的多点接收时间同步的多点接收v系统宽数据的连贯性系统宽数据的连贯性v多主机多主机v错误检测和标定错误检测和标定v只要总线一处于空闲就自动将破坏的报文重新传输只要总线一处于空闲就自动将破坏的报文重新传输v将节点的暂时性错误和永久性错误区分开来并且可将节点的暂时性错误和永久性错误区分开来并且可以自动关闭错误的节点以自动关闭错误的节点CAN总线的网络结构vCAN总线也是建立在ISO参考模型基础上的,不过只采用了其中最关键的两层,即物理层和数据链路层.v物理层的主要内容是规

18、定通信介质的机械、电气、功能和规程特性 v数据链路层的主要功能是将要发送的数据进行包装,即加上差错校验位、数据链路协议的控制信息、头尾标记等附加信息组成数据帧,从物理信道上发送出去,在接收道数据帧后,再把附加信息去掉,得到通信数据 媒体访问控制子层MAC:传输规则 逻辑控制子层LLC:报文的滤波和报文的处理vCAN总线的物理层和数据链路层的功能在CAN控制器中完成CAN-bus 规范规范vCAN-bus CAN-bus 规范(规范( Version 2.0 Version 2.0 ) CAN2.0A CAN2.0A :CANCAN标准报文格式标准报文格式 CAN2.0B CAN2.0B :CA

19、NCAN标准报文格式和扩展标准报文格式和扩展报文格式报文格式vCAN-bus CAN-bus 技术规范技术规范的目的技术规范技术规范的目的 定义数据链路层定义数据链路层 定义定义CANCAN协议在周围各层中所发挥的协议在周围各层中所发挥的作用作用帧格式帧格式v二种不同的二种不同的CANCAN帧帧v CANCAN规范规范2.0B2.0B中引入第二种报文格式中引入第二种报文格式v 标准帧和扩展帧标准帧和扩展帧 具有具有1111位标识符的位标识符的CANCAN帧称为:标准帧帧称为:标准帧 具有具有2929位标识符的位标识符的CANCAN帧称为:扩展帧帧称为:扩展帧v规定规定CAN CAN 控制器必须

20、有一个控制器必须有一个11 11 位的标志符,同时在位的标志符,同时在2.0B 2.0B 版本中规定版本中规定CAN CAN 控制器的标志符长度可以是控制器的标志符长度可以是11 11 位或位或29 29 位。遵循位。遵循CAN2.0B CAN2.0B 协议的协议的CAN CAN 控制器可以发控制器可以发送和接收送和接收11 11 位标识符的标准格式报文或位标识符的标准格式报文或29 29 位标识位标识符的扩展格式报文。如果禁止符的扩展格式报文。如果禁止CAN2.0BCAN2.0B,则,则CAN CAN 控制控制器只能发送和接收器只能发送和接收11 11 位标识符的标准格式报文,而位标识符的标

21、准格式报文,而忽略扩展格式的报文结构但不会出现错误忽略扩展格式的报文结构但不会出现错误帧类型帧类型 报文传输由以下4个不同的帧类型所表示和控制:v数据帧数据帧:数据帧携带数据从发送器至接收器。v远程帧远程帧:总线单元发出远程帧,请求发送具有同一识别符的数据帧。v错误帧错误帧:任何单元检测到一总线错误就发送错误帧。v过载帧过载帧:过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一个附加的延时。数据帧(或远程帧)通过帧间空间与前述各帧分开。1 1、数、数 据据 帧帧数据帧由7个不同的位场组成:v帧起始v仲裁场v控制场v数据场vCRC场v应答场v帧结尾数据场的长度可以为0。数据帧结构数据帧结构扩

22、展帧格式扩展帧格式v标准帧格式:具有标准帧格式:具有1111位标识符位标识符v扩展帧格式:具有扩展帧格式:具有2929位标识符位标识符v两种帧格式的区别通过两种帧格式的区别通过“控制场控制场”(ControlControlvField Field )中的)中的“识别符扩展识别符扩展”位(位(IDE bitIDE bit)来实现来实现v两种帧格式可出现在同一总线上两种帧格式可出现在同一总线上扩展数据帧结构扩展数据帧结构帧帧 起起 始始v它标志数据帧和远程帧的起始,由一个单独的“显性”位组成。v只在总线空闲(参见“总线空闲”)时,才允许站开始发送信号。所有的站必须同步于首先开始发送信息的站的帧起始

23、前沿(参见“硬同步”)。仲仲 裁裁 场场v标准格式帧与扩展格式帧的仲裁场格式不同标准格式帧与扩展格式帧的仲裁场格式不同- - 标准格式里仲裁场由标准格式里仲裁场由11 11 位识别符和位识别符和RTR RTR 位组位组成识别符位由成识别符位由ID-28ID-18ID-28ID-18- - 扩展格式里仲裁场包括扩展格式里仲裁场包括29 29 位识别符位识别符SRR SRR 位位IDE IDE 位位RTR RTR 位其识别符由位其识别符由ID-28. ID-0ID-28. ID-0v为了区别标准格式和扩展格式前版本为了区别标准格式和扩展格式前版本CAN CAN 规规范范1.0-1.2 1.0-1.

24、2 的保留位的保留位r1 r1 现表示为现表示为IDE BitIDE Bitv识别符v识别符标准格式 识别符的长度为11 位,相当于扩展格式的基本ID (Base ID)。 这些位按ID-28 到ID-18 的顺序发送。最低位是ID-18,7 个最高位(ID-28 - ID-22 )必须不能全是隐性。v识别符扩展格式 和标准格式形成对比扩展格式,由29 位组成。其格式包含两个部分:11 位基本ID、 18 位扩展ID。 基本ID :基本ID 包括11 位。它按ID-28 到ID-18 的顺序发送。它相当于标准识别符的格式。基本ID定义扩展帧的基本优先权v扩展ID :扩展ID 包括18 位。它按

25、ID-17 到ID-0 顺序发送。vRTR RTR 位(标准格式以及扩展格式)位(标准格式以及扩展格式)RTR RTR 的全称为远程发送请求位(的全称为远程发送请求位(Remote Remote Transmission Request BITTransmission Request BIT)RTR RTR 位在数据帧里必须为位在数据帧里必须为“显性显性”,而在远程,而在远程帧里必须为帧里必须为“隐性隐性”。v扩展格式里,基本扩展格式里,基本ID ID 首先发送,其次是首先发送,其次是IDE IDE 位和位和SRR SRR 位。扩展位。扩展ID ID 的发送位于的发送位于SRR SRR 位之后

26、。位之后。vSRR SRR 位(扩展格式)位(扩展格式)vSRR SRR 的全称是的全称是“替代远程请求位替代远程请求位”(Substitute Remote Request BITSubstitute Remote Request BIT)vSRR SRR 是一隐性位。它在扩展格式的标准帧是一隐性位。它在扩展格式的标准帧RTR RTR 位位置,因此代替标准帧的位位置,因此代替标准帧的RTR RTR 位。位。v因此,标准帧与扩展帧的冲突是通过标准帧因此,标准帧与扩展帧的冲突是通过标准帧优先于扩展帧这一途径得以解决的,扩展帧优先于扩展帧这一途径得以解决的,扩展帧的基本的基本ID ID 如同标准帧

27、的识别符。如同标准帧的识别符。vIDE IDE 位(扩展格式)位(扩展格式)vIDE IDE 的全称是的全称是“识别符扩展位识别符扩展位”(Identifier Extension BitIdentifier Extension Bit)vIDE IDE 位属于位属于 扩展格式的仲裁场扩展格式的仲裁场 标准格式的控制场标准格式的控制场v标准格式里的标准格式里的IDE IDE 位为位为“显性显性”,而扩展格,而扩展格式里的式里的IDE IDE 位为位为“隐性隐性”。控制场(标准格式以及扩展格式)控制场(标准格式以及扩展格式)v控制场由控制场由6 6 个位组成。标准格式的控制场格个位组成。标准格式

28、的控制场格式和扩展格式的不同,标准格式里的帧包括式和扩展格式的不同,标准格式里的帧包括数据长度代码、数据长度代码、IDE IDE 位(为显性位)及保留位(为显性位)及保留位位r0 r0 。扩展格式里的帧包括数据长度代码和。扩展格式里的帧包括数据长度代码和两个保留位:两个保留位:r1 r1 和和r0r0,其保留位必须发送为,其保留位必须发送为显性,但是接收器认可显性,但是接收器认可“显性显性”和和“隐性隐性”位的组合。位的组合。数据长度代码(标准格式以及扩展格式)数据长度代码(标准格式以及扩展格式)v数据长度代码指示了数据场里的字节数量。数据长度代码为4 个位,它在控制场里发送。v数据长度代码中

29、数据字节数的编码v缩写: d 显性;r 隐性数据帧允许的数据字节数0,1,.,7,8其他的数值不允许使用数数 据据 场(标准格式以及扩展格式)场(标准格式以及扩展格式)v数据场由数据帧中的发送数据组成。它可以为08个字节,每个字节包含了8个位,首先发送MSB。CRC 场(标准格式以及扩展格式)场(标准格式以及扩展格式)vCRC 场包括CRC 序列CRC SEQUENCE, 其后是CRC 界定符CRC DELIMITER。应应 答答 场(标准格式以及扩展格式)场(标准格式以及扩展格式)v应答场长度为2个位,包含应答间隙的应答界定符。在应答场里,发送站发送两个隐性位。当接收器正确地接受到有效的报文

30、,接收器就会在应答间隙期间向发送器发送一显性的位以示应答。v应答间隙:所有接受到匹配CRC序列的站会在应答间隙期间用一个显性的位写入发送器的隐性位来做出回答。vACK界定符:ACK界定符是ACK场的第二个位,并且是一个必须为隐性的位。因此,应答间隙被两个隐性的位所包围,也就是CRC界定符和ACK界定符帧帧 结结 尾(标准格式以及扩展格式)尾(标准格式以及扩展格式)v每一个数据帧和远程帧均由一个标志序列界定。这个标志序列由7个隐性位组成。2 2、远、远 程程 帧帧v通过发送远程帧,作为某数据接收器的站通过其资源节点对不同的数据传送进行初始化设置。v远程帧由6个不同的位场组成:帧起始、仲裁场、控制

31、场、CRC场、应答场、帧结尾。v与数据帧相反,远程帧的RTR位是隐性的。它没有数据场,数据长度代码的数值是不受制约的(可以标注为容许范围里08的任何数值)。此数值是相应于数据帧的数据长度代码。vRTR位的极性表示了所发送的帧是一数据帧(RTR位“显性”)还是一远程帧(RTR位“隐性”)。3 3、错、错 误误 帧帧v错误帧由两个不同的场组成。第一个场用作为不同站提供的错误标志的叠加。第二个场是错误界定符。v为了能正确地中止错误帧,一个“错误被动”的节点要求总线至少有长度为3个位时间的总线空闲(如果“错误被动”的接收器有本地错误的话)。因此,总线的载荷不应为100。v错误标志错误标志v有两种形式的

32、错误标志:主动错误标志和被动错误标志。主动错误标志由6个连续的“显性”位组成。被动错误标志由6个连续的“隐性”的位组成,除非被其他节点的“显性”位重写。v检测到错误条件的“错误主动”的站通过发送主动错误标志,以指示错误。错误标志的形式破坏了从帧起始到CRC界定符的位填充规则(参见“编码”),或者破坏了应答场或帧末尾场的固定形式。所有其他的站由此检测到错误条件并与此同时开始发送错误标志。因此。“显性”位(此“显性”位可以在总线上监视)的序列导致一个结果,这个结果就是把各个单独站发送的不同的错误标志叠加在一起。这个顺序的总长度最小为6个位,最大为12个位。v检测到错误条件的“被动错误”的站试图通过

33、发送被动错误标志以示错误。“错误被动”的站等待6个相同极性的连续位(这6个位处于被动错误标志的开始)。当这6个相同的位被检测到时,被动错误标志的发送就完成了。v错误界定符包括8个“隐性”的位。v错误标志传送了以后,每一站就发送“隐性”的位并一直监视总线直到检测出一个“隐性”的位为止。然后就开始发送7位以上的“隐性”位。4 4、过、过 载载 帧帧v过载帧包括两个位场:过载标志和过载界定符。v有三种过载条件都会导致过载标志的传送:(1)接收器的内部条件(此接收器对于下一数据帧或远程帧需要有一延时)(2)间歇场期间检测到一“显性”位(3)如果CAN 节点在错误界定符或过载界定符的第8 位(最后一位)

34、采样到一个显性位,节点会发送一个过载帧(不是错误帧)错误计数器不会增加。v由过载条件1而引发的过载帧只允许起始于所期望的间歇场的第一个位时间开始。而由过载条件2和3引起的过载帧应起始于所检测到“显性”位之后的位。v通常为了延时下一个数据帧或远程帧两种过载帧均可产生v过载标志过载标志 过载标志由6个显性的位组成。过载标志的所有形式和主动错误标志一样。 过载标志的形式破坏了间歇场的固定形式。因此,所有其他的站都检测到一个过载条件并与此同时发出过载标志。(万一有的节点在间歇的第三个位期间于本地检测到“显性”位,则其他的节点将不能正确地解释过载标志,而是将这6个“显性”位中的第一个位解释为帧的起始。这

35、第六个“显性”的位破坏了产生错误条件的位填充的规则)。v过载界定符过载界定符 过载界定符包括8个隐性的位。 过载界定符的形式和错误界定符一样。过载标志被传送后,站就一直监视总线直到检测到一个从“显性”位到“隐性”位的发送(过渡形式)。此时,总线上的每一个站完成了过载标志的发送,并开始同时发送7个以上的“隐性”位。帧间空间帧间空间v数据帧(或远程帧)与其前面帧的隔离是通过帧间空间实现的,无论其前面的帧为何类型(数据帧、远程帧、错误帧、过载帧)。有所不同的是过载帧与错误帧之前没有帧间空间,多个过载帧之间也不是由帧间空间隔离的。v帧间空间包括间歇场、总线空闲位场。如果“错误被动”的站已作为前一报文的

36、发送器时,则其帧空间除了间歇、总线空闲外,还包括称作挂起传送的位场。对于已作为前一报文发送器的“错误被动”的站,则其帧间空间如下图所示:对于已作为前一报文发送器的“错误主动”的站,则其帧间空间如下图所示:间歇间歇v间歇包括三个“隐性”的位。v间歇期间,所有的站均不允许传送数据帧或远程帧,唯一要做的就是提示一个过载条件。备注:v如果CAN 节点有一报文等待发送并且节点在间歇的第三位采集到一显性位,则此位被解释为帧的起始位,并从下一个位开始发送报文的识别符首位,而不用首先发送帧的起始位或成为一接收器。总线空闲总线空闲v总线空闲的时间长度是任意的。只要总线被认定为空闲,任何等待发送信息的站就会访问总

37、线。在发送其他信息期间,有报文被挂起,对于这样的报文,其传送起始于间歇之后的第一位。v总线上检测到的“显性”的位可被解释为帧的起始。挂起传送挂起传送v“错误被动”的站发送报文后,站就在下一报文开始传递之前或总线空闲之前发出8个“隐性”的位跟随在间歇的后面。如果与此同时另一个站开始发送报文(有另一站引起),则此站就作为这个报文的接收器。关于帧格式的符合性关于帧格式的符合性v标准格式相当于在CAN1.2 规范中描述的数据/远程帧,而扩展格式是CAN 协议的一新特色。为了使控制器的设计相对地简单,不要求扩展格式的仪器达到它的满扩展(比如在扩展格式里发送报文或接收来自于报文的数据)。 但是,仪器必须无

38、条件地支持标准格式。v如果新的控制器至少具有以下属性(这些属性与3.1 和3.2 定义的帧格式有关),则被认为是符合CAN规范 : 每一新的控制器支持标准格式 每一新的控制器可以接收扩展格式的报文。这需要扩展格式不因其格式而被破坏。可是,不要求新的控制器非得支持扩展格式。发送器发送器/接收器定义接收器定义v发送器发送器v产生报文的单元被称之为报文的发送器。此单元保持作为报文发送器直到总线出现空闲或此单元失去仲裁为止。v接收器接收器v如果有一个单元不作为报文的发送器并且总线也不空闲,则这个单元就被成为报文的接收器。报文滤波报文滤波v报文滤波取决于整个识别符。允许在报文滤波中将任何的识别符位设置为

39、“不考虑”的可选屏蔽寄存器,可以选择多组的识别符,使之被映射到隶属的接收缓冲器里。v如果使用屏蔽寄存器,它的每一个位必须是可编程的,即他们能够被允许或禁止报文滤波。屏蔽寄存器的长度可以包含整个识别符,也可以包含部分的识别符。报文校验报文校验v校验报文是否有效的时间点,发送器与接收器各不相同。v发送器发送器:v如果直到帧的末尾位均没有错误,则此报文对发送器有效。如果报文破坏,则报文会根据优先权自动重发。为了能够和其他信息竞争总线,重新传输必须在总线空闲时启动。v接收器接收器:v如果直到最后的位(除了帧末尾位)均没有错误,则报文对于接收器有效。帧末尾最后的位被置于“不重要”状态,如果是一个“显性”

40、电平也不会引起格式错误。编码编码v位流编码:v帧的部分,例如帧起始、仲裁场、控制场、控制场以及CRC序列,均通过位填充的方法编码。无论何时,发送器只要检测到位流里有5个连续识别的位,便自动在位流里插入一补码位。v数据帧或远程帧(CRC界定符、应答场和帧末尾)的剩余场形式相同,不填充。错误帧和过载帧的形式也相同,但并不通过位填充的发放进行编码。v其报文里的位流根据“不返回零”(NRZ)之方法来编码。这就是说,在整个位时间里,位电平要么为“显性”,要么为“隐性”。v错误类型有以下五种:(这五种错误不会相互排斥)错误类型有以下五种:(这五种错误不会相互排斥)v位错误:站单元在发送位的同时也对总线进行

41、监视。如果发位错误:站单元在发送位的同时也对总线进行监视。如果发送的位值与所监视的位置不相符,则在此位时间里检测到一送的位值与所监视的位置不相符,则在此位时间里检测到一个位错误。但是在仲裁场的填充位流期间或个位错误。但是在仲裁场的填充位流期间或ACKACK间隙发送一间隙发送一“隐性隐性”位的情况是例外的位的情况是例外的此时,当监视到一此时,当监视到一“显性显性”位时,不会发出位错误。当发送器发送一个被动错误标志但位时,不会发出位错误。当发送器发送一个被动错误标志但检测到检测到“显性显性”位时,也不视为位错误。位时,也不视为位错误。v填充错误:如果在使用位填充法进行编码的信息中,出现了填充错误:

42、如果在使用位填充法进行编码的信息中,出现了第第6 6个连续相同的位电平时,将检测到一个填充错误。个连续相同的位电平时,将检测到一个填充错误。vCRCCRC错误:错误:CRCCRC序列包括发送器的序列包括发送器的CRCCRC计算结果。接收器计算计算结果。接收器计算CRCCRC的方法与发送器相同。如果计算结果与接收到的的方法与发送器相同。如果计算结果与接收到的CRCCRC序列序列的结果不相符,则检测到一个的结果不相符,则检测到一个CRCCRC错误。错误。v形式错误:当一个固定形式的场含有形式错误:当一个固定形式的场含有1 1个或多个非法位,则个或多个非法位,则检测到一个形式错误。检测到一个形式错误

43、。v应答错误:只要在应答错误:只要在ACKACK间隙期间所监视的位不为间隙期间所监视的位不为“显性显性”,则发送器会检测到一个应答错误。则发送器会检测到一个应答错误。错误处理错误处理错误标定错误标定v检测到错误条件的站通过发送错误标志指示错误。对于“错误主动”的节点,错误信息为“主动错误标志”。对于“错误被动”的节点,错误信息为“被动错误标志”。站检测到无论是位无论是位错误、填充错误、形式错误,还是应答错误,这个站会在下一位时发出错误标志信息。v只要检测到的错误的条件是CRC错误,错误标志的发送开始于ACK界定符之后的位(其他的错误条件除外)。故障界定故障界定至于故障界定,单元的状态可能为以下

44、三种:v错误主动v错误被动v总线关闭v“错误主动”的单元可以正常的参与总线通讯并在错误被检测到时发出主动错误标志。v“错误被动”的单元不允许发送主动错误标志。“错误被动”的单元参与总线通讯而且在错误被检测到时只发出被动的错误标志。而且,发送以后,“错误被动”单元将在预设下一个发送之前处于等待状态。(见“挂起发送”)v“总线关闭”的单元不允许在总线上有任何的影响(如关闭输出驱动器)在每一总线单元里实现两种计数以便故障界定:v发送错误计数v接受错误计数 这些计数按以下规则改变(注意:在给定的报文发送期间,可能要用到的规则不止一个):v1. 当接收器检测到一个错误,接收错误计数就加1。在发送主动错误

45、标志或过载标志期间所检测到的错误为位错误时,接收错误计数器值不加1。v2. 当错误标志发送以后,接收器检测到的第一位为“显性”时,接收错误计数值加8。v3 当发送器发送一错误标志时,发送错误计数器值加8。v例外情况1:v发送器为错误被动,并检测到一应答错误(注:此应答错误由检测不到一“显性”应答以及当发送被动错误标志时检测不到一“显性”位而引起)。v例外情况2:v发送器因为填充错误而发送错误标志(注:此填充错误发生于仲裁期间,引起填充错误是由于:填充位位于RTR位之前,并已作为“隐性”发送,但是却被监视成“显性”)。例外情况1和2时,发送错误计数器值不改变。v4 发送主动错误标志或过载标志时,

46、如果发送器检测到位错误,则发送错误计数器值加8。v5当发送主动错误标志或过载标志时,如果接收器检测到位错误,则接收错误计数器值加8。v6在发送主动错误标志、被动错误标志或过载标志以后,任何节点最多容许7个连续的“显性”位。以下的情况,每一发送器将它们的发送错误计数值加8,及每一接收器的接收错误计数值加8: 当检测到第14个连续的“显性”位后; 在检测到第8个跟随着被动错误标志的连续的显性位以后; 在每一附加的8个连续“显性”位顺序之后。v7报文成功传送后(得到应答及直到帧末尾结束没有错误),发送错误计数值减1,除非已经是0。v8如果接收错误计数值介于1和127之间,在成功地接收到报文之后(直到

47、ACK间隙接收没有错误,及成功地发送了应答位),接收错误计数值减1。如果接受计数器值是0,则它保持0,如果大于127,则它会设一值介于119和127之间。v9当发送错误计数器值大于或等于128时,或当接收错误计数器值等于或超过128时,节点为“错误被动”。让节点成为“错误被动”的错误条件致使节点发出主动错误标志。v10发送错误计数器值大于或等于256时,节点为“总线关闭”。v11发送错误计数器值和接收错误计数器值都小于或等于127时,“错误被动”的节点重新变为“错误主动”。v12在总线监视到128次出现11个连续“隐性”位之后,“总线关闭”的节点可以变成“错误主动”(不再是“总线关闭”)。它的

48、错误计数值也被设置为0。v备注:一个大约大于96的错误计数值显示总线被严重干扰。最好能够采取措施测试这个条件。v备注:启动/睡眠:如果启动期间内只有一个节点在线,以及如果这个节点发送一些报文,则将不会有应答,如此检测到错误并重复报文。由于此原因,节点会变为“错误被动”,而不是“总线关闭”。位定时要求位定时要求v标称位速率标称位速率: 标称位速率为一理想的发送器在没有重新同步的情况下每秒发送的位数量。v标称位时间标称位时间: 标称位时间1/标称位速率 可以把标称位时间划分成几个不重叠时间的片断,它们是:同步段/传播时间段/相位缓冲段1/相位缓冲段2v同步段同步段:位时间的同步段用于总线上的不同节

49、点。这一段内容要有一个跳变沿。v传播段传播段:传播段用于补偿网络内的物理延时时间。它是总线上输入比较延时和输出驱动器延时总和的两倍。v相位缓冲段相位缓冲段1 1、相位缓冲段、相位缓冲段2 2:相位缓冲段用于补偿边沿阶段的错误。这两个段可以通过重新同步加长或缩短。v采样点采样点:采样点是读总线电平并解释各位的值的一个时间点。采集点位于相位缓冲段1之后。v信息处理时间信息处理时间:信息处理时间是一个以采样点作为起始的时间段。采集点用于计算后续位的电平。v时间份额时间份额:时间份额是派生于振荡器周期的固定时间单元。存在有一个可编程的预比例因子,其整体数值范围为132的整数,以最小时间份额为起点,时间

50、份额的长度为: 时间份额m最小时间份额v时间段的长度时间段的长度v同步段为1个时间份额;传播段的长度可设置为1、2,8个时间份额;缓冲段1的长度可设置为1、2,8个时间份额;相位缓冲段2的长度为阶段缓冲段1和信息处理时间之间的最大值;信息处理时间少于或等于2个时间份额。v一个位时间总的时间份额可以设置在825的范围。v同步:同步:v硬同步:硬同步:硬同步后,内部的位时间从同步段重新开始。因此,硬同步强迫由于硬同步引起的沿处于重新开始的位时间同步段之内。v重新同步跳转宽度重新同步跳转宽度:v重新同步的结果,使相位缓冲段1增长,或使相位缓冲段2缩短。相位缓冲段加长或缩短的数量有一个上限,此上限由重

51、新同步跳转宽度给定。重新同步跳转宽度应设置于1和最小值之间(此最小值为4)。v时钟信息可以从一位值转换到另一位值的跳变中得到。后续位有固定的最大数值,其数值相同。这个属性提供了总线单元在帧期间重新和位流同步的可能性。v一个沿的相位误差一个沿的相位误差:一个沿的相位误差由相关于同步段的沿的位置给出,以时间份额量度。相位误差定义如下:e=0 如果沿处于同步段里e0 如果沿处于采集点之前e0 如果沿处于前一个位的采集点之后v重新同步重新同步:v当引起重新同步沿的相位误差的幅值小于或等于重新同步跳转宽度的设定值时,重新同步和硬件同步的作用相同。当相位错误的量级大于重新同步跳转宽度时: 如果相位误差为正

52、,则相位缓冲段1被增长。增长的范围为与重新同步跳转宽度相等的值。 如果相位误差为负,则相位缓冲段2被缩短。缩短的范围为与重新同步跳转宽度相等的值。v同步的原则同步的原则:v硬同步和重新同步都是同步的两种形式,遵循以下规则:1 在一个位时间里只允许一个同步。2 仅当采集点之前探测到的值与紧跟沿之后的总线沿之后的总线值不相符时,才把沿用作于同步。3 总线空闲期间,有一“隐性”转变到“显性”的沿,无论何时,硬同步都会被执行。4 如果仅仅是将“隐性”转化为“显性”的沿用作于重新同步使用,则其他符合规则1和规则2的所有从“隐性”转化为“显性”的沿可以用作为重新同步。有一例外情况,即当发送一显性位的节点不

53、执行重新同步而导致一“隐性”转化为“显性”沿,此沿具有正的相位误差,不能作为重新同步使用。增加CAN振荡器容差v为了把振荡器最大容差从目前的0.5%增加到1.5%,有必要作以下的修改以便向上兼容现有的CAN规范:v(1) 如果CAN节点在间歇的第三位采集到一显性位,则此位被解释为帧的起始位。v(2) 如果CAN节点有一信息等待发送并且节点在间歇的第三位采集到一显性位,则此位被解释为帧的起始位,并从下一个位开始发送具有标识符作为首位的报文,而不是首先发送帧的起始位或成为一接收器。v(3) 如果节点在错误界定符或过载界定符的第八位采集到一显性位,则在下一位开始发送一过载帧(而非错误帧)。错误计数器

54、值不会增加。v(4) 仅为隐性转换到显性的沿才会用于重新同步,为符合现有的规范,以下的规定依然有效。v(5) 在硬同步时,所有CAN控制器同步于帧起始位。v(6) 直到遇上三个隐性的间歇位,CAN才发送帧起始位。v(7) 这个修改允许振荡器最大为1.58%的容差,并在总线速度达到125KB/s时使用陶瓷谐振器。为了满足CAN协议的整个总线速度范围,仍然需要一个晶振。只要符合以下的要求,就可以保持现有协议及增强型协议的兼容性。v(8) 同一个网络里的控制器为现有CAN协议及增强型CAN协议时,所有控制器必须使用晶振。v(9) 具有最高振荡准确度要求的芯片,决定了其他节点的振荡速度。只有在所以有的节点使用增强型的CAN协议时才能使用陶瓷谐振器。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号