一、前言
我写CANopen系列博文的初衷是分享如何使用STM32单片机开发一款CANopen产品,所谓实战为主,理论为辅。只看CANopen协议的理论是很枯燥,而且根本看不会。我认为掌握CANopen协议的唯一方法是自己设计一个CANopen从站。
Canfestival是一个开源的CANopen协议代码,它不依赖STM32单片机(实际上我们只需要给Canfestival提供一个硬件定时器即可),所以其他品牌的单片机照样可以使用Canfestival去开发CANopen产品。
CANopen的优势
1、有一个人曾经跟我说过:”没有CANopen的CANbus总线,根本没法用。” 这句话怎么理解r> 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基础知识
五、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节点状态与错误处理机制
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!