您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > CAN现场总线介绍解析
内容介绍CAN总线概述1CAN总线数据链路层2CAN总线物理层3CAN总线应用层协议4CAN总线概述返回目录CAN总线概述CAN(ControllerAreaNetwork:控制器局域网)是二十世纪八十年代初德国Bosch公司为解决现代汽车中众多控制单元、测试仪器之间的实时数据交换而开发的一种串行通信协议。是交通运载工具电气系统中应用较广的总线。现在向过程工业,机械工业,机器人,数控机床,传感器等方面发展。1993年11月,ISO正式颁布CAN为国际标准ISO11898。支持CAN协议的公司有Intel、Motorola、Philips、Siemens、NEC、Honeywell等公司。与其它现场总线比较CAN总线特点通信方式灵活。通讯距离最大10KM(5Kbps);通信速度最高达1Mbps(40M)。非破坏性仲裁,节省了总线冲突仲裁时间。短帧结构,出错严重时可自动关闭节点。芯片制造商支持。CAN的发展历史1981年Bosch和Intel公司共同开发了CAN协议1991年Bosch公司正式颁布CAN技术规范(2.0版)包括2.0A和2.0B两部分:2.0A规范了11位标准帧的各项定义2.0B规范了29位扩展帧的各项定义1991年,Mercedes发布第一款带CAN总线的轿车:S-class1993年,ISO正式颁布了道路交通运输工具-数据信息交换-高速通信控制器局域网(CAN)的国际标准ISO-118982003年,Maybach发布带76个ECU的新车型(CAN,LIN,MOST)2003年,VW发布带35个ECU的新型Golf……未来,CAN总线将部分被FlexRay所取代,但CAN总线将仍会被持续应用相当长的时间。CAN工作原理在CAN总线上传输的数据报文不包含发送节点和接收节点的信息每个报文的内容通过标识符识别,标识符在网络中是唯一的标识符描述了数据的含义某些特定的应用对标识符功能分配进行了标准化报文可以被所有节点同时接收可以进行相关性报文过滤,如果相关,就进行报文处理基本概念多主站结构节点数量不受协议限制无节点地址,由消息标识符指定消息内容与优先级节点容易连接或断开广播/多点传播能力基本概念(续)复杂的错误监测与处理便于同步的NRZ编码方式与位填充每条消息最多可带8字节数据最高传输速率1Mbps通过CSMA/CD方式进行总线访问标识符标识符是唯一的,它描述了数据的特定含义,也决定了报文的优先级:标识符数值越小,优先级越高最高优先级的报文获得总线访问权低优先级报文在下一个总线周期自动重发。NRZ编码采用不归零位编码(带位填充)数据以双线间差分电压表示NRZ编码确保报文紧凑,脉冲跳变最少,对外界扰动的抵抗能力强位填充位编码和位填充NRZ编码不能保证足够的跳变延用于同步位填充是为了保证有足够的隐性到显性的跳变沿填充位出现在5个连续的相同极性的位之后填充位与其前面的位极性相反隐性和显性位“线与”机制总线长度和波特率O.S.I.参考模型O.S.I.参考模型(续)CAN规范定义了数据物理层和数据链路层CAN在汽车和工业自动化领域应用非常广泛CAN总线数据链路层返回目录介质访问控制CAN使用载波侦听和带冲突检测协议的多路访问(CSMA/CD)与以太网不同当多个数据帧同时在网络上传输时采用非破坏性位序列仲裁,最高优先级的报文获得总线访问权位序列仲裁CAN报文的优先级由标识符值决定报文的标识符的数值在系统设计的初始阶段分配不同节点不允许发送相同ID报文(远程帧除外)标识符数值越小,优先级越高。总线冲突通过非破坏性位序列仲裁解决。位仲裁采用“线与”机制,显性位(0)覆盖隐性位(1)非破坏性总线仲裁帧格式——概述现有的帧格式帧格式——数据帧CRCCRC场为16位,其中15位CRC码用于错误检测,1个隐性位用作分隔符G(x)=x15+x14+x10+x8+x7+x4+x3+1应答场任何正确收到报文的CAN控制器都会在报文结束时发送应答位发送者在ackslot发送隐性位任何接受者在ackslot发送显性位发送方检测是否存在应答位,如果没有将会重发报文帧结束(7个隐性位)帧格式——远程帧帧格式——远程帧(续)远程帧的使用示意帧格式——错误帧激活错误帧:用于错误的信号传输帧格式——过载帧过载帧用于延迟下CAN消息帧格式——帧间空间帧间空间:作为任何消息帧与下一个数据帧或远程帧的分隔。错误检测——概述可检测的错误错误检测——循环冗余码校验(CRC)计算出的校验值与接收到的校验值必须一致错误检测——循环冗余码校验(CRC)(续)否则消息帧没有被正确接收(CRCError)错误检测——应答一个帧必须被一个或几个节点应答,否则会出现应答错误错误检测——帧检测在CRC分隔符、ACK分隔符、帧结束、帧间隔中不允许出现显性位否则出现形式错误(FormError)。错误检测——位监测所发送的位必须从总线上正确回读在仲裁域和应答间隙,隐性位可以被显性位重写错误检测——位填充检查在帧起始位与CRC分隔符之间不允许存在6个连续的相同极性的位出现。错误处理错误处理(续)错误计数器1、在接收过程中发现一个错误,接收错误计数器加1例外:在错误帧Flag或过载帧Flag发送过程中的位错误不计数2、当接收节点发现错误帧Flag之后的第一个位为显性位,接收错误计数器加83、当一个发送节点发送一个错误帧,发送错误计数器加8例外1:如果发送节点为被动错误状态,则当作没有检测到显性应答或发送错误帧时没有检测到显性位例外2:如果发送节点发送错误帧是由于在仲裁过程中发生了位填充错误(这个填充位在RTR位之前,应该为隐性。这个填充位的确是被当作隐性发送出去的,但是通过对总线的检测发现是显性)4、如果发送节点在发送主动错误Flag或过载Flag的过程中发现一个位错误发送错误计数器加85、如果接收节点在接收主动错误Flag或过载Flag的过程中发现一个位错误,接收错误计数器加8错误计数器(续)6、任何节点在发送主动错误Flag,被动错误Flag或过载Flag之后最多能够容忍7个连续的显性位。如果出现了第8个显性位,则发送节点的发送错误计数器加8,接收节点的接收错误计数器加8:7、当成功发送一个报文,发送错误计数器减18、当成功接收一个报文接收错误计数器减1(如果接收错误计数器在1到127之间)。如果接收错误计数器大于127,则接收错误计数器被置为119到127之间的一个值。9、当节点进入Busoff状态时,如果总线上出现128个连续的11位隐性位,发送错误计数器和接收错误计数器被清零。CAN协议版本具有两个适用的CAN协议版本V2.0A(标准)——11位消息ID——最多2048种消息ID号V2.0B(扩展)——29位消息ID——超过536x106种消息ID号CAN协议版本CAN协议版本(续)可用的CAN模块有三种不同类型(均可处理11位ID):2.0A——将29位ID视为错误2.0B被动——忽略29位ID的消息2.0B主动——可处理11位与29位两种ID的消息。CAN协议版本(续)•当多个版本的协议混合使用时,必须千万小心!CAN总线物理层返回目录CAN总线的同步机制硬同步(SOF)重同步位构建每个位时间分为4个时间段,包括8~25个时间份额(TimeQuantum)。时间份额来源于对晶振频率可编程的分频。CAN波特率可通过编程设置合适的时间份额长度与数量来确定。同步段(SynchronizationSegment)一位的输出从同步段的开头启动(对于发送节点)如果总线状态要被改变,接收节点应在这个时间段内进行改变固定长度,1个时间份额。传播段(PropagationSegment)补偿信号传播延时(通过网络与节点)长度编程(1…8个时间份额)相位缓冲段1(PhaseBufferSegment1)允许通过重新同步对该段时间加长在这个时间段的末端进行总线状态的采样长度可编程(1…8个时间份额)相位缓冲段2(PhaseBufferSegment2)允许通过重新同步对该段时间缩短长度可编程(1…8个时间份额)相位缓冲段2(PhaseBufferSegment2)允许通过重新同步对该段时间缩短长度可编程(1…8个时间份额)位延长位延长(续)位缩短位缩短(续)同步跳转宽度在重新同步中,位长度可调整的时间份额数量定义为同步跳转宽度(SynchronizationJumpWidth)相位缓冲段1可以被延长的时间份额数量相位缓冲段2可以被缩短的时间份额数量同步跳转宽度是强制设置的:最短为1个时间份额,最长为4个时间份额位定时为了方便编程许多CAN模块常常将传播时间段与相位缓冲段1合并为一个时间段(即,只有3个时间段)为什么要对采样位置编程?提前采样可以减小振荡器误差的敏感性便于使用价格低廉的振荡器(如陶瓷振荡器)为什么要对采样位置编程?(续)延迟采样可以获取更多的信号传播时间便于处理更长的总线/不合理的总线拓扑结构ISO物理层常用的ISO物理层:双绞线,两端连接终端电阻,典型阻值为120欧姆两线使用差分信号驱动(CAN_H,CAN_L)CAN与EMICAN对于电磁干扰(EMI)不敏感标准化规定高速CAN与低速CAN的电平信号高速CAN与低速CAN网络拓扑ISO11898ISO11898-1CAN总线数据链路层标准ISO11898-2高速CAN物理层标准ISO11898-3低速CAN物理层标准ISO11898-4TTCAN——时间触发CANISO11898-5高速CANwithSleepModeISO-IS11898规定的物理层ISO-IS11898规定的总线电平CiA-DS102-1规定的CAN总线连接器Basic-CAN控制器一般只用于速率很低或消息量很少的CAN节点中Full-CAN控制器适用于高波特率及多种消息的高总线负载的总线系统CAN总线应用层协议返回目录CAN总线应用层协议从OSI网络模型的角度来看,CAN现场总线仅仅定义了第1层、第2层。实际设计中,这两层完全由硬件实现。但是CAN总线没有定义应用层。因此,需要一个高层协议来定义CAN报文中的11/29位标识符、8位字节数据的使用。CAN总线应用层协议常见的CAN应用层协议:CANopenDeviceNetSAEJ1939CANopen概述CAN和CANopen标准在OSI网络模型中的原理图CANopen概述应用层协议内容应用层提供一组服务和协议通讯规范提供配置设备的方法和通讯数据,定义了设备之间的数据如何通讯。设备规范为设备增加了设备相关的类行为CAL(CANApplicationLayer)CAL(CANApplicationLayer)协议是目前基于CAN的高层通讯协议中的一种,提供了4种应用层服务功能CMS(CAN-basedMessageSpecification)CMS提供基于变量、事件、域类型的对象,以设计和规定一个设备(节点)的功能如何被访问(例如,如何上载下载超过8字节的一组数据(域),并且有终止传输的功能)。CAL(CANApplicationLayer)NMT(NetworkManagemenT)提供网络管理(如初始化、启动和停止节点,侦测失效节点)服务。这种服务是采用主从通讯模式(所以只有一个NMT主节点)来实现的。CAL(CANApplicationLayer)DBT(DistriBuTor)提供动态分配CANID(正式名称为COB-ID,CommunicationObjectIdentifier)服务。这种服务是采用主从通讯模式(所以只有一个DBT主节点)来实现的。CAL(CANApplicationLayer)LMT(LayerManagemenT)LMT提供修改层参数的服务:一个节点(LMTMaster)可以设置另
本文标题:CAN现场总线介绍解析
链接地址:https://www.777doc.com/doc-4934041 .html