当前位置:文档之家› 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的每一个节点都维护了一个状态机。该状态机的状态决定了该节点当前支持的通讯方式以及节点行为。

初始化时,节点将自动设置自身参数和canopen对象字典,发出节点启动报文,并不接收任何网络报文。

初始化完成后,自动进入预运行状态。在该状态,节点等待主站的网络命令,接收主站的配置请求,因此可以接收和发送除了pdo以外的所有报文。运行状态为节点的正常工作状态,接收并发送所有通讯报文。

停止状态为一种临时状态,只能接收主站的网络命令,以恢复运行或者重新启动。

canopen节点状态转换图

canopen节点状态转换条件

3、devicemodel

communication提供通信对象和传输经过底层的数据的适当功能;

objectdictionary对此设备上的应用程序对象,通信对象和状态机的行为有影响的所有数据项的集合。

application由在处理环境方面的设备功能组成。

设备应用在数据条目中的完整描述在对象字典中叫设

备子文件(deviceprofile)

4、od

每个节点维护一个对象字典(objectdictionary,od)。该对象字典保存了节点信息、通讯参数和所有的过程数据,是canopen节点的核心数据结构。上层应用程序也主要通过读写对象字典和canopen应用层进行交互。

canopen对象字典为两级数组结构,通过索引(16bits)和子索引(8bits)来编址。设备子文件中最重要的就是对象字典的描述,对象字典在slave节点中一般是在设备初始化写好的不会修改,而在master节点中可以在运行过程中动态修改,不修改的od一般存在Rom中,而修改的存在Ram 中。

篇二:can和canopen的区别和联系

1、can与canopen的共同点与不同点:

can只定义了物理层与链路层,而没有定义用户层,用户可根据自己的需要定义一些网络上的通信约定;

canopen是在can的基础上定义了用户层,即规定了用户、软件、网络终端等之间用来进行信息交换的约定。

2、从osi网络模型的角度来看同,现场总线网络一般只实现了第1层(物理层)、第2层(数据链路层)、第7层

(应用层)。因为现场总线通常只包括一个网段,因此不需要第3层(传输层)和第4层(网络层),也不需要第5层(会话层)第6层(描述层)的作用。

can(controllerareanetwork)现场总线仅仅定义了第1层、第2层(见iso11898标准);实际设计中,这两层完全由硬件实现,设计人员无需再为此开发相关软件(software)或固件(Firmware)。

同时,can只定义物理层和数据链路层,没有规定应用层,本身并不完整,需要一个高层协议来定义can报文中的11/29位标识符、8字节数据的使用。而且,基于can总线的工业自动化应用中,越来越需要一个开放的、标准化的高层协议:这个协议支持各种can厂商设备的互用性、互换性,能够实现在can网络中提供标准的、统一的系统通讯模式,提供设备功能描述方式,执行网络管理功能。

3、can2.0是物理层和链路层协议,基本上由硬件来实现,canopen是应用层协议基本上由软件来实现

篇三:can总线的浅析canopen协议

can总线的浅析canopen协议

在设计嵌入式系统,尤其是分布式嵌入式系统时,解决好系统各单元间可靠、有效的通信是系统设计成败的关键,对实时性和安全可靠性要求高的网络而言就更是如此。解决这一问题有多种方案,如Rs232/485串行总线、can、

相关主题