CANopen是个啥?

  • 一、CANopen协议的诞生和意义
  • 二、为什么选择CANopen

一、CANopen协议的诞生和意义

  我个人的理解就是基于CAN BUS的上层应用协议,就好像有菜有锅有调料,不同的人做出来的菜是不一样的,CANopen就是希望建立一个应用标准,和CANopen一样的基于CAN BUS的上层应用还有Device NET、SAE J1939等,对于CANopen的发展历史以及提出这些动动手查查,官方的消息很多哦。但是国内CANopen使用的比较少,原因不详,我觉得这么好的东西不应该埋没呀,或许是因为CANopen栈占用的空间太大?
  当然这里还是要感谢CiA主席 蔡豪格,这位可爱的德国老人,坚持开放、免费、非盈利的准则,这种精神值得我们学习。

二、为什么选择CANopen

  对于我个人而言,选择CANopen主要是因为看上了CANopen协议的标准,以及其协议定制的规范性,既有主从模式,又有生产者和消费者模式,紧急上报,时间同步等内容,非常适合我目前的项目场景,并且由于有了一个标准规范,供应商定制协议可以由其发挥,不再浪费相互讨论时间。
  实际应用场景来展开说,当前项目主要由中心控制计算机以及多个分系统计算机组成,当前正在使用的方式使用的是一问一答的形式,每一次交互都由中心控制计算机发出,但是实际是中心计算机定周期的获取各个分系统计算机上报的遥测信息,不定期控制分系统计算机、只针对通信分系统进行定期的主动传输,如果使用CANopen协议栈,我们可以同步中心计算机产生同步信号,各分系统计算机根据配置主动上报遥测信息,对于控制有主动数据传输可使用传统的主从模式,CANopen对数据的主动上报可通过配置进行有效上报时间的配置,保证了数据上报的有效性,主从模式下有标准的应答,可以保证了解每一次的操作是否完成。
  并且在CANopen中定义了每个从机都会进行上线通知、定时上报自身运行状态,并且从机可以针对本身的紧急错误、事件进行主动上报,保证了主机可以及时的了解下属从机的在线/离线态,以此对各个从机进行对应操作。
  以上就是我选择CANopen的原因,不外乎CANopen的设计周全、也建立了一个标准,可以使得产品开发更加的便捷。

CANopen是个啥?相关推荐

  1. canopen服务器协议,CANopen

    CAN應用層和CANopen CANopen 概述 CANopen是附加了一套设备子协议的高层(第7层)CAN通信协议.作为一种标准化.高度可配置的嵌入式网络解决方案,它广泛应用于实时工业应用.机器人 ...

  2. CANopen笔记1

    CAN现场总线只定义了OSI网络模型的第一层(物理层) 和第二层(数据链路层) ,而这两层一般已被CAN硬件完全实现了.由于没有规定应用层,本身并不完整,需要一个高层协议来定义CAN报文中的11/29 ...

  3. canopen服务器协议,ZOPC_Server(ZLG通用OPC服务器)CANopen协议插件

    ZOPC_Server(ZLG通用OPC服务器)CANopen协议插件是一款基于CAN的一种高层协议,是一种具有灵活配置功能的标准嵌入式网络.它的任务是控制和监测所有NMT从站的NMT状态.通常,CA ...

  4. canopen和1939区别_CAN 和 CANopen的区别和联系

    1.CAN与CANopen的共同点与不同点: CAN只定义了物理层与链路层,而没有定义用户层,用户可根据自己的需要定义一些网络上的通信约定:  CANopen是在CAN的基础上定义了用户层,即规定了用 ...

  5. 【转】CANOPEN总线的相关问题点整理分享*****

    CANopen 是一个基于 CAN(控制局域网)串行总线系统和 CAL(CAN 应用层)的高层协议.CANopen 通讯协议 CiA DS-301 包括周期和事件驱动型通讯,不仅能够将总线负载减少到最 ...

  6. 嵌入式CANopen协议从入门到落地产品(更新2021.9.8)

    一.前言 我写CANopen系列博文的初衷是分享如何使用STM32单片机开发一款CANopen产品,所谓实战为主,理论为辅.只看CANopen协议的理论是很枯燥,而且根本看不会.我认为掌握CANope ...

  7. CANopen | 对象字典OD 03 - 启动CANopen节点的服务数据对象SDO

    文章目录 一.前言 二.实验的目的 三.对象字典OD 3.1.Slave1.od 3.2.Slave1.c 四.CAN盒子(收发器) 4.1.通过SDO方式修改CANopen从站的心跳时间 一.前言 ...

  8. CANopen | 对象字典OD 04 - 创建对象字典的变量(映射变量)

    文章目录 一.前言 二.实验目的 三.对象字典 3.1.找到工程里的对象字典文件 3.2.创建映射变量 四.STM32代码 4.1.Slave1.c 4.2.main.c 五.CAN盒子(收发器) 5 ...

  9. CANopen | 对象字典OD 02 - 修改CANopen节点的心跳报文发送间隔

    文章目录 一.前言 二.实验的目的 三.对象字典OD 3.1.Slave.od 3.2.Slave1.c 四.CAN盒子(收发器) 五.细节补充 5.1.Slave1.od文件的作用 一.前言 通过修 ...

  10. CANopen | 拓展知识 - CANopen,CAN总线与OSI模型的关系

    一.前言 CAN总线定义OSI模型的物理层与数据链路层. CANopen协议使用了OSI模型的应用层与传输层. 二.CANopen and the OSI reference model 国外原文的地 ...

最新文章

  1. IBM公司新推一个基于云计算的Web分析工具
  2. Python基本知识以及if语句
  3. 为啥辣椒会辣得人嘴巴疼?这个问题竟然和今年诺奖有关
  4. tensorflow官方文档_开源分享:最好的TensorFlow入门教程
  5. java中Error与Exception有什么区别
  6. 搭建SpringBoot、Jsp支持学习笔记
  7. 网络工程师技能图谱 | 网络技术的理论知识和操作技能
  8. 为什么matlab生成的exe文件只能在matlab中打开,在电脑的其他地方打不开?
  9. 深刻理解:C#中的委托、事件
  10. elasticsearch7常见查询(term、match、bool、filter)
  11. 手机长时间不用自动断网_WiFi动不动就自动断网?都怪手机的默认设置!点这里一键修改...
  12. 为了学习数据库索引,我们花了5000美元
  13. javac -version ;java -version不一致
  14. 小程序 微信统计表格_微信小程序登录机制
  15. 0.618 与 1.414
  16. java解释器是哪个命令_宽恕命令解释器的最佳Java库(IES)
  17. Maven构建生命周期
  18. 使用61850网关实现modbus和电力iec61850协议的转换
  19. ICML2021会议论文整理
  20. argmax() 函数

热门文章

  1. TUT嵌入式2020年期末复习提纲
  2. 高并发下商城秒杀活动的处理
  3. ZCU106的PYNQ移植
  4. C语言中文网Socket学习笔记
  5. 桐桐的计算(第三章第1课)
  6. 如何查看Adobe Acrobat DC 是哪个版本的
  7. 读《洛克菲勒给儿子的38封信》有感
  8. 聊天室的功能实现(主要部分)
  9. Docker安装Redis(普通安装+在线安装+离线安装)
  10. 力争应届高校毕业生就业率70%