现场总线CANopen学习笔记一
CAN-bus现场总线基础教程【第6章】CAN总线应用层协议(CANopen)-CANopen主站设备的实现(26)
文库资料 ©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.第6章 CAN 总线应用层协议——CANopen1.1 CANopen 主站设备的实现上文介绍了CANopen 协议转换模块——XGate-COP10和基于该模块设计的I/O 设备,本章节中将介绍CANopen 网络中具有主站功能的设备如何开发。
尽管在CiA 组织的CANopen 规范中没有明确的定义主站设备和从站设备,但大家还是习惯把具有网络管理(NMT )能力的CANopen 设备称之为CANopen 主站设备。
除此之外CANopen 主站还应具有服务数据(SDO )客户端功能,这样CANopen 主站能够控制以及访问网络中的所有CANopen 从站。
PCI-5010-P 就是具有这些功能的CANopen 主站板卡(PCI 接口),下文将介绍如何基于该产品快速实现功能强大的CANopen 主站设备。
1.1.1 CANopen 网络的拓扑结构 一个CANopen 网络中的主站设备管理着其它的从站设备,而且一个网络只允许有一个CANopen 主站设备和最多127个从站设备存在。
图6.1所示为PCI-5010-P 在CANopen 网络中的典型应用形式。
1.1.2 PCI-5010-P CANopen 主站卡简介PCI-5010-P 系列工业级CAN 通信卡支持CANopen 主站协议,支持CiA 建议的标准波特率以及自定义波特率,并提供多个操作系统的设备驱动、工具软件等,能真正的满足客户的各种应用需求,为工业通信CANopen 网络提供了可靠性、高效率的解决方案,在计算机中的硬件与软件结构如图6.2所示。
图6.2 PCI-5010-P 在计算机中的硬件与软件结构PCI-5010-P 具有如下特性:用PCI 总线,兼容PCI 2.2规范;图6.1 PCI-5010-P 在CANopen 网络中的结构文库资料 ©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.● 支持CAN2.0A 协议; ● 支持CANopen 协议;● 符合ISO/DIS 11898-2 规范;● 集成1路电气完全隔离的CAN 通道; ● DC 2500V 电气隔离保护; ● 增强ESD/EMI 性能;● 遵守工业应用规范。
CANCANopen学习笔记
CANCANopen学习笔记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Ω的抑制反射的终端电阻。
CANOpen学习指南
CANOpen学习指南对于初学者,相对于其他总线的资料来说,在国内CANOpen的资料并不多。
而且并不是所有资料都适合初学者看的。
这里给出一些建议,对CANOpen感兴趣的,可以参考一下学习的顺序。
前提:需要对CAN总线有所了解,可以看CAN2.0总线的资料。
当然,对计算机系统、单片机以及编程也需要有一定的基础。
第一步:CANOpen Standard 301,这个是一切的基础,最然并不一定马上就要对所有的细节了如指掌,但至少对CANOpen总线以及各种传输控制方式以及其作用需要有一定的了解(比如:NMT、SDO、PDO、HeartBeat等等)。
这里不推荐看ZLG的文档,ZLG的文档只是从301文档中,抽出的一些章节中的内容,我相信如果直接看ZLG的文档的话,大部分人是看不懂的。
第二步:最后有一个可以玩的硬件(最好是已经移植好CANOpen协议栈的),否则所有的协议只是资料中的数据格式以及操作方式而已。
这样就需要有一个开发板和CAN逻辑分析仪工具。
还好我在3年前就已经自己做过一块低成本的CAN的开发板(基于AT90CAN32),并且在这个开发板上实现了基于串口的CAN适配器(可以用于发送各种CAN数据),同时,也在这块板上实现了CANOpen。
目前taobao上也有很多种类的CAN开发板和适配器。
在这个硬件上,测试各种CANOpen报文,包括NMT、SDO、PDO,可以远程设置HeartBeat 频率,看看收到的HeartBeat报文等。
这步完成后,对于CANOpen就有了一定的认识了。
对于各种报文,这里要推荐一下ZLG的文档,最后部分对CANOpen的各种报文的格式做了一个总结,查看起来非常方便。
第三步:找个CANOpen的协议栈源码看看,从代码层次来理解CANOpen的各种操作的步骤以及实现方式。
当然,目前协议栈也有不少了,有些是免费的,有些是收费的(估计价格还都不便宜)。
第四步:301文档只是描述了CANOpen有那些工具可以使用,但没有任何关于一个模块如何利用这些功能的信息。
CAN CANopen学习笔记
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协议族入门学习笔记
CiA 433: 针对内部轨道车辆照明装置的应用规范
CiA 444: 针对起重机附加设备(例如,延伸器)的设备规范集
CiA 445: 针对RFID阅读器的设备规范
CiA 446: 针对As-i网关的接口规范
看来对于解决“要用canopen干什么?”和“怎么用canopen来干活?”就需要根据具体的应用题来选择这些套路了。 以下也是从cia中文网站上将部分跟汽车有关的内容copy的,用来概述这些协议的功能
CiA 424: 针对轨道车辆车门控制系统的应用规范
CiA 425: 针对医疗附加设备(例如,造影剂注射器)的设备规范集
CiA 426: 针对外部轨道车辆照明装置的应用规范
CiA 430: 针对辅助轨道车辆设备(例如,冷却风扇、发动机预热装置)的应用规范
CANOpen协议族入门学习笔记CANOPEN 2010-11-07 16:52:57 阅读111 评论0 字号:大中小 订阅 .
当我们使用CANOpen时,首先要明确我们
CAN-bus现场总线基础教程【第6章】CAN总线应用层协议(CANopen)-CANopen主站设备及其应用(23)
文库资料 ©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.第6章 CAN 总线应用层协议——CANopen1.1 CANopen 主站设备及其应用由于可靠性、实时性、低成本、抗干扰性、兼容能力等多个方面的优势,CAN-bus 与其高层协议CANopen 已成为了车辆数据通信系统的事实标准,并普遍应用于所有的可移动设施,例如船舶舰艇、客车火车、升降电梯、重载车辆、工程机械、运动系统、分布式控制网络等。
几乎所有的通用 I/O 模块、驱动器、智能传感器、PLC 、MMI 设备的生产厂商都提供有支持CAN-bus 与CANopen 标准的产品。
只要符合 CANopen 协议标准及其设备协议子集标准的系统,就可以在功能和接口上保证各厂商设备的互用性和可交换性。
1.1.1 CANopen 网络特点作为标准化应用,CANopen 建立在设备对象描述的基础上,设备对象描述规定了基本的通信机制及相关参数。
CANopen 可通过总线对设备进行在线配置,与生产厂商无关联,支持网络设备的即插即用("Plug and Play")。
CANopen 支持2类基本数据传输机制:PDO 实现高实时性的过程数据交换,SDO 实现低实时性的对象字典条目的访问。
SDO 也用于传输配置参数,或长数据域的传输。
CANopen 既规定了各种设备之间的通信标准,也定义了与其他通信网络的互连规范。
1.1.2 CANopen 网络中的设备分类在说明CANopen 网络设备分类之前,我们有必要先了解其网络通信模型。
CAN-bus 支持 “生产者-消费者”通信模型,支持一个生产者和一个或多个消费者之间的通信关系。
生产者提供服务,消费者接收则可以(消费)或忽略服务。
需要注意,CANopen 标准作为CAN-bus 的应用层协议之一,除了支持上述服务类型外,还支持“客户端-服务器”通信模型。
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 )来记录这些参数,而不需要把这些参数记录在纸上。
CANopen轻松入门
广州致远电子股份有限公司入门教程 CANopen 轻松入门类别内容 关键词CANopen DS301 摘 要 用于初次接触CANopen 的用户,主要以CANopen DS301为主要教授方向修订历史目录1. 前言 (1)2. CANopen在ISO层级中的位置 (2)3. CANopen协议诞生和发展 (3)4. CANopen的预定义报文ID分类 (5)4.1网络管理(NMT)与特殊协议(Special protocols)报文ID分类 (5)4.2过程数据对象(PDO)和服务数据对象(SDO)的报文ID分类 (7)5. 对象字典OD(Object dictionary) (9)5.1对象字典概述 (10)5.2通讯对象子协议区(Communication profile area) (10)5.3通用通讯对象(General communication objects) (10)5.4制造商特定子协议(Manufacturer-specific Profile) (11)5.5标准化设备子协议(Standardized profile area) (12)5.6对象字典和EDS文件实例 (12)6. 网络管理NMT(Network management) 与CANopen主站 (16)6.1NMT节点状态 (16)6.2NMT节点上线报文 (17)6.3NMT节点状态与心跳报文 (18)6.4NMT节点守护 (18)6.5NMT节点状态切换命令 (19)6.6CANopen主站设备 (20)7. 过程数据对象PDO(Process data object) (22)7.1PDO的CAN-ID定义 (22)7.2PDO的传输形式 (23)7.3PDO的通信参数 (24)7.4PDO的映射参数 (24)8. 服务数据对象SDO(Service data object) (26)8.1通讯原则(communication principle) (26)8.2快速SDO协议(Expedited SDO protocol) (27)8.3普通SDO协议(Normal SDO protocol) (27)9. 特殊协议(Special protocols) (30)9.1同步协议(Sync protocol) (30)9.2时间戳协议(Time-stamp protocol) (31)9.3紧急报文协议(Emergency protocol) (33)10. 免责声明 (35)1. 前言本教程适用于CIA CANopen协议DS301又名CIA301标准。
canopen协议的读后感
今天阅读了CiA组织发布的CANopen协议规范摘要《CANopen High-level prot ocol for CAN-bus》,对CANopen协议规范有了一个总体上的了解和把握。
在此,有一些想法需要记录一下。
如果我是控制网络的协议制定者,那么我会考虑什么内容呢?通常我会考虑如下几个方面的内容:1、数据传输的实时性。
控制网络通常是一个实时网络,需要数据传输的实时性,因此,在协议制定过程中,需要考虑传输的实时性。
2、数据传输的可靠性。
控制网络在数据交换的过程中,需要保证数据传输的可靠性,如果发生数据传输故障,需要保证网络的正常工作并且能够及时纠正传输故障。
3、网络的智能性。
控制网络中的局部节点存在故障时,网络中的主控节点通过一定的机制能够及时发现故障节点,并对其进行处理。
另外,网络节点需要能够动态识别、配置。
4、协议实现的简便性。
网络协议不能过于复杂,很多控制网络节点资源有限,通常采用一些微控制器实现节点功能,因此,协议实现不能过于庞大和复杂。
5、协议的通用性。
控制网络中的节点类型多样化,设计的协议需要兼容多种控制节点类型,使协议本身具有通用性。
CANopen对上述几方面的考虑都进行了处理,达到了比较满意的效果:1,CANopen协议基于CAN-bus总线,CANbus总线在数据传输上采用了优先级仲裁的方式,优先级高的报文会吞没优先级低的报文,优先级低的报文会主动让出总线,这种方式可以保证高优先级报文的实时性,非常适合控制网络的应用。
另一方面,为了保证数据传输的实时性,在考虑了控制网络数据交互特点的基础上,CANopen协议规范提出了PDO和SDO的操作对象,PDO对象最大数据传输量为8个字节,网络负载很轻,能够使得节点之间的数据高效交互。
当需要大批量数据交互时,可以采用SDO对象,网络的数据负载会加重。
为了最求控制实时性,控制网络一次数据交互量不能太长,CANopen协议充分利用了该特征,达到了数据传输实时性的目的。
CAN学习笔记
笔记一:CAN传输的假想在学习笔记第一本中,最后一个个人秀,利用了两个CAN节点建立了简单的CAN 通讯,这回就强化一下CAN节点与节点之间通讯的概念。
传送这词在人们的脑海里就好想邮差送信的概念,邮差将一封封的信件逐个送到每一户目的地址,不过在CAN总线里通讯的节点们比起邮差的概念,“广播”的概念更贴切,广播有如电视台将节目广播开来,谁家只要搭起天线选择适合的频道就能接收到节目。
CAN总线的传输就是这么一回事。
换另一句话说:某个节点(假设节点1),发送报文在总线上,这时报文以广播的方式在总线上传输,如果当中两个点(假设节点2与3),他们拥有与报文标示符一样的接受代码的话,那么经过验收滤波动作,报文就会被接入它们RXFIFO当中。
当然还有一点要项必须注意,报文发送时必须先申请发送请求,然后报文才会发在总线上。
这个概念很重要必须稳固在脑海中。
笔记二:自检模式估计刚开始接触CAN的第一个实验就是PIAE的CAN自检测试,说老实话刚开始的时候我真的不明白自检模式到底时什么一回事,但是经过几个小时的测试后,终于得出结论,好了立马进入这篇笔记的主题吧。
回顾一下我们的好朋友模式寄存器,在MODR(模式寄存器)中的第三位也就MOD.2?它设置了节点的自检模式,自检模式说白了就是测试模式节点用来测试自己。
在图表中包含了一条信息,“using self reception request command”,这才是最关键,如果在报文发送的时候忘了给命令寄存器设置“自接收请求-self reception request”,自检模式时无法完成的。
(我就是遗漏了这条信息,苦了自己瞎搞那么久,哈哈)。
在自检模式中,节点包含了几个特性:(一)可以孤独的一个节点在工作(二)必须使用自接收请求命令发送报文(三)验收滤波动作无视,也就是说无视ACR,AMR的设置(四)报文标示符无视(五)节点依然参与总线概念图如以上图标的感觉(图凑合看就好了!呵呵),话多无用,还是开始编写程式。
现场总线CANopen与工业以太网总线知识概述
8
2020/1/14
现场总线CANopen与工业以太网EtherCAT
预定义报文或者特殊功能对象
同步(SYNC) 时间标记对象(TimeStamp) 紧急事件(Emergency) 节点/寿命保护(Node/Life guarding)
36
2020/1/14
现场总线CANopen与工业以太网EtherCAT
37
2020/1/14
现场总线CANopen与工业以太网EtherCAT
现场总线CANopen与工业以太网EtherCAT
SDO报文格式
33
2020/1/14
现场总线CANopen与工业以太网EtherCAT
SDO报文格式
34
2020/1/14
现场总线CANopen与工业以太网EtherCAT
SDO应用举例
35
2020/1/14
现场总线CANopen与工业以太网EtherCAT
SDO 客户读取报文当客户节点想从服务器读取数据时 ,向服务器发送请求报文(client→server),通信报 文
38
2020/1/14
现场总线CANopen与工业以太网EtherCAT
CANopen设备
CAN通讯接口、对象字典和应用程序之间的联系
39
2020/1/14
现场总线CANopen与工业以太网EtherCAT
RPDO
TPDO
现场总线CANopen与工业以太网EtherCAT
CANopen协议
最近在学习CANopen协议,遇到一些小知识点,查阅后作为补充,记录在此,方便以后查询,算是读书笔记吧。
一、CANopen协议中SYNC功能和使用SYNC是CANopen管理各节点同步数据收发的一种方法,相当于网络节拍,基于同步的PDO按照这个网络节拍来执行实时数据的收发。
SYNC属于生产/消费型通讯方式,网络中有且只有一个SYNC生产者,一般有多个消费者,其网络标识符优先级很高,一般设置为0x80,基本上除了NMT优先级最高。
SYNC 生产者按照固定频率发送SYNC报文,需要SYNC的节点(消费者)将其接收并计数,当计数值达到节点相应TPDO要求时,该TPDO映射的数据被发送(根据PDO传输类型也可能是映射数据更新),此过程中SYNC生产者提供网络节拍,各消费者以节拍周期的倍数执行数据传输功能。
在CANopen网络中应用SYNC要注意以下几点:1. SYNC并不是主节点必须的功能,不一定要和NMT 放在同一节点上,实际网络应用中可以在网络中找一个任务较少、实时性好的节点来作为SYNC生产者,SYNC消费者可以有多个,但是生产者同时只能有一个存在。
2. SYNC是不带数据的,以使报文尽可能短,目的是为了加快其传输,减少网络占用。
3. SYNC发出后,需要发送数据的PDO要在规定时间段内发送数据,这个时间段叫做时间窗口(对象1006H指定),要小于SYNC节拍周期,以便每个周期留一定时间来进行其他类型的网络通讯二、CANopen协议PDO的几种传输方式由于PDO所传输的数据内容是无协议的且分配的标识符范围较SDO靠前,因此,其效率和优先级都是较高的,通常用于实时过程数据的传输.PDO是生产/消费类型的通讯方式,数据只有一个生产者(发送),但是消费者(接收)可以有多个,生产者和消费者事先都已知道数据的类型和内容(通过设置PDO映射来管理).对PDO通讯参数的设置可以实现四种通讯方式:1.同步传输.在收到SYNC消息后触发PDO发送,可以定义收到几个SYNC后触发一次TPDO,在有SYNC 的CANopen网络中,SYNC就相当于一个网络节拍,数据根据节拍来进行固定周期的过程数据传输.比如网络中有一个压力传感器,一个温度传感器,一个物位传感器,网络中有一个HMI监控终端来实时监控三个传感器采集的数据,压力传感器可能检测的是一个快速的压力变化,那可以每隔200mS更新一次数据,温度可能需要1S更新一次数据,物位可能5S更新一次数据,(假设各传感器的数据采集周期都比数据更新周期小,如果大的话数据更新快可能没有意义,呵呵)现在我可以设置一个200mS周期的SYNC消息,压力传感器每收到一个SYNC就向HMI传输一次数据,温度传感器可以每隔5个SYNC传输一次数据,同样物位传感器就是每收到25个SYNC发送一次数据.这种通讯方式显得比较规矩,好管理,系统运行效率高,适合周期性数据更新的应用.2.远程请求.在需要网络上某个节点的数据的时候,我发一个远程数据请求过去,对方在接收到请求后,把我要的数据给发过来,这种方式是在我需要的时候去主动获取.3.定时发送.这个有别于SYNC,它是在本节点实现周期发送,通过设置PDO参数,定一个周期,每隔固定的时间向网络上发送一次PDO,它与SYNC无关,在网络设计中主要按照传感器的数据采集速度和数据更新要求来设定定时周期.4.事件触发.当节点的某个时间发生触发的一次数据发送,例如当某个接着报警开关的开关量采集节点的报警状态发生变化时,触发一次PDO将报警状态发送到网络上,使系统能够及时获得该报警状态信息.该方式是实时性最好的一种传输方式,特别适合系统运行出错报警和重大事件的及时处理上.上面的几种传输方式各有所长,在CANopen网络的设计中,按照不同的应用灵活配合使用才能构建一个优秀的解决方案.三、SDO服务SDO是服务数据对象接口(Service Data Obiect)的缩写,顾名思义提供服务数据的访问接口,服务数据就是一些实时性要求不高的数据,一般是指节点配置参数,因此,SDO一般用来配置和获得节点的配置参数。
CAN-bus现场总线基础教程【第6章】CAN总线应用层协议(CANopen)-CANopen从站 IO设备设计(25)
文库资料 ©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.第6章 CAN 总线应用层协议——CANopen1.1 CANopen 从站 I/O 设备设计上一小节介绍了一款小型的CANopen 嵌入式从站转换模块,本节将介绍一种基于该模块如何快速实现I/O 设备的应用。
1.1.1 XGate-COP10简介XGate-COP10是一款CANopen 从站协议转换模块,内部集成了CANopen 从站协议栈,遵循CiA DS301 V4.02进行设计,其集成的功能包括了网络管理(NMT )、服务数据(SDO )、过程数据(PDO )、错误管理等功能。
同时也遵循了DS303-3指示灯以及DS305层设置(LSS )等相关协议,使模块功能更强大。
所有的功能均通过CiA 的一致性测试软件的测试,保证了与其它CANopen 设备的良好的兼容性。
XGate-COP10为DIP24封装,拥有较小的占位面积(6cm 2),使其更容易集成到用户设备中。
其硬件设计也比较简单,设计简图如图6.1所示。
图6.1 XGate-COP10设计简图1.1.2 通用I/O 设备底板硬件设计本设计实现8路数字量输入和8路数字量输出的通用设备。
在本小节中主要介绍如何设计合适的XGate-COP10的底板。
由于实现的是通用I/O 数字量的输入输出,功能相对来说比较简单,因此控制器我们选择经典的51系列单片机P89V51RD2,该芯片拥有1KB 的RAM 以及32KB 的Flash.。
图6.2所示为XGate-COP10与控制器之间的连接原理图,通常情况下只需要连接通信接口(UART )和XGate-COP10的中断输出信号即可与模块进行正常的通信。
在特殊情况下,可连接模块的复位线至控制器的I/O 端口,以方便控制XGate-COP10复位。
文库资料©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.图6.2 控制器与XGate-COP10连接图6.3所示为XGate-COP10的CAN 总线连接原理图,为了使设计更加的简单可靠,CAN 收发器使用了CTM8251T 模块,该模块集成了CAN 收发器、电气隔离、TVS 总线保护等措施,从而使设备更加稳定可靠,XGate-COP10采用拨码开关设定其波特率及节点ID 。
CANOPEN总线的知识点分享
CANOPEN总线的知识点分享CANopen是一个基于CAN(控制局域网)串行总线系统和CAL(CAN应用层)的高层协议。
CANopen通讯协议CiADS-301包括周期和事件驱动型通讯,不仅能够将总线负载减少到 限度,而且还能确保极短的反应时间。
它可以在较低的波特率下实现较高的通讯性能,从而减少了电磁兼容性问题,并降低了电缆成本。
CANopen所用的物理介质是符合ISO11898标准,采用分驱动机制和公共反馈的双线总线。
总线的 长度取决于通讯速度,具体规定如下:从理论上来说, 多可以有127个节点。
不过,在实际应用中, 节点数量取决于所用CAN收发器的性能。
CAN总线线路必须用在CAN-L和CAN-H 线之间每端连接的120欧姆(1%,1/4W)电阻来终接,如下所示。
总线电缆选用有两对双绞线的带屏蔽层电缆:一对双绞线分别接CAN-L 和CAN-H,另外一对双绞线直接接GND。
CANopen的 概念是设备对象字典(OD:ObjectDicTIonary),在其它现场总线(Profibus,Interbus-S)系统中也使用这种设备描述形式。
CANopen通讯通过对象字典(OD)能够访问设备的所有参数。
CAN标识符分配表注意:1、PDO/SDO的发送/接受是由(slave)CAN节点观察的。
2、一般的器件的CANopen支持4个发送PDO,4个接受PDO。
服务数据对象SDOSDO用来访问一个设备的对象字典。
访问者被称作客户(client),对象字典被访问且提供所请求服务的CANopen设备被称作服务器(server)。
客户的CAN报文和服务器的应答CAN报文总是包含8字节数据(尽管不是所有的数据字节都一定有意义)。
一个客户的请求一定有来自服务器的应答。
过程数据对象PDOPDO用来传输实时数据,数据从一个生产者传到一个或多个消费者。
数据传送限制在1到8个字节。
PDO通讯没有协议约束(意味着数据内容已预先定义),因此消费者可以在很短的时间内处理完接受到的数据。
CAN总线基础知识学习笔记
CAN总线基础知识学习笔记依照瑞萨公司的《CAN入门书》的组织思路来学习CAN通信的相关知识,并结合网上相关资料以及学习过程中的领悟整理成笔记。
好记性不如烂笔头,加油!1 CAN的一些基本概念1.1 什么是CAN总线CAN 是Controller Area Network 的缩写,是ISO 国际标准化的串行通信协议。
通俗来讲,CAN总线就是一种传输数据的线,用于在不同的ECU之间传输数据。
CAN总线有两个ISO国际标准:ISO11898 和ISO11519。
其中:ISO11898 定义了通信速率为125 kbps~1 Mbps 的高速CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度≤40米。
ISO11519 定义了通信速率为10~125 kbps 的低速CAN 通信标准,属于开环总线,传输速率为40kbps时,总线长度可达1000米。
Tips: :又称为总线的通信速率,指的是位速率。
或称为比特率(和波特率不是一回事),表示的是:单位时间内,通信线路上传输的二进制位的数量,其基本单位是bps 或者b/s (bit per second)。
1.2 CAN的拓扑结构下图中,左边是高速CAN总线的拓扑结构,右边是低速CAN总线的拓扑结构。
如图中所示,CAN总线包括CAN_H 和CAN_L 两根线。
节点通过CAN控制器和CAN 收发器连接到CAN总线上。
TIps :通常来讲,ECU内部集成了CAN控制器和CAN收发器,但是也有没集成的,需要自己外加。
1.3 CAN信号表示在CAN总线上,利用CAN_H和CAN_L两根线上的电位差来表示CAN信号。
CAN总线上的电位差分为显性电平和隐性电平。
其中显性电平为逻辑0,隐性电平为逻辑1。
ISO11898标准(125kbps ~ 1Mbps)和ISO11519标准(10kbps ~ 125kbps)中CAN信号的表示分别如下所示:1.4 CAN信号传输发送过程: CAN控制器将CPU传来的信号转换为逻辑电平(即逻辑0-显性电平或者逻辑1-隐性电平)。
CAN笔记
CAN总线活动讲座十:CAN总线基础扫盲讲座/html/41/n-41.htmlCAN总线学习专区/html/6/category-catid-6.html1、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为差分电压驱动状态,CANL电平为“Gnd”偏上,CANH电平为“Vcc”偏下;当CAN-bus表现为隐性状态时,CAN-bus为未驱动空闲状态,此时CANL、CANH电平均为“Vcc”的一半,比如:假设Gnd=0V,Vcc=5V,则C ANH=CANL=2.5V。
总线上的先行隐性电平会被显性电平所改写;5、CAN-bus上的位流序列:仲裁场-CANID最高位最先发送;数据场-Data0最先发送,Data 7最后传输,对应每一个字节,高位msb将会先发送;位填充规则:位流序列中一旦出现五个连续的显性位将插入一个隐性位,如下图示;同时位流序列中一旦出现五个连续的隐性位将插入一个显性位。
位编码规则:1、错误帧和过载帧形式固定,并不通过位填充编码;2、数据帧或远程帧的CRC界定符、应答场、帧结束等位场形式固定,不通过位填充编码;3、数据帧或远程帧的帧起始、仲裁场、控制场、数据场、CRC序列等位场,均通过位填充规则编码。
CAN学习笔记
CAN--- Controller Area NetworkCAN理论概述1..CAN的分层结构(依照OSI标准):--CAN与以太网类似---包含最底的两层(物理层和数据链路层)。
--另外还包含传输层---用于发送控制(单次触发或发送失败时永久重发)。
--应用层即为发送接收相关的发送/接收函数、中断及数据的处理。
--因此虽然标准CAN不包含OSI中的七层,但也可以构成简易的网络,--CANopen是一种架构在控制局域网路(Control Area Network, CAN)上的高层通讯协定,包括通讯子协定及设备子协定常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。
CANopen 实作了OSI模型中的网络层以上(包括网络层)的协定。
CANopen 标准包括寻址方案、数个小的通讯子协定及由设备子协定所定义的应用层。
CANopen 支援网络管理、设备监控及节点间的通讯,其中包括一个简易的传输层,可处理资料的分段传送及其组合。
一般而言资料链结层及实体层会用CAN来实作。
除了 CANopen 外,也有其他的通讯协定(如EtherCAT)实作 CANopen 的设备子协定。
--CAN与CANOPEN是两种协议,没有CANOPEN也可以组成CAN网络及应用。
--CAN+CANOPEN组成较完整的OSI;这类似于TCP/IP+以太网组成互联网。
--从OSI网络模型的角度来看同,现场总线网络一般只实现了第1层(物理层)、第2层(数据链路层)、第7层(应用层)。
因为现场总线通常只包括一个网段,因此不需要第3层(传输层)和第4层(网络层),也不需要第5层(会话层)第6层(描述层)的作用。
2..CAN技术特点:(1)工作方式:CAN为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上其他节点发送信息,而不分主从,通信方式灵活,且无需站地址等节点信息。
(2)消息的发送:CAN网络上的节点信息分成不同的优先级,可满足不同的实时要求,高优先级的数据最多可在134us内得到传输。
现场总线CANopen学习总结笔记一
现场总线CANopen学习总结笔记一通过对《现场总线CANopen 设计与应用》的学习,总结了一些学习CANopen 的知识要点,希望能够对CANopen 初学者有所帮助。
首先让我介绍一下这本书,原名为德语《CANopen----dasstandardisierte,eingebtteteNetzwerk》, 中文是《现场总线CANopen 设计与应用》。
作者,HolgerZeltwanger,是CAN总线技术专家,兼任ISO 国际标准化组织CAN 标准工作组主席,组织领导发布了ISO11898 系列标准,是CAN 工业的奠基人,1992 年创立了CiA 组织(CANinAutomation)并担任主席至现在。
本书的内容简介介绍作为工业现场总线协议重要成员之一的CANopen 协议和基本原理、规则及相关背景,重点介绍CANopen 协议的工作机制,力求向读者展现CANopen 协议的概貌,使读者能够理解为什么CANopen 需要制定如此的工作流程。
全书分为4 个部分:第一部分由第1~3 章组成,主要介绍通信的基本通信以及CANopen 协议物理层和链路层的基本特性(CAN 总线)。
第二部分由第4~5 章组成,主要介绍CANopen 的基本核心工作机制和CANopen 主站设备的特点。
第三部分由第6~8 章组成,主要介绍CANopen 应用中的设备子协议规范。
第四部分,主要介绍CANopen 协议的应用及调试的方法和工具。
闲话少说,直入主题。
因为我也算是学习CANopen 的小白,主要采用总结归纳知识点的方式来读。
以下就是总结了CANopen 的主要知识点和一些自己的理解。
书看一遍,刚入味,各种不懂;再看一遍,重新理解之前不明白的,整合知识点,将其联系起来。
首先我觉得还是先看一下CAN 总线,了解什么叫CAN,即CAN 总线的基本定义、基本原理、CAN 协议等等,从而了解得知CAN 协议主要是针对物理层与数据链路层的协议规范。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
现场总线CANopen学习笔记一
通过对《现场总线CANopen设计与应用》的学习,总结了一些学习CANopen 的知识要点,希望能够对CANopen初学者有所帮助。
首先让我介绍一下这本书,原名为德语《CANopen----das standardisierte , eingebttete Netzwerk》,中文是《现场总线CANopen设计与应用》。
作者,Holger Zeltwanger ,是CAN总线技术专家,兼任ISO国际标准化组织CAN标准工作组主席,组织领导发布了ISO11898系列标准,是CAN工业的奠基人,1992年创立了CiA组织(CAN in Automation)并担任主席至现在。
本书的内容简介:介绍作为工业现场总线协议重要成员之一的CANopen协议和基本原理、规则及相关背景,重点介绍CANopen协议的工作机制,力求向读者展现CANopen协议的概貌,使读者能够理解为什么CANopen需要制定如此的工作流程。
全书分为4个部分:
第一部分由第1~3章组成,主要介绍通信的基本通信以及CANopen 协议物理层和链路层的基本特性(CAN总线)。
第二部分由第4~5章组成,主要介绍CANopen的基本核心工作机制和CANopen主站设备的特点。
第三部分由第6~8章组成,主要介绍CANopen 应用中的设备子协议规范。
第四部分主要介绍CANopen 协议的应用及调试的方法和工具。
很荣幸,我手上看的这本书是Holger 亲笔签名的书,读起来的感觉就是不一样。
哈哈。
闲话少说,直入主题。
因为我也算是学习CANopen 的小白,主要采用
总结归纳知识点的方式来读。
以下就是总结了CANopen的主要知识点和一些自己的理解。
书看一遍,刚入味,各种不懂;再看一遍,重新理解之前不明白的,整合知识点,将其联系起来。
首先我觉得还是先看一下CAN总线,了解什么叫CAN ,即CAN总线的基本定义、基本原理、CAN协议等等,从而了解得知CAN协议主要是针对物理层与数据链路层的协议规范。
其中比较重要的知识点有:1.CAN总线上的电平;
2.CAN控制器;
3.CAN报文的格式、其中数据帧重点熟悉;
4.CAN总线错误检测等。
然后,再进入《现场总线CANopen设计与应用》的学习。
第一章,了解通信层模型、兼容性等级、以及对象的描述和定义。
兼容性等级包括:不兼容、相容、共存、匹配、合作、兼容、可互换。
兼容级别逐渐升高,可互换为最高级。
为了达到各种不同的兼容性等级,所有的过程数据、配置参数的诊断信息都必须用同一个对象模型来描述,CANopen规范用通过3套属性来描述一个对象:
1.对象描述---包括对象名称及其唯一的标识符(索引)
2.入口描述---可以为数组和记录(子索引)
3.值定义描述---详细规定了对象的含义
其中对象的描述与定义中的入口描述里新的理解点是:如果入口描述为变量,其子索引总是00h,数组和记录的子索引00h的数据类型通常为UNSIGNED8, 并且是最高子索引。
第二章,物理层主要有位定时和位填充、高速收发器、网络拓扑结构、连接器。
CANopen 的物理层相当于CAN控制器中采用的子层PLS(物理信号)、MAU (介质访问单元)和MDI(介质专用接口),这些子层均位于驱动模块中并通过连接器和电缆实现。
主要知识点
(1)位定时其实就是针对各种不同的数据传输速率设定的采样点。
分为4个部分:同步段、传播段、相位段1和相位段2。
而位定时的采样点恰好介于相位段1和2之间。
(2)位填充可以表示为5个相同极性的位后面插入一个不同极性的填充位,而根据第3章里报文格式中得知,位填充只适合对帧起始SOF 到CRC场之间的范围内的数据进行处理。
填充位可以由接收CAN控制器自动去除填充,因此CAN报文物理层上的长度取决于待传输的位格式。
(3)收发器芯片具有一个Rx引脚和一个Tx引脚,这些引脚可直接将二进制信号输入到CAN控制器中或微控制器中的CAN模块,CAN_H CAN_L端口直接与两条总线导线连接。
另外用户可以利用一个外部电阻,通过一个可选端口来改变脉冲沿斜率。
(4)网络拓扑结构ISO11898-2 标准规定了一种带2个终端电阻的线性总线结构,在总线两端接上终端电阻可以避免导线上的信号反射。
注意终端电阻的使用,总线导线的长度和类别选择。
连接器采用9针D-Sub连接器的引脚分布。
第三章,主要有报文格式和错误的检测、限制和处理。
3.1 报文格式
CAN 规范定义,隐性电平的逻辑为1,显性电平逻辑为0. 有一个助记的是:显灵(显零),记住一个,另一个当然知道是隐1了。
CAN总线上传输的帧有4个类型:数据帧、远程帧、错误帧、超载帧。
标准格式的数据帧组成:
---帧起始(SOF):指示一个数据帧和远程帧的开始,包含一个确定的显性位。
---标识符场(CAN-ID):标识符场由11位组成,用于表示确定的待传输消息,数值作侍传输消息的优先级。
---远程传输请求位(RTR):用于区分数据帧还是远程帧。
当为显性时传输数据帧,隐性为远程帧。
---控制段:由6位组成,其中有4位DLC (数据长度代码)。
DLC表示此帧在数据段中的传输字节数。
---数据段:0~8字节,包含此帧传输的实际有效信息。
---CRC段:循环冗余校验。
用来识别是否接收错误的数据。
---应答段:应答间隙位的电平值可以用来提示本网络中没有接收器正确收到了当前发送的消息。
---帧结束:由7位隐性电平的位组成。
帧间空间(ITM)已经不属于前一条帧的组成单元。
远程帧建议不使用,就不再详细介绍。
错误帧:主动错误标志由6个连续显性电平的位组成,这违反了CAN填充规则,所以网络中所有的设备都可以识别出这种错误标志。
由主动错误标志转为被动错误标志。
错误界定符由8个隐性电平位组成,用于结束错误帧。
过载帧:假如在错误界定符里出现位错误,就会发送一个过载帧。
通常由尚未处理完上一帧消息的CAN控制器发出,可以用于延迟网络中其他设备发送下一条消息。
过载标志由6个连续显性电平位组成,且必须在帧空间ITM 的前两个位之内开始。
过载界定符由8个隐性电平组成,用于结束过载帧。
过载帧不会影响错误计数器的读数,这接收错误计数器REC在发送过载标志检测到的位错误REC不加1的原因吧。
CAN位信息的传输使用不归零编码(NRZ)的方式。
NRZ:信号电平的一次反转代表1,电平不变化表示0,并且在表示完一个码元后,电压不需回到0. 好处是在一个位时间间隔里,只需要进行一次扫描就可以检测到电平。
缺点是当出现一些极性相同的连续位时,没有可用的信号边沿来同步接收器。
CAN总线仲裁与填充原理需要注意。
位填充机制:
如上图可知,当在SOF到CRC段中,出现连续5个相同极性的位,就要后面插入一个相反的填充位,该填充位也可以再还原时,被去掉。
填充规则适合的范围
3.2错误的检测、限制和处理
有4种检测机制检测错误:
位错误:每个发送节点在发送的同时也对总线电平进行监听,如果所发送的值与监听到的值不同就会中断报文传输,产生位错误信息。
CRC错误:如果收到的CRC检验值与CAN芯片算出的校验值不一致时,认为是CRC错误,并将刚收到的报文作废。
应答错误:如果发送器以隐性电平发送的应答间隙位没有被任何一个接收器的显性电平覆盖,发送设备就会中断传输,将已经发送的传输报文作废。
并在下一个位中发送一个错误标志。
格式错误:如果在CRC界定符、应答界定符或EOF字段的前6位中发现一个显性电平位,则丢弃该电平,并在下一个位中发送一个错误标志。
所有CAN协议控制器都内置两个错误计数器,一个接收错误计数器REC,一个是发送错误计数器TEC。
错误计数器的值大于127小于255时,设备进入被动错误状态;当错误计数器的值小于127时,设备处于主动错误状态;当错误计数器大于255时,设备进入总线脱离(BusOff)状态。
错误计数器的增减规定有8个。
如果某一过载帧中检测出错误,刚只有处于错误主动状态的设备才能允许发送一个错误标志。