Modbus从站协议栈移植与调试全流程
📚 共计 30 章节
第01章
课程导论与整体架构
Modbus协议概述 · 从站协议栈的作用 · 移植前准备 · 课程目标与学习路径
导论
架构
第02章
Modbus协议基础 (上)
物理层与串口通信 · RTU与ASCII帧格式 · 功能码分类与地址映射
协议
帧格式
第03章
Modbus协议基础 (下)
异常码定义 · CRC校验原理 · 广播与单播 · 协议栈分层思想
异常
CRC
分层
第04章
协议栈源码获取与工程搭建
开源协议栈选型 (FreeModbus, libmodbus) · 源码目录解析 · MCU工程模板创建
源码
工程
第05章
硬件抽象层 (HAL) 接口定义
定时器接口 · 串口收发接口 · GPIO控制 · 中断服务函数预留
HAL
接口
第06章
串口驱动移植 (上)
波特率配置 · 数据位/停止位/校验位 · FIFO与DMA模式选择
串口
DMA
第07章
串口驱动移植 (下)
环形缓冲区实现 · 超时接收处理 · 中断与轮询模式切换
环形缓冲
超时
第08章
定时器驱动移植
3.5字符时间间隔计算 · 定时器初始化与重载 · 溢出中断处理
定时器
3.5T
第09章
GPIO与RS485控制
RE/DE引脚控制逻辑 · 收发模式切换时序 · 半双工总线竞争处理
RS485
GPIO
第10章
协议栈核心数据结构解析
mb.c与mbport.h关键结构体 · 状态机枚举 · 缓冲区管理策略
数据结构
状态机
第11章
从站地址与寄存器映射
eMBRegisterCB回调 · 保持/输入寄存器 · 线圈/离散输入映射
地址映射
回调
第12章
协议栈初始化流程
eMBInit()参数配置 · eMBEnable/Disable · 状态迁移
初始化
状态
第13章
主循环与事件处理
eMBPoll()轮询机制 · 事件队列管理 · 超时与错误处理
轮询
事件
第14章
接收状态机详解
状态迁移图 · 帧起始/结束判定 · 地址匹配与帧校验
接收
状态机
第15章
发送状态机详解
响应帧组装 · 发送完成回调 · 总线释放时机
发送
状态机
第16章
功能码处理 (上)
01/02/03/04读操作实现 · 数据打包与边界检查
功能码
读
第17章
功能码处理 (下)
05/06/15/16写操作实现 · 写多寄存器原子性保证
功能码
写
第18章
异常处理机制
异常码生成逻辑 · 非法功能码/地址/值处理 · 异常响应帧构造
异常
响应
第19章
CRC校验实现
查表法与计算法对比 · CRC在帧收发中的应用 · 常见校验错误排查
CRC
校验
第20章
调试环境搭建
逻辑分析仪抓波形 · Modbus Poll/Slave工具 · 串口助手高级用法
调试
工具
第21章
单元测试策略
模拟从站响应测试 · 异常帧注入测试 · 边界值压力测试
测试
压力
第22章
常见移植问题 (上)
串口数据错位 · 定时器精度不足 · 地址不响应
问题
排查
第23章
常见移植问题 (下)
总线冲突 · 响应超时 · CRC校验失败 · 内存溢出
问题
调试
第24章
性能优化技巧
中断优先级调整 · DMA传输优化 · 缓冲区大小调优
优化
DMA
第25章
多从站与多协议共存
多地址监听 · 协议栈实例化 · 与自定义协议共存
多从站
共存
第26章
RTOS环境移植
FreeRTOS任务封装 · 信号量与队列同步 · 中断与任务优先级设计
RTOS
FreeRTOS
第27章
实战案例1:温湿度传感器从站
基于STM32 · 温湿度传感器从站实现
实战
STM32
第28章
实战案例2:电机驱动器从站
基于ESP32 · 电机驱动器从站实现
实战
ESP32
第29章
实战案例3:智能网关多从站聚合
基于Linux + libmodbus · 多从站聚合
实战
Linux
第30章
课程总结与进阶方向
协议栈认证与安全 · Modbus/TCP扩展 · 工业现场总线融合趋势
总结
进阶