目录
本书源码
协议篇
第1章Modbus背景
1.1背景介绍
1.2协议版本
1.3专业术语
第2章Modbus调试工具(40min)
2.1Modbus Poll主站调试工具
2.1.1简介
2.1.2安装方法
2.1.3功能介绍
2.1.4使用方法
2.2Modbus Slave从站调试工具
2.2.1简介
2.2.2安装方法
2.2.3功能介绍
2.2.4使用方法
2.3主站与从站的通信测试
2.3.1两个USB转RS485工具相互连接
2.3.2主从站软件配置
2.3.3功能演示
第3章RS485(23min)
3.1简介
3.2特点
3.3信号介绍
3.4RS485和Modbus的关系
3.5MasterSlave架构
3.6硬件设计
3.7软件设计
第4章Modbus RTU协议介绍(104min)
4.1协议概要
4.2报文格式
4.2.1报文的开始和结束标志
4.2.2字符时间
4.2.3协议报文的组成
4.2.4大小端模式和字节序
4.2.5CRC16校验
第5章功能码详解(91min)
5.1寄存器功能异同点介绍
5.201(0x01)读取线圈/离散输出状态
5.302(0x02)读取离散输入状态
5.403(0x03)读取保持寄存器的值
5.504(0x04)读取输入寄存器的值
5.605(0x05)写单个线圈/离散输出状态
5.706(0x06)写单个保持寄存器
5.815(0x0F)写多个线圈/离散输出状态
5.916(0x10)写多个保持寄存器
5.10Modbus异常响应
5.10.1触发机制
5.10.2响应报文构成
开发篇
第6章协议栈移植(88min)
6.1开发前准备事项
6.2协议栈文件说明
6.3协议栈文件移植至MDK5工程
6.4功能配置
6.5底层驱动配置
6.5.1串口端口使能配置
6.5.2串口端口初始化配置
6.5.3串口端口发送单字节和接收单字节配置
6.5.4串口端口中断配置
6.5.5定时器端口初始化配置
6.5.6定时器端口使能和失能配置
6.5.7定时器端口中断配置
第7章寄存器功能实现(135min)
7.1寄存器功能类型
7.2输入寄存器
7.3保持寄存器
7.4离散输入
7.5线圈或离散输出
第8章两种运行协议栈的架构(115min)
8.1裸机架构运行协议栈
8.1.1临界段代码配置
8.1.2运行协议栈配置
8.1.3验证测试
8.2FreeRTOS架构运行协议栈
8.2.1临界段代码配置
8.2.2事件组文件配置
8.2.3运行协议栈配置
8.2.4编译注意事项
8.2.5验证测试
第9章项目实践(35min)
9.1读或写线圈的状态
9.1.1板载LED与线圈的绑定
9.1.2Modbus Poll的参数配置
9.1.3Modbus Poll设置和读取LED的状态
9.2读离散输入的状态
9.2.1板载按键与离散输入绑定
9.2.2Modbus Poll的参数配置
9.2.3Modbus Poll读取按键的状态
9.3读或写保持寄存器的状态
9.3.1PWM与保持寄存器绑定
9.3.2Modbus Poll的参数配置
9.3.3Modbus Poll设置和读取PWM值
9.4读输入寄存器的状态
9.4.1温度传感器与输入寄存器绑定
9.4.2Modbus Poll的参数配置
9.4.3Modbus Poll读取温度传感器的值
源码解析篇
第10章图解Modbus RTU主从站通信过程(166min)
10.1协议栈启动流程
10.2主从站通信流程
第11章协议栈源码详解(53min)
11.1RTU启动执行流程
11.2RTU初始化
11.3RTU使能
11.4轮询处理
11.4.1eMBPoll()函数解析
11.4.2eMBRTUReceive()函数解析
11.4.3eMBRTUSend()函数解析
11.5串口接收中断处理
11.6定时器超时中断处理
11.7串口发送中断处理
11.8各功能码的处理介绍
11.8.1功能码处理数组xFuncHandlers[]
11.8.2mbframe.h文件介绍
11.8.3eMBFuncReadInputRegister()函数解析
11.8.4eMBFuncReadHoldingRegister()函数解析
11.8.5eMBFuncWriteMultipleHoldingRegister()函数解析
11.8.6eMBFuncWriteHoldingRegister()函数解析
11.8.7eMBFuncReadCoils()函数解析
11.8.8eMBFuncWriteCoil()函数解析
11.8.9eMBFuncWriteMultipleCoils()函数解析
11.8.10eMBFuncReadDiscreteInputs()函数解析
参考文献
