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 性能;● 遵守工业应用规范。
(完整word版)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) 错误检测功能·错误通知功能·错误恢复功能所有的单元都可以检测错误(错误检测功能)。
第6章 通信功能与总线接口附件-CANopen协议简介与应用开发讲解

第6章 通信功能与总线接口附件
• Pre-Operational:在此状态中,从节点SDO被允许,主节点 通过SDO完成从节点通信参数的设置,如从节点的PDO参数 映射设置。主节点发送start_remote_node命令使从节点进 入Operational状态。
• Operational:在此状态中,从节点完成自己的正常工作,采 集数据,控制设备,与主节点通信,所有报文对象类型都被 允许。
第6章 通信功能与总线接口附件
• 传送机制: – 加速传送:最多传送4Byte数据 – 分段传送:传送数据大于4Byte
• 报文基本结构:
第6章 通信功能与总线接口附件
• SDO 命令字包含如下信息: – 下载/上传(Download / Upload) – 请求/应答(Request /Response) – 分段/加速传送(Segmented / Expedited ) – CAN帧数据字节长度 – 用于后续每个分段的交替清零和置位的触发位 SDO中实现了5个请求/应答协议:启动域下载 ,域分 段下载,启动域上传 ,域分段上传和域传送中止。
……
第6章 通信功能与总线接口附件
• 存取函数
由getODentry()和setODentry()函数来实现,思路如下: – 通过扫描函数定位到指定对象的入口; – 检查对应对象的访问权限,若越权返回错误码; – 若权限正确,允许访问,根据调用的函数,将指定内容copy进指定对
象,或将指定对象里的内容copy到目标地址(注意检查是否越界); – 返回。
第6章 通信功能与总线接口附件
1.1 主节点主要的功能 控制从节点运行状态; 通过SDO对对象字典的参数进行读取和修改; 监视从节点的运行状况和是否发生错误(即进行节点保护); 由从节点中获得相应的信息和运行状态;启动和终止 SDO通讯; 发送SYNC报文; 提供分配特定标识符等网络管理的服务。
CANopen协议在现场总线网络中的应用

CANopen 协议在现场总线网络中的应用贾 佳(西安航空职业技术学院 陕西西安 710089)摘 要:CANopen 是一个开放的、标准化的应用层协议,在各种控制系统中得到了广泛的应用,可以进一步提高系统的可靠性、灵活性和兼容性。
结合工业控制中的自调匀整系统,采用CANopen 协议实现了CAN 总线上下位机之间的通信,并通过测试证明各通信模块具有较强的在线可控性,保证系统工作稳定可靠。
关键词:CANopen 协议;CAN 总线;DSP ;对象字典中图分类号:TP273 文献标识码:B 文章编号:10042373X (2008)152178203Application of CANopen Protocol in Fieldbus N et w orkJ IA Jia(Xi ′an Aeronautical Polytechnic Institute ,Xi ′an ,710089,China )Abstract :CANopen is a sort of exoteric and standard application layer protocol ,the use of it enhances the reliability ,agili 2ty and compatibility in all kinds of control system.This paper decribes its communication between machines by associating with the autolevel control system.The on 2line controllable is verified by testing experiment between communications modules ,the reliable and stabilization of the whole system are ensured.K eywords :CANopen protocol ;CAN bus ;DSP ;object dictionary收稿日期:20082012101 引 言基于现场总线的网络技术研究是自动控制领域发展的一个热点。
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协议的CAN总线应用抽象层的设计与实现的开题报告

基于CANopen协议的CAN总线应用抽象层的设计与实现的开题报告一、选题背景随着现代工业自动化技术的不断发展,越来越多的控制系统采用了基于CAN(Controller Area Network)总线的通信结构。
CAN总线具有即插即用、可扩展性强、速度快等优点,已经成为现代工业自动化领域最受欢迎的通信方式之一。
CANopen是一种使用CAN总线的标准化协议,被广泛用于工业自动化、机器人、航空航天等领域中。
当前,CANopen协议的应用较为广泛,但开发者在进行CANopen协议相关软件开发时,仍然需要面对复杂的开发工作,包括传输对象字典(Object Dictionary)的管理、节点状态转移机(Node State Machine)的设计、数据通信的处理等。
为了简化开发者的开发工作,提高其开发效率,设计和实现一个基于CANopen协议的应用抽象层显得尤为重要。
二、选题目的本选题旨在设计和实现一个基于CANopen协议的应用抽象层,使得开发者在进行CANopen协议相关软件开发时,能够更加简便地管理传输对象字典、设计节点状态转移机以及处理数据通信,从而提高其开发效率。
三、选题内容1. CANopen协议基础知识的学习2. CAN总线的通信原理及协议规范的学习3. CANopen协议标准的了解及应用场景的研究4. CANopen协议的应用抽象层设计5. CANopen应用抽象层的代码实现及调试6. CANopen应用抽象层功能测试及性能测试四、研究方法本文选用文献调研和实践相结合的方法。
通过查阅相关的文献资料,深入了解CAN总线及CANopen协议的相关知识,利用实验室现有的硬件开发平台,进行应用抽象层的代码实现及性能测试等工作。
五、研究意义本研究的意义在于,通过设计和实现一个基于CANopen协议的应用抽象层,可以简化开发者的开发工作,提高其开发效率,从而进一步推动CAN总线在工业自动化领域的普及和应用。
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协议篇一:•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的每一个节点都维护了一个状态机。
基于PLC的CANopen主站功能的实现

( 0 1 1 -0 2 3 2 1 ) 70 3 - 0
( L )w si rd cd h A o e atr u c o a edv e n iee t o ue .E c o uern P C a t u e .T eC N p n m s n t nc n b ii d it df rn m d l no ef i d o f s a h m d l u sa
Ke r sC o e se ; rga ywod : AN p nmatr p o rmma l lgc o t l r P C) A e b sd t p ig be o i c nr l ( L ;C N f l u aama pn oe id
0 引 言
C N p n是 基 于 C N 总 线 的 应 用 层 协 议 。 A oe A 在 开放 的现 场 总线 标 准 中 , A o e C N pn是 最 著 名 和 成 功 的一种 , 已经 在 欧 洲 和美 国获 得 广 泛 的认 可
低 压 电器 (0 1 o 1 ) 2 1 N .7
・ 现场总线 与网络通信 ・
基于 P C的 C L ANo e p n主 站 功 能 的 实现 术
李一 青 , 薛 吉 , 奚培峰
( 海 电器科 学研 究 院 , 海 上 上
摘
20 6 0 0 3)
要 :介绍 了将 C N pn主站 功能在 P C上 实现 的实例 。将 主站 按功 能分成 A oe L
CANopen_现场总线应用层协议的开发与实现

◆CAN总线使用了11位的标识符,并通过位同步机制,迫使低优先级的报文自动放弃对总线的驱动,实现了冲突避免机制,与基于冲突检测机制的现场总线相比,CAN总线的冲突避免机制保证了在高网络负载情况下的高总线有效使用率,从而能够有效地支持分布式控制系统或实时控制系统,具有低成本、高可靠性、高抗干扰能力和高实时性等特点。
此后,于1993年颁布的ISO11898国际标准[5]为CAN 总线的规范化和应用系统设计铺平了道路。
同时,各种基于CAN协议的高层协议开发使得CAN总线功能更强,应用范围更广,不仅在汽车工业、过程控制、数控机床和纺织机械等领域已取得广泛运用,而且正在向医疗、电力、海运电子设备等方面发展,以1993 年颁布的ISO11898国际标准。
◆ CAN 本身是一个底层协议,仅详细定义了物理层和数据链路层,本身并不完整。
很多复杂的应用问题需要更高层次的定义来解决。
比如,CAN 数据帧一次最多只能传送8 字节,而不能传输大于8 字节的长帧;CAN 只提供了非确认的数据传输服务,而无法提供有确认的数据传输,等等。
所以,CAN 协议允许各厂商在CAN 物理层的基础上自行开发高层应用协议,以满足不同应用的需要。
◆ CANopen 协议着重定义了应用层以及相关的通讯架构,详细内容包括对象字典、网络管理、启动配置、各种传输对象的定义等等。
其中,对象字典是CANopen 的关键,它保存了一个CANopen 节点所有的配置参数和通讯数据,也提供了CANopen 应用层和用户程序交流的接口。
正是由于对象字典的存在,在CAN 总线上传输的报文不需要包含所传数据的格式定义、类型与作用等附加信息,只需包含实际的数据。
报文的接收端只需借助对象字典的帮助,便可以解析CAN 报文内的信息,因为CAN 报文中的每一个比特都被对象字典完全定义。
所以,CANopen 协议具有很高的数据传输效率。
网络管理和启动配置则体现了CANopen 协议的灵活性。
CANopen协议在现场总线网络中的应用

CANopen协议在现场总线网络中的应用作者:贾佳来源:《现代电子技术》2008年第15期摘要:CANopen是一个开放的、标准化的应用层协议, 在各种控制系统中得到了广泛的应用,可以进一步提高系统的可靠性、灵活性和兼容性。
结合工业控制中的自调匀整系统,采用CANopen协议实现了CAN总线上下位机之间的通信,并通过测试证明各通信模块具有较强的在线可控性,保证系统工作稳定可靠。
关键词:CANopen协议;CAN总线;DSP;对象字典中图分类号:TP273 文献标识码:B 文章编号:1004373X(2008)1517803Application of CANopen Protocol in Fieldbus NetworkJIA Jia(Xi′an Aeronautical Polytechnic Institute,Xi′an,710089,China)Abstract:CANopen is a sort of exoteric and standard application layer protocol, the use of it enhances the reliability,agility and compatibility in all kinds of control system.This paper decribes its communication between machines by associating with the autolevel control system.The on-line controllable is verified by testing experiment between communications modules,the reliable and stabilization of the whole system are ensured.Keywords:CANopen protocol;CAN bus;DSP;object dictionary1 引言基于现场总线的网络技术研究是自动控制领域发展的一个热点。
6.5 CANopen主站设备的实现

// 打开PCI-5010-P // 初始化协议 // 添加节点 // 开始设备
关闭PCI-5010-P:
void CloseDevice(void){ ...... ZCOMA_Stop(1,0); ZCOMA_Uninit(hPCopmst) ; ZCOMA_Close(1,0); }
调ቤተ መጻሕፍቲ ባይዱAPI函数
}
NMT网络管理
PCI-5010-P作为CANopen主站设备,其最主要的特征就是拥有对整个网络的 控制权,即网络管理功能(NMT)。可使网络中的CANopen设备进入到不同的操 作状态(启动从站、停止从站、进入预操作状态、复位协议栈,复位通信参数等)。
参考程序清单:
void NodeStateSet(void) { DWORD state = 0x01; ZCOMA_SetNodeState(hPCopmst,0x01,state) ; …… }
// 启动节点地址为1的从站
调用API函数
其它功能
PCI-5010-P不仅具有上述基本功能,还具有其他一些CANopen相关的功能:
◆ 获取指定从站的当前工作状态;
◆ 发送网络时间标识; ◆ 远程请求PDO数据以及处理紧急错误代码;
……
这些功能都为开发一个完整的CANopen主站设备提供了必备条件。
// 停止PCI-5010-P // 停止CANopen协议栈 // 关闭设备
注册接收PDO(RPDO)
CANopen主站设备应能接收来自CANopen网络中的所有PDO数据。 PCI-5010-P CANopen主站卡具有该功能,但是需要在接收指定的PDO数据之 前,把该PDO的COB-ID注册到CANopen协议栈中。
CANopen现场总线主、从站系统解决方案

CANopen现场总线主、从站系统解决方案
广州致远电子有限公司
【期刊名称】《电子技术应用》
【年(卷),期】2009(035)005
【摘要】阐述了CANopen应用层协议的通讯机制,分析了其应用优势,并通过实际应用案例的讲解与剖析,指导用户快速建立一个运行可靠的CANopen系统网络.【总页数】3页(P14-16)
【作者】广州致远电子有限公司
【作者单位】(Missing)
【正文语种】中文
【中图分类】TP3
【相关文献】
1.现场总线PROFIBUS-DP主-从站技术在变频调速系统中的应用 [J], 黄敦华;崔跃芬
2.如何快速实现CANopen从站转Modbus网关——基于CANopen协议的XGate-COP10应用 [J], 广州致远电子有限公司
3.LSPM2简单从站协议芯片在现场总线从站开发中的应用 [J], 张朴;杨鑫
4.基于CANopen协议的全电子联锁系统从站设计 [J], 耿进龙;张立鹏;宋志坚
5.基于CANopen协议的全电子联锁系统从站设计 [J], 耿进龙;张立鹏;宋志坚因版权原因,仅展示原文概要,查看原文内容请购买。
can和canopen协议

can和canopen协议CAN现场总线仅仅定义了第 1 层、第 2 层;实际设计中,这两层完全由硬件实现,设计⼈员⽆需再为此开发相关软件或固件。
同时 CAN 只定义物理层和数据链路层,没有规定应⽤层,本⾝并不完整,需要⼀个⾼层协议来定义CAN 报⽂中的 11/29 位标识符、 8 字节数据的使⽤。
⽽且,基于 CAN 总线的⼯业⾃动化应⽤中,越来越需要⼀个开放的、标准化的⾼层协议。
这个协议⽀持各种 CAN ⼚商设备的互⽤性、互换性,能够实现在 CAN⽹络中提供标准的、统⼀的系统通讯模式,提供设备功能描述⽅式,执⾏⽹络管理功能。
基于 CAN 的⾼层协议主要有CAL 协议和基于 CAL 协议扩展的 CANopen 协议。
CANopen协议是 CAN-in-Automation(CiA)定义的标准之⼀,并且在发布后不久就获得了⼴泛的承认。
尤其是在欧洲,CANopen 协议被认为是在基于 CAN 的⼯业系统中占领导地位的标准。
⼤多数重要的设备类型,例如数字和模拟的输⼊输出模块、驱动设备、操作设备、控制器、可编程控制器或编码器,都在称为“设备描述”的协议中进⾏描述;“设备描述” 定义了不同类型的标准设备及其相应的功能。
依靠 CANopen 协议的⽀持,可以对不同⼚商的设备通过总线进⾏配置。
⼀、can协议CAN协议的报⽂传输主要由下⾯的4种帧来实现:数据帧:从发射端携带数据到接收端。
⼀个完整的数据帧有7部分组成,依次为帧起始(SOF)、仲裁场(Arbitration Field)、控制场(Control Field)、数据场(Data Field)、CRC场、应答场(ACK Field)、帧结尾(EOF)。
标准帧ID是11位,扩展帧ID是29位远程帧:总线单元发出远程帧,请求发送具有同⼀识别符的数据帧。
远程帧的主要作⽤是向其他的CAN节点发送数据请求,发送相同标识符的数据帧。
与数据帧相⽐,远程帧的RTR位是隐性的,⽽且没有数据场。
CAN-bus现场总线基础教程【第6章】CAN总线应用层协议(CANopen)-嵌入式CANopen协议转换模块(24)

第6章 CAN 总线应用层协议——CANopen1.1 嵌入式CANopen 协议转换模块CANopen 协议作为CAN 总线的应用层协议,拥有复杂的网络管理(Network Management )、实时过程数据对象( Process Data Object )、服务数据对象(Service Data Object )、预定义连接和特殊功能对象等基本功能,另外CANopen 协议还定义了指示灯规范、通信安全架构、在线配置、以及EDS 文件规范、标准设备规范等一系列的协议规范。
因此开发基于CANopen 协议的设备有着非常高的难度以及较长的开发周期。
1.1.1 XGate-COP10简介XGate-COP10是广州致远电子股份有限公司开发的一款嵌入式CANopen 协议转换模块,该模块内部已经集成了CANopen 从站协议栈代码,可将CANOpen 协议转换为简单的串口协议,并通过UART 接口与用户CPU 通信。
其支持CANopen 标准协议DS301、DS302、DS303、DS305。
XGate-COP10所有的功能均通过CiA 的一致性测试软件的测试,保证了与其它CANopen 设备的良好的兼容性。
该模块的问世让用户不需要对CANOpen 协议有深入了解即可快速方便的使现有设备具有CANopen 通信能力。
该模块具有如下所示的功能特点:● 网络管理服务对象(支持NMT 的Boot up 、Node Guarding /Life guarding 、HeartbeatProducer 功能);● 过程数据对象(支持TPDO 与RPDO );● 支持服务数据对象(SDO )服务器;● 紧急报文对象; ● 同步报文对象; ● 网络配置对象(支持LSS 从站); ● 串口通信能力;● 96字节的输入输出(I/O )数据缓冲。
XGate-COP10从站具有高实时性,并可以支持多达12个RPDO 和TPDO 过程数据传输,适用于各种干扰强、实时性要求高的场合,小巧的体积适用于嵌入到各种电路板中,在用户系统中的结构如图0.1所示。
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使用基于对象的方法来定义标准设备,每个设备都表现为一组对象的集合,能够被网络所访问。
对象字典是通讯程序和上层应用程序之间的接口。
CANopen 的核心概念是设备对象字典(Object Dictionary,OD),它是一个有序的对象组,每个对象采用一个16 位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8 位的子索引。
CANopen 网络中每个节点都有一个对象字典。
对象字典包含了描述这个设备和它的网络行为的所有参数。
一个节点的对象字典是在电子数据文件(Electronic Data Sheet,EDS)中描述。
关键词:CANopen;对象词典;索引;子索引前言:CAN(Controller Area Network)现场总线仅仅定义了物理层、数据链路层(见ISO11898 标准),没有规定应用层;实际设计中,物理层、数据链路层完全由硬件实现。
所以CAN 现场总线本身并不完整,需要一个高层协议来定义CAN 信息中的11/29 位标识符、8 字节数据的使用。
CANopen 协议是一种基于CAN 的高层协议,它是由 CiA(CAN-in-Automation)定义并维护的协议之一,它是在CAL(CAN Application Layer)协议基础上开发的,使用了CAL 通信和服务协议子集。
1 CANopen 通讯对象1.1 PDO(Process Data Object:过程数据对象)PDO提供设备应用对象的直接访问通道,用来传输实时数据,具有较高的优先权。
PDO CAN信息数据列中每个字节都用作数据传输,信息利用率高。
PDO通过“生产者/消费者”模式来描述,数据从一个生产者传到一个或者多个消费者,数据传送限制在1~8个字节。
生产者传输数据后,不需要消费者确认,网络上的每个节点都会检测发送节点发出的数据信息,然后节点会决定接收到的信息是否需要处理。
CANopen 现场总线应用层协议主站的开发与实现

工学硕士学位论文CANopen现场总线应用层协议 主站的开发与实现宋 威北京工业大学2008年5月分类号:TP336单位代码:10005学号: S200502115密级:公开北京工业大学硕士学位论文题目 CANOPEN现场总线应用层协议主站的开发与实现英文并列题目THE DESIGN AND IMPLEMENTATION OF A MASTER OF THE APPLICATION LAYER FOR CANOPEN研究生姓名:宋威专业:检测技术与自动化装置研究方向:现场总线技术与嵌入式系统应用导师姓名:方穗明职称:副教授论文报告提交日期 2008年5月学位授予日期授予单位名称和地址北京工业大学北京市朝阳区平乐园 100 号独 创 性 声 明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其它人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构的学位或证书而使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
签名:日期:关于论文使用授权的说明本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其它复制手段保存论文。
(保密的论文在解密后应遵守此规定)签名:导师签名:日期:摘要摘 要汽车内部电子控制器件的不断增加使网络化的汽车整体控制成为当前汽车电子产业的主要发展方向之一。
CAN(Controller Area Network)总线由于其低成本、高可靠性、高抗干扰能力和高实时性等特点,成为汽车内部控制网络的主要载体。
作为CAN总线的应用层协议之一,CANopen具有高度的灵活性和可配置性,成为电动汽车和混合动力汽车控制网络的首选协议。
根据汽车系统的高实时性要求、多样的控制环境和CANopen协议本身的特点,建立CANopen网络的首要任务是建立一个实时运行、并行处理、灵活配置和可移植的CANopen主站。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于标准 C 语言的非抢占式任务调度机为 CANopen 事件的并行处理提供 了良好的平台,并天生具有良好的可移植性。在此之上建立的 CANopen 主站协 议栈具有良好的实时性、高度的功能独立性和可移植性。
Proved by practical network, the CANopen master works at a maximal 5kHz data updating rate, provides more protocol compatibility. The rigidly partitioned source code also guarantees the easy transplanting to other platforms.
工学硕士学位论文
CANopen 现场总线应用层协议 主站的开发与实现
宋威
北京工业大学
2008 年 5 月
分类号: TP336
单位代码: 10005 学 号: S200502115 密 级: 公开
北京工业大学硕士学位论文
题 目 CANOPEN 现场总线应用层协议主站的开发与实现
英文并列 THE DESIGN AND IMPLEMENTATION OF A MASTER 题 目 OF THE APPLICATION LAYER FOR CANOPEN
根据汽车系统的高实时性要求、多样的控制环境和 CANopen 协议本身的特 点,建立 CANopen 网络的首要任务是建立一个实时运行、并行处理、灵活配置 和可移植的 CANopen 主站。为了实现上述目标,本文提出了基于散列表的对象 字典设计和基于标准 C 语言非抢占式任务调度机的 CANopen 主站协议栈设计。
Keywords controller area network; CANopen application layer protocol; real-time system; scheduling algorithm; transplantable capabilityຫໍສະໝຸດ - II -目录目录
摘 要............................................................................................................................ I ABSTRACT....................................................................................................................... II 第一章 绪 论................................................................................................................1
经过实际网络测试,该 CANopen 主站设计实现了最高 5kHz 的数据更新率, 协议的完整度大大超过了开源协议栈。严格的代码结构也保证了较高的移植能 力。
关键词 控制器局域网;CANopen 应用层协议;实时系统;调度算法;可移植
-I-
北京工业大学工学硕士学位论文
ABSTRACT
The trend to replace the mechanical parts in vehicle by microcontrollers makes the networklized systematic controlling an important research field in current vehicle research domain. As one of the main network platforms, CAN (Controller Area Network) bus is cheap, highly reliable, nosie-tolerant and real-time. Among the existed high level protocols based on CAN, the CANopen application layer protocol possesses excellent flexibility and configuration capability. Thus it is the first choice of nowadays control networks in electric vehicles and hybrid vehicles.
1.2 课题的任务、难点及意义 .................................................................................4 1.3 论文结构 .............................................................................................................5 第二章 CAN 总线及 CANopen 应用层协议..............................................................7 2.1 简介 .....................................................................................................................7 2.2 CAN 现场总线协议.............................................................................................7 2.3 CANopen 应用层协议.......................................................................................10 2.4 CANopen 主站...................................................................................................13 2.5 本章小结 ...........................................................................................................14 第三章 对象字典的设计和分析................................................................................15 3.1 简介 ...................................................................................................................15 3.2 对象字典的特点 ...............................................................................................15 3.3 基于散列表的实现方法 ...................................................................................16
Since the internal network of vehicle is extremely a real-time and comprehensive control system, and CANopen protocol works in a extremely flexible way, the most important task to build a CANopen network is to design a real-time, parallel working, flexibaly configurable and transplantable CANopen master. To implement this master, an object dictionary architecture based on hash algorithm and a CANopen master protocol stack design based on a non-preemptive task scheduler are proposed.
In the architecture of object dictionary, the hash algorithm provides dynamic configuration capability, while traditional array based algorithms are impossible for run time configuration. By keeping overflow table in order, reading speed of the hash table is not obviously slower than that of array based methods.
研究生姓名:
宋威
专
业: 检测技术与自动化装置 研究方向: 现场总线技术与嵌入式系统应用
导师姓名:
方穗明
职 称:
副教授
论文报告提交日期 授予单位名称和地址
2008 年 5 月
学位授予日期