CANopen个人之所见 下载本文

CANopen个人之所见,所想

供稿:上海步科自动化股份有限公司 2014/12/16 15:47:35

星级:

人气:1836

? ?

关键词:

摘要:一直想写一篇关于CANopen的文章,鉴于个人知识能力没有动笔,今天做了一番思想斗争,斗胆发表一下自己对CANOPEN的肤浅认识。

TonyZhou: 一直想写一篇关于CANopen的文章,鉴于个人知识能力没有动笔,今天做了一番思想斗争,斗胆发表一下自己对CANOPEN的肤浅认识。

计划从销售人员,技术人员角度都分析一下CANopen的优势,文章可能没有什么章法,只是想到哪里说哪里,欢迎拍砖。

背景:CANopen四问

1. CANopen的起源,CANopen从何而来?

德国Bosch公司于1983年研发CAN协议,用于汽车传动系统的网络通讯。之后称为国际标准ISO11898,目前CANopen由非营利组织CiA(CAN in Automaion)进行标准的起草及审核工作,基本的CANopen设备及通讯子协定定义在 CAN in Automation (CiA) draft standard 301. 中。针对个别设备的子协定以CiA 301 为基础再进行扩充,如针对 I/O 模组的 CiA401 及针对运动控制的 CiA402。

2. CANopen硬件的优势?

CAN协议最大的突出特点是错误检测,限制和处理。当CAN设备检测到总线错误时,会拒绝之前接收到的位序列,然后发送“错误帧”,其完全由CAN芯片本身处理,不需要人为编程。

支持多主站,类似Profibus DP,总线上每个设备都是主站,也是从站,免除了人为仲裁的过程,方便用户开发。

报文短帧结构,CAN报文通常只有8个字节,数据帧非常短,在抗干扰能力上具有先天的优势。解释一下,为什末短帧结构抗干扰好?如果通讯报文长,发送一帧耗时也就长,加入遇到干扰,辛辛苦苦好不容发送了一条报文,结果因为干扰对方还没有收到,只能嚎啕大哭。

成本低廉,CAN外设基本在现在主流芯片上都可以找到,20几块钱的MCU都支持CAN外设,有的还支持两个CAN。这里有CiA的积极推广作用。

3. CANopen软件优势?

CANopen主要有CiA在推广,是非盈利组织,CANopen协议资料,网上一堆,任何人都可以下载到,我们常用的DS301(Draft Standand),DS402,CAN粉丝几乎人手一本,犹如葵花宝典,一定要珍藏一本。

CANopen协议开发,开源项目非常多,CanFestival就是其中一个,我做过移植,在步科MT4414TE-CAN触摸屏,用在8位单片机上,此源码有点耗费资源,网上有很多基于MCU的精简源码。

开发完整的CANopen协议栈,是很艰辛的工作,想要做好非常难。难点就在于你对CANopen协议的理解上,比如EMCY,复位节点,是否需要“NO Initialization”,heartbeat,Node guard是否需要?如何处理?这条不能算是其优点。

4. 为什么如此多公司在推广CANopen?

CANopen对于运动控制来说是一款优秀的通讯协议,采用了面向对象的一些设计思路,比如对象字典,过程数据对象(PDO),服务数据对象(SDO)等等。

CANopen在欧洲已成为最普通的协议,任何一家自动化公司都有CANopen的通讯接口,也成了低配。低配并不代表不好,只是说明其性价比更高。CANopen定义了完整的同步控制机制,使其成为主流的运动控制协议,除了在CAN总线上运行外,还被搬到了以太网上(CANopen over Ethernet),形成了著名的PowerLink,EtherCat工业以太网协议。

在这里多废话几句,所谓的运动控制总线标准,没有多大意义,因为运动控制技术都掌握在各个厂商手里,每一个稍微大一点的厂商,都有自己的专用运动控制协议,如三菱的SSCNET,安川的MECHATROLINK,倍福的CANOPEN以及EtherCat,施耐德的CANopen,西门子的SiMotion,贝加莱的PowerLink,博世力士乐的SERCOS。 由于CANopen(可以看DS402,伺服控制标准)在运动控制的优势,尤其是同步控制,不管几流的厂商,在运动控制系统中,多多少少都加入了自己的东西,导致运动控制系统通常是封闭的,很少走互联路线,事实上要做到互联也非常困难。

二三流厂家,开发自己的CANopen协议,根据自己的需求,将其移至到不同的物理层上去运行,形成自己的运动控制系统,其性能优劣就在于其对CANopen协议的理解程度了。

基础:CANopen世界里的九个晦涩概念 1. DCF

是CAN网络的配置(Config)的数据存档文件。其作用不大,在Codesys软件里就有此选项。 2. EDS