📘 CANopenNode 驱动开发
30章 · 从零到实战
🎯 友好色系
01
CANopen协议概述
起源 · 工业地位 · 与CAN关系
02
CANopenNode框架初探
架构 · 源码结构 · 核心文件
03
开发环境搭建
MCU选择 · 编译器 · 调试工具
04
对象字典(OD)基础
概念 · 索引子索引 · 数据类型
05
对象字典编辑器
OD编辑器 · 手动编写利弊
06
NMT(网络管理)状态机
状态详解 · 切换流程 · 心跳
07
PDO(过程数据对象)机制
映射 · 传输类型 · 同步/异步
08
SDO(服务数据对象)协议
请求/响应 · 分段 · 块传输
09
紧急报文(EMCY)
格式 · 错误寄存器 · 历史
10
SYNC与TIME报文
同步用途 · 时间戳对象
11
CANopenNode初始化流程
main函数 · 硬件初始化 · 协议栈
12
编写第一个设备驱动
点亮LED · GPIO控制 · 数字输出
13
对象字典的读写操作
OD读写 · 回调函数
14
实现模拟量输入
ADC驱动 · OD映射 · 数据上报
15
实现PWM输出
PWM驱动 · OD配置 · 频率占空比
16
心跳生产者与消费者
心跳收发 · 节点监控
17
TPDO的配置与发送
TPDO映射 · 触发 · 发送示例
18
RPDO的接收与处理
RPDO映射 · 回调 · 数据处理
19
SDO服务器实现
请求处理 · OD访问 · 错误响应
20
SDO客户端实现
发起请求 · 远程OD读写
21
紧急报文的生成与处理
错误检测 · EMCY发送 · 主机处理
22
SYNC生产者与消费者
SYNC生成 · 同步PDO触发
23
LSS(层设置服务)协议
节点ID · 波特率 · LSS快速入门
24
多节点通信
多节点网络 · 主从通信 · 数据交换
25
设备配置文件CiA 401
数字量/模拟量 · 配置文件解读
26
设备配置文件CiA 402
驱动/运动控制 · 状态机 · 控制字
27
Bootloader与固件升级
CANopen升级协议 · 分段 · 校验
28
调试与测试工具
CAN分析仪 · Wireshark · 监控工具
29
性能优化与内存管理
堆栈优化 · 中断延迟 · DMA
30
实战项目:温湿度传感器节点
需求分析 → 调试 · 完整流程