当前位置:文档之家› CAN总线协议栈研究

CAN总线协议栈研究

青岛理工大学琴岛学院

毕业设计(论文)选题、审题表

can总线协议完全解析

CAN总线协议解析 李玉丽 (吉林建筑工程学院电气与电子信息工程学院,吉林长春,130021 ) 摘要:现场总线的发展与应用引起了传统控制系统结构的改变。控制局域网(C AN)总线因其自身的特点被广泛应用于 自动控制领域。本文对C AN总线协议作了详尽解析。 关键词:C AN总线;隐性位;显性位;节点 中图分类号:T U 85 文献标识码:A CAN(Cont roll e r A rea N et work)是分布式实时控 制系统的串行通信局域网,称谓CAN总线。在数据 实时传输中,设计独特、低成本,具有高可靠性,得到 广泛应用。 本文着重解析C AN 技术规范2.0B 版的CAN 的分层结构规范和CAN 报文结构规范。重点在于 充分理解CAN总线协议精髓,有助于CAN总线的 局网设计、软件编程、局网维护。 一、C AN的分层结构 CAN 遵从O SI ( Ope n Syste m I nte rc onnec ti on Re fe re nce Mode l ) 模型,其分层结构由高到低如图1 所示。 图1 C AN的分层结构 对应OSI 模型为两层,实际为三层,即LLC、 MA C、PL S。由此而知,对应于CAN总线系统每个 节点都是三层结构。数据发送节点数据流为LLC→ MA C→P LS ,然后将数据发送到总线上;而对于挂在 总线上的所有节点(包括发送节点)的接收的数据流 为PL S→MA C→LLC。 这种分层结构的规范保证了CAN 总线的多主 方式工作模式,即不分主从,非破坏性的仲裁工作模 式。而LLC 层的报文滤波功能可实现点到点、一点 对多点、全局广播、多点对一点,多点对多点等数据 传递方式。 各分层主要功能如下: LLC 层:接收滤波、超载通知、恢复管理; MAC 层:控制帧结构、执行仲裁、错误检测、出 错标定、故障界定。该层是CAN的核心; PL S 层:位编码/ 解码、位定时。 二、CAN总线的报文规范 CAN报文的传送有4 种不同类型的帧结构,数 据帧、远程帧、出错帧、超载帧。CA B2.0B 有4 种帧 格式。 (一)数据帧

CAN总线8个特点

CAN总线8个特点 一、CAN总线是什么 CAN总线是与串行总线不同的工业控制通信系统,是德国博世公司为提供汽车电子产品的升级服务,所有它更多的用于汽车控制。 为什么它非常适合汽车行业呢?有以下几个原因: ●CAN总线最远的数据传输距离为10公里,完全可以满足汽车的通讯控制需求。●CAN总线具有很强的抗干扰性,不容易出现问题,可以有效地保证驾驶员的安全。 ●can总线的数据传输速度快,理论峰值达到1Mbps,并且具有很高的数据通信即 时性。 ●一条CAN总线可以同时连接128个节点。对于一辆汽车,一个或两个CAN总线 可以完全完成汽车控制工作,这对于广阔的汽车行业来说是个再合适不过的选择。 二、CAN总线原理 ●需要传输的数据从一个节点通过CAN总线被广播到另一个节点,当一个节点发送 数据时,该节点的CPU将发送的数据和标识符发送到该节点的CAN芯片,并使它们处于就绪状态。

●当CAN芯片接收到总线分配时,消息进入发送状态,并且CAN芯片发送的数据 以预定的消息格式发送。此时,网络中的所有其他节点都处于接收状态,并且所有节点都首先接收该节点,并通过检测消息是否发送给自身来进行判断。 ●CAN总线是一种面向内容的地址方案,可实现控制系统的建立和灵活部署,并允 许在不修改硬件和软件的情况下将新节点添加到CAN总线。 三、CAN总线的8个特点 ●采用两线串行通讯方式,具有较强的错误检测能力,可以在高噪声干扰环境下工作●具有实时性强,传输距离长,电磁干扰强,成本低的优点。 ●可靠的错误处理和错误检测机制 ●节点具有严重错误时自动终止总线的功能 ●具有通过CAN控制器将多个控制模块连接到CAN总线以形成多主机本地网络的 优先级和仲裁功能。 ●消息的身份可以决定接收还是屏蔽消息 ●如果传输的信息已损坏,则可以自动重新传输 ●该消息不包含源地址和目标地址,仅使用标志来指示功能信息和优先级信息。

CAN总线的特点有哪些

CAN总线的特点有哪些 CAN 总线的特点有哪些?(1) 多主控制在总线空闲时,所有的单元都可开始发送消息(多主控制)。最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。多个单元同时开始发送时,发送高优先级ID 消息的单元可获得发送权。 (2) 消息的发送在CAN 协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送 消息时,根据标识符(Identifier 以下称为ID)决定优先级。ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始 发送消息时,对各消息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行 接收工作。(3) 系统的柔软性与总线相连的单元没有类似于地址的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。(4) 通信速度根据整个网络的规模,可设定适合的通信速度。在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它 的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可 以有不同的通信速度。(5) 远程数据请求可通过发送遥控帧请求其他单元发送数据。(6) 错误检测功能-错误通知功能-错误恢复功能所有的单元都可以检测错误(错误检测功能)。检测出错误的单元会立即同时通知其他所有单元(错误 通知功能)。正在发送消息的单元一旦检测出错误,会强制结束当前的发送。 强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢 复功能)。(7) 故障封闭CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总

汽车CAN总线基础知识培训资料

汽车C A N总线基础知 识

CAN总线协议 控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。 CAN总线发展 控制器局域网CAN( Controller Area Network)属于现场总线的范畴,是一种有效支持分布式控制系统的串行通信网络。是由德国博世公司在20世纪80年代专门为汽车行业开发的一种串行通信总线。而且能够检测出产生的任何错误。当信号传输距离达到10km时,CAN仍可提供高达50kbit/s的数据传输速率。CAN总线的工作原理 CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。[1]CAN与I2C总线的许多细节很类似,但也有一些明显的区别。当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。

当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。 CAN总线在空闲(没有节点传输报文)时是一直处于隐性状态。当有节点传输报文时显性覆盖隐性,由于CAN总线是一种串行总线,也就是说报文是一位一位的传输的,而且是数字信号(0和1),1代表隐性,0代表显性。在传送报文的过程中是显隐交替的,就像二进制数字0101001等,这样就能把信息发送出去,而总线空闲的时候是一直处于隐性的。 CAN总线特征 (1)报文(Message)总线上的数据以不同报文格式发送,但长度受到限制。当总线空闲时,任何一个网络上的节点都可以发送报文。 (2)信息路由(Information Routing)在CAN中,节点不使用任何关于系统配置的报文,比如站地址,由接收节点根据报文本身特征判断是否接收这帧信息。因此系统扩展时,不用对应用层以及任何节点的软件和硬件作改变,可以直接在CAN中增加节点。

CAN总线协议的物理层和报文类型

CAN总线协议的物理层和报文类型 CAN 总线的物理层是将ECU 连接至总线的驱动电路。ECU 的总数将受限 于总线上义了物理数据在总线上了物理数据在总线上各节点间的传输过程,主 要是连接介质、线路电气特性、数据的编码/解码、位定时和同步的实施标准。BOSCH CAN 基本上没有对物理层进行定义,但基于CAN 的ISO 标准对物理 层进行了定义。设计一个CAN 系统时,物理层具有很大的选择余地,但必须 保证CAN 总线协议中媒体访问层非破坏性位仲裁的要求,即出现总线竞争时, 具有较高优先权的报文获取总线竞争的原则,所以要求物理层必须支持CAN 总线中隐性位和显性位的状态特征。在没有发送显性位时,总线处于隐性状态,空闲时,总线处于隐性状态;当有一个或多个节点发送显性位,显性位覆盖隐 性位,使总线处于显性状态。在此基础上,物理层主要取决于传输速度的要求。 在CAN 中,物理层从结构上可分为三层:分别是物理层信令(Physical Layer Signaling,PLS)、物理介质附件(Physical MediaAttachment,PMA)层和介质从属接口(Media Dependent:Inter-face,MDI)层。其中PLS 连同数据链路层功能由CAN 控制器完成,PMA 层功能由CAN 收发器完成,MDI 层定义了电 缆和连接器的特性。目前也有支持CAN 的微处理器内部集成了CAN 控制器和 收发器电路,如MC68HC908GZl6。PMA 和MDI 两层有很多不同的国际或国 家或行业标准,也可自行定义,比较流行的是ISOll898 定义的高速CAN 发送 /接收器标准。理论上,CAN 总线上的节点数几乎不受限制,可达到2000 个,实际上受电气特性的限制,最多只能接100 多个节点。CAN 的数据链路层 是其核心内容,其中逻辑链路控制(Logical Link control,LLC)完成过滤、过载 通知和管理恢复等功能,媒体访问控制(Medium Aeeess control,MAC)子层完成数据打包/解包、帧编码、媒体访问管理、错误检测、错误信令、应答、串

CAN总线及CAN通讯协议

CAN总线及CAN通讯协议 CAN,全称为Controller Area Network,即控制器局域网,是国际上应用最广泛的现场总线之一。最初,CAN 被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU 之间交换信息,形成汽车电子控制网络。比如:发 动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN 控 制装置。一个由CAN 总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例如,当使用Philips P82C250 作为CAN 收发器时,同一网络中允许挂接110 个节点。CAN 可提供高达1Mbit/s 的数据传输速率,这使实时控制变得非常容易。另外,硬件的错 误检定特性也增强了CAN 的抗电磁干扰能力。CAN 通讯协议主要描述设备之间的信息传递方式。CAN 层的定义与开放系统互连模型(OSI)一致。每一 层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。CAN 的规范定义了模型的最下面两层:数据链路层和物理层。下表中展示了OSI 开放式互连模型的各层。应用层 协议可以由CAN 用户定义成适合特别工业领域的任何方案。已在工业控制和 制造业领域得到广泛应用的标准是DeviceNet,这是为PLC 和智能传感器设计的。在汽车工业,许多制造商都应用他们自己的标准。CAN 通讯协议主要描述设备之间的信息传递方式。CAN 层的定义与开放系统互连模型(OSI)一致。每一层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的 两层,而设备只通过模型物理层的物理介质互连。CAN 的规范定义了模型的最下面两层:数据链路层和物理层。下表中展示了OSI 开放式互连模型的各层。 应用层协议可以由CAN 用户定义成适合特别工业领域的任何方案。已在工业 控制和制造业领域得到广泛应用的标准是DeviceNet,这是为PLC 和智能传感

CAN总线技术详解

CAN总线技术详解 起源 20世纪80年代,Robert Bosch 公司在SAE(汽车工程协会)大会上介绍了一种新型的串行总线CAN控制器局域网,那也是CAN 诞生的时刻。今天,在欧洲几乎每一辆新客车均装配有CAN 局域网。同样,CAN也用于其他类型的交通工具,从火车到轮船或者用于工业控制。CAN 已经成为全球范围内最重要的总线之一甚至领导着串行总线。CAN总线的工作原理 CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。CAN与I2C总线的许多细节很类似,但也有一些明显的区别。 当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。 当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。 由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。

CAN总线的性能特点

CAN总线的性能特点 由于采用了许多的新技术和独特的设计,CAN总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。其性能特点可以概括如下: (1)CAN是到目前为止唯一具有国际标准的现场总线; (2)CAN为“多主”工作方式,网络上任一节点均可在任意时刻主动的向网络上的节点发送信息,不分主从。 (3)在报文标识符上,CAN上的节点分成不同的优先级,可满足不同的实时要求,优先级高的数据最多可在134us内得到传输。 (4)CAN采用非破坏性总线仲裁技术。当多个节点同时向总线发送信息时,优先级较低的节点会主动退出发送,而最高优先级的节点可不受影响的继续传输数据,从而大大的节省了总线冲突仲裁时间。 (5)CAN节点只需要通过对报文的标识符滤波即可实现点对点,一点对多点及全局广播等几种方式传送接收数据,无需专门的“调度”。 (6)CAN上的节点的个数主要取决于总线驱动电路,目前可达110个。在标准“帧”报文标识符(CAN2.0A)可达2032种,而在扩展帧的报文标识符(CAN2.OB)几乎不受限制。 (7)CAN报文采用“短帧”结构,传输时间短,受干扰概率低,具有极好地检错效果。 (8)CAN的每帧信息都有CRC校验以及其他检错措施,具有很

好的检错效果。 (9)CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上的其它节点的操作不受影响。 (10)CAN的最大通信速率为1Mbps(当总线长为40m时),直接通信距离可达10km(而当通信速率为5Kbps时),其通信距离与通信速率之间的关系如下图所示: 图 1 CAN总线位的数值表示 (10)CAN总线具有较高的性能价格比。它结构简单,器件容易购置,每个节点的价格较低,而且开发技术容易掌握,能充分利用现有的单片机开发工具。

汽车can总线协议

汽车can总线协议 篇一:史上最全can总线协议规则 一、CAN总线简介 CAN是控制器局域网络(Controller Area Network,CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH 公司开发了的,并最终成为国际标准(ISO11898)。是国际上应用最广泛的现场总线之一。在建立之初,CAN总线就定位于汽车内部的现场总线,具有传输速度快、可靠性高、灵活性强等优点。上世纪90年代CAN总线开始在汽车电子行业内逐步推广,目前已成为汽车电子行业首选的通信协议,并且在医疗设备、工业生产、楼宇设施、交通运输等领域中取得了广泛的应用。 二、CAN总线技术及其规范 2.1性能特点 (1) 数据通信没有主从之分,任意一个节点可以向任何其他(一个或多个)节点发起数据通信,通信方式灵活,且无需站地址等节点信息; (2) CAN网络上的节点信息分成不停的优先级,可满足不同的实时要求,高优先级节点信息最快可在134μs内得到传输;

(3) 采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动退出发送,而高优先级的节点可不受影响的继续发送数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪的情况; (3) 通信距离最远可达10KM(速率低于5Kbps)速率可达到1Mbps(通信距离小于40M); (4) 通信的硬件接口简单,通信线少,传输介质可以是双绞线,同轴电缆或光缆。CAN总线适用于大数据量短距离通信或者长距离小数据量,实时性要求比较高,多主多从或者各个节点平等的现场中使用。 (5) 采用短帧结构,传输时间短,受干扰概率低,每帧信息都有CRC校验及其他检验措施,数据出错率极低; (6) 节点在严重错误的情况下具有自动关闭输出的功能,以使总线上其他节点的操作不受影响。 (7) CAN总线使用两根信号线上的差分电压传递信号,显性电平可以覆盖隐形电平。 2.2技术规范 2.2.1CAN的分层结构 图1 CAN的分层结构 逻辑链路控制子层(LLC)的功能:为数据传送和远程数据请求提供服务,确认由LLC子层接收的报文实际上已被

CAN总线基础(1)— CAN简介及特点

1.CAN是什么? CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,现在在欧洲已是汽车网络的标准协议。 现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。 下图是车载网络的构想示意图。CAN 等通信协议的开发,使多种LAN 通过网关进行数据交换得以实现。

2.CAN的应用实例 3.总线拓扑图 CAN 控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。 CAN的连接示意图

4.CAN的特点 CAN 协议具有以下特点: (1) 多主控制 在总线空闲时,所有的单元都可开始发送消息(多主控制)。 最先访问总线的单元可获得发送权(CSMA/CA 方式)。 多个单元同时开始发送时,发送高优先级ID 消息的单元可获得发送权。 (2) 消息的发送 在CAN 协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为ID)决定优先级。ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。(3) 系统的柔软性 与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。 (4) 通信速度 根据整个网络的规模,可设定适合的通信速度。 在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。 (5) 远程数据请求 可通过发送“遥控帧” 请求其他单元发送数据。 (6) 错误检测功能·错误通知功能·错误恢复功能 所有的单元都可以检测错误(错误检测功能)。 检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。 正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。 (7) 故障封闭 CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。 (8) 连接 CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。 1.CAN的错误状态类型 单元始终处于3 种状态之一。

CAN总线协议

CAN总线协议 依据国际标准化组织/开放系统互连(International Standardi-zation Organization/Open SystemInterconnection,ISO/OSI)参考模型,CAN的ISO/OSI参考模型的层结构如图7-6所示。下面对CAN协议的媒体访问控制子层的一些概念和特征做如下说明: (1)报文(Message) 总线上的报文以不同报文格式发送,但长度受到限制。当总线空闲时,任何一个网络上的节点都可以发送报文。 (2)信息路由(Information Routing) 在CAN中,节点不使用任何关于系统配置的报文,比如站地址,由接收节点根据报文本身特征判断是否接收这帧信息。因此系统扩展时,不用对应用层以及任何节点的软件和硬件作改变,可以直接在CAN中增加节点。 (3)标识符(Identifier) 要传送的报文有特征标识符(是数据帧和远程帧的一个域),它给出的不是目标节点地址,而是这个报文本身的特征。信息以广播方式在网络上发送,所有节点都可以接收到。节点通过标识符判定是否接收这帧信息。 (4)数据一致性应确保报文在CAN里同时被所有节点接收或同时不接收,这是配合错误处理和再同步功能实现的。 (5)位传输速率不同的CAN系统速度不同,但在一个给定的系统里,位传输速率是唯一的,并且是固定的。 (6)优先权由发送数据的报文中的标识符决定报文占用总线的优先权。标识符越小,优先权越高。 (7)远程数据请求(Remote Data Request) 通过发送远程帧,需要数据的节点请求另一节点发送相应的数据。回应节点传送的数据帧与请求数据的远程帧由相同的标识符命名。 (8)仲裁(Arbitration) 只要总线空闲,任何节点都可以向总线发送报文。如果有两个或两个以上的节点同时发送报文,就会引起总线访问碰撞。通过使用标识符的逐位仲裁可以解决这个碰撞。仲裁的机制确保了报文和时间均不损失。当具有相同标识符的数据帧和远程帧同时发送时,数据帧优先于远程帧。在仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送,如果发送的是“隐性”电平而监视到的是“显性”电平,那么这个单元就失去了仲裁,必须退出发送状态。 (9)总线状态总线有“显性”和“隐性”两个状态,“显性”对应逻辑“0”,“隐性”对应逻辑“1”。“显性”状态和“隐性”状态与为“显性”状态,所以两个节点同时分别发送“0”和“1”时,总线上呈现“0”。CAN总线采用二进制不归零(NRZ)编码方式,所以总线上不是“0”,就是“1”。但是CAN协议并没有具体定义这两种状态的具体实现方式,如图7-7所示。 10)故障界定(Confinement) CAN节点能区分瞬时扰动引起的故障和永久性故障。故障节点会被关闭。 (11)应答接收节点对正确接收的报文给出应答,对不一致报文进行标记。

(完整版)CAN总线解析

一、概述 CAN(Controller Area Network)即控制器局域网,是一种能够实现分布式实时控制的串行通信网络。 想到CAN就要想到德国的Bosch公司,因为CAN就是这个公司开发的(和Intel)CAN 有很多优秀的特点,使得它能够被广泛的应用。比如:传输速度最高到1Mbps,通信距离最远到10KM,无损位仲裁机制,多主结构。 近些年来,CAN控制器价格越来越低,很多MCU也集成了CAN控制器。现在每一辆汽车上都装有CAN总线。 一个典型的CAN应用场景: 二、CAN总线标准 CAN总线标准只规定了物理层和数据链路层,需要用户来自定义应用层。不同的CAN标准仅物理层不同。

CAN收发器负责逻辑电平和物理信号之间的转换,将逻辑信号转换成物理信号(差分电平)或者将物理信号转换成逻辑电平。 CAN标准有两个,即IOS11898和IOS11519,两者差分电平特性不同。(有信号时,CANH 3.5V,CANL 1.5V,即显性;没有信号时,CANH 2.5V,CANL 2.5V,即隐性) IOS11898高速CAN电平中,高低电平的幅度低,对应的传输速度快。 双绞线共模消除干扰,是因为电平同时变化,电压差不变。 2.1物理层 CAN有三种接口器件

多个节点连接,只要有一个为低电平,总线就为低电平,只有所有的节点都输出高电平时,才为高电平。所谓“线与”。 CAN总线有5个连续性相同的位后,就会插入一个相反位,产生跳变沿,用于同步。从而消除累计误差。 和485、232一样,CAN的传输速度与距离成反比。 CAN总线终端电阻的接法:

特点:低速CAN在CANH和CANL上串入2.2kΩ的电阻;高速CAN在CANH和CANL 之间并入120Ω电阻。为什么是120Ω,因为电缆的特性阻抗为120Ω,为了模拟无限远的传输线。(因为大多数双绞线电缆特性阻抗大约在100~120Ω。) 120欧姆只是为了保证阻抗完整性,消除回波反射,提升通信可靠性的,因此,其只需要在总线最远的两端接上120欧姆电阻即可,而中间节点并不需要接(接了反而有可能会引起问题)。因此各位在使用CAN Omega做CAN总线侦听的时候,大多数情况下是不需要这个120欧姆电阻的,当然,即使当前网络中并没有终端匹配电阻,只要传输线长度不长(比如SysCan360比赛环境中,传输线只有1-2米)CAN节点数量不多的情况下,不要这个120欧姆电阻也完全可以工作,甚至,你接任意电阻都是不会有影响的。因为此时传输线长度和波长还相差甚远,节点不多的情况下,反射波的叠加信号强度也不会很强,因此传输线效应完全可以忽略。 而哪些情况需要呢,主要就是,当使用2个CAN Omega对发或者当前网络中仅有2个CAN设备的时候,此时两个端点最好都加上终端匹配电阻,当然,前面也说过了,传输线长度不长的时候,也可以不需要2端120欧姆电阻,但为了信号完整性考虑,加上这两个电阻才是严谨的。 2个120欧姆电阻的意义在于,使用USB CAN调试某些不带终端电阻的中间节点设备时,有时候CAN总线上没有2个120欧姆电阻通信可能会异常,此时可以接入2个120欧姆电阻作为2个终端电阻来作阻抗匹配,这时候其他端点不应接入任何终端电阻!并且,这2个120欧姆电阻不可用1个60欧姆电阻代替!

CAN总线特点与规范

CAN总线特点与规范 CAN 总线规范: CAN总线属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络,位速率可高达1MBPS。可以应用在汽车控制系统,自动化电子领域中的各种部件(传感器,灯光,执行机构等)与主机连接组成CAN 网络。本章介绍通过CAN总线与液晶显示器的连接。 CAN 具有下列主要特性: 1 多主站依据优先权进行总线访问。 总线开放时,任何单元均可开始发送报文,具有最高优先权的报文的单元赢得总线访问权。利用这个特点可以用液晶显示器作为多主机的公用监视器,不用每台主机配一个监视器,从而节约系统成本。 2 无破坏性的基于优先权的仲裁。 网络上的每个主机可以同时发送,哪个主机的数据可以发送出去取决于主机所发送报文的标识符决定的优先权的大小,没有发送出去的帧可自动重发。以后将介绍数据怎样仲裁。 3 借助接收滤波的多地址帧传送 收到报文的标识符与本机的接收码寄存器与屏蔽寄存器相比较,符合的报文本机才予以接收。 4.远程数据请求。 网络上的每个接点可以发送一个远程帧给另一个接点,请求该接点的数据帧,该数据帧与对应的远程帧以相同的标识符ID命名。 5.配置灵活性 通过八个寄存器进行接点配置,每个接点可以接收,也可以发送。 6.全系统数据相容性 7.错误检测和出错信令 有五种错误类型,每个接点都设置有一个发送出错计数器和一个接收出错计数器。发送接点和接收接点在检测到错误时,出错计数器根据一定规则进行加减,并根据错误计数器数值发送错误标志(活动错误标志和认可错误标志),当错误计数器数值大于255时,该接点变为“脱离总线”状态,输出输入引脚浮空,既不发送,也不接收。 CAN 中的总线数值为两种互补逻辑数值:“显形”和“隐性”,用差分电压表示。 “显形”表示逻辑“0”,显性状态用大于最小阈值的差分电压表示。 “隐性”表示逻辑“1”,这时输出的差分电压Vdiff 近似为0,Vcanh ,Vcanl固定于平均电压电平,显性位与隐性位同时发送时,最后总线数值为显性。在总线空闲或隐性位期间, 平均电压

CAN总线的特点及J1939协议通信原理、内容和应用

CAN总线的特点及J1939协议通信原理、内 容和应用 众多国际知名汽车公司早在20世纪80年代就积极致力于汽车网络技术的研究及应用。迄今已有多种网络标准,如专门用于货车和客车上的SAE的J1939、德国大众的ABUS、博世的CAN、美国商用机器的AutoCAN、ISO的VAN、马自达的PALMNET等。 在我国的轿车中已基本具有电子控制和网络功能,排放和其他指标达到了一定的要求。但货车和客车在这方面却远未能满足排放法规的要求。计划到2006年,北京地区的货车和客车的排放要满足欧Ⅲ标准。因此,为了满足日益严格的排放法规,载货车和客车中也必须引入计算机及控制技术。采用控制器局域网和国际公认标准协议J1939来搭建网络,并完成数据传输,以实现汽车内部电子单元的网络化是一种迫切的需要也是必然的发展趋势。 1 CAN总线特点及其发展 控制器局域网络(CAN)是德国Robert bosch公司在20世纪80年代初为汽车业开发的一种串行数据通信总线。CAN是一种很高保密性,有效支持分布式控制或实时控制的串行通信网络。CAN的应用范围遍及从高速网络到低成本底多线路网络。在自动化电子领域、发动机控制部件、传感器、抗滑系统等应用中,CAN的位速率可高达1Mbps。同时,它可以廉价地用于交通运载工具电气系统中,如灯光聚束、电气窗口等,可以替代所需要的硬件连接。它采用线性总线结构,每个子系统对总线有相同的权利,即为多主工作方式。CAN网络上任意一个节点可在任何时候向网络上的其他节点发送信息而不分主从。网络上的节点可分为不通优先级,满足不同的实时要求。采用非破坏性总线裁决技术,当两个节点(即子系统)同时向网络上传递信息时,优先级低的停止数据发送,而优先级高的节点可不受影响地继续传送数据。具有点对点、一点对多点及全局广播接收传送数据的功能。 随着CAN在各种领域的应用和推广,对其通信格式的标准化提出了要求。1991年9月Philips Semiconductors制定并发布了CAN技术规范(Versio 2.0)。该技术包括A和B两部分。2.OA给出了CAN报文标准格式,而2.OB给出了标准的和扩展的两种格式。1993年11月ISO颁布了道路交通运输工具-数据信息交换-高速通信局域网(CAN)国际标准ISO11898,为控制局域网的标准化和规范化铺平了道路。美国的汽车工程学会SAE于2000年提出的J1939,成为货车和客车中控制器局域网的通用标准。 2.J1939协议通信原理及内容 (1)J1939与CAN J1939是一种支持闭环控制的在多个ECU之间高速通信的网络协议冈。主要运用于载货车和客车上。它是以CAN2.0为网络核心。表1介绍了CAN2.0的标准和扩展格式,及J1939协议所定义的格式。表2则给出了J1939年的一个协议报文单元的具体格式。可以看出,J1939标识符包括:PRIORTY(优先权位);R(保留位);DP(数据页位);PDU FORMAAT(协议数据单元);PDU SPECIFIC(扩展单元)和SOURCE ADDRESS(源地址)。而报文单元还包括64位的数据场。

CAN总线简介及其特点

摘要:CAN总线的数据通讯具有突出的可靠性、实时性和灵活性,其总线规范已经成为国际标准,被公认为几种最有前途的总线之一。本文在总结CAN总线特点的基础上,对其通信介质访问方式进行了详细的描述,介绍了它在应用中需要解决的技术问题以及目前应用状况。 关键词:CAN总线;通信介质访问控制;实时;应用技术 1CAN总线简介及其特点 CAN网络(ControllerAreaNetwork)是现场总线技术的一种,它是一种架构开放、广播式的新一代网络通信协议,称为控制器局域网现场总线。CAN网络原本是德国Bosch公司为欧洲汽车市场所开发的。CAN推出之初是用于汽车内部测量和执行部件之间的数据通信。例如汽车刹车防抱死系统、安全气囊等。对机动车辆总线和对现场总线的需求有许多相似之处,即能够以较低的成本、较高的实时处理能力在强电磁干扰环境下可靠地工作。因此CAN总线可广泛应用于离散控制领域中的过程监测和控制,特别是工业自动化的底层监控,以解决控制与测试之间的可靠和实时数据交换。 CAN总线有如下基本特点: * CAN协议最大的特点是废除了传统的站地址编码,代之以对数据通信数据块进行编码,可以多主方式工作; * CAN采用非破坏性仲裁技术,当两个节点同时向网络上传送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据,有效避免了总线冲突; * CAN采用短帧结构,每一帧的有效字节数为8个(CAN技术规范2.0A),数据传输时间短,受干扰的概率低,重新发送的时间短; * CAN的每帧数据都有CRC效验及其他检错措施,保证了数据传输的高可靠性,适于在高干扰环境中使用; * CAN节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其它操作不受影响; * CAN可以点对点、一点对多点(成组)及全局广播集中方式传送和接受数据; * CAN总线直接通讯距离最远可达10km/5Kbps,通讯速率最高可达1Mbps/40m; * 采用不归零码(NRZ—Non-Return-to-Zero)编码/解码方式,并采用位填充(插入)技术。 详细的CAN协议可参见CAN技术规范2.0a和2.0b以及CAN国际标准ISO11898(参考文献3)。

CAN总线自定义协议使用说明

CAN总线自定义协议使用说明 用C语言实现自己的协议 进入EV5000安装目录下builddriver目录(如图1),这个目录里面的fbserver.c文件即协议程序,用户不需要了解CAN口的细节编程,只需要按照该框架,用C语言来编写自己的协议即可。不可随意更改该文件中的函数名及头文件引用。 图1

CAN 自定义协议程序的流程图 接收线程流程 主程序流程 图2 需要用户实现的函数 void Init(CAN_PORT canport) 调用方式:仅在组态程序运行的时候执行一次 功能:用户程序的初始化 void main_process (CO_Data* d, UNS32 id) 调用方式:周期性执行,默认周期为10ms ,周期可以在void Init(CAN_PORT canport)中调用Set_Cycle 来设定,最小周期为10ms 功能:用户程序的“main 函数” void MsgDispatch (CO_Data* d, Message *m) 调用方式:每接收到一帧CAN 数据,就执行一次 功能:常用于对接收到的数据做解析,或者做出响应

供用户调用的API函数 void Set_Cycle(ms) 功能:用于设定main_process的运行周期, 参数:ms的单位为毫秒, 非零 UNS8 Send_Msg(CAN_PORT port, Message *m,UNS8 bExtended) 功能:向CAN总线发送一帧CAN数据 参数:port指向已打开CAN口的句柄,m指向Message结构体的指针,bExtended为1时按扩展帧发送,为0时按标准帧发送 void Write_LW8K (UNS32 n,UNS16 val) 功能:将val 写入LW8000+n的寄存器 参数:n偏移量、最大999,val待写入的值 UNS16 Read_LW8K (UNS32 n) 功能:读取LW8000+n的寄存器的值 参数:n偏移量、最大999 void Set_Timer(TimerCallback_t callback,TIMEVAL value, TIMEVAL period) 功能:使用定时器,经过设定的时间后,调用callback函数 参数:callback回调函数指针,value单次定时时间,period周期定时时间 void CopyToLW(UNS32 offset,const void *src, size_t n); 功能:由src所指内存区域复制n个字节到LW8000+offset所在内存区域 说明:src和LW8000+offset所在内存区域不能重叠 void CopyFromLW(UNS32 offset,const void *src, size_t n); 功能:由LW8000+offset所在内存区域复制n个字节src所指内存区域 说明:src和LW8000+offset所在内存区域不能重叠 相关的结构体定义 typedef struct { UNS32 w; /* 32 bits */ } SHORT_CAN; /** Can message structure */ typedef struct { SHORT_CAN cob_id; /* l'ID du mesg */ UNS8 rtr; /* remote transmission request. 0 if not rtr, 1 for a rtr message */

CAN总线技术讲解

摘要: 随着工业测控技术和生产自动化技术的不断进步,传统的RS-232、RS-485和CCITTV.24通信技术已不能适应现代化的工业控制需要,而现场总线(Fieldbus)以其低廉的价格、可靠的性能而逐步成为新型的工业测控领域的通信技术。现场总线是应用在生产现场,在微机化测量控制设备之间实现双向串行多节点数字通信的系统,是一种开放式、数字化、多点通信的底层控制网络。汇集了计算机技术、网络通信技术和自动控制技术(3C)的现场总线技术,从20世纪80年代开始发展起来,并逐步在制造业、流程工业、交通、楼宇等方面的自动化系统中得到了广泛的重视和应用。现场总线主要有以下几种类型[1-3]:基金会现场总线(FF)、LonWorks、ProfiBus、CAN、HART,而其中CAN即控制器局域网因为具有高性能、高可靠性以及独特的设计而越来越受到关注,现已形成国际标准,被公认为几种最有前途的现场总线之一。 Abstract: As industrial measurement and control technology and production automation technology advances, the traditional RS - 232, RS - 485 and CCITTV. 24 communication technology can not meet the needs of modern industrial control, and field bus (Fieldbus), with its low price, reliable performance, and gradually become a new kind of communication technology in the field of industrial measurement and control. Field bus is used in production field, between microcomputer-based measuring control equipment to realize the bidirectional serial multi-node digital communication system, is a kind of open, digital, multipoint communication bottom control network. Brings together computer technology, network communication technology and automatic control technology (3 c) field bus technology, developed in the 1980 s, and gradually in the manufacturing and process industries, transportation, building automation system has been widely attention and application. Fieldbus basically has the following several types: [1-3] foundation fieldbus (FF), LonWorks, ProfiBus, CAN, HART, and which CAN namely controller local area network (LAN) because of the high performance, high reliability and unique design is more and more attention, already formed the international standard, is recognized as one of the most promising fieldbus.

相关主题