您好,欢迎访问三七文档
CAN基础知识什么是CAN?CAN,全称为“ControllerAreaNetwork”,即控制器局域网,是国际上应用最广泛的现场总线之一。最初,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置。一个由CAN总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例如,当使用PhilipsP82C250作为CAN收发器时,同一网络中允许挂接110个节点。CAN可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。CAN是怎样发展起来的?CAN最初出现在80年代末的汽车工业中,由德国Bosch公司最先提出。当时,由于消费者对于汽车功能的要求越来越多,而这些功能的实现大多是基于电子操作的,这就使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线。提出CAN总线的最初动机就是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。于是,他们设计了一个单一的网络总线,所有的外围器件可以被挂接在该总线上。1993年,CAN已成为国际标准ISO11898(高速应用)和ISO11519(低速应用)。CAN是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离达到10Km时,CAN仍可提供高达50Kbit/s的数据传输速率。由于CAN总线具有很高的实时性能,因此,CAN已经在汽车工业、航空工业、工业控制、安全防护等领域中得到了广泛应用。CAN是怎样工作的?CAN通讯协议主要描述设备之间的信息传递方式。CAN层的定义与开放系统互连模型(OSI)一致。每一层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。CAN的规范定义了模型的最下面两层:数据链路层和物理层。下表中展示了OSI开放式互连模型的各层。应用层协议可以由CAN用户定义成适合特别工业领域的任何方案。已在工业控制和制造业领域得到广泛应用的标准是DeviceNet,这是为PLC和智能传感器设计的。在汽车工业,许多制造商都应用他们自己的标准。表1OSI开放系统互连模型7应用层最高层。用户、软件、网络终端等之间用来进行信息交换。如:DeviceNet6表示层将两个应用不同数据格式的系统信息转化为能共同理解的格式5会话层依靠低层的通信功能来进行数据的有效传递。4传输层两通讯节点之间数据传输控制。操作如:数据重发,数据错误修复3网络层规定了网络连接的建立、维持和拆除的协议。如:路由和寻址2数据链路层规定了在介质上传输的数据位的排列和组织。如:数据校验和帧结构1物理层规定通讯介质的物理特性。如:电气特性和信号交换的解释CAN能够使用多种物理介质,例如双绞线、光纤等。最常用的就是双绞线。信号使用差分电压传送,两条信号线被称为“CAN_H”和“CAN_L”,静态时均是2.5V左右,此时状态表示为逻辑“1”,也可以叫做“隐性”。用CAN_H比CAN_L高表示逻辑“0”,称为“显形”,此时,通常电压值为:CAN_H=3.5V和CAN_L=1.5V。CAN有哪些特性?CAN具有十分优越的特点,使人们乐于选择。这些特性包括:低成本极高的总线利用率很远的数据传输距离(长达10Km)高速的数据传输速率(高达1Mbit/s)可根据报文的ID决定接收或屏蔽该报文可靠的错误处理和检错机制发送的信息遭到破坏后,可自动重发节点在错误严重的情况下具有自动退出总线的功能报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息Philips制造的CAN芯片有哪些?表2CAN芯片一览表类别型号备注P87C591替代P87C592CAN微控制器XAC3716位MCUCAN独立控制器SJA1000替代82C200PCA82C250高速CAN收发器PCA82C251高速CAN收发器PCA82C252容错CAN收发器TJA1040高速CAN收发器CAN收发器TJA1041高速CAN收发器TJA1050高速CAN收发器TJA1053容错CAN收发器TJA1054容错CAN收发器LIN收发器TJA1020LIN收发器什么是CSMA/CD?CSMA/CD是“载波侦听多路访问/冲突检测”(CarrierSenseMultipleAccesswithCollisionDetect)的缩写。利用CSMA访问总线,可对总线上信号进行检测,只有当总线处于空闲状态时,才允许发送。利用这种方法,可以允许多个节点挂接到同一网络上。当检测到一个冲突位时,所有节点重新回到‘监聴’总线状态,直到该冲突时间过后,才开始发送。在总线超载的情况下,这种技术可能会造成发送信号经过许多延迟。为了避免发送时延,可利用CSMA/CD方式访问总线。当总线上有两个节点同时进行发送时,必须通过“无损的逐位仲裁”方法来使有最高优先权的的报文优先发送。在CAN总线上发送的每一条报文都具有唯一的一个11位或29位数字的ID。CAN总线状态取决于二进制数‘0’而不是‘1’,所以ID号越小,则该报文拥有越高的优先权。因此一个为全‘0’标志符的报文具有总线上的最高级优先权。可用另外的方法来解释:在消息冲突的位置,第一个节点发送0而另外的节点发送1,那么发送0的节点将取得总线的控制权,并且能够成功的发送出它的信息。CAN的高层协议CAN的高层协议(也可理解为应用层协议)是一种在现有的底层协议(物理层和数据链路层)之上实现的协议。高层协议是在CAN规范的基础上发展起来的应用层。许多系统(像汽车工业)中,可以特别制定一个合适的应用层,但对于许多的行业来说,这种方法是不经济的。一些组织已经研究并开放了应用层标准,以使系统的综合应用变得十分容易。一些可使用的CAN高层协议有:制定组织主要高层协议CiACAL协议CiACANOpen协议ODVADeviceNet协议HoneywellSDS协议KvaserCANKingdom协议什么是标准格式CAN和扩展格式CAN?标准CAN的标志符长度是11位,而扩展格式CAN的标志符长度可达29位。CAN协议的2.0A版本规定CAN控制器必须有一个11位的标志符。同时,在2.0B版本中规定,CAN控制器的标志符长度可以是11位或29位。遵循CAN2.0B协议的CAN控制器可以发送和接收11位标识符的标准格式报文或29位标识符的扩展格式报文。如果禁止CAN2.0B,则CAN控制器只能发送和接收11位标识符的标准格式报文,而忽略扩展格式的报文结构,但不会出现错误。目前,Philips公司主要推广的CAN独立控制器均支持CAN2.0B协议,即支持29位标识符的扩展格式报文结构。CAN总线的局限时间:2007-07-17来源:电子设计应用作者:杨福宇点击:1682字体大小:【大中小】CAN总线由博世公司于1987年开发,1993年成为标准,在近23年的时间里获得了巨大的成功,逐渐替代了其它相近的总线,2001年的节点采用量已超过1亿。但是,曾经力推CAN总线的厂商,如宝马、博世、飞利浦等,目前都开始支持新的总线。对于推动新总线研究的原因,X-By-Wire的发展是一方面,但从根本上讲,消费者的安全需求才是最重要的原因。根据新闻报道:在CAN的发源地德国,2005年汽车抛锚事故中有35%是电子装置引起的。因此,电子控制系统及其通信系统的可靠性是一个敏感的问题,即使没有采用X-By-Wire,仍然使用常规的液压气动机构,也需要一种更为可靠的新总线来代替CAN。车内通信有两个最基本的要求:一是数据内容正确;二是通信及时,序列一致。对这两点,CAN总线中均有所设计,但仍存在着不一致性、不可预测性、信道出错堵塞等漏洞。1)不一致性CAN总线中有一个著名的Last-But-One-Bit错误。CAN总线2.0A在信息认证(MessageValidation)中规定:发送器验错的范围可覆盖到帧结束,如果发现错误,以后就按优先权和状态的规定重发;接收器验错的范围覆盖到帧结束的前一位。因此,如果由于空间干扰、电源波动等原因,对于帧的倒数第二位,一部分节点A认为无错,一部分节点B认为有错,即出现了所谓的Byzantine错误。这时,根据EOF应该是7个隐性位,节点B认为这是一种形式错误,所以就会启动错误帧,通知发送器重发,同时丢弃收到的帧。而认为没错的节点A由于只查到倒数第二位,因此就会接收此帧。如果在发送器例行的下一次发送前B通知的重发成功,A就会收到重复帧;如果重发不成功,B就丢了一帧。在转向和制动系统中,4个轮子对命令的不同理解,可能造成性能的下降或其他更严重的后果。2)不可预测性CAN总线将节点状态分为ErrorActive、ErrorPassive和BusOf三种,这三种状态在一定条件下可以互相转换。不同状态中节点的发送有不同的延迟。最高优先权的信息发送延迟有几种可能:当节点状态为ErrorActive时,若总线空闲,则立即发送;当节点状态为ErrorActive时,如果其它帧正在发送,则需等正在发送的报文结束后,再过3位后发送;当节点状态为ErrorPassive时,它有一个出错重发的要求,若没有其它帧要发送,等3位传送(Intermission)和8位挂起传送(SuspendTransmission)后重发;当节点状态为ErorPassive时,若总线空闲,出错后等别的信息发送完后再发,等待时间与其它帧的长度有关;当节点状态为BusOf时,需等状态恢复到ErorPassive或ErorActive再发。当确认某节点的状态时,还有几个因素需要考虑:首先,节点由最高优先权的信息和其他信息共用,因此,其他信息在传送过程中出现的错误也会影响到节点状态;其次,进入ErrorPassive或Busoff状态的条件是发送错误计数器与/或接收错误计数器的值,由于CAN的原子广播特点,其它节点的发送错误或接收错误会开启一个错误帧,从而影响到该节点的接收错误计数器的值,进而影响节点状态。对于优先权较低的信息来说,发送时间的离散程度更大。在反馈控制系统中,采样调节周期的大范围抖动相当于信号延迟后的变化,它有可能使系统性能下降或不稳定。在与安全相关的开环系统中,抖动可能造成动作顺序的混乱。3)信道出错堵塞节点有可能受干扰或其它原因暂时或永久失效,出错的主机会命令CAN收发器不断发送消息,即所谓的BabblingIdiot错误。由于该信息的格式等均合法,因此CAN没有相应的机制来处理这种情况。根据CAN的优先权机制,比它优先权低的信息就被暂时或永久堵塞。由于CAN总线存在上述几种根本的缺陷,因此,在更为严格的控制系统中,它将会造成巨大的风险,无法满足安全、环保、节能的要求。CAN的事件触发协议特点限制了ECU的应用、开发与生产,不仅用过的ECU难于重用,而且还不利于改善和开发新的ECU。一个成功的CAN应用仅在一定的条件下是有效的,簇内所有信息的优先权配置、波特率、通信负荷(所有信息的出现频率和长度)都较为固定,任何一个参数的改变都会使通信的时域分布改变。因此,当需要改变车型时,如果添加了新的功能,或是修改了闭环控制方案,ECU的所有基本功能就必须重新验证,这使工作量大大增加,延迟了新车型的上市时间。同样,对于提供零部件的厂商,同一ECU在不同汽车厂商的汽车上应用时,可能不得不对某些参数进行修改,这需要进行重新的验证和认证,增加了管理的复杂性,也增加了成本。在事件触发通信系统中,所有的应用都因优先权规则而深深地耦合在一起。这一特点使得由不同的工作组对个别应用同时进行设计、测试和认证的工作无法实现,这一点对期望成为质量与技术进步的汽车厂商来说是难以容忍的。另外,对CAN的各种改进都难以实现向下的兼容性。自CAN总线问世以来,随着对CAN局限陛的认识不断加深,业界提出了各种改进方案,这些方案采用标准的芯片
本文标题:CAN基础知识
链接地址:https://www.777doc.com/doc-2905109 .html