基于CAN总线的嵌入式智能节点的设计外文翻译资料
2022-09-06 11:37:27
英语原文共 31 页,剩余内容已隐藏,支付完成后下载完整资料
1简介
CAN总线是由罗伯特bull;博世公司研发的多主机消息广播系统,最大信号速率为1Mbps。与传统网络等USB或以太网不同,CAN总线在总线控制器的监控下不会点对点的发送大量的数据。在CAN总线网络里的每个节点都允许为了数据一致性而发送许多短消息像温度或者RPM到整个网络。
这个实用报告解释了CAN总线的消息格式、消息标识符和位操作仲裁——这个CAN总线信号方案的主要优点。CAN总线的研究已经实现并且提出了典型波形。
2 CAN总线的标准
CAN总线是由国际化标准组织(ISO)定义的串行通信总线,最初研发使用在汽车工业,用双线式总线来取代复杂的线束。规范要求信号速率1 Mbps,高免疫力电子干扰,自诊断和修复数据错误的能力。这些特性导致其在各种行业很受欢迎,包括汽车、航海、医疗、制造、航空航天。ISO 11898,CAN通信协议描述了设备之间的信息传递网络,和符合开放互连系统(OSI)模型中定义的层。实际设备之间通信连接的物理媒介由物理层模型定义。ISO 11898体系定义了OSI / ISO模型七层结构的最低两层的链路层和物理层。如图1
在图1,应用层建立通信链接到一个上层应用程序特定供应商协议像独立CANopen协议等。这个协议是国际用户和制造商集团支持下的CAN自动化(CiA)。额外的CAN总线信息位于CIA网站,can-cia.de。有很多类似的新兴协议用于特定的应用,比如工业自动化或航空。CAN-based协议行业标准的例子像KVASER的CAN Kingdom,艾伦-布拉德利的DeviceNet和霍尼韦尔的智能分布式系统(SDS)。
3 CAN标准或拓展标准
CAN通信协议是一个载波监听多点检测的协议并有碰撞检测和消息仲裁优先级(CSMA / CD AMP)。CSMA意味着每个节点试图在总线上传达一个信息之前必须等待一段规定的时间。CD AMP意味着碰撞是通过位操作仲裁解决,基于消息中预编的消息标识符字段的优先级。更高的优先级标识符总是赢得总线访问权。
在表1中列出的第一条CAN总线标准 (ISO 11519 低速CAN总线)是应用在最高125kbps以及有11个标识符。第二个版本,ISO 11898(1993),同样有着11位标识符,并将信号速率从125 kbps到1 Mbps,而最近的ISO 11898修正案(1995)扩展到了29位标识符。ISO 11898 版本通常被称为标准的2.0版本,而ISO 11898修正案被称为扩展CAN总线2.0b版本。图2中的CAN总线11位标识符字段提供了2048个不同的消息标识符,而图3中的扩展CAN总线标准甚至提供5.37亿个标识符。
3.1标准CAN总线和拓展CAN总线的位字符段
3.11 标准CAN总线
图2的字符段的含义是:
bull;SOF:一位显性位(SOF)标志着一个帧的开始,并在总线闲置之后同步总线上的节点。
bull;Identifier:CAN总线标准有11位标识符来建立消息的优先级。二进制值越低,其优先级越高。
bull;RTR:一位,远程传输请求(RTR),当需要信息时,主要从另一个节点,所有节点都会收到该请求,但标识符决定了指定的节点接受请求。响应数据也能被任何节点接收到并且如果节点感兴趣的话也能使用响应数据。这样一个系统中使用的所有数据是一致的。
bull;IDE:一位显性位,扩展标识符(IDE),意味着一个CAN的标准标识符传播而不是扩展的。
bull;r0:保留位(对未来可能的使用标准修正案)。
bull;DLC:4位,数据长度代码,包含传播消息中数据的字节数。
bull;Data:最高允许传送64位的应用程序数据。
bull;CRC:16位(15位加上分隔符)循环冗余校验(CRC)包含了校验和(传输的比特数)的错误检测数据。
bull;ACK:每个节点收到一个准确消息,会用一个显性位来覆盖收到的原始位,表明一个无错误消息被发送。接收节点检测到一个错误,会将这一位设置成隐性,它丢弃这个消息而发送节点在再仲裁后会重新发送这条消息。这样每个节点能确认(ACK)其数据的完整性。ACK是2位,一位是确认,第二位是一个分隔符。
bull;EOF:这个帧结束(EOF)7位字段标志着CAN总线帧的结束(消息)和禁用位填充,当它为显性时表明填充错误。当5位相同的逻辑电平连续出现时,,一位相反的逻辑电平会被塞进数据。
bull;IFS:这7位预测帧空间(IFS)包含由控制器正确收到帧到移动至消息缓冲区中适当的位置所需的时间。
3.1.2 拓展CAN总线
如图3所示,拓展CAN总线的消息格式与标准CAN总线相比多了下面这些:
bull;SRR:替代远程请求位(SRR)取代RTR的标准消息的位置作为一个占位符在扩展格式中。
bull;IDE:一个隐性位标识符扩展(IDE)表明有更多的标识符。是18位扩展IDE。
bull;r1:在RTR和r0位后,在DLC之前额外的储备一位。
4 CAN总线报文
4.1 仲裁
如图4所示,CAN总线的基本特征是在总线上的一对相反的逻辑状态,控制器输入和接收器输出。一般情况下应该是一个逻辑高的1电平和一个逻辑低的0电平,但CAN总线不同。这就是为什么它需要一个控制器的输入和接收器的输出针来通过收发器来被动的提到高电平,就好像SN65HVD230一样。如果没有任何输入,设备自动默认所有输入和输出引脚为隐性状态。
总线上的访问总是随机发生的。如果两个节点同时占用总线,位操作仲裁会实现无损访问,。无损意味着赢得仲裁的节点就继续发送消息,另一个节点的消息不会被摧毁或损坏。
CAN总线的报文标识符优先级的设置使它在需要实时控制的环境中有着非常强的吸引力。二进制消息标识符数越低,其优先级越高。一个标识符,如果完全由零组成是将是在网络上有着最高优先级的消息,因为它是总线上显性时间最长的。因此,如果两个节点同时开始传送,一个节点发送一个0(显性),而其他节点发送一个1(隐性),那发送0的节点将得到CAN总线的控制权并继续完成其消息。在CAN总线上显性位总是覆盖隐性位。
需要注意的是一个节点会不断地监控自己的传播过程。这是因为收发器的配置如图4所示, 控制器的输出脚与接收机的输入脚通过CANH和CANL内部的连在一起。一个信号从控制器的输入端到接收机的输出端所形成的传播延迟通常作为定性衡量一个CAN总线收发器的标准。这个传播延迟称为循环时间(t循环TI数据表),但是不同的供应商会有不同的术语。
如图5所示的仲裁程序,节点会持续监测自己的传输,当节点B的隐性位被节点C优先级更高的显性位所覆盖时,节点B会检测到总线状态与它的传播不匹配,因此,节点B会停止传播,而节点C则继续传播消息。节点B的另一个试图传递消息的办法是由节点C将总线控制放开。这个功能是ISO 11898物理信号层的一部分,这意味着它完全被包含在CAN总线控制器内,对CAN总线用户来说是完全透明的。
信息的优先级是由系统设计者分配的,但是产业界对某些消息的意义是一致的。例如,一个电机驱动器的生产商可以指定0010这个消息在CAN网络中是电机绕组电流的反馈信号,而0011是转速。因为0010有二进制里面的最低标识符,因而与电流值有关的消息在总线上总是比与转速表的读数有关的消息有着更高的优先级。
在DeviceNet TM的网络中,许多厂商如感应开关、温度传感器可以被纳入同一系统设备。由于DeviceNet传感器产生的消息已由专业协会预定,开放DeviceNet供应商协会(ODVA),一些特定的信息总是有着相同的形式如温度,而不管实际的制造商。
4.2 消息类型
有四个不同的消息类型,或帧(图2和3),可以在一个CAN总线上传输:数据帧,远程帧,错误帧,和过载帧。当一个消息的最后一位也就是EOF段是标志着消息无错的隐性位时,这个消息会被认为是无错的。在EOF段的显性位会使发射机重复传送。
4.2.1 数据帧
数据帧是最常见的消息类型,它是由仲裁段,数据段,CRC段,确认段组成。仲裁段决定了当2个或多个节点在争用总线时消息的优先级。对于CAN2.0A标准的仲裁段包含11位的标识符和一个RTR位,这是用的最多的数据帧形式。对于图3中CAN 2.0B标准中含有29位标识符和RTR位。下一步是数据字段,该字段包含零到八个字节的数据,而CRC段包含16位的校验和,用于错误检测校验。最后就是确认段。任何能够正确地接收消息的CAN控制器都能在正确传递消息结束时发送一个显性ACK位来覆盖传输的隐性位。发送机会检查显性的ACK位是否存在,如果没有检测到确认消息就会重发消息。
4.2.2 远程帧
远程帧的预定目的是请求来自另一个节点的数据传输。该远程帧与数据帧相似,有两点较大的差异。首先,这种类型的信息是在仲裁段通过隐性RTR位明确标记为远程帧,第二,没有数据段。
4.2.3 错误帧
错误帧是一种特殊的消息,它与一般的CAN消息格式不同。当节点检测到一个错误的消息时,它会被发送,并使所有其他节点在网络中发送一个错误帧。原发送机会自动重新发送消息。在CAN控制器中关于错误计算有着一套复杂的系统,可以确保一个节点不能通过反复发送错误帧来占用总线。
4.2.4 过载帧
这里提到的是完整的过载帧。它是类似于错误帧的格式,并且它是由一个节点变得太忙碌时发送。它主要用于提供消息之间的额外延迟。
4.3 错误检查和故障隔离
CAN总线的稳定性,可以部分归因于它丰富的错误检查程序。CAN协议包含五种错误检查的方法:三个消息级和两个位级。如果一个消息没有通过这些错误检测方法中的任何一个,它将不被接受并且接收节点会发送一个错误帧,会使发送节点一直重新发送消息直到消息被正确接收。然而,如果一个故障节点占用总线并不断重复发送错误消息,当错误数量达到极限后它的传输能力就会被它的控制器所移除。
消息级别的检查是CRC循环冗余校验和图2和图3显示的ACK槽。16位的CRC校验包含前述的应用数据的校验和来进行误差检测,其中是15位的校验和1位分隔符。ACK段有两位,由确认位和确认分隔符位组成。最后,在消息级别上有一个形式检查。这个检测是在消息各段中循环扫描那些必须始终是隐性的位。如果检测到一个显性位,则生成一个错误。这些隐性位检查分别是SOF,EOF,ACK的分隔符和CRC分隔符。
在位级的检测上,每个位的传输由消息的发射机监控。如果将数据位(非仲裁位)写在总线上,而其相对的是读,就会生成错误。唯一的例外是用来仲裁的消息标识符段,和需要有隐性位被显性位覆盖的ACK槽。错误检测的最终方法是在五个连续相同逻辑电平的位填充规则下,如果下一位不是逆电平的话,则产生错误。填料能确保为持续同步运行的网络提供上升沿,对于一个错误帧来说这一股隐性位不是错误,或者七位的帧间空间,意味着消息的结束。接收节点的控制器会在数据被转发到应用程序将填充位删除。
有了这个逻辑,一个有效的错误帧由六个显性位组成,这违反了位填充规则,这会被所有节点认为是一个错误的,然后生成自己的错误帧。这意味着一个错误帧可以从原来的六位变成十二位长而包含所有的回复。这个错误帧后面跟着八个隐性分隔符位,并会有一个总线空闲时间在损坏的消息重发之前。需要注意的是,对于重发的消息仍需要争夺总线仲裁。
5 CAN总线
如图1所示数据链路层和物理层信号,这通常对一个系统操作员来说是透明的,这两层被包含在任何实现了CAN协议的控制器中,如德克萨斯仪器的TMS320LF2407 3.3V DSP集成了CAN控制器。连接到物理介质后,然后通过线收发器如TI的SN65HVD230 3.3 V CAN收发器实现形式像ISO–11898标准反映出的,例如一个电子控制单元(ECU),如图6所示。
CAN总线控制器通过差分信号来使得到强大的抗噪性和容错能力。平衡差分信号降低噪声耦合,并允许在双绞线电缆有很高信号传输速率。平衡意味着每一个信号线的电流是相等的,但方向相反,能够获得共模相消的效果,这是获得低噪声的关键。平衡差分接收器和双绞线布线的使用提高了总线的共模抑制能力和较高的抗噪声能力。
CAN总线上的两根信号线,CANH和CANL,在静止的隐性状态下,会被动地偏向大约2.5 V,总线的显性状态CANH上升大约1 V至3.5 V,同时CANL下降大约1 V至 1.5 V,形成一个大约2V的差分信号,如图7所示。
CAN总线标准定义了一个连接到总线上的所有节点的通信网络,使他们能够彼此通信。有可能或可能不止一个中央控制节点,节点可以随时添加,即使网络正在运行(热插拔)。
理论上节点可以用智能传感技术和电机控制器发送消息。一个实际的应用程序可能包括温度传感器发出的温度实时数据,可以用来调整风扇的电机转速。如果一个压力传感器节点要同时发送消息,仲裁将保证消息会被发送。例如,在图8和9中的节点A完成了它发送的消息,且节点B和节点C确认消息被正确的接收。节点,然后节点B和节点C开始仲裁,节点C赢得了这次仲裁,并开始发出它的消息。节点A和节点B确认正确收到了节点C的消息,随后节点B开始发送它的消息,并再次注意在总线上输入和输出的相对极性。
5.1 CAN总线的收发功能
5.1.1 工作电压
大多数的CAN总线收发器如sn65hvd251需要5V电源来使信号电平达到ISO 11898标准所要求的。通过更为高效率的电路设计,德克萨斯仪器的sn65hvd23x CAN收发器家族,开发出3.3V电源,并且可在同一总线完全兼容5V收发器。这使得设计人员可以减少节点总功率达50%或更多(图10)。
因为随着3.3V的技术广泛应用,如德克萨斯仪器tms320c240x的DSP家族集成CAN控制器,需要
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[146900],资料为PDF文档或Word文档,PDF文档可免费转换为Word