一、前言


我写CANopen系列博文的初衷是分享如何使用STM32单片机开发一款CANopen产品,所谓实战为主,理论为辅。只看CANopen协议的理论是很枯燥,而且根本看不会。我认为掌握CANopen协议的唯一方法是自己设计一个CANopen从站。
Canfestival是一个开源的CANopen协议代码,它不依赖STM32单片机(实际上我们只需要给Canfestival提供一个硬件定时器即可),所以其他品牌的单片机照样可以使用Canfestival去开发CANopen产品。

CANopen的优势

1、有一个人曾经跟我说过:”没有CANopen的CANbus总线,根本没法用。” 这句话怎么理解?
2、CANopen协议基于CANbus总线。所以,布线简单(只要CAN_H和CAN_L)信号即可。更少出错及减少布线成本、人工成本以及后期的维护。
3、成本低廉,主流的嵌入式芯片都有CAN控制或者FDCAN控制(可以运行普通CAN模式)。

CANopen学习建议

CANopen协议的基础知识需要系统地学习几遍。比如什么是PDO,什么是SDO,什么是NMT,什么是心跳,什么是对象字典等等基本知识。建议直接使用广州致远的CANopen学习资料《CANopen_easy_begin》进行学习,博文里有分享的下载地址。

CANopen常见误区

不要将Node-ID与CAN-ID搞混了。可能很多很多同学都误认为在CANopen网络上,CAN报文里的CAN-ID就是代表CANopen节点的身份证。这个是错误的。在CANopen协议里,Node-ID才是CANopen节点的身份证。

二、学习资料分享


  • 《CANopen_easy_begin.pdf》: 学习CANopen的理论知识

链接:https://pan.baidu.com/s/1Jy5myXDkTk9Yq-ChYgW8_Q
提取码:do0u

  • 《CANopen_meno.pdf》:方便查询CANopen一些经常需要查阅的知识

链接:https://pan.baidu.com/s/1jODSM4Sq3xnzOSGg7FRxUQ
提取码:xkv8

  • 《硬石YS-H7Multi开发板开发手册》:同学们也需要参考

链接:https://pan.baidu.com/s/1qtFBjw7pzaZZVj67BjVTmg
提取码:5aid

三、所需硬件


1、CAN分析仪

  • 作为一个CAN节点与其他CAN节点通讯。

2、STM32开发板

  • 我使用广州硬石科技的STM32H743开发板,也可以使用其他STM32F103或者STM32F407开发板。但是,STM32开发板一定一定要有CAN接口,可以发送普通的CAN报文。

四、教程


4.1、CANopen移植

CANopen | 移植01 - STM32H743 + Canfestival的移植并让FDCAN1运行CANopen协议

4.2、CANopen基础知识

CANopen | 网络管理NMT01 - 节点上线报文与心跳报文
CANopen | 网络管理NMT02 - 节点状态切换命令
CANopen | 对象字典OD 01 - canfestival对象字典编辑软件安装与使用
CANopen | 对象字典OD 02 - 修改CANopen节点的心跳报文发送间隔
CANopen | 拓展知识 - CANopen,CAN总线与OSI模型的关系
CANopen | 对象字典OD 03 - 启动CANopen节点的服务数据对象SDO
CANopen | 对象字典OD 04 - 创建对象字典的变量(映射变量)

五、CAN总线技术

CANopen协议运行在CAN总线上,进一步学习CAN总线的物理层与数据链路层很有必要,能解决实际工作上碰到的“奇怪”问题。
CAN总线技术 | CAN脱颖而出的“秘密”
CAN总线技术 | 物理层01 - CAN信号电平
CAN总线技术 | 物理层02 - CAN总线的异步串行通讯
CAN总线技术 | 物理层03 - 采样点
CAN总线技术 | 物理层04 - 终端电阻与双绞线(特性阻抗120欧)
CAN总线技术 | 数据链路层01 - CAN报文的组成
CAN总线技术 | 数据链路层02 - 帧结构
CAN总线技术 | 数据链路层03 - CAN总线竞争与仲裁机制
CAN总线技术 | 数据链路层04 - CAN节点状态与错误处理机制

嵌入式CANopen协议从入门到落地产品(更新2021.9.8)相关推荐

  1. 【转】CAN总线与CANOPEN协议入门

    1. 什么是CAN总线协议 CAN总线协议最早是为了统一汽车车载设备间通信的标准而开发的协议,后来由于其高速.稳定.可靠的特点,已经被ISO标准化并广泛应用于工控.医疗等领域,目前依然是欧洲汽车网络的 ...

  2. CAN总线与CANOPEN协议入门

    1. 什么是CAN总线协议 CAN总线协议最早是为了统一汽车车载设备间通信的标准而开发的协议,后来由于其高速.稳定.可靠的特点,已经被ISO标准化并广泛应用于工控.医疗等领域,目前依然是欧洲汽车网络的 ...

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

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

  4. CANopen协议中文文档

    CANopen 协议下载(https://github.com/CANopenNode/CANopenNode) CANopenNode CANopenNode是免费和开源的CANopen协议栈. C ...

  5. 谈谈CANopen协议的机制

    CANopen是基于CAN协议的高级通信协议和设备配置文件规范.该协议是为嵌入式网络应用(如车载网络)开发的.CANopen涵盖了网络编程框架,设备描述,接口定义和应用程序配置文件.CANopen使来 ...

  6. 云原生实践之 RSocket 从入门到落地:Servlet vs RSocket

    为什么80%的码农都做不了架构师?>>>    技术实践的作用在于:除了用于构建业务,也是为了验证某项技术或框架是否值得大规模推广. 本期开始,我们推出<RSocket 从入门 ...

  7. CANopen协议及应用

    文章目录 CANopen协议 CAN总线 CAN报文 CANopen概述 对象字典(Object Dictionary) 概述 通讯对象子协议区 制造商特定子协议 CANopen报文 NMT网络管理 ...

  8. CANopen协议解读

    CANopen协议解读 一.协议标准 二.CANopen报文说明 三.CANopen协议内容 1. ID的理解 2. NMT (1) 节点状态 (2) 节点状态控制 (3) 节点心跳报文 一.协议标准 ...

  9. 什么是嵌入式编程?如何入门和提高?

    作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub). 转载请注明出处. 原文:http://www.jianshu.com/p/d59378613d15 内容简介 什么是嵌入式 什么是交叉 ...

最新文章

  1. dom4j ---最好的xml解决方案?
  2. JavaScript之事件冒泡和事件捕获详细介绍
  3. 在iis中注册.net framework
  4. ef ddl生成不了脚本_如何使用Hibernate从Play生成DDL脚本! 框架项目
  5. 前端学习(2912):MvvM的实现原理
  6. STM32——DMA
  7. linux关闭cups命令,使用linux的cupsenable命令启动指定的打印机
  8. 【转】windows多线程CreateThread与_beginthreadex本质区别
  9. 7款国产的在线HTML编辑器
  10. C++和C语言的前世今生,两者有什么血缘关系?
  11. Android Studio工程项目打包成SDK(jar或aar格式)
  12. MEncoder的基础用法—6.1. 选择编解码器及容器格式
  13. TCP-IP 用户态编程
  14. php砸金蛋程序,简单的几句PHP生成美团3周年砸金蛋抽奖代码
  15. 【微信小程序】ColorUI——一个多彩漂亮的UI组件库
  16. 哈工大csapp计算机系统大作业
  17. 阿里云被攻击封多久,又该怎么解决?
  18. SQLStudio下载
  19. 什么是静态测试、动态测试、黑盒测试、白盒测试、α测试、β测试?
  20. 计算机网络——Packet Trace路由器配置——课程设计

热门文章

  1. div背景透明内容不透明与0.5PX边框兼容设置
  2. Cgroup 好文集合
  3. 通俗解释主要编程语言及其用途
  4. 金山安全报告:二月漏洞频出 网站挂马猖獗
  5. 寂寞的hasLayout
  6. 漢城博殺的日子 (一)
  7. C/C++学习笔记:算法知识之平衡树学习笔记,收藏一波吧!
  8. 大数据下union all的视图分页解决方案
  9. 最美的十大精典爱情句子
  10. 经典面试题(27):以下代码将输出的结果是什么?