谈一谈伺服控制中的CAN总线技术,CAN到底怎么样

谈一谈伺服控制中的CAN总线技术,CAN到底怎么样

首页模拟经营欧洲列车总线模拟器更新时间:2024-06-23
私信“干货”二字,即可领取18G伺服与机器人专属资料!

CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。最初,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置。

一个由CAN 总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。CAN 可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。

CAN总线技术原理

CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。CAN与I2C总线的许多细节很类似,但也有一些明显的区别。

当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。

每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。

当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状 态。

CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。

由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或 软件上进行修改。

当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。

CAN支持四类信息帧类型

1、数据帧

CAN协议有两种数据帧类型标准2.0A和标准2.0B。两者本质的不同在于ID的长度不同。在2.0A类型中,ID的长度为l l位;在2.0B类型中ID为29位。一个信息震中包括7个主要的域: 帧起始域——标志数据帧的开始,由一个显性位组成。

仲裁域——内容由标示符和远程传输请求位(RTR)组成,RTR用以表明此信息帧是数据帧还是不包含任何数据的远地请求帧。当2.0A的数据帧和2.0B的数据帧必须在同一条总线上传输时,首先判断其优先权,如果ID相同,则非扩展数据帧的优先权高于扩展数据帧。

控制域——r0、r1是保留位,作为扩展位,DLC表示一帧中数据字节的数目。 数据域——包含0~8字节的数据。

校验域——检验位错用的循环冗余校验域,共15位。应答域——包括应答位和应答分隔符。正确接收到有效报文的接收站在应答期间将总线值为显性电平。 帧结束——由七位隐性电平组成。

2、远程帧

远程帧接受数据的节点可通过发远程帧请求源节点发送数据。它由6个域组成:帧起始、仲裁域、控制域、校验域、应答域、帧结束。

3、错误指示帧

错误指示帧由错误标志和错误分界两个域组成。接收节点发现总线上的报文有误时,将自动发出“活动错误标志”其他节点检测到活动错误标志后发送“错误认可标志”。

4、超载帧

超载帧由超载标志和超载分隔符组成。超载帧只能在一个帧结束后开始。当接收方接收下一帧之前,需要过多的时间处理当前的数据,或在帧问空隙域检测到显性电平时,则导致发送超载帧。

5、帧间空隙

帧间空隙位于数据帧和远地帧与前面的信息帧之间,由帧间空隙和总线空闲状态组成。帧间空隙是必要的,在此期间, CAN不进行新的帧发送,为的是CAN控制器在下次信息传递前有时间进行内部处理操作。当总线空闲时CAN控制器方可发送数据。

CAN总线的发展历程

在 1980 年的早些时候,Bosch 公司的工程师就开始论证当时的串行总线用于客车系统的可行性。因为没有一种现成的网络方案能够完全满足汽车工程师们的要求,于是,在 1983 年初,Uwe Kiencke 开始研究一种新的串行总线。

新总线的主要方向是增加新功能、减少电气连接线 ,使其能够用于产品。来自 Mercedes-Benz 的工程师较早制定了总线的状态说明,而 Intel 也准备作为半导体生产的主要厂商。

1986 年 2 月,CAN 诞生了。在底特律的汽车工程协会大会上,由 Bosch 公司研究的新总线系统被称为“汽车串行控制器局域网” 。Uwe Kiencke、 Siegfried Dais 和 Martin Litschel 分别介绍了这种多主网络方案。

此方案基于非破坏性的仲裁机制,能够确保高优先级报文的无延迟传输。并且,不需要在总线上设置主控制器。此外,CAN 之父——上述几位教授和 Bosch 公司的 Wolfgang Borst、Wolfgang Botzenhard、Otto Karl、Helmut Schelling、Jan Unruh 已经实现了数种在 CAN 中的错误检测机制。

该错误检测也包括自动断开故障节点功能,以确保能继续进行剩余节点之间的通讯。传输的报文并非根据报文发送器/接收器的节点地址识别,而是根据报文的内容识别。同时,用于识别报文的标识符也规定了该报文在系统中的优先级。

当关于这种革新的通讯方案的大部分文字内容制定之后,于 1987 年中期,Intel 提前计划 2 个月交付了首枚 CAN 控制器:82526,这是 CAN 方案首次通过硬件实现。仅仅用了四年的时间,设想就变成了现实。

不久之后,Philips 半导体推出了 82C200。这两枚最先的 CAN 控制器在验收滤波和报文控制方面有许多不同。一方面,由Intel主推的FullCAN比由Philips主推的BasicCAN占用较少的CPU载荷;另一方面, FullCAN器件所能接收的报文数目相对受到限制,BasicCAN 控制器仅需较少的硅晶体。

今天的 CAN 控制器中,“孙子”辈们在同一模块中的验收滤波和报文控制方面仍有相当的不同,制造出 BasicCAN 和 FullCAN 两大阵营。

标准化与一致性。

尽管当初研究 CAN 的起点是应用于客车系统,但 CAN 的第一个市场应用却来自于其他领域。特别是在北欧,CAN 早已得到非常普遍的应用。在荷兰,电梯厂商 Kone 使用 CAN 总线。

瑞士工程办公室 Kvaser已建议将 CAN 应用至一些纺织机械厂(Lindauer Dornier 和 Sulzer),并由他们提供机器的通讯协议。这一领域中,在 Lars-Berno Fredriksson 的领导下,公司建立了“CAN 纺织机械用户集团”。

到 1989 年,他们已研究出通讯原理,并于 1990 年早期帮助建立“CAN Kingdom”开发环境。尽管 CAN Kingdom 并不是一种基于 OSI 参考模型的应用层,但它被认为是基于 CAN 的高层协议的原型。

在荷兰,Philips 医疗系统决定使用 CAN 构成 X 光机的内部网络,成为 CAN 的工业用户。大多数 CAN 的先行者使用单片电路的方法,通讯功能、网络管理、应用代码组合在同一个软件之中。即使一些用户有较多的标准模块可供利用,但面对所有的解决方案,他们也一定存在着缺陷。

在 1990 年的早些时候,开始筹划成立一个用户组织,从而将不同的解决方案标准化。

J1939,这也是一个基于 CAN 的应用子协议,由 SAE 的 Truck and Bus 协会制定。J1939是一个非模块化的方案,简单易学,但灵活性很差。当然,生产 CAN 模块集成器件的 15 家半导体厂商主要聚焦于汽车工业。

从 1990 年中期起,Infineon公司和 Motorola 公司已向欧洲的客车厂商提供了大量的 CAN 控制器。从 1990 年后期起,远东的半导体厂商也开始提供 CAN 控制器。1994 年,NEC 推出了CAN 芯片 72005。

从 1992 年起,Mercedes-Benz开始在他们的高级客车中使用 CAN 技术。第一步使用电子控制器通过 CAN 对发动机进行管理;第二步使用控制器接收人们的操作信号。这就使用了 2 个物理上独立的CAN 总线系统,它们通过网关连接。其他的客车厂商也纷纷赶来斯图加特学习,在他们的客车上也使用 2套 CAN 总线系统。

尽管 CAN 协议已经有很长的历史,但它仍处在改进之中。一个由数家公司组成的 ISO任务组织定义了一种时间触发 CAN 报文传输的协议。现在,CAN 在全球市场上仍然处于起始点,汽车厂商将会在他们所生产汽车的串行部件上使用 CAN。

另外,大量潜在的新应用(例如:娱乐)正在呈现——不仅可用于汽车,也可用于家庭消费。同时,结合高层协议应用的特殊保安系统对 CAN 的需求也正在稳健增长。德国专业委员会 BIA 和德国安全标准权威 TÜV 已经对一些基于 CAN 的保安系统进行了认证。

CAN总线的分层结构

CAN遵从OSI模型,按照OSI基准模型,CAN结构划分为两层:数据链路层和物理层,如下图所示。

按照IEEE 802.2和802.3 标准,数据链路层又划分为:

1、逻辑链路控制(LLC-Logic Link Control)。

2、媒体访问控制(MAC-Medium Access Control)。

物理层又划分为:

1、物理信令(PLS-Physical Signalling)。

2、物理媒体附属装置(PMA-Physical Medium Attachment)。

3、媒体相关接口(MDI-Medium Dependent Interface)。

MAC子层运行借助称之为“故障界定实体(FCE)”的管理实体进行监控。故障界定是使判别短暂干扰和永久性故障成为可能的一种自检机制。物理层可借助检测和管理物理媒体故障实体进行监控(例如总线短路或中断,总线故障管理)。

LLC和MAC两个同等的协议实体通过交换帧或协议数据单元(PDU-Protocol Data Unit)和(N)-用户数据组成,为传送一个NPDU,(N-1)层实体必须通过(N-1)服务访问点(SAP-Service Access Point)[(N-1)-SAP].NPDU借助于(N-1)层服务数据单元(SDU-Service Data U nit)[(N-1)-SDU]传至(N-1)层,其服务功能允许NPDU的传送。

SDU是接口数据,对其识别预先在(N)层实体间进行,亦即,它表示逻辑数据单元由服务进行传送。CAN协议的数据链层既不提供分配一个SDU至多个PDU,也不提供分配多个SDU至一个PDU的方法,亦即,NPDU直接由相应的NSDU和层指定控制信息N-PCI构成。

CAN总线的特点

CAN具有十分优越的特点,使人们乐于选择。这些优越的特点包括:

1、多主控制

当总线空闲时,连接到总线上的所有单元都可以启动发送信息,这就是所谓的多主控制的概念。

先占有总线的设备获得在总线上进行发送信息的资格。这就是所谓的CSMA/CR(Carrier Sense MultipleAccess/Collosion Avoidance)方法

如果多个设备同时开始发送信息,那么发送最高优先级ID消息的设备获得发送资格。

2、信息的发送

在CAN协议中,所有发送的信息要满足预先定义的格式。当总线没有被占用的时候,连接在总线上的任何设备都能起动新信息的传输,如果两个或更多个设备在同时刻启动信息的传输,通过ID来决定优先级。ID并不是指明信息发送的目的地,而是指示信息的优先级。

如果2个或者更多的设备在同一时刻启动信息的传输,在总线上按照信息所包含的ID的每一位来竞争,赢得竞争的设备(也就是具有最高优先级的信息)能够继续发送,而失败者则立刻停止发送并进入接收操作。因为总线上同一时刻只可能有一个发送者,而其它均处于接收状态,所以,并不需要在底层协议中定义地址的概念。

3、系统的灵活性

连接到总线上的单元并没有类似地址这样的标识,所以,添加或去除一个设备,无需改变软件和硬件,或其它设备的应用层软件。

4、通信速度

可以设置任何通讯速度,以适应网络规模。

对一个网络,所有单元必须有相同的通讯速度,如果不同,就会产生错误,并妨碍网络通讯,然而,不同网络间可以有不同的通讯速度。

5、远程数据请求

可以通过发送“遥控帧”,请求其他单元发送数据。

6、错误检测、错误通知、错误恢复功能

所有单元均可以检测出错误(错误检测功能)。检测到错误的单元立刻同时通知其它所有的单元(错误通知功能)。如果一个单元发送信息时检测到一个错误,它会强制终止信息传输,并通知其它所有设备发生了错误,然后它会重传直到信息正常传输出去(错误恢复功能)。

7、错误隔离

在CAN总线上有两种类型的错误:暂时性的错误(总线上的数据由于受到噪声的影响而暂时出错);持续性的错误(由于设备内部出错(如驱动器坏了、连接有问题等)而导致的)。CAN能够区别这两种类型,一方面降低常出错单元的通讯优先级以阻止对其它正常设备的影响,另一方面,如果是一种持续性的错误,将这个设备从总线上隔离开。

8、连接

CAN总线允许多个设备同时连接到总线上且在逻辑上没有数目上的限制。然而由于延迟和负载能力的限制,实际可连接得设备还是有限制的,可以通过降低通讯速度来增加连接的设备个数。相反,如果连接的设备少,通讯的速度可以增加。

CAN与其它通信方案的比较

CAN总线与其它通信网的不同之处在于:

一是报文传送中不包含目标地址,它是以全网广播为基础。各接收站根据报文中反映数据性质的标识符过滤报文,该收的收下,不该收的丢弃。其好处是可在线上网下网、即插即用和多站接收;

二是特别强化了对数据安全性的关注,满足控制系统及其它较高数据要求的系统需求。

在实践中,有两种重要的总线分配方法:按时间表分配和按需要分配。在第一种方法中,不管每个节点是否申请总线,都对每个节点按最大期间分配。由此,总线可被分配给每个站并且是唯一的站,而不论其是立即进行总线存取或在一特定时间进行总线存取。

这将保证在总线存取时有明确的总线分配。在第二种方法中,总线按传送数据的基本要求分配给一个站,总线系统按站希望的传送分配。因此,当多个站同时请求总线存取时,总线将终止所有站的请求,这时将不会有任何一个站获得总线分配。为了分配总线,多于一个总线存取是必要的。

CAN实现总线分配的方法,可保证当不同的站申请总线存取时,明确地进行总线分配。这种位仲裁的方法可以解决当两个站同时发送数据时产生的碰撞问题。不同于Ethernet网络的消息仲裁,CAN的非破坏性解决总线存取冲突的方法,确保在不传送有用消息时总线不被占用。

甚至当总线在重负载情况下,以消息内容为优先的总线存取也被证明是一种有效的系统。虽然总线的传输能力不足,所有未解决的传输请求都按重要性顺序来处理。在CSMA/CD这样的网络中,如Ethernet,系统往往由于过载而崩溃,而这种情况在CAN中不会发生。

CAN总线的应用

CAN总线在组网和通信功能上的优点以及其高性价比据定了它在许多领域有广阔的应用前景和发展潜力。这些应用有些共同之处:CAN实际就是在现场起一个总线拓扑的计算机局域网的作用。

不管在什么场合,它负担的是任一节点之间的实时通信,但是它具备结构简单、高速、抗干扰、可靠、价位低等优势。CAN总线最初是为汽车的电子控制系统而设计的,目前在欧洲生产的汽车中CAN的应用已非常普遍,不仅如此,这项技术已推广到火车、轮船等交通工具中。

汽车制造中的应用

应用CAN总线,可以减少车身布线,进一步节省了成本,由于采用总线技术,模块之间的信号传递仅需要两条信号线。布线局部化,车上除掉总线外其他所有横贯车身的线都不再需要了,节省了布线成本。

CAN总线系统数据稳定可靠,CAN总线具有线间干扰小、抗干扰能力强的特点。CAN总线专为汽车量身定做,充分考虑到了汽车上恶劣工作环境,比如点火线圈点火时产生的强大的反充电压,电涡流缓冲器切断时产生的浪涌电流及汽车发动机仓100℃左右的高温。

大型仪器设备中的应用

大型仪器设备是一种参照一定步骤对多种信息采集、处理、控制、输出等操作的复杂系统。过去这类仪器设备的电子系统往往是在结构和成本方面占据相当大的部分,而且可靠性不高。采用CAN总线技术后,在这方面有了明显改观。

工业控制中的应用

随着计算机技术、通信技术和控制技术的发展,传统的工业控制领域正经历着一场前所未有的变革,而工业控制的网络化,更拓展了工业控制领域的发展空间,带来新的发展机遇。在广泛的工业领域,CAN总线可作为现场设备级的通信总线,而且与其他的总线相比,具有很高的可靠性和性能价格比。这将是CAN技术开发应用的一个主要的方向。

智能家庭和生活小区管理中的应用

机器人网络互联中的应用

私信“干货”二字,即可领取18G伺服与机器人专属资料!
查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved