ican协议和canopen.docx

上传人:b****6 文档编号:13711156 上传时间:2023-06-16 格式:DOCX 页数:8 大小:20.78KB
下载 相关 举报
ican协议和canopen.docx_第1页
第1页 / 共8页
ican协议和canopen.docx_第2页
第2页 / 共8页
ican协议和canopen.docx_第3页
第3页 / 共8页
ican协议和canopen.docx_第4页
第4页 / 共8页
ican协议和canopen.docx_第5页
第5页 / 共8页
ican协议和canopen.docx_第6页
第6页 / 共8页
ican协议和canopen.docx_第7页
第7页 / 共8页
ican协议和canopen.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

ican协议和canopen.docx

《ican协议和canopen.docx》由会员分享,可在线阅读,更多相关《ican协议和canopen.docx(8页珍藏版)》请在冰点文库上搜索。

ican协议和canopen.docx

ican协议和canopen

竭诚为您提供优质文档/双击可除

ican协议和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中。

  篇二:

canopen协议

  一、canopen总线结构

  广播命令

  二、通信类型

  canopen有三种通信方式:

  主/从通信方式

  服务器/客户端通信方式

  生产商/顾客通信方式

  2.1主/从通信方式(nmt)

  对某一特点功能而言,一个网络中只有一个主机,其他全为从机。

由主机发送请求信号,从机发送相应信号(如果需要)

  主机发出命令,从机作出响应,但不回送数据

  主机发出命令,从机作出响应,同时回送数据确认

  2.2服务器/客户端通信方式(sdo)

  这种关系指发生在一个服务器和一个客户端之间,客户端发送命令,服务器执行后,回答客户端

  2.3生产商/顾客通信方式(sync、timestamp、emcy)

  这种通信方式有push和pull两种模式,网络中在这一个生产厂,0或多个顾客。

  2.3.1push模式

  厂商发送命令,顾客执行,不需回送数据

  2.3.2pull模式

  厂商发送命令,顾客执行,回送证实数据

  三pdo传送模式

  pdo分为tpdo(发送pdo)与Rpdo(接收pdo)两种,pdo的传送模式有两种:

同步传送与异步传送。

同步传送又分为周期传送与非周期传送

  3.1同步传送

  由某一个同步应用在网路上周期性的发送同步对象,及发送sync帧,该同步应用可以是主机也可以是从机

  pdo通信参数中的传输类型说明传送模式与触发方式,

  tpdo:

传送类型同时说明其传送率,以基本传送周期的倍数表示。

  传送类型为0时,表示当某事件发生后,收到一个同步对象帧(sync)时,立刻进行数据传输。

(非周期传送)

  传送类型为1时,表示当每收到一次同步对象帧(sync)时,传送一次数据。

(周期传送)

  传送类型为n时,表示当每收到n次同步对象帧(sync)时,传送一次数据。

(周期传送)

  Rpdo:

接收是在收到sync信号后,运行接收,独立于传输参数定义的传送率。

  传输类型252为非周期传输,在接收到同步对象后进行采样但不发送,在接收到请求该数据的远程帧后发送。

  3.2异步传送

  tpdo:

异步传送与sync无关,

  传输类型253-255为异步传输,定义为此三种类型的tpdo在接收到远程帧或规定的事件发生后进行传输。

  3.3触发模式:

  触发方式有三种

  3.3.1事件触发方式

  对于周期性传送,接收到的sync报文达到设定数量,相当于出发事件,引起一次发送。

  对于非周期性传送由设备子协议设定的事件触发发送

  3.3.2定时器触发

  当设定的时间达到后,触发一次发送

  3.3.3远程帧触发

  在收到其他设备发送的远程帧后,启动一次异步传送

  3.4pdo协议

  pdo的通信模式相当于厂商/顾客的通信模式,包含如下参数:

  pdo数量:

1~512,

  用户类型:

厂商/顾客

  数据类型:

由pdo映射确定

  禁止时间:

n*100ns

  索引20h描述pdo的通信参数,索引21描述pdo的映射参数

  3.4.1写pdo

  使用厂商/顾客模式的push形式,厂商主动发送pdo

  3.4.2读pdo

  使用厂商/顾客模式的pull形式,某一顾客发送远程帧,传送发送pdo,这是可选模式,所有的pdo都可以接收,。

这种模式若pdo发送的数据量l大于pdo映射定义的数据量n,取前那个数据,若pdo发送的数据量l小于pdo映射定义的数据量n,若顾客支持emergency报文,发送emergency报文,错误代码为8210

  四sdo传送模式

  sdo以段的形式发送,首先发送的是初始化阶段的段,以加速传送方式传送,包含4个以内字节的数据,索引为22h的对象字典描述sdo通信参数。

相应的对象字典的条目通过下式计算:

  ssdo(Rsdo)通信参数索引=1200h+ssdo_no-1

  csdo(tsdo)通信参数索引=1280h+csdo_no-1

  4.1sdo协议

  sdo参数:

  sdo数量:

1~128,

  用户类型:

客户端/服务器

  index和subindex的数据类型有多种形式:

structureunsigned(16),unsigned(8)index说明对象字典的条目,subindex说明条目中的具体内容

  传送类型:

数据在4个字节以下:

加速传送

  数据在4个字节以上:

分段传送或块传送

  数据类型:

由index和subindex确定

  禁止时间:

n*100ns

  篇三:

canopen协议介绍

  endat信号补充

  晚安,20xx-欧迪的20xx纪念册canopen协议介绍(讲义)

  20xx-10-1215:

58:

28|分类:

技术文档|举报|字号订阅

  很长一段时间以来,很多人问我canopen总线优势到底在什么地方,我也大体的给了口头的讲述,但是比较笼统,没办法做到详细解释,加上纯技术的话语比较晦涩,遇上内行还能多聊几句,如果是刚接触的,那就是云里雾里了。

这次正好要进行公司业务员培训,要讲讲canopen,在整理过程中把我的讲义贴出来,希望能帮到大家,以下内容是我讲课的口述内容,比较白话,不能作为资料,大家见谅,鉴于我整理也比较辛苦,也算个小小的知识产权,所以ppt我就不贴出来了。

^-^

  讲义内容:

  通常canopen协议相关的一些资料相对来说比较晦涩,非专业人士看起来比较困难。

我尽量以浅显易懂的方式将canopen协议的框架和它在实际应用中存在的优缺点展示给大家。

  我按照最先接触的内容由浅入深的讲解,直接讲canopen协议会有点跳跃

  的感觉,所以,我以产品作为切入点,分析一下如何使用,在这个过程中,让大家理解什么是canopen协议。

首先,我们拿到一个产品,比方说是编码器,它的用途是作为位置传感器,那我们就需要将编码器送出的数据进行采集。

一般自然界中存在的信号有多种形式,大多以模拟量形式存在,类似于人感觉到温度的高低、水流的快慢、风力的大小等等。

但这是很模糊的概念,今天热了还是冷了,风大风小,没有比较是很难界定的,为了规范这些量,方便描述时的统一性,温度计量标准有华氏和摄氏、水流有每秒多少立方、风力有级数。

这些,就是数字量。

数字量在人与人之间传递时,可以通过嘴和耳,语言和听力,在设备之间如何来传递呢?

学过数电的人知道,灯泡有两种状态,亮和暗,在最基础的电路回路里,“通”和“断”是两个最基本的状态,我们可以把他理解为“1”和

  “0”,这样,就有了表述的方法。

但是单独使用这两种状态是无法传递信息的,如何把编码器的数据传递出去,就需要使用到协议,下面我就讲讲协议。

  我们知道,人与人交流需要用到语言,我们要表达出一个完整的意思就要使用一句话,一句话内会包含很多的字,每个字又由笔画构成。

这样,我们协议的基本框架就出来了,在整个canopen协议传递过程中,最大的单位称为“帧”,类似于一句话,“帧”由“字节”组成,就代表了字,每个“字节”由“位”组成,我们称为笔画。

那地球上还有英语、法语、德语、还有听不懂的鸟语呢!

那就是各个通讯协议,比如pro  

fibus-dp、devicenet、cc-link、hart、modbus等。

让dp和canopen通讯,那就是相当于一个讲德语的与讲中文的对话,鸡同鸭讲,能沟通吗?

需要翻译,对吧。

回过头来我们讲讲canopen的帧格式,canopen一帧数据由一个cob-id(报文头)和最大8字节数据组成,其中cob-id可以是11位(can2.0),也可以是29位(can2.0b),当然,can2.0b需要向下兼容11位can报文。

对于每字节数据由哪些位组成,这里就不再赘述,因为这部分内容不在osi模型的第七层应用层内描述,开发人员也不必过多考虑这块内容。

由于canopen协议内对cob-id的各个地址段报文有详细规范,这里就花点时间讲一下,当然也没时间全部讨论,只选一些重要内容来说。

  以前我们培训一直在说canopen协议好,速度快,广播报文,这些关键字听的多了,但是大家可能不是很理解这些内容。

现在就来解释一下。

在编码器应用中,can报文我们常用的有sdo(servicedataobject服务数据对象)和pdo(processdataobject过程数据对象),从字面描述意义看,通常数据的发送读取是采用pdo来实现的,can参数的修改是通过sdo来实现的(当然这不是绝对的,具体的如果有兴趣可以会后询问)。

先来说说pdo,我们在很多资料上会看到这样一张表

  注意:

pdo/sdo发送/接收是由(slave)can节点方观察的

  表一:

canopen主/从连接集对象

  假设我们读取到一组编码器数据是这样的《0x1810x300x1F0x00

  0x00》,我们应该如何理解呢?

首先,“0x”只是一个符号,它代表了紧跟着的数据是十六进制的(等同于在数据后面直接标“h”,上述表达式也可以表述为《181h30h1Fh00h00h》),“181”我们查看上表后发现,它包含在pdo1(发送)里面,它代表了是由编码器发出的过程数据对象,表上显示是“181h~1FFh”,这是因为cob-id包含了节点号信息,地址1对应着181h,地址2对应了182h,以此类推,最大127个节点。

“0x300x1F0x000x00”就代表了数据内容,在can协议内,帧数据是低位在前,高位在后的。

所以上述数据直接读取后得出编码器送出1F30h,这就代表了编码器的当前位置值。

  在总线上面,多个节点同时发送数据不会产生冲突么?

以前我们说过,can协议具有仲裁,这里简单介绍一下仲裁是如何实现的。

上面说了,cob-id包含了节点号信息,也就是说,只要总线上的设备节点号不同,所送出的广播报文的cob-id肯定是不同的,如果一个是182h,一个是183h,仲裁时怎么做?

本文最开始的时候介绍了每个字由笔画组成,现在就要用到位(bit)的概念了,182h换算成二进制是000110000010(b),“b”代表了二进制,183h换算成二进制是000110000011(b),关于显性位、隐形位这里不再赘述,这个有兴趣可以找我要资料看,这里我就简单描述为“0”比“1”的优先级高,可以理解为拖后腿,“0”为低电平,“1”为高电平,在线上低电平会把高电平拉低,一旦183h发现数据传输过程中与自身数据不符合,就终止上传,保证了182h的数据先上总线。

  我们在实践中会发现,编码器的数据在不断的更新输出,那输出周期如何定义呢?

这个我们就来讨论一下引申的pdo传送方式。

我们以前在培训时一直介绍canopen协议与dp协议相比的好处在于dp是轮询的,问答方式浪费了大量的时间,而can协议是广播的,可以将1mhz的速率发挥至极致。

这种说法形象,一般可以解释给初步接触canopen的人听。

其实canopen的报文形式很多样化,在不同的应用场合可以采取不同的方式,上面说的称为异步方式,异步方式也分两种,一种是上面的内部时钟触发,也就是按照固定时间间隔发送,另一种是事件触发,假设编码器发生转动,数据相应送出。

还有一种同步方式,我们也可以口述为踏拍方式,当主站要求报数是,所有从节点按照仲裁的优先顺序进行数据发送。

这三种报文方式分别在哪些场合适用呢?

我们以车辆来举例。

车辆开在路上,在整个车辆控制内,最重要的,具有高优先级的,应该是牵涉到安全的制动(刹车),安全气囊等等。

其次是转向、车灯。

再次是音响、影视系统(当然,我对车不是很熟悉,这是我的主观认识,作为一个例程)。

我们可以把小的节点号分配给制动系统,以保证数据能及时送达控制器,并采用定时报数,实时监测车辆制动系统的情况。

对于音箱什么的,我们可以采用事件触发方式,

  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2