版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、EnDat信号补充 晚安,2010 - 欧迪的2010纪念册CANopen协议介绍(讲义) 2010-10-12 15:58:28| 分类: 技术文档|举报|字号 订阅 很长一段时间以来,很多人问我CANopen总线优势到底在什么地方,我也大体的给了口头的讲述,但是比较笼统,没办法做到详细解释,加上纯技术的话语比较晦涩,遇上内行还能多聊几句,如果是刚接触的,那就是云里雾里了。这次正好要进行公司业务员培训,要讲讲CANopen,在整理过程中把我的讲义贴出来,希望能帮到大家,以下内容是我讲课的口述内容,比较白话,不能作为资料,大家见谅,鉴于我整理也比较辛苦,也算个小小的知识产权,所以PPT我就不贴
2、出来了。- 讲义内容:通常CANopen协议相关的一些资料相对来说比较晦涩,非专业人士看起来比较困难。我尽量以浅显易懂的方式将CANopen协议的框架和它在实际应用中存在的优缺点展示给大家。我按照最先接触的内容由浅入深的讲解,直接讲CANopen协议会有点跳跃的感觉,所以,我以产品作为切入点,分析一下如何使用,在这个过程中,让大家理解什么是CANopen协议。首先,我们拿到一个产品,比方说是编码器,它的用途是作为位置传感器,那我们就需要将编码器送出的数据进行采集。一般自然界中存在的信号有多种形式,大多以模拟量形式存在,类似于人感觉到温度的高低、水流的快慢、风力的大小等等。但这是很模糊的概念,今
3、天热了还是冷了,风大风小,没有比较是很难界定的,为了规范这些量,方便描述时的统一性,温度计量标准有华氏和摄氏、水流有每秒多少立方、风力有级数。这些,就是数字量。数字量在人与人之间传递时,可以通过嘴和耳,语言和听力,在设备之间如何来传递呢?学过数电的人知道,灯泡有两种状态,亮和暗,在最基础的电路回路里,“通”和“断”是两个最基本的状态,我们可以把他理解为“1”和“0”,这样,就有了表述的方法。但是单独使用这两种状态是无法传递信息的,如何把编码器的数据传递出去,就需要使用到协议,下面我就讲讲协议。我们知道,人与人交流需要用到语言,我们要表达出一个完整的意思就要使用一句话,一句话内会包含很多的字,每
4、个字又由笔画构成。这样,我们协议的基本框架就出来了,在整个CANopen协议传递过程中,最大的单位称为“帧”,类似于一句话,“帧”由“字节”组成,就代表了字,每个“字节”由“位”组成,我们称为笔画。那地球上还有英语、法语、德语、还有听不懂的鸟语呢!那就是各个通讯协议,比如Profibus-DP、DeviceNet、CC-Link、Hart、Modbus等。让DP和CANopen通讯,那就是相当于一个讲德语的与讲中文的对话,鸡同鸭讲,能沟通吗?需要翻译,对吧。回过头来我们讲讲CANopen的帧格式,CANopen一帧数据由一个COB-ID(报文头)和最大8字节数据组成,其中COB-ID可以是11
5、位(CAN2.0),也可以是29位(CAN2.0B),当然,CAN2.0B需要向下兼容11位CAN报文。对于每字节数据由哪些位组成,这里就不再赘述,因为这部分内容不在OSI模型的第七层应用层内描述,开发人员也不必过多考虑这块内容。由于CANopen协议内对COB-ID的各个地址段报文有详细规范,这里就花点时间讲一下,当然也没时间全部讨论,只选一些重要内容来说。以前我们培训一直在说CANopen协议好,速度快,广播报文,这些关键字听的多了,但是大家可能不是很理解这些内容。现在就来解释一下。在编码器应用中,CAN报文我们常用的有SDO(Service Data Object服务数据对象)和PDO(
6、Process Data Object过程数据对象),从字面描述意义看,通常数据的发送读取是采用PDO来实现的,CAN参数的修改是通过SDO来实现的(当然这不是绝对的,具体的如果有兴趣可以会后询问)。先来说说PDO,我们在很多资料上会看到这样一张表对象COB-ID通讯参数在 OD 中的索引紧急081H-0FFH1024H,1015HPDO1(发送)181H-1FFH1800HPDO1(接收)201H-27FH1400HPDO2(发送)281H-2FFH1801HPDO2(接收)301H-37FH1401HPDO3(发送)381H-3FFH1802HPDO3(接收)401H-47FH1402HP
7、DO4(发送)481H-4FFH1803HPDO4(接收)501H-57FH1403HSDO(发送/服务器)581H-5FFH1200HSDO(接收/客户)601H-67FH1200HNMT Error Control701H-77FH1016H-1017H 注意:PDO/SDO 发送/接收是由(slave)CAN节点方观察的 表一:CANopen主/从连接集对象 假设我们读取到一组编码器数据是这样的0x181 0x30 0x1F 0x00 0x00,我们应该如何理解呢?首先,“0x”只是一个符号,它代表了紧跟着的数据是十六进制的(等同于在数据后面直接标“H”,上述表达式也可以表述为181H
8、30H 1FH 00H 00H),“181”我们查看上表后发现,它包含在PDO1(发送)里面,它代表了是由编码器发出的过程数据对象,表上显示是“181H1FFH”,这是因为COB-ID包含了节点号信息,地址1对应着181H,地址2对应了182H,以此类推,最大127个节点。“0x30 0x1F 0x00 0x00”就代表了数据内容,在CAN协议内,帧数据是低位在前,高位在后的。所以上述数据直接读取后得出编码器送出1F30H,这就代表了编码器的当前位置值。那在总线上面,多个节点同时发送数据不会产生冲突么?以前我们说过,CAN协议具有仲裁,这里简单介绍一下仲裁是如何实现的。上面说了,COB-ID包
9、含了节点号信息,也就是说,只要总线上的设备节点号不同,所送出的广播报文的COB-ID肯定是不同的,如果一个是182H,一个是183H,仲裁时怎么做?本文最开始的时候介绍了每个字由笔画组成,现在就要用到位(bit)的概念了,182H换算成二进制是0001 1000 0010(B),“B”代表了二进制,183H换算成二进制是0001 1000 0011(B),关于显性位、隐形位这里不再赘述,这个有兴趣可以找我要资料看,这里我就简单描述为“0”比“1”的优先级高,可以理解为拖后腿,“0”为低电平,“1”为高电平,在线上低电平会把高电平拉低,一旦183H发现数据传输过程中与自身数据不符合,就终止上传,
10、保证了182H的数据先上总线。我们在实践中会发现,编码器的数据在不断的更新输出,那输出周期如何定义呢?这个我们就来讨论一下引申的PDO传送方式。我们以前在培训时一直介绍CANopen协议与DP协议相比的好处在于DP是轮询的,问答方式浪费了大量的时间,而CAN协议是广播的,可以将1MHz的速率发挥至极致。这种说法形象,一般可以解释给初步接触CANopen的人听。其实CANopen的报文形式很多样化,在不同的应用场合可以采取不同的方式,上面说的称为异步方式,异步方式也分两种,一种是上面的内部时钟触发,也就是按照固定时间间隔发送,另一种是事件触发,假设编码器发生转动,数据相应送出。还有一种同步方式,
11、我们也可以口述为踏拍方式,当主站要求报数是,所有从节点按照仲裁的优先顺序进行数据发送。这三种报文方式分别在哪些场合适用呢?我们以车辆来举例。车辆开在路上,在整个车辆控制内,最重要的,具有高优先级的,应该是牵涉到安全的制动(刹车),安全气囊等等。其次是转向、车灯。再次是音响、影视系统(当然,我对车不是很熟悉,这是我的主观认识,作为一个例程)。我们可以把小的节点号分配给制动系统,以保证数据能及时送达控制器,并采用定时报数,实时监测车辆制动系统的情况。对于音箱什么的,我们可以采用事件触发方式,在有输入控制时(比方说打开收音机)进行响应。同步数据一般用在实时数据监测方面,比方是在同一时间点查阅角度、位
12、置、重量、压力、流量等等信息,保证所监测的各个数据在很小的时间变化范围内。当然CANopen不可能摒弃问答方式的数据采集,这可以通过SDO访问OD来实现。讲到SDO服务数据对象,我们可以这么理解,PDO报文在发送出去后不需要反馈信号,总线上能消化这个数据的都可以消化,所以白话叫广播报文。而SDO报文是需要响应的,每一帧SDO发出后需要等待反馈。那这会不会引起无反馈时总线死机呢?不会,CAN数据链路内规定了超时,在一定时间内得不到回答,总线将进行后面的作业,多次询问无果,总线会对错误节点进行屏蔽处理。SDO的帧格式和PDO的帧格式是一致的,但对有些字节的定义不同,下面就简单介绍一些编码器修改参数时用到的帧格式。SDO中实现了5个请求/应答协议,这里我只讲讲启动域下载与上传,其他的有兴趣可以问我要资料看。COB-ID命令字对象字典OD子索引数据主从连接集1 byte2 bytes1 byte4 bytes 我来解释一下上表,COB-ID引用第一张表的SDO地址段。假设主站需要读取1号编码器对象字典(OD)6200H内的参数,我们应该如何做呢?我们需要发送0x601 0x40 0x00 0x62 0x00 0x00 0x00 0x00 0x00我们得到编码器的反馈数据是0x581 0x4B 0x00 0x62 0x00 0x0A 0x00 0x00 0x00上述命令的解释是,控
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信息技术支持协议(2024年版)
- 2024年工程建设合同赔偿协议
- 2024年企业知识产权管理与维权合同
- 2024年公共资源交易平台建设合同
- 2024年广告发布合同
- 2024年广告发布合同:D品牌在E媒体投放广告
- 2024年互联网医疗诊断与咨询服务合同
- 2024年小额贷款合同样本:助力微小企业促进经济增长
- 企业管理发展培训合同(2024年版)
- 2024年公益活动合作协议:共同奉献共享社会赞誉
- 三叉神经微血管减压术的手术配合专家讲座
- 中考数学一轮复习课件全等三角形
- 国测省测四年级劳动质量检测试卷
- 2024-2029年安徽省家具行业分析及发展前景预测报告预测
- 国旗国徽国歌知识讲座
- 露营基地合同协议书
- 中建测评2024二测题库
- 心理危机评估的自我保护与边界管理
- 生产前的准备工作
- 六年级上册数学心得体会
- 机械制图教案(完整版)
评论
0/150
提交评论