第4章 控制器局域网-CAN

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第四章控制器局域网-CANCAN(ControllerAreaNetwork)即控制器局域网络,是一种高性能、高可靠性、易开发和低成本的现场总线,在全球得到广泛应用,也是最早在我国应用的现场总线之一。CAN总线最初由德国BOSCH公司推出,用于汽车内部测量与执行部件之间的数据通信。由于CAN总线自身的特点,其应用领域已由汽车行业扩展到过程工业、机械工业、机器人和楼宇自动化等领域,并且在众多总线中最早成为国际标准。CAN总线仅定义了物理层、数据链路层,基于CAN的两层协议又开发出了新的总线协议:如DeviceNet、CANopen等。Intel公司和Philips公司生产CAN芯片,甚至作为固定的组件集成在8051和80196系列单片机中。其他公司也积极跟进,如TI的2000系列DSP也将CAN作为通用部件集成其中。可以和任何8位单片机配合使用,不用专门的开发装置。价格低,器件容易购买。留给用户一定的创造空间,适合研究题目。24.1CAN主要特性CAN总线的特点:多主工作方式。非破坏性的总线仲裁技术。报文标识符(Identifier)/帧号越小优先权越高(11/29位)(线与)CAN节点通过对报文标识符的滤波即可实现点对点、一点对多点、全局广播等几种方式传送、接受数据。远程数据请求。总线配置灵活。节点数取决于总线驱动器.(110节点),报文标识符可达2032种(CAN2.0A),扩展标准(CAN2.0B)的报文标识符几乎不受限制。高效的短帧结构(8个有效字节),传输时间短,实时性好。高可靠性。节点在通信错误严重的情况下自动关闭,脱离总线。3CAN总线的位数值表示与CAN总线通讯距离:CAN总线上用显性(Dominant)和隐性(Recessive)两个互补的逻辑表示0和1(主导和退让)。当总线上同时出现显性和隐性位时,竞争的结果总线数值为显性(相当于线与),与硬件结构有关。隐性状态(相当于1),此时CAN-H和CAN-L被固定在平均电压电平附近,差分电压几乎为0,输出处于关断状态。如果此时总线有显性位的话,把总线的控制权交给显性位。显性状态(相当于0),差分电压很大,输出管中有一个处于导通状态,负载上流过电流,形成电压。最大传输距离与位速率有关,最高速率为1Mbps,但与之对应的距离仅为40m;最大距离可以达到1.2Km,但与之对应的速率仅为5Kbps。以RS-485为物理层的Profibus的最高速率为12Mbps,因为是主从结构,没有冲突,也无须检测冲突。如果使用中继器,传输的距离还能提高。上面所指的距离指用双绞线,如果使用光纤,传输距离可进一步扩大到10Km。44.2CAN2.0(A&B)规范CAN规范V2.0包括A和B两部分。CAN规范V2.0ACAN规范V2.0B里称为报文的“标准格式”,与之对应的是报文的“扩展格式”,这是CAN规范V2.0B与先前发布版本的最大区别。除了给出报文的扩展格式定义外,CAN规范V2.0B还在CAN协议分层结构、串行通信中某些位的解释上进行了修订制定CAN技术规范的目的是使任意两个应用CAN总线的设备都能兼容。兼容性包括很多方面,CAN规范主要对数据链路层和物理层中位编码、位解码、位定时等进行了描述,而未定义物理层中的驱动器/接收器特性,这为网络物理层的选择留有很大的灵活性。但是,在同一网络内的所有节点必须具有相同的物理层。应用CAN总线的设备既可与2.0A规范兼容,也可与2.0B规范兼容。可以说,CAN2.0B规范包含CAN2.0A规范,所以,下面将主要针对2.0B介绍CAN规范。54.2.1CAN的分层结构监视器数据链路层(DLL)逻辑链路控制(LLC)接收过滤超载通告恢复管理媒体访问控制(MAC)数据打包/拆包帧编码(填充,去填充)媒体访问管理错误检测出错标示应答串行-并行转换物理层位编码/解码位定时同步驱动器/接收器特性故障界定总线失效管理64.2.2CAN的一些基本概念报文(Messages)信息路由(InformationRouting)比特率(Bitrate)优先权(Priorities)远程数据请求(RemoteDataRequest)多主站(Multimaster)仲裁(Arbitration)安全性(Safety)出错标示和恢复时间(ErrorSignallingandRecoveryTime)74.2.2CAN的一些基本概念(续)连接(Connections):CAN串行通讯链路是一条可以连接众多单元的总线。实际上,单元总数受延迟时间和总线电气负载的限制。总线值(Busvalues):总线有一对互补的逻辑值:“显性”或“隐性”。如果“显性”位和“隐性”位同时传送,总线上的逻辑值将为“显性”。如果以“0”表示“显性”电平,“1”表示“隐性”电平,总线逻辑就符合“线与”关系。应答(Acknowledgment):所有的接收器检查报文是否符合规范,并且对符合规范描述的报文给以应答。睡眠模式/唤醒(SleepMode/Wake-up):为了减少系统的电源消耗,可以将CAN器件设为睡眠模式以停止任何内部活动和断开总线驱动器与总线的连接。84.2.3报文传送、帧类型和帧格式一个发出报文的单元称为该报文的“发送器”,并且保持该身份直至总线空闲或丢失仲裁。报文过滤是CAN总线的一大特色。报文过滤是基于整个报文标识符的,屏蔽码寄存器可以使标识符中的任意一位在报文过滤中成为“不相关”的,因此可以用于标识符组的选择。报文包括4种不同的帧类型:数据帧数据帧将数据从发送器传送到各个接收器。远程帧远程帧请求具有相同标识符的数据帧的发送。出错帧任何单元检测到总线错误就发出出错帧。超载帧用以在后续的数据帧或远程帧前之间提供一段附加的延时。9在2.0B规范中,具有11位标识符的帧称为标准帧,而具有29位标识符的帧则称为扩展帧。数据帧和远程帧都可以使用标准帧格式或者扩展帧格式。为了允许相对简单的控制器的设计,并不要求支持完全的扩展格式。也就是说必须能够接收扩展格式的报文,发送标准格式的报文。1)数据帧数据帧由7个不同的部分组成:帧起始、仲裁域、控制域、数据域、CRC域、应答域和帧结束。数据域的长度可以为0。帧间间隔帧间间隔或超载帧数据帧帧起始仲裁域控制域数据域CRC域应答域帧结束10(1)帧起始帧起始标志着数据帧和远程帧的起始,由一个“显性”位组成。一个CAN节点只在总线空闲时才允许开始发送数据。所有节点必须同步于帧起始的前沿。帧间间隔帧间间隔或超载帧数据帧帧起始仲裁域控制域数据域CRC域应答域帧结束数据帧中各个域含义介绍11(2)仲裁域11位标识符RTR位r1r0帧间间隔帧起始仲裁域控制域扩展格式帧起始11位标识符SRRIDE18位标识符RTRr1r0数据长度码仲裁域控制域数据域标准格式11位标识符RTRIDEr0数据长度码仲裁域控制域数据域帧起始CAN2.0A帧格式远程请求位标识符扩展替代远程请求12数据长度码标明了数据域里的字节数。数据长度码宽4位,数据字节数只允许为0~8,不能使用其它数值。(4)数据域数据域由数据帧中要发送的数据组成。它可以包括0~8字节,每字节8位,高位(MSB)在先。IDE/r1r0DLC3DLC2DLC1DLC0控制域仲裁域数据域或CRC域保留位数据长度码标准格式和扩展格式(3)控制域控制域由保留位和数据长度码共6位组成,标准格式和扩展格的控制域由保留位和数据长度码共6位组成,标准格式和扩展格的控制域结构相同但位置不同。13(5)CRC域CRC域包括CRC序列和随后的CRC界定符生成多项式(15阶):X15+X14+X10+X8+X7+X4+X3+1CRC序列之后是CRC界定符,它由一个“隐性”位组成。数据域或控制域CRC域应答域CRC序列CRC界定符14(6)应答域应答域长度为2位,包括应答间隙和应答界定符。在应答域中,发送器发出两个隐性位。当接收器正确地接收到有效的报文,该接收器就会在应答隙期间发送显性位(即发送“应答”)来通知发送器。应答界定符是应答域的第二位,必须为隐性。CRC域应答域帧结束应答隙应答界定符(7)帧结束帧结束由7个隐性位的标志序列组成,每个数据帧和远程帧都由帧结束界定。152)远程帧远程帧由6部分组成:帧起始、仲裁域、控制域、CRC域、应答域和帧结束。远程帧的RTR位是隐性的,数据长度码可以赋值为0~8内的任一数值,但没有数据域,可用于表示所请求数据帧的数据长度。帧间间隔远程帧帧间间隔或超载帧帧起始仲裁域控制域CRC域应答域帧结束163)出错帧出错帧由两个部分组成。第一个部分由来自不同节点的出错标志叠加而成,随后的第二部分是出错界定符。出错标志有两种形式:积极出错标志和消极出错标志。积极出错标志由6个连续的显性位组成,而消极出错标志由6个连续的隐性位组成,除非被其他节点的显性位覆盖。出错界定符8个连续的隐性位组成.出错标志出错帧数据帧帧间间隔或超载帧出错标志叠加出错界定符174)超载帧超载帧包括两个域:超载标志和超载界定符。3种超载条件会引起超载帧的发送:接收器要求延迟下一数据帧或远程帧的到达。在帧间间隔间歇域的第一和第二位检测到显性位。如果一个CAN节点在出错界定符或超载界定符的第8位(最后一位)采样到一个显性位,节点会发送一个超载帧。错误计数器不会增加。超载标志超载帧帧结束或出错界定符或超载界定符帧间间隔或超载帧超载标志叠加超载界定符185)帧间间隔数据帧和远程帧通过帧间间隔与总线上存在的其它帧区分开。所不同的是,超载帧和出错帧之前没有帧间间隔,多个超载帧之间也不是通过帧间间隔分开的。帧间间隔包括间歇域、总线空闲域以及可能的暂停发送域。只有刚发送出前一报文的错误消极节点才需要暂停发送域。非错误消极节点帧间间隔帧帧帧间间隔间歇域总线空闲19(1)间歇域间歇域包括3个隐性位。间歇域期间,所有节点均不允许发送数据帧或远程帧,它唯一的作用是标示一个超载条件。注意,如果一个正准备发送报文的CAN节点在间歇域的第三位检测到一个显性位,它将认为这是一个帧起始,并且在下一位时间,从报文的标识符的第一位开始发送报文,而不再发送一个帧起始位,同时也不会成为报文接收器。帧帧帧间间隔间歇域总线空闲暂停发送域20(2)总线空闲总线空闲的周期可为任意长度。在此期间,总线被认为是空闲的,任何需要发送报文的节点都可以访问总线。一个因其它报文正在发送而被挂起的报文,将在间歇域后的第一位开始发送。(3)暂停发送域暂停发送域是指错误消极节点发送一个报文后,在开始发送下一报文或者认可总线处于空闲之前,在间歇域后发出的8个隐性位。214.2.4报文确认、编码对于发送器,如果直到帧结束的结尾都没有出错,则报文得到确认。对于接收器,如果直到帧结束的倒数第二位都没有出错,则报文得到确认。CAN总线必须解决通信中发送器和接收器间的同步问题。总线值从隐性到显性的跳变提供了同步信息。如果连续多个相同的总线值出现(显性或隐性),这将影响到同步信息的提取。为此,CAN采用了“位填充”规则,这就是,在一帧中的帧起始、仲裁域、控制域、数据域和CRC域部分,当发送器在即将发送的比特流中检测到5个具有相同数值的连续位时,将自动地在实际发送的比特流中插入1个反码位。报文中的比特流采用非归零(NonReturntoZero)码编码。这就是说在完整的位时间里,位电平要么是显性,要么是隐性。224.2.5错误处理与故障界定1)错误类型(1)位错误(BitError)节点向总线发出1位的同时也在监视总线。如果所发送的位值与所监视到的位值不相符,则在该位时间里检测到一个位错误。例外的情况是,在带位填充的仲裁域位流和应答隙期间,发送隐性位而监视到显性位并不发生位错误。一个正在发送消极出错标志的发送器检测到一个显性位也不认为这是一个位错误。(2)填充错误(StruffError)在应用位填充规则的报文域中,出现了第6个连续相同的位电平。23(3)CRC错误(CRCError)计算结果与接收到的CRC序列不符,则检测到一个CRC错误。

1 / 35
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功