CAN-BUS与CANopen的区别_转自广成科技

http://www.gcgd.net/pro_30.html

 

  CAN-BUS最早作为汽车总线渐入大家的眼球,随着CANopen协议的制定与推广,将CAN总线的应用范围逐渐扩大,它不再局限于物理层的应用,而是延伸到应用层的定义与开发。今天我们就来说说CAN-BUS与CANopen的区别。

 


  先来介绍下CAN-BUS。
 

  CAN-BUS即人们口中常提起的CAN总线。它的抽象含义是控制器局域网络。实则是一条具有高低电平差位的双绞线。它起着传输数据的作用,基于它串行通信的实时性、可靠性、有效性,被广大工程师们青睐。最早是德国Bosch公司为汽车电子的应用而开发的,现已推广至机械制造、工业自动化、伺服电机控制、大型医疗器械、楼宇安防监控等领域。目前CAN-BUS已经成为工业通信首选的现场总线之一。

 

 

  CAN-BUS的优点有很多。它是一种开放式、数字化、多点通信的底层控制网络。它实时性强、传输距离较远、抗电磁干扰能力强、成本低;最大通讯距离可达10km,最大通讯波持率可达1mdps;它废除了传统的站地址编码,直接对通信数据块进行编码;有传输数据的优先级标准,有效避免了总线冲突;可以多主方式工作;每帧数据都有CRC校验及其他检错措施,检错能力强,保证了数据传输的高可靠性,适于在高干扰环境下使用。

 


  再来说说CANopen。
 

  CANopen是基于CAN-BUS的应用层协议。最早为了让CAN-BUS应用到更多领域,欧洲一些公司推出了CAL协议,而CANopen正是一个基于CAL设计的子协议,它具有很好的模块化特性和很高的适应性,通过扩展可以适用于大量的应用领域。CANopen不仅定义了应用层和通信子协议,而且为可编程系统、不同器件、接口、应用子协议定义了大量的行规,在机械制造、铁路、车辆、船舶、制药、食品加工等领域获得大量应用。目前,它已成为工业CAN总线网络系统中占领导地位的标准。

 

 

  CANopen协议的优点在于它的规范化,它包含了标准的应用层规范和通信规范,在CANopen的应用层,设备间通过相互交换通信对象进行通信。良好的分层和面向对象的设计思想将带给用户一个清晰的通信模型。

 


  那么二者之间,又有什么区别呢?
 

  CANopen是在CAN-BUS的基础上定义了一组规则,采用其通信的双方明白相互交换信息的含义。相互交换的信息就在CAN总线上传输。所以说,CAN-BUS定义了物理层与链路层,而CANopen是在CAN-BUS的基础上定义了应用层,规定了用户、软件、网络终端等之间用来进行信息交换的约定。

 


  通俗来讲,CAN-BUS相当于传输介质,而CANopen相当于一种沟通语言。数据可以通过介质传递,双方要想理解彼此的意思就需要使用同样的语言标准。
 

  在OSI模型中,CAN-BUS、CANopen协议之间的关系如下图所示。

 

 

  CAN-BUS只定义了第1层、第2层,不需要软件的参与;CANopen定义了第7层,在的应用层中,设备间通过相互交换通信对象进行通信。应用程序由用户编写,通过对对象字典的操作来实现CANopen通信。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值