CAN总线与CANopen协议

合集下载

CANopen协议CAN总线的通信协议

CANopen协议CAN总线的通信协议

CANopen协议CAN总线的通信协议CANopen协议是一种广泛应用于现代工业自动化领域的通信协议,它基于CAN总线技术,为设备之间的通信提供了一套规范和标准化的方式。

本文将介绍CANopen协议的基本原理、通信对象和通信过程。

一、CANopen协议的基本原理CANopen协议是建立在CAN总线之上的,因此首先需要了解CAN总线的基本原理。

CAN总线是一种多主机、多从机的串行通信系统。

它采用差分信号传输的方式,具有低成本、抗干扰能力强、可靠性高等特点。

CANopen协议基于CAN总线,定义了一系列的对象字典和通信服务,用于设备之间的数据交换和控制。

设备可以根据对象字典的内容来读取和写入数据,也可以通过通信服务来实现不同设备之间的通信。

二、CANopen协议的通信对象CANopen协议定义了丰富的通信对象,包括节点、对象字典和数据类型等。

其中,节点是CANopen网络中的实体,可以是主控节点或从节点。

主控节点负责整个网络的管理和控制,而从节点则负责执行具体的任务。

对象字典是CANopen协议的核心,它存储了设备的参数、状态和控制信息等。

对象字典中的每个对象都有一个唯一的标识符,用于标识该对象的类型和属性。

通过读取和写入对象字典中的数据,设备之间可以进行数据交换和共享。

CANopen协议还定义了一系列的数据类型,如布尔型、整型、实型和字符串型等。

这些数据类型可以用于描述设备的各种参数和状态,同时也可以作为通信对象的数据格式。

三、CANopen协议的通信过程CANopen协议的通信过程可以分为以下几个步骤:1. 初始化:CANopen网络在启动时需要进行初始化,包括网络配置、节点配置和通信参数的设置。

2. 启动:主控节点向从节点发送启动命令,从节点根据接收到的命令进行初始化和配置,并报告自身的状态。

3. 数据传输:设备之间通过读取和写入对象字典来进行数据的传输。

主控节点可以向从节点发送读取或写入对象的命令,从节点则根据命令进行相应的操作并回复结果。

CANopen协议讲解

CANopen协议讲解

根据DS301的内容进行介绍1、CAN总线CAN标准报文2、CANopen应用层协议CANopen 协议不针对某种特别的应用对象,具有较高的配置灵活性,高数据传输能力,较低的实现复杂度。

同时,CANopen 完全基于CAN 标准报文格式,而无需扩展报文的支持,最多支持127个节点,并且协议开源。

一个标准的CANopen 节点(下图),在数据链路层之上,添加了应用层。

该应用层一般由软件实现,和控制算法共同运行在实时处理单元内。

一个标准的CANopen 节点CANopen 应用层协议细化了CAN 总线协议中关于标识符的定义。

定义标准报文的11 比特标识符中高4 比特为功能码,后7 比特为节点号,重命名为通讯对象标识符(COB-ID)。

功能码将所有的报文分为7个优先级,按照优先级从高至低依次为:网络命令报文(NMT)同步报文(SYNC)紧急报文(EMERGENCY)时间戳(TIME)过程数据对象(PDO)服务数据对象(SDO)节点状态报文(NMT Err Control)7 位的节点号则表明CANopen 网络最多可支持127个节点共存(0 号节点为主站)。

下表给出了各报文的COB-ID 范围。

NMT 命令为最高优先级报文,由CANopen 主站发出,用以更改从节点的运行状态。

SYNC 报文定期由CANopen 主站发出,所有的同步PDO 根据SYNC报文发送。

EMERGENCY报文由出现紧急状态的从节点发出,任何具备紧急事件监控与处理能力的节点会接收并处理紧急报文。

TIME 报文由CANopen 主站发出,用于同步所有从站的内部时钟。

PDO 分为4 对发送和接收PDO,每一个节点默认拥有4对发送PDO 和接收PDO,用于过程数据的传递。

SDO 分为发送SDO 和接收SDO,用于读写对象字典。

MT Error Control报文由从节点发出,用以监测从节点的运行状态。

状态机CANopen 的每一个节点都维护了一个状态机。

CAN-bus现场总线基础教程【第6章】CAN总线应用层协议(CANopen)-CANopen协议简介(22)

CAN-bus现场总线基础教程【第6章】CAN总线应用层协议(CANopen)-CANopen协议简介(22)

文库资料 ©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.第6章 CAN 总线应用层协议——CANopen1.1 CANopen 协议CANopen 协议是在20世纪90年代末,由CiA 组织(CAN-in-Automation )在CAL (CAN Application Layer )的基础上发展而来,一经推出便在欧洲得到了广泛的认可与应用。

经过对CANopen 协议规范文本的多次修改,使得CANopen 协议的稳定性、实时性、抗干扰性都得到了进一步的提高。

并且CiA 在各个行业不断推出设备子协议,使CANopen 协议在各个行业得到更快的发展与推广。

目前CANopen 协议已经在运动控制、车辆工业、电机驱动、工程机械、船舶海运等行业得到广泛的应用。

1.1.1 CANopen 协议简介图6.1 CANopen 设备结构图6.1所示为CANopen 设备结构,CANopen 协议通常分为用户应用层、对象字典以及通信三个部分。

其中最为核心的是对象字典,这部分将在本章节中介绍。

CANopen 通信是CANopen 关键部分,其定义了CANopen 协议通信规则以及与CAN 控制器驱动之间对应关系,熟悉这部分对全面掌握CANopen 协议至关重要。

用户应用层是用户根据实际的需求编写的应用对象,这部分本书将不作介绍。

1.1.2 CANopen 对象字典CANopen 对象字典(OD: Object Dictionary )是CANopen 协议最为核心的概念。

所谓的对象字典就是一个有序的对象组,每个对象采用一个16位的索引值来寻址,这个索引值通常被称为索引,其范围在0x1000到0x9FFF 之间。

为了允许访问数据结构中的单个元素,同时也定义了一个8 位的索引值,这个索引值通常被称为子索引。

每个CANopen 设备都有一个对象字典,对象字典包含了描述这个设备和它的网络行为的所有参数,对象字典通常用电子数据文档(EDS :Electronic Data Sheet )来记录这些参数,而不需要把这些参数记录在纸上。

CAN和CANopen的差别

CAN和CANopen的差别

CAN和CANopen的差别CAN及CANopen介绍第一部分:CAN硬件介绍CAN:最早的现场总线、最广泛应用的现场总线CANopen:CIA定义的最为成功的CAN应用层协议,在基于CAN的自动化系统中居于领导地位,欧洲标准EN-50325-4CAN+CANopen:机器自动化(MA)领域最为成功的总线解决方案,在欧美广泛被应用CAN总线系统解决方案即是利用CAN总线的优点及其特长为机器自动化设备提供高效、可靠、性价比高的解决方案。

作为机器自动化领域总线解决方案倡导者,CAN总线系统解决方案更能满足您对性价比的要求。

现场总线(Fieldbus)技术从提出到现在有二十多年了,作为工业数据总线,它主要解决工业现场的智能化仪器仪表、控制器、执行机构等现场设备间的数字通信以及这些现场控制设备和高级控制系统之间的信息传递问题,通过模拟变数字实现了不同公司产品间的互操作性问题,使用户有了更大的选择权,尤其它解决了流行几十年的传统系统过于封闭、难以维护的缺点。

采用现场总线控制技术,可大大简化系统集成的工作量、为控制系统的安装调试节省大量的费用,而系统的可靠性、稳定性却得到大幅提高,配合现场总线技术的各类总线诊技术进一步提高了整个系统的性能。

强大的通讯功能又使得系统更加开放透明。

CAN现场总线技术是集自动控制技术、通讯技术、传感技术、计算机技术、诊断技术、微电子技术、网络技术等于一体,是个革命性的技术,正被广泛应用于自动化各个领域。

目前广泛使用的其它现场总线还有Profibus、DeviceNet、ControlNet、HART、FF等等,但是CAN总线是所有现场总线中最早出现的,也是最适合于机器自动化领域的现场总线,如今它已经广泛应用于汽车、飞机、轮船、印刷、纺织、电子等等加工领域,是目前应用领域最为广泛的现场总线。

现场总线是一种革命性的通讯控制技术,因其具有很多普通控制方式不具有的优点,所以才得到了迅速的推广应用,与老的控制方式比较起来它主要的优势如下:节约布线成本,减少布线时间,减小出错机率(对于大型设备尤为突出,如果当驱动器、变频器、传感器等放置到现场的话,可以节省大量的电缆费用);减小施工难度,缩短施工周期降低系统总成本(从安装、系统维护、升级方面大幅降低系统成本)可靠性更高,抗干扰能力更强(比传统485通讯方式更为可靠,更不易受干扰)走线少、全数字信息交互(模拟量通常易受干扰)信息量更大(节点数据信息、状态信息、异常信息等均可方便提供)实时性更高(比传递485通讯速度大大提高,是485通讯速度的100倍左右,且避免了485通讯方式的多控制器之间交换方式,直接由一个PLC来协调处理,实时性大为提高)可维护性更强(可以很方便检测出系统故障所在,且几乎所有的CAN从站都具有故障诊断能力,便于排查及处理)开发性更加(目前全球范围内生产总线产品设备的厂家达上千家,客户可以任意选择适合字节的设备)CAN总线除了具有一般总线所具有的优点外,还专门根据机械自动化的特点,根据其需求提供了一些非常具有优势的技术特点:高速的数据传输速率高达1Mbit/s;CAN协议最大的特点是废除了传统的站地址编码,代之以对数据通信数据块进行编码,可以多主方式工作;CAN采用非破坏性仲裁技术,当两个节点同时向网络上传送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据,有效避免了总线冲突;任何一个节点均可自动发送报文,不需主站询问;可根据报文的ID决定接收或屏蔽该报文可靠的错误处理和检错机制可选择对网络进行三种操作:无处理、停止故障从站、停止整个网络CAN节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其它操作不受影响发送的信息遭到破坏后可自动重发节点在错误严重的情况下具有自动退出总线的功能报文不包含源地址或目标地址,仅用标识符来指示功能信息优先级信息CAN可以点对点、一点对多点(成组)及全局广播集中方式传送和接受数据;采用不归零码(NRZ—Non-Return-to-Zero)编码/解码方式,并采用位填充(插入)技术;革命化的报文传输方式:SDO主要用来在设备之间传输低优先级的数据,典型是用来对从设备进行配置、管理;PDO一次性可传送8个字节的数据,没有其它协议预设定(意味着数据内容已预先定义),主要用来传输需要高频率交换的数据。

can总线与canopen协议

can总线与canopen协议

竭诚为您提供优质文档/双击可除can总线与canopen协议篇一:•canopen协议讲解根据ds301的内容进行介绍1、can总线can标准报文2、canopen应用层协议canopen协议不针对某种特别的应用对象,具有较高的配置灵活性,高数据传输能力,较低的实现复杂度。

同时,canopen完全基于can标准报文格式,而无需扩展报文的支持,最多支持127个节点,并且协议开源。

一个标准的canopen节点(下图),在数据链路层之上,添加了应用层。

该应用层一般由软件实现,和控制算法共同运行在实时处理单元内。

一个标准的canopen节点canopen应用层协议细化了can总线协议中关于标识符的定义。

定义标准报文的11比特标识符中高4比特为功能码,后7比特为节点号,重命名为通讯对象标识符(cob-id)。

功能码将所有的报文分为7个优先级,按照优先级从高至低依次为:网络命令报文(nmt)同步报文(sync)紧急报文(emeRgency)时间戳(time)过程数据对象(pdo)服务数据对象(sdo)节点状态报文(nmterrcontrol)7位的节点号则表明canopen网络最多可支持127个节点共存(0号节点为主站)。

下表给出了各报文的cob-id范围。

nmt命令为最高优先级报文,由canopen主站发出,用以更改从节点的运行状态。

sync报文定期由canopen主站发出,所有的同步pdo根据sync报文发送。

emeRgency报文由出现紧急状态的从节点发出,任何具备紧急事件监控与处理能力的节点会接收并处理紧急报文。

time报文由canopen主站发出,用于同步所有从站的内部时钟。

pdo分为4对发送和接收pdo,每一个节点默认拥有4对发送pdo和接收pdo,用于过程数据的传递。

sdo分为发送sdo和接收sdo,用于读写对象字典。

mterrorcontrol报文由从节点发出,用以监测从节点的运行状态。

状态机canopen的每一个节点都维护了一个状态机。

CAN和CANopen简介

CAN和CANopen简介

一、CAN和CANopen简介CAN总线全称为Controller Area Network即控制器局域网是国际上应用最广泛的现场总线之一,已经在汽车制造、机械制造、包装机械、烟草等行业得到了广泛的应用。

CAN总线是德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。

通信速率可达1MBPS。

CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。

CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。

采用这种方法的优点可使网络内的节点个数在理论上不受限制,数据块的标识码可由11位或29位二进制数组成,因此可以定义211或229个不同的数据块,这种按数据块编码的方式,还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。

数据段长度最多为8个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。

同时,8个字节不会占用总线时间过长,从而保证了通信的实时性。

CAN协议采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。

CAN卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的互连,因此,越来越受到工业界的重视,并已公认为最有前途的现场总线之一。

另外,CAN总线采用了多主竞争式总线结构,具有多主站运行和分散仲裁的串行总线以及广播通信的特点。

CAN总线上任意节点可在任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。

CAN总线协议已被国际标准化组织认证,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用于分布式测控系统之间的数通讯。

CAN总线插卡可以任意插在PC、AT、XT兼容机上,方便地构成分布式监控系统。

CAN及CANOPEN协议解析

CAN及CANOPEN协议解析

各个通讯对象介绍
RPDO 有两种工作方式: 同步 接收到同步PDO消息后,在收到下一个SYNC消息时发送给应用程序。 异步 接收到PDO消息后,直接发送给应用程序。
各个通讯对象介绍
各个通讯对象介绍
与PDO相关的对象词典: 描述PDO数据类型的对象词典:
PDO入口参数的对象词典:
各个通讯对象介绍
下载(Download)是指对对象字典进行写操作,上传(Upload)指对对象 字典进行读操作。
各个通讯对象介绍
与SDO相关的对象词典: 描述SDO数据类型的对象词典:
SDO入口参数的对象词典:
各个通讯对象介绍
❖ 举例说明: 使用下面的SDO消息,值0x3FE将写到节点ID为2的对象字典中索引
为0x1801,子索引为3的对象中去,使用启动域下载协议,加速传输(2 字节数据):
CANopen主要特点介绍
❖ 采用面向对象的方式来描述,具体设备模型为:
C
A
N 总
应用程序
对象词典
通讯接口
线
❖ 通讯对象: 过程数据对象PDO;服务数据对象SDO;特殊功能对象;网络管理对象NMT。 ❖ 对象词典: 包含描述这个设备和它的网络行为的所有参数。以EDS文档的形式存在。 ❖ 应用程序: 包括功能部分和通信部分。
使用下面的SDO消息,同样的对象字典中索引为0x1801,子索引为 3的对象将被读出,使用启动域上传协议,服务器使用加速传输方式应 答(2字节数据):
CAN及 CANOPEN协议
zspking
目录
❖ CAN与CANopen协议介绍; ❖ CAN协议简单介绍; ❖ CANopen协议介绍; ❖ CANopen对象词典; ❖ CANopen通讯机制; ❖ CANopen通讯对象;

canopen协议

canopen协议

canopen协议CANopen协议。

CANopen协议是一种基于CAN总线的高层通信协议,它被广泛应用于工业自动化、汽车电子、医疗设备等领域。

CANopen协议的特点是开放、灵活、可靠,能够满足不同领域的通信需求。

本文将介绍CANopen协议的基本原理、通信对象、网络结构和应用范围。

首先,CANopen协议的基本原理是基于CAN总线的通信。

CAN总线是一种串行通信协议,具有高速传输、抗干扰能力强等特点。

CANopen协议在CAN总线的基础上,定义了一套标准的通信对象和通信方式,包括PDO(Process Data Object)、SDO(Service Data Object)、NMT(Network Management)等。

这些通信对象和通信方式构成了CANopen协议的核心内容,为设备之间的通信提供了标准化的接口。

其次,CANopen协议的通信对象包括了各种设备状态信息、控制命令、数据传输等。

这些通信对象可以通过PDO和SDO进行传输,实现设备之间的数据交换和控制。

此外,CANopen协议还定义了网络管理对象,用于管理整个CANopen网络的状态和配置信息。

通过这些通信对象,CANopen协议实现了设备之间的高效通信和协作。

再次,CANopen协议的网络结构通常是基于主从结构的。

在CANopen网络中,通常会有一个主控设备(Master)和多个从设备(Slave)。

主控设备负责管理整个网络的状态和配置信息,从设备负责执行主控设备下发的控制命令,并向主控设备报告自身状态信息。

这种网络结构能够很好地适应复杂的工业控制系统和设备之间的协作需求。

最后,CANopen协议被广泛应用于工业自动化、汽车电子、医疗设备等领域。

在工业自动化领域,CANopen协议被用于各种工业控制设备之间的通信和协作,如PLC、传感器、执行器等。

在汽车电子领域,CANopen协议被用于汽车电子控制单元(ECU)之间的通信和数据交换。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CAN总线与CANOpen协议一CAN总线简介1.1 引言在20世纪90年代的汽车研究领域,采用总线分布式控制获得了很大的成功。

用户要求汽车的控制系统具有优越的性能以保证汽车的安全性和舒适性,因此越来越多的具有超强计算能力的电子设备加载在汽车上。

这就要求不同的电子设备之间能够进行通信和数据交换,以达到信息共享协调工作的目的。

德国的博世公司(Bosch)率先将CAN总线(Controller Area Network)应用于汽车电子控制系统,解决了控制系统的部件之间的以及控制系统与测试设备主机的数据交换问题,替代了原有网络(用于车体控制的LIN网络、用于厂内环境控制的MOST 网络及原有车内通信的Flecray网络等)实现的功能。

由于其独特的设计思想和高可靠性,在不同总线标准的竞争中获得了广泛的认可,并逐渐成为汽车最基本的控制网络,广泛应用于火车、机器人、楼宇控制、机械制造、数字机床、医疗器械、自动化仪表等领域。

图1.1 早期的ECU(汽车电子控制单元)通信CAN总线是一种串行通信协议,具有较高的通信速率的和较强的抗干扰能力,可以作为现场总线应用于电磁噪声较大的场合。

由于CAN总线本身只定义ISO/OSI模型中的第一层(物理层)和第二层(数据链路层),通常情况下CAN 总线网络都是独立的网络,所以没有网络层。

在实际使用中,用户还需要自己定义应用层的协议,因此在CAN总线的发展过程中出现了各种版本的CAN应用层协议,现阶段最流行的CAN应用层协议主要有CANopen、DeviceNet和J1939等协议。

图1.2 基于总线(CAN)的ECU通信1.2 CAN总线的特点CAN总线并不采用物理地址的模式传送数据,而是每个消息有自己的标识符用来识别总线上的节点。

标识符主要有2个功能:消息滤波和消息优先级确定。

节点利用标识符确定是否接收总线上的传送的消息当有2个或更多节点需要传送数据时,根据标识符确定消息的优先级。

总线访问采用多主原则,所有节点都可以作为主节点占用总线。

CAN总线相对于Ethernet具有非破坏性避免总线冲突的特点(CSMA/CA协议,与CSMA/CD协议相似),这种方式可以保证在产生总线冲突的情况下,具有更高优先级的信息没有被延时传输。

其物理传输层详细和高效的定义,使得CAN总线具有其它总线无法达到的优势,注定其在工业现场总线中占有不可动摇的地位,CAN总线通信主要具有如下所示的优势和特点:(1)CAN总线上任意节点均可在任意时刻主动的向其它节点发起通信,节点没有主从之分,但在同一时刻优先级高的节点能获得总线的使用权,在高优先级的节点释放总线后,任意节点都可使用总线;(2)CAN总线传输波特率为5Kbps~1Mbps,在5Kbps的通信波特率下最远传输距离可以达到10Km,即使在1Mbps的波特率下也能传输40m的距离。

在1Mbps波特率下节点发送一帧数据最多需要134μs;(3)CAN总线采用载波监听多路访问、逐位仲裁的非破坏性总线仲裁技术。

在节点需要发送信息时,节点先监听总线是否空闲,只有节点监听到总线空闲时才能够发送数据,即载波监听多路访问方式。

在总线出现两个以上的节点同时发送数据时,CAN协议规定,按位进行仲裁,按照显性位优先级大于隐性位优先级的规则进行仲裁,最后高优先级的节点数据毫无破坏的被发送,其它节点停止发送数据(即逐位仲裁无破坏的传输技术)。

这样能大大的提高总线的使用效率及实时性;(4)CAN总线所挂接的节点数量主要取决于CAN总线收发器或驱动器,目前的驱动器一般都可以使同一网络容量达到110个节点。

CAN报文分为两个标准即CAN2.0A标准帧和CAN2.0B扩展帧,两个标准最大的区别在于CAN2.0A 只有11位标识符,CAN2.0B具有29位标识符;(5)CAN总线定义使用了硬件报文滤波,可实现点对点及点对多点的通信方式,不需要软件来控制。

数据采用短帧发送方式,每帧数据不超过8字节,抗干扰能力强,每帧接收的数据都进行CRC校验,使得数据出错机率极大限度的降低。

CAN节点在错误严重的情况下具有自动关闭的功能,避免了对总线上其它节点的干扰;(6)CAN总线通信介质可采用双绞线、同轴电缆或光纤,选择极为灵活。

可大大节约组网成本。

1.3 CAN总线的物理连接和电平特性CAN总线采用差分信号传输,通常情况下只需要两根信号线(CAN-H和CAN-L)就可以进行正常的通信。

在干扰比较强的场合,还需要用到屏蔽地即CAN-G(主要功能是屏蔽干扰信号),CAN协议推荐用户使用屏蔽双绞线作为CAN总线的传输线。

在隐性状态下,CAN-H与CAN-L的输入差分电压为0V(最大不超过0.5V),共模输入电压为2.5V。

在显性状态下,CAN-H与CAN-L的输入差分电压为2V(最小不小于0.9V),其物理连接和电平特性如下图所示:图1.3 CAN总线物理连接图1.4 CAN总线的基本结构图1.5 CAN总线的电平特性1.4 CAN总线的数据格式CAN协议有以下5中不同类型的帧格式:表1 帧的种类及用途帧帧用途数据帧用于发送单元向接收单元传送数据的帧远程帧用于接收单元向有相同ID的发送单元请求数据的帧错误帧用于当检测出错误时向其他单元通知错误的帧过载帧用于接收单元通知尚未做好接收准备的帧帧间隔用于数据帧及远程帧与前面的帧分隔开来的帧CAN2.0B总线规范定义了2种不同的数据格式(标准帧和扩展帧),其主要区别在于标识符的长度不同:标准帧有11位的标识符,扩展帧有29位的标识符。

CAN总线的标准帧数据长度是44~10位,而扩展帧的长度是64~128位。

根据数据流代码的不同,标准帧可以插入32位的填充位,扩展帧可以插入28为的填充位。

因此标准数据帧最长为131位,扩展帧最长为156位。

图1.6 数据帧图1.7 远程帧图1.8 错误帧图1.9 过载帧图1.10 帧间隔在数据帧,各数据位的意义如下:SOF(1 bit)标识一个消息帧的开始,在空闲时间的下降沿同步所有的总线模块;ID(11/29 bits)标准帧11位,扩展帧29位,标识了此消息的优先级和过滤信息;RTR(1 bit)远程传输请求,如果RTR=1表示在数据帧中没有有效数据,请求远程节点向发出请求帧的节点发送数据;IDE(1 bit)标识符扩展,如果IDE=1,则采用扩展的数据帧传送数据;r0(1 bit)保留;DLC(4 bit)数据长度代码,数据帧允许的数据字节数为(0~8),其他长度数值不允许使用;DATA(0~64 bits)消息数据;CRC(15 bits)循环冗余校验码,只用于检测错误而不能校正;ACK(2 bits)每一个接听者收到消息后必须发送响应位(ACK);EOF(7 bits)帧的结束;IFS(3 bits)内部帧空间,将接收到的消息从总线处理单元复制到缓冲,只有扩展模式有该位;SRR(1 bit)代替标准帧中的远程帧请求位(RTR);r0(1 bit)保留。

根据系统通信速率的要求,CAN总线的物理布线长度具有严格的限制。

每个数据帧由几个字节(最多8个字节)组成,从而提高了总线对于新的数据帧的响应时间。

但另一方面,CAN总线不适合高数据吞吐类型的信息传输,比如实时图像处理。

1.5 CAN总线的仲裁CAN总线采用的是一种叫做“载波监听,多主访问/冲突避免”(CSMA/CA)的通信模式。

这种总线仲裁方式允许总线上的任何一个设备都有机会取得总线的控制权并向外发送数据。

如果在同一时刻有2个或2个以上的设备要求发送数据,就会产生总线冲突,CAN总线能够实时地检测这些冲突并对其进行仲裁,从而使具有高优先级的数据不受任何损坏地传输。

总线处于空闲状态时呈现隐形电平,此时任何节点都可以向总线发送显性电平作为帧的开始。

如果2个或2个以上同时发送就会产生竞争。

CAN解决这种冲突的方法和CSMA/CD相似,并对其进行了改进采用CSMA/CA,访问总线,按位对标识符进行仲裁。

各节点在向总线发送电平的同时,也对总线上的电平读取,并与自身发送的电平比较,如果电平相同继续发送下一位,不同则停止发送退出总线竞争。

剩余的节点继续上述过程,直到总线上只剩下一个节点发送的电平,总线竞争结束,优先级高的节点获得总线的控制权。

如下图所示:图 1.11 总线仲裁过程1.6 CAN协议层CAN总线是个开放的系统,其标准遵循ISO的OSI七层模式,而CAN的基本协议只有物理层和数据链路层。

实际上,CAN总线的核心技术是其MAC 应用协议,主要解决数据冲突的CSMA/CA协议。

CAN总线一般用于小型的现场控制网络中,如果协议的结构过于复杂,网络的信息传输速率势必会变慢。

因此,CAN总线只用了7层模型中的3层:物理层,数据链路层,应用层。

如下图12所示:(1)物理层:传输线的物理接口l差分双绞线;l IC集成方式和接收数据;l可采用光纤传输;l可选的编码格式:PWM、NRZ、曼侧斯特编码。

(2)数据链路层l定义消息格式和传输协议;l CSMA/CA避免总线冲突。

(3)应用层l工业标准和汽车应用有细微区别;l为通信、网络管理和实时操作系统提供接口。

图1.12 CAN协议层结构1.7 CAN的通信错误及其处理在CAN总线中存在5中错误类型,它们互相并不排斥,下面介绍一下它们的区别、产生的原因及处理方法。

(1)位错误:向总线发送出一位的某个节点同时也在监视总线,当监视总线位的电平与送出的电平不同时,则在该位时刻检测到一个位错误。

但是在仲裁的填充位流期间或应答间隙送出隐形位而检测到显性位时,不认为是位错误。

送出认可错误标注的发送器,在检测到显性位时也不认为是位错误;(2)填充错误:在使用位填充方法进行编码的报文中,出现了第6个连续相同的位电平时,检测出一个填充错误;(3)CRC错误:CRC序列是由发送器CRC计算的结果组成的。

接收器以与发送器相同的方法计算CRC。

如果计算的结果与接收到的CRC序列不同,则检测出一个CRC错误;(4)形式错误:当固定形式的位区中出现一个或多个非法位时,则检测到一个形式错位;(5)应答错误:在应答间隙,发送器未检测到显性位时,则由它检测出一个应答错误。

检测到出错条件的节点通过发送错误标志进行标定。

当任何节点检测出位错误、填充错误、形式错误、或应答错误时,有该节点在下一位开始发送出错误标志。

当检测到CRC错误时,出错标志在应答界定符后面那一位开始发送,除非其他出错条件的标志已经开始发送。

CAN总线中,任何一个单元可能处于下列3中故障状态之一:错误激活状态(Error Active)、错误认可状态(Error Passive)和总线关闭状态(Bus off)。

具体的错误计算方式可以参考CAN 2.0协议标准。

相关文档
最新文档