CAN及CANOpen的分析
- 格式:docx
- 大小:275.99 KB
- 文档页数:10
CANopen协议CAN总线的通信协议CANopen协议是一种广泛应用于现代工业自动化领域的通信协议,它基于CAN总线技术,为设备之间的通信提供了一套规范和标准化的方式。
本文将介绍CANopen协议的基本原理、通信对象和通信过程。
一、CANopen协议的基本原理CANopen协议是建立在CAN总线之上的,因此首先需要了解CAN总线的基本原理。
CAN总线是一种多主机、多从机的串行通信系统。
它采用差分信号传输的方式,具有低成本、抗干扰能力强、可靠性高等特点。
CANopen协议基于CAN总线,定义了一系列的对象字典和通信服务,用于设备之间的数据交换和控制。
设备可以根据对象字典的内容来读取和写入数据,也可以通过通信服务来实现不同设备之间的通信。
二、CANopen协议的通信对象CANopen协议定义了丰富的通信对象,包括节点、对象字典和数据类型等。
其中,节点是CANopen网络中的实体,可以是主控节点或从节点。
主控节点负责整个网络的管理和控制,而从节点则负责执行具体的任务。
对象字典是CANopen协议的核心,它存储了设备的参数、状态和控制信息等。
对象字典中的每个对象都有一个唯一的标识符,用于标识该对象的类型和属性。
通过读取和写入对象字典中的数据,设备之间可以进行数据交换和共享。
CANopen协议还定义了一系列的数据类型,如布尔型、整型、实型和字符串型等。
这些数据类型可以用于描述设备的各种参数和状态,同时也可以作为通信对象的数据格式。
三、CANopen协议的通信过程CANopen协议的通信过程可以分为以下几个步骤:1. 初始化:CANopen网络在启动时需要进行初始化,包括网络配置、节点配置和通信参数的设置。
2. 启动:主控节点向从节点发送启动命令,从节点根据接收到的命令进行初始化和配置,并报告自身的状态。
3. 数据传输:设备之间通过读取和写入对象字典来进行数据的传输。
主控节点可以向从节点发送读取或写入对象的命令,从节点则根据命令进行相应的操作并回复结果。
PART1——CAN1 CAN 基础知识CAN 总线是一种通用的串行通信协议,包含OSI 网络模型中的物理层和数据链路层,全部通过硬件来实现。
CAN 总线不分主从,每个节点只要需要,都可作为主站,向网络上其他节点发送信息。
物理层主要是通过CAN 收发器来实现。
1.1 CAN 收发器CAN 收发器安装在CAN 控制器内部,负责逻辑信号和电信号的转换,也即信息的收发。
将逻辑信号转为电信号,并将其送入传输线;或者,将传输线的电信号转为逻辑信号。
传输线跟电线一样,分一高一低,即CANH 和CANL 。
TIPS :电信号,指随着时间而变化的电压或电流CAN 收发器如图1.1所示。
由一个电路进行控制,也意味着控制单元的某个时间段只能进行一个操作,收或者发。
图1.1 收发器原理图开关闭合输出低电平,用逻辑“0”来表示,即显性电平; 开关断开输出高电平,用逻辑“1”来表示,即隐性电平。
当总线上连接有多个节点时,只要其中1个节点输出低电平,则总线激活,总线电平为低电平;总线上所有节点都输出高电平时,总线电平才为高电平,此时总线未激活。
原理如图1.2所示。
图1.2 多节点收发器原理图1.2 CAN 总线终端电阻CAN 网络中,网络的源端(起始节点)和末端需各安装一个终端电阻。
注:上图所示电阻并非终端电阻。
有两种接法,一般采用左图接法,如图1.3所示,左边高速,右边低速。
主要作用是:● 提高总线抗干扰能力 ● 提高信号质量。
通过终端电阻来消除在通信电缆中的信号反射,在通信过程中,有两种原因导致信号反射:阻抗不连续和阻抗不匹配。
阻抗不连续,信号在传输线末端突然遇到电缆阻抗很小甚至没有,信号在这个地方就会引起反射。
数据收发器与传输电缆之间的阻抗不匹配,这种原因引起的反射,主要表现在通讯线路处在空闲方式时,整个网络数据混乱,为了提高网络节点的拓扑能力,CAN 总线两端需要接有120Ω的抑制反射的终端电阻。
图1.3 两种终端电阻接线方式1.3 CAN 报文CAN 总线的报文有5种类型,数据帧、远程帧、错误帧、过载帧和帧间隔。
CANopen协议学习一、CAN总线概述控制器局域网络(Controller Area Network,简称CAN)主要用于各种过程(设备)监测及控制。
1、CAN总线特点1)CAN为多主工作方式,网络上任意以节点均可在任意时刻主动的地向网络上其它节点发送信息,而不分主从。
2)CAN网络上的节点信息分为不同的优先级,可满足不同的实时要求,高优先级的数据最多可在134μs内得到传输。
3)CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动退出发送,而最高优先级的节点可不受影响的继续传输数据。
4)CAN程序通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的“调度”。
5)CAN的直线通信距离最长可达10km(速率5Kbps以下),通信速率最高可达1Mbps(此时通信距离最长为40m)。
6)CAN上的节点数主要取决于总线驱动电路,目前可达128个;报文标识符可达2032种(CAN2.0A),而扩展标准(CAN2.0B)的报文标识符几乎不受限制。
7)采用短帧结构,传输时间短,受干扰概率低,具有良好的检错效果。
8)CAN的每帧信息都有CRC校验及其它检错措施,保证了数据出错率极低。
9)CAN的通信介质可为双绞线、同轴电缆或光纤,选择灵活。
10)CAN节点在错误严重的情况下具有自动关闭输出的功能,以使总线上其它节点的操作不受限制。
2、CAN总线的分层结构CAN协议以国际标准化组织的开放性互连模型为参照,规定了物理层、传输层和对象层,实际上相当于ISO网络层次模型中的物理层和数据链路层。
图2 CAN的分层结构和功能3、CAN通信报文和帧结构CAN支持4种不同类型报文帧:数据帧、远程帧、出错帧、超载帧。
各种帧结构如下图所示:帧起始ACK场图3 数据帧结构帧起始ACK场4. 远程帧图图6 超载帧4、CAN通信收发过程1)发送过程2)接收过程二、CANopen现场总线1、现场总线网络一般只实现了第1层(物理层)、第2层(数据链路层)、第7层(应用层)。
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个字节的数据,没有其它协议预设定(意味着数据内容已预先定义),主要用来传输需要高频率交换的数据。
目录1. CAN及CANOPen的概述 (2)1.1 CAN及CANopen的基本概念 (2)1.2 CAN优势 (2)1.3 CAN的硬件概述 (3)1.3 硬件说明 (3)2. 协议介绍 (5)2.1 模型介绍 (5)2.2 CANopen协议 (5)2.3 CANopen (5)2.3.1 对象字典 (6)2.3.2 CANopen通讯 (8)2.4 CANopen 专有名词 (10)1. CAN及CANOPen的概述1.1CAN及CANopen的基本概念CAN:最早的现场总线、最广泛应用的现场总线。
CAN 现场总线技术是集自动控制技术、通讯技术、传感技术、计算机技术、诊断技术、微电子技术、网络技术等于一体,是个革命性的技术,正被广泛应用于自动化各个领域。
CANopen是CIA 定义的最为成功的 CAN 应用层协议,在基于 CAN 的自动化系统中居于领导地位, CANOpen是一种架构在控制局域网路(Controller Area Network, CAN)上的高层通讯协定,包括通讯子协定及设备子协定。
CANopen 实现了OSI模型中的网络层以上(包括网络层)的协定。
CANopen 标准包括寻址方案、数个小的通讯子协定及由设备子协定所定义的应用层。
1.2CAN优势1.节约布线成本,减少布线时间,减小出错机率(对于大型设备尤为突出,如果当驱动器、变频器、传感器等放置到现场的话,可以节省大量的电缆费用)2. 实时性更高(比传递 485 通讯速度大大提高,是 485 通讯速度的 100 倍左右,且避免了 485 通讯方式的多控制器之间交换方式,直接由一个 PLC 来协调处理,实时性大为提高)3. 物理层非常稳定4. CAN产品尺寸小,节省空间5. 价格低6.高速的数据传输速率高达 1Mbit/s7.CAN 协议最大的特点是废除了传统的站地址编码,代之以对数据通信数据块进行编码,可以多主方式工作;8. CAN 采用非破坏性仲裁技术,当两个节点同时向网络上传送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据,有效避免了总线冲突9.任何一个节点均可自动发送报文,不需主站询问;10.可根据报文的 ID 决定接收或屏蔽该报文11.可靠的错误处理和检错机制12.可选择对网络进行三种操作:无处理、停止故障从站、停止整个网络13.CAN 节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其它操作不受影响14.发送的信息遭到破坏后可自动重发15.节点在错误严重的情况下具有自动退出总线的功能16.报文不包含源地址或目标地址,仅用标识符来指示功能信息优先级信息17.CAN 可以点对点、一点对多点(成组)及全局广播集中方式传送和接受数据;1.3CAN的硬件概述1.3硬件说明CAN 总线物理层没有严格规定,能够使用多种物理介质例如双绞线光纤等,最常用的就是双绞线信号,使用差分电压传送(常用总线收发器),两条信号线被称为CAN_H 和CAN_L ,静态时均是 2.5V 左右,此时状态表示为逻辑 1,也可以叫做隐位,用CAN_H 比CAN_L 高表示逻辑 0 ,称为显位,此时通常电压值为 CAN_H = 3.5V 和 CAN_L=1.5V,竞争时显位优先。
can报文实例解析和canopen报文实例解析CAN(Controller Area Network)是一种用于汽车和其他工业应用的通讯协议。
它使用多主站结构,允许多个节点同时通讯。
而CANopen是CAN协议的一个应用层协议,用于扩展CAN通讯的应用范围。
对于CAN报文实例解析,它涉及到对实际接收到的CAN报文的解析过程。
这通常包括以下几个步骤:1.帧接收:当CAN控制器接收到一个帧时,它会将其存储在缓冲区中。
2.错误检查:CAN控制器会对接收到的帧进行错误检查,包括检查位错误、填充错误等。
3.帧处理:如果帧通过了错误检查,控制器会将其发送到应用层进行处理。
4.应用层解析:在应用层,根据CANopen协议或其他相关协议,解析出帧中的数据,并将其转换为有意义的信息。
对于CANopen报文实例解析,它是在CANopen协议的基础上进行的。
CANopen 定义了设备如何通过CAN总线进行通讯,包括设备如何发送和接收数据,以及如何处理错误等。
在CANopen报文实例解析中,通常需要遵循以下步骤:1.设备识别:首先确定接收到的CAN帧是哪个设备的消息。
2.节点通讯管理:根据CANopen协议,处理节点之间的通讯,包括数据请求和响应等。
3.数据解析:根据设备的对象字典(Object Dictionary)解析出实际的数据。
对象字典定义了设备中各种参数的地址和类型。
4.应用处理:将解析出的数据应用到实际的应用中,例如控制设备的动作等。
总的来说,无论是普通的CAN报文实例解析还是CANopen报文实例解析,关键在于正确地解析出帧中的数据,并根据相关协议进行相应的处理。
在实际应用中,解析过程可能会根据具体的设备和需求有所不同。
一、CAN-BUS介绍1.CAN的基本概念、特点CAN 是Controller Area Network的缩写(以下称为CAN),是ISO*1国际标准化的串行通信协议。
CAN 协议如表3 所示涵盖了ISO 规定的OSI 基本参照模型中的传输层、数据链路层及物理层。
CAN 协议中关于ISO/OSI 基本参照模型中的传输层、数据链路层及物理层,具体有哪些定义如图所示。
. ISO/OSI 基本参照模型【注】*1 OSI:Open Systems Interconnection (开放式系统间互联)CAN的特点CAN 协议具有以下特点。
(1) 多主控制在总线空闲时,所有的单元都可开始发送消息(多主控制)。
最先访问总线的单元可获得发送权。
(2) 消息的发送在CAN 协议中,所有的消息都以固定的格式发送。
总线空闲时,所有与总线相连的单元都可以开始发送新消息。
两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为ID)决定优先级。
ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。
两个以上的单元同时开始发送消息时,对各消息ID 的每个位进行逐个仲裁比较。
仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。
(3) 系统的柔软性与总线相连的单元没有类似于“地址”的信息。
因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。
(4) 通信速度根据整个网络的规模,可设定适合的通信速度。
在同一网络中,所有单元必须设定成统一的通信速度。
即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。
不同网络间则可以有不同的通信速度。
(5) 远程数据请求可通过发送“遥控帧”请求其他单元发送数据。
(6) 错误检测功能·错误通知功能·错误恢复功能所有的单元都可以检测错误(错误检测功能)。
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。
根据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总线全称为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兼容机上,方便地构成分布式监控系统。
目录1. CAN及CANOPen的概述 (2)1.1 CAN及CANopen的基本概念 (2)1.2 CAN优势 (2)1.3 CAN的硬件概述 (3)1.3 硬件说明 (3)2. 协议介绍 (5)2.1 模型介绍 (5)2.2 CANopen协议 (5)2.3 CANopen (5)2.3.1 对象字典 (6)2.3.2 CANopen通讯 (8)2.4 CANopen 专有名词 (10)1. CAN及CANOPen的概述1.1CAN及CANopen的基本概念CAN:最早的现场总线、最广泛应用的现场总线。
CAN 现场总线技术是集自动控制技术、通讯技术、传感技术、计算机技术、诊断技术、微电子技术、网络技术等于一体,是个革命性的技术,正被广泛应用于自动化各个领域。
CANopen是CIA 定义的最为成功的 CAN 应用层协议,在基于 CAN 的自动化系统中居于领导地位, CANOpen是一种架构在控制局域网路(Controller Area Network, CAN)上的高层通讯协定,包括通讯子协定及设备子协定。
CANopen 实现了OSI模型中的网络层以上(包括网络层)的协定。
CANopen 标准包括寻址方案、数个小的通讯子协定及由设备子协定所定义的应用层。
1.2CAN优势1.节约布线成本,减少布线时间,减小出错机率(对于大型设备尤为突出,如果当驱动器、变频器、传感器等放置到现场的话,可以节省大量的电缆费用)2. 实时性更高(比传递 485 通讯速度大大提高,是 485 通讯速度的 100 倍左右,且避免了 485 通讯方式的多控制器之间交换方式,直接由一个 PLC 来协调处理,实时性大为提高)3. 物理层非常稳定4. CAN产品尺寸小,节省空间5. 价格低6.高速的数据传输速率高达 1Mbit/s7.CAN 协议最大的特点是废除了传统的站地址编码,代之以对数据通信数据块进行编码,可以多主方式工作;8. CAN 采用非破坏性仲裁技术,当两个节点同时向网络上传送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据,有效避免了总线冲突9.任何一个节点均可自动发送报文,不需主站询问;10.可根据报文的 ID 决定接收或屏蔽该报文11.可靠的错误处理和检错机制12.可选择对网络进行三种操作:无处理、停止故障从站、停止整个网络13.CAN 节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其它操作不受影响14.发送的信息遭到破坏后可自动重发15.节点在错误严重的情况下具有自动退出总线的功能16.报文不包含源地址或目标地址,仅用标识符来指示功能信息优先级信息17.CAN 可以点对点、一点对多点(成组)及全局广播集中方式传送和接受数据;1.3CAN的硬件概述1.3硬件说明CAN 总线物理层没有严格规定,能够使用多种物理介质例如双绞线光纤等,最常用的就是双绞线信号,使用差分电压传送(常用总线收发器),两条信号线被称为CAN_H 和CAN_L ,静态时均是 2.5V 左右,此时状态表示为逻辑 1,也可以叫做隐位,用CAN_H 比CAN_L 高表示逻辑 0 ,称为显位,此时通常电压值为 CAN_H = 3.5V 和 CAN_L=1.5V,竞争时显位优先。
标准 CAN 从站 CAN 通讯接口图:图1.3.1九针接头注意:1、所有从站的2、7 脚直接相接即可,采用串连的方式接线,不能采用星型连接方式;2、PLC 端和最后一个负载端需要借 120 欧姆的终端电阻;3、通讯电缆请采用屏蔽线,并做好接地处理(短距离通讯时 3 脚地线可以不接,但是长距离、高波特率通讯时建议把 3 脚接地);4、各种波特率所能够通讯的最长距离:图1.3.2通讯距离图1.3.3通讯连接举例2.协议介绍2.1 模型介绍从OSI网络模型的角度来看同,现场总线网络一般只实现了第1层(物理层)、第2层(数据链路层)、第7层(应用层)。
因为现场总线通常只包括一个网段,因此不需要第3层(传输层)和第4层(网络层),也不需要第5层(会话层)第6层(描述层)的作用。
CAN(Controller Area Network)现场总线仅仅定义了第1层、第2层(见ISO11898标准);实际设计中,这两层完全由硬件实现,设计人员无需再为此开发相关软件(Software)或固件(Firmware)。
同时,CAN只定义物理层和数据链路层,没有规定应用层,本身并不完整,需要一个高层协议来定义CAN报文中的11/29位标识符、8字节数据的使用。
而且,基于CAN总线的工业自动化应用中,越来越需要一个开放的、标准化的高层协议:这个协议支持各种CAN厂商设备的互用性、互换性,能够实现在CAN网络中提供标准的、统一的系统通讯模式,提供设备功能描述方式,执行网络管理功能。
a) 应用层(Application layer):为网络中每一个有效设备都能够提供一组有用的服务与协议。
b) 通讯描述(Communication profile):提供配置设备、通讯数据的含义,定义数据通讯方式。
c) 设备描述(Device proflile):为设备(类)增加符合规范的行为。
2.2CANopen协议CAN-in-Automation(CiA)定义的标准之一,并且在发布后不久就获得了广泛的承认。
尤其是在欧洲,CANopen协议被认为是在基于CAN的工业系统中占领导地位的标准。
大多数重要的设备类型,例如数字和模拟的输入输出模块、驱动设备、操作设备、控制器、可编程控制器或编码器,都在称为“设备描述”的协议中进行描述;“设备描述”定义了不同类型的标准设备及其相应的功能。
2.3 CANopen一个CANopen设备至少应该具有(最小能力设备):(1). 一个节点ID,(2). 一个对象字典(内容由设备功能决定),(3). 一个SDO,能够访问对象字典中必需的对象(只读),(4). 支持下列NMT从设备服务:Reset_Node, Enter_Preoperational_State, Start_Remote_Node,Stop_Remote_Node, Reset_Communication,(5). 缺省的标识符分配。
2.3.1对象字典CANopen 设备都需要具备对象字典,用来设定设备组态及进行非即时的通讯。
对象字典的entry 定义如下:索引 (Index):对象 16 位元的位址。
对象名称 (Object name):一个代表对象的symbolic type,可以是阵列、纪录或只是一个变量。
名称 (Name):描述此 entry 的字串。
形态 (Type):变量的资料形态。
属性 (Attribute):提供此 entry 是否可读/可写的资料,有下列四种:可读/写、只读、唯写、只读常数。
必须(Mandatory)/可选 (Optional)字段定义属于特定设备规范下的设备,是否必须实现某些对象。
在 CANopen 标准中定义了对象字典中的基本资料型态,包括逻辑值、整数及浮点数。
也定义了复合对象:如阵列、记录及字串。
复合对象用一个 8 位元的数值作为其子索引(subindex)。
记录或阵列中子索引 0 的位置记录此数据结构的元素个数,资料型态为 UNSIGNED8。
例如在 CiA301 标准中,设备通讯的参数放在索引范围 0x1000 – 0x1FFF (通讯行规区)。
此区域的前几项如下:图2.1 设备通讯结构CANopen对象字典通用结构图2.2 对象字典通用结构CANopen网络中每个节点都有一个对象字典。
对象字典包含了描述这个设备和它的网络行为的所有参数。
一个节点的对象字典是在电子数据文档(EDS:Electronic Data Sheet)中描述或者记录在纸上。
不必要也不需要通过CAN-bus“审问”一个节点的对象字典中的所有参数。
如果一个节点严格按照在纸上的对象字典进行描述其行为,也是可以的。
节点本身只需要能够提供对象字典中必需的对象(而在CANopen规定中必需的项实际上是很少的),以及其它可选择的、构成节点部分可配置功能的对象。
注意:一个设备的通讯功能、通讯对象、与设备相关的对象以及对象的缺省值由电子数据文档(EDS:Electronic Data Sheet)中提供。
单个设备的对象配置的描述文件称作设备配置文件(DCF:Device Configuration File),它和EDS有相同的结构。
二者文件类型都在CANopen规范中定义。
2.3.2CANopen通讯1.NMT 协议NMT(网络管理, Network management)协议会定义(设备内部)状态机的状态变更命令(如启动设备或停止设备)、侦测远端设备 bootup及故障情形。
NMT master 使用的模组控制协定可变更设备的状态。
其 COB-ID 为 0,其功能码及节点 ID 均为 0,因此网络上的所有节点均会处理这个信息。
在此信息的数据部份会有此信息实际针对节点的ID,此 ID 也可为 0,表示所有节点都要变更为指定的状态。
2.心跳协议(Heartbeat protocol)是用来监控网络中的节点及确认其正常工作。
心跳信息的生产者(一般是 slave 设备)周期性的送出功能码 1110、ID 为本身节点 ID 的讯息,信息的数据部份有一个表示节点状态的位。
而心跳信息的消费者负责接收上述数据,若在指定时间(于设备的对象字典中定义)内,消费者均未收到信息,可采取相应动作(例如显示错误或重置该设备)。
其格式为:COBID + DATA(status of node) CANopen 设备需要在 bootup 时自动从 Initializing 状态切换至 Pre-operational 状态,设备会在切换完成后送出一个心跳信息,这就是心跳协议。
有一种 pull model 的 NMT 协议,称作节点监控(Node guarding)协议,也可以作从机的监控。
3. SDO 协议是服务数据对象(SDO)可用来存取远端节点的对象字典,读取或设定其中的数据。
提供对象字典的节点称为SDO server,存取对象字典的节点称为SDO client。
SDO 通讯一定由SDO client 开始,并提供初始化相关的参数。
在CANopen 的术语中,上传是指由 SDO server 中读取数据,而下载是指设定 SDO server 的数据。
由于对象字典中的数据长度可能超过8个字节,无法只用一个CAN数据包传输,SDO也支援长数据包的分割(segmentation)和合并(desegmentation)。
这样的对象有二种:SDO下载/上传(SDO download/upload)及SDO区块下载/上传(SDO Block download/upload)。