CAN总线与CANopen协议
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协议讲解
根据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)
文库资料 ©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硬件介绍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协议篇一:•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总线全称为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协议解析
各个通讯对象介绍
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协议是一种基于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)之间的通信和数据交换。
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总线全称为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兼容机上,方便地构成分布式监控系统。
CANopen协议
CANopen协议协议名称:CANopen协议一、引言CANopen协议是一种基于CAN总线的通信协议,旨在提供一种标准化的通信方式,用于在工业自动化和控制系统中实现设备之间的数据交换和控制。
本协议旨在确保设备之间的互操作性,并提供一套通用的通信规范,以便各种设备能够无缝地集成到CANopen网络中。
二、范围本协议适用于使用CAN总线作为通信介质的设备和系统,包括但不限于工业控制器、传感器、执行器、驱动器等。
本协议规定了设备之间的通信方式、数据结构、对象字典以及网络管理等方面的规范。
三、术语和定义在本协议中,以下术语和定义适用:1. CAN总线:指控制器局域网(Controller Area Network),一种用于实时应用的串行通信总线。
2. 设备:指CANopen网络中的任何节点,包括控制器、传感器、执行器等。
3. 节点:指连接到CAN总线上的设备。
4. 对象字典:指CANopen设备中存储的对象集合,用于存储设备的参数、状态和控制信息。
5. PDO:指过程数据对象(Process Data Object),用于在设备之间传输实时数据。
6. SDO:指服务数据对象(Service Data Object),用于在设备之间传输配置和管理信息。
四、通信规范1. 通信速率:CANopen网络的通信速率应根据具体应用需求进行配置,常见的通信速率包括125Kbps、250Kbps、500Kbps和1Mbps。
2. 帧格式:CANopen网络中的通信帧应符合CAN 2.0A或CAN 2.0B的标准格式。
3. 网络拓扑:CANopen网络支持多种拓扑结构,包括总线、星形、树形等。
4. 节点ID:每个CANopen节点应具有唯一的节点ID,范围为1到127。
节点ID应根据网络拓扑和设备功能进行分配。
5. 网络管理:CANopen网络应支持网络配置、节点识别、节点状态监测和错误处理等功能。
五、对象字典规范1. 对象字典结构:对象字典应按照以下结构组织:- 索引(Index):用于唯一标识对象字典中的每个对象。
CAN及CANOPEN协议解析
CAN及CANOPEN协议解析CAN(Controller Area Network)是一种用于实时应用的串行通信协议,最初由德国Bosch公司开发。
CAN协议主要用于汽车电子控制单元(ECU)之间的通信,但也被广泛应用于其他领域,如工业自动化和机械控制等。
CAN协议是一种基于事件触发的通信协议,其特点是高可靠性、实时性和抗干扰能力强。
CAN总线上的设备可以同时发送和接收数据,无需主从节点的切换,每个节点都有唯一的标识符,用于区分不同的设备。
CAN协议在物理层采用差分信号进行通信,具有抗干扰能力强的特点。
CAN总线上的设备通过发送和接收电平差分信号来进行通信。
其中,低电平表示逻辑1,高电平表示逻辑0。
由于采用了差分信号,CAN总线可以进行长距离传输,并且具有较高的抗干扰能力。
在数据链路层上,CAN协议采用了帧格式来进行数据的发送和接收。
CAN帧由多个字段组成,包括报文标识符(CANID)、控制位(控制帧或数据帧)、数据长度编码和数据域等。
CAN帧可以分为标准帧和扩展帧,标准帧有11位的CANID,而扩展帧有29位的CANID,扩展帧的CANID可以用于更灵活的数据传输。
CAN协议在应用层上定义了一些常用的通信协议,如CANopen。
CANopen是一种通用的高层协议,用于在CAN总线上实现设备之间的通信和数据交换。
CANopen协议定义了一套标准的对象字典,用于描述设备的功能和参数配置。
设备可以通过读写对象字典中的数据来实现通信和配置。
CANopen协议还定义了一套通信和设备管理的规则,包括心跳检测、节点状态和网络管理等。
这些规则确保了设备之间的可靠通信和及时响应。
CANopen协议还支持多种通信模式,如点对点、广播和组播,以满足不同应用场景的需求。
总之,CAN及CANopen协议是一种用于实时通信的串行通信协议,在汽车电子和工业控制等领域得到了广泛应用。
它们具有高可靠性、实时性和抗干扰能力强的特点,并且支持灵活的数据传输和设备管理。
canopen通讯协议原理
canopen通讯协议原理Canopen通讯协议原理Canopen是基于CAN总线的一种业界标准的分布式总线技术,它可以在不同的处理器之间组织控制数据,是多微处理器系统的一种常用的控制/监视总线。
Canopen是一个开放的标准,通过它可以实现不同厂家产品的组织,配置和编程控制,通信与控制可以实现统一。
Canopen一般由两部分组成:CAN总线部件和Canopen协议部件。
CAN总线部件是基于控制器内在网络(CAN)的技术规范,它可以将多个节点(控制器)连接起来,是数据传输的媒介;Canopen协议部件则是基于CAN总线的具体应用,它定义了CAN的技术规格和实现。
Canopen协议根据不同的应用不同而分为几个层次:1.CAN总线层:定义了CAN网络的硬件特性,具体的定义包括总线类型、物理层、数据链路层及总线管理协议等。
2.Canopen协议层:定义了Canopen技术规范,包括功能定义、总线帧定义、节点地址定义等。
3.应用层:定义了Canopen的应用规范,包括报文类型、报文结构、报文帧格式等,以及数据存储、应用状态、节点的控制、实时任务调度等。
Canopen协议的特点:1、简单、实用:支持多种应用方式,从简单的点对点应用到复杂的系统集成,更有针对特定行业应用的扩展协议;2、可扩展、可扩充:支持多级总线控制和信息的传输,可以根据实际应用需要,动态添加新的功能;3、精确、可靠:通过精确的定时器和修正实时机制,可以保证数据的准确传输;4、可定制化:可以根据实际应用需要,自定义协议的结构、功能和帧格式;5、可保护性:支持节点的保护性控制,可以有效防止误操作;6、可控件:可以实现节点参数、参数更新和控制信息的控制;7、可配置性:可以根据实际的应用需要,实现节点参数的配置和调整;8、可维护性:可以远程管理和维护节点的工作状态,保证系统的正常运行;9、可拓展性:可以根据实际应用情况进行拓展,支持更复杂的应用;总的来说,Canopen协议在微控制系统中具有极高的实用性和可扩展性,可以非常方便地实现多节点数据传输和系统集成控制。
CAN总线与CANopen协议
CAN总线与CANopen协议CAN总线是指控制器局域网(Controller Area Network)的一种通信总线,在工业和汽车电子领域得到广泛应用。
CAN总线采用了一种强大的通信协议,即CANopen协议。
本文将详细介绍CAN总线和CANopen协议的特点、应用以及优势。
首先,CAN总线是一种串行通信协议,用于在各种设备之间传输数据。
它具有高速性能、高可靠性和高实时性。
CAN总线采用了分布式网络拓扑结构,可以连接多个设备,从而实现设备间的数据交换。
每个设备通过在总线上发送和接收CAN帧来进行通信。
另一个特点是CAN总线的高可靠性。
CAN总线采用了一种冲突检测和仲裁机制,可以自动检测和解决数据冲突,从而确保数据传输的准确性。
即使在出现错误或干扰的情况下,CAN总线仍然能够保持稳定的数据传输。
此外,CAN总线还具有高实时性。
CAN总线采用了时间触发机制,在每个数据帧中都预留了时间槽,以保证数据的及时传输。
这使得CAN总线非常适合用于需要实时数据传输和控制的应用领域,例如汽车电子系统和工厂自动化。
CANopen协议是一种在CAN总线上运行的高层通信协议,用于定义设备之间的通信方式和数据交换格式。
CANopen协议提供了一套标准的通信对象,包括网络管理、节点配置、数据传输等功能。
CANopen协议的优势之一是其灵活性和可扩展性。
CANopen协议可以适应不同的应用需求和系统配置,可以根据实际情况定义和配置通信对象。
此外,CANopen协议还支持网络管理功能,包括节点的配置和管理、网络参数的设置等。
另一个优势是CANopen协议的开放性和标准化。
CANopen协议是一个开放的通信标准,可以由不同的供应商进行实现和支持。
这使得不同设备之间的互操作性成为可能,从而方便了设备的集成和应用。
此外,CANopen协议还具有较低的通信负载和资源占用。
CANopen协议采用了一种高效的通信方式,可以减少通信片段和协议开销,从而提高通信的效率和实时性。
CANopen协议
CANopen协议协议名称:CANopen协议一、引言CANopen协议是一种用于控制器局域网络(Controller Area Network,CAN)的通信协议。
它定义了在CAN总线上进行通信的规则和数据结构,使得不同设备之间可以进行可靠的数据交换和通信。
本协议旨在提供一套标准化的通信协议,以便在CAN总线上实现设备之间的互操作性。
二、范围本协议适合于所有基于CAN总线的设备和系统,包括但不限于工业自动化、汽车电子、机器人技术、医疗设备等领域。
它定义了通信的物理层、数据链路层、网络层和应用层的规范。
三、术语和定义在本协议中,以下术语和定义适合:1. CAN总线:指控制器局域网络(Controller Area Network),一种串行通信协议,用于在不同设备之间传输数据。
2. 节点:指连接到CAN总线上的设备,每一个节点都有一个惟一的标识符。
3. 帧:指CAN总线上传输的数据单元,包含数据和控制信息。
4. 数据对象(Data Object):指CANopen协议中用于存储和传输数据的基本单元。
5. 服务数据对象(Service Data Object):指用于请求和响应CANopen服务的数据对象。
6. 状态机:指CANopen设备的工作状态转换图,定义了设备在不同状态下的行为和响应。
四、物理层规范1. CAN总线的物理层采用标准的CAN物理层规范,包括电气特性、传输速率和线缆连接等。
2. 设备之间的连接必须符合CAN总线的物理层规范,并使用合适的线缆和连接器。
五、数据链路层规范1. CANopen协议使用标准的CAN数据链路层协议,包括帧格式、帧类型和错误检测等。
2. 数据链路层必须支持CAN帧的发送和接收,并能够正确处理错误帧和冲突。
六、网络层规范1. CANopen协议定义了一套基于网络层的通信机制,用于节点之间的消息传递和数据交换。
2. 网络层提供了节点之间的数据传输服务,包括数据对象的读取、写入和定阅等功能。
CANopen和CAN的概念
第一部分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报文实例解析CAN报文实例解析:CAN(Controller Area Network)是一种常用的实时网络通信协议,常用于汽车、工业控制等领域。
CAN总线上的通信消息被称为CAN帧,它由CAN标识符、数据长度码、数据域和CRC校验等部分组成。
下面我们通过一个简单的CAN报文实例来解析CAN帧的结构。
假设我们有一个CAN帧,CAN标识符为0x123,数据长度码为8,数据域为0x12 0x34 0x56 0x78。
根据CAN帧的结构,我们可以将这个CAN帧拆分为以下几个部分:1. CAN标识符:0x123,占11位。
CAN标识符用于标识CAN总线上的消息发送者和接收者,以及消息的优先级。
不同的CAN设备可以根据CAN标识符识别消息的类型和发送者。
2. 数据长度码:8,占4位。
数据长度码指示了CAN帧数据域中的字节数量,最大可传输的数据长度为8个字节。
3. 数据域:0x12 0x34 0x56 0x78,共32位。
数据域是CAN帧中实际传输数据的部分,这里包含了4个字节的数据,分别为0x12、0x34、0x56、0x78。
4. CRC校验:CRC校验用于检测CAN帧数据的完整性,保证数据的传输正确性。
通过以上分析,我们可以看到一个CAN帧的结构非常清晰,每个部分都有特定的作用,确保数据的可靠传输。
CAN总线的高效性和实时性使得它在许多领域得到广泛应用,带来了许多便利和效益。
CANopen报文实例解析:CANopen是建立在CAN总线上的高层协议,用于实现设备之间的通信和控制。
CANopen报文是CANopen协议中的基本通信单元,包括了多个字段,用于描述消息的类型、数据内容和发送者等信息。
下面我们通过一个简单的CANopen报文实例来解析CANopen报文的结构。
假设我们有一个CANopen报文,包含了一个NMT(网络管理)帧,其CAN标识符为0x700,数据长度码为2,数据域为0x01 0x05。
canopen手册
canopen手册简介CANopen是一种基于控制器局域网(Controller Area Network, CAN)总线协议的通信协议,用于在工业自动化系统中实现设备之间的高效通信和数据交换。
本手册将详细介绍CANopen的基本原理、协议规范、通信对象以及相关应用方案,旨在帮助读者全面了解和理解CANopen技术,并在实际应用中具备编写、实现和调试CANopen协议的能力。
第一章 CANopen基础知识1.1 CAN总线概述CAN总线是一种通过传输控制器区域网络协议在分布式系统中连接设备的串行总线系统。
它具有高实时性、可靠性以及抗干扰能力强的特点。
1.2 CANopen协议概述CANopen协议是基于CAN总线的设备间通信协议,广泛应用于工业控制和自动化领域。
它定义了一套统一的通信对象、通信参数和通信规则,以便设备之间能够进行可靠和高效的数据交换。
第二章 CANopen协议结构2.1 CANopen通信对象CANopen协议通过一系列通信对象(Communication Object, COB)来实现设备间的数据交换。
通信对象包括进程数据对象(Process Data Object, PDO)、服务数据对象(Service Data Object, SDO)等。
2.2 CANopen网络结构CANopen网络基于主从结构,其中主节点负责总线上的数据传输和管理,从节点则负责执行主节点下发的命令。
网络中的每个节点都有一个唯一的节点ID,用于标识节点之间的通信。
第三章 CANopen协议应用3.1 CANopen在工业自动化中的应用CANopen协议在工业自动化领域具有广泛的应用,例如机床控制、自动化生产线、风力发电等。
通过CANopen协议,不同设备之间可以实现实时的数据交换和快速的响应。
3.2 CANopen在汽车电子中的应用CANopen协议在汽车电子领域也得到了广泛应用,例如车身电子控制模块、发动机管理系统等。
CAN与CANopen总结
1 CAN总线1.1 介绍1、CAN协议(Conroller Area Network Protocol)为Robert Bosch公司开发(1982年),最初应用于汽车内部网络的通讯。
CAN通讯具有严格的错误检测机制、高传输速率,兼低成本、易于实施,特别适合节点之间关键数据传输的小型嵌入式网络通讯;2、CAN网络各节点平等竞争,无所谓主从,CAN通讯基于生产/消费者模型,一个节点生产(发送)的数据可同时为网络上的一个或几个节点同时消费也即接收(本人强烈鄙视某些教科书上将CAN网络描述为多主方式!!);3、CAN协议严格的规范了OSI模型中的数据链路层,并未对物理层作出强硬的约束,因此,CAN帧msg 可传输在各种物理介质上,比较常见的为双绞线信号传输;4、CAN总线上的逻辑电平:CAN-bus采用差分电压信号驱动,用显性电平(逻辑0)、隐性电平(逻辑1)标识,当CAN-bus表现为显性时,CAN-bus为差分电压驱动状态,CANH电平为“Gnd”偏上,CANL电平为“Vcc”偏下;当CAN-bus表现为隐性状态时,CAN-bus为未驱动空闲状态,此时CANL、CANH电平均为“Vcc”的一半,比如:假设Gnd=0V,Vcc=5V,则CANH=CANL=2.5V。
总线上的先行隐性电平会被显性电平所改写;1.2 CAN笔记一下图是用ZLG CAN test抓到的CAN数据:1.2.1 帧格式报文传输由以下4 个不同的帧类型所表示和控制:- 数据帧:数据帧携带数据从发送器至接收器。
- 远程帧:总线单元发出远程帧,请求发送具有同一识别符的数据帧。
- 错误帧:任何单元检测到一总线错误就发出错误帧。
- 过载帧:过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。
数据帧(或远程帧)通过帧间空间与前述的各帧分开。
1 数据帧数据帧由7个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结束。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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协议标准。