没有合适的资源?快使用搜索试试~ 我知道了~
modbus rtu详细解析
4星 · 超过85%的资源 需积分: 50 49 下载量 94 浏览量
2013-07-12
23:47:41
上传
评论
收藏 275KB DOC 举报
温馨提示
试读
7页
modbus rtu详细解析,浅显而深入,推荐给初学modbus的人看一下
资源推荐
资源详情
资源评论
楼主
Modbus 一个工业上常用的通讯协议、一种通讯约定。Modbus 协议包括
RTU、ASCII、TCP。其中 MODBUS-RTU 最常用,比较简单,在单片机上很容易实现。
虽然 RTU 比较简单,但是看协议资料、手册说得太专业了,起初很多内容都很难理解。
所谓的协议是什么?就是互相之间的约定嘛,如果不让别人知道那就是暗号。现在就来
定义一个新的最简单协议。例如,
协议: “A” --“LED 灭”
“B” --“报警”
“C” --“LED 亮”
单片机接收到“A”控制一个 LED 灭,单片机接收到“B”控制报警,单片机接收到“A”控制一个
LED 亮。那么当收到对应的信息就执行相应的动作,这就是协议,很简单吧。
先来简单分析一条 MODBUS-RTU 报文,例如:01 06 00 01 00 17 98 04
01 06 00 01 00 17 98 04
从机地址 u u u u功能号 u u u u u数据地址 u u u u u数据 u u u u CRC 校验
这一串数据的意思是:把数据 0x0017(十进制 23) 写入 1 号从机地址 0x0001 数据地址。
先弄明白下面的东西。
1、报文
一个报文就是一帧数据,一个数据帧就一个报文: 指的是一串完整的指令数据,就像上
面的一串数据。
2、CRC 校验
意义:例如上面的 u98 04 是它前面的数据(01 06 00 01 00 17)通过一算法(见附录 2,
很简单的)计算出来的结果,其实就像是计算累加和那样。(累加和:就是
010600010017 加起来的值,然后它的算法就是加法)。
作用:在数据传输过程中可能数据会发生错误,CRC 检验检测接收的数据是否正确。比如
主机发出 01 06 00 01 00 17 98 04,那么从机接收到后要根据 01 06 00 01 00 17 再计算
CRC 校验值,从机判断自己计算出来的 CRC 校验是否与接收的 CRC 校验(98 04 主机计
算的)相等,如果不相等那么说明数据传输有错误这些数据不能要。
3、功能号
意义:modbus 定义。见附录 1。
作用:指示具体的操作。
MODBUS-RTU
一、一个报文分析
先声明下我们的目的,我们是要两个设备通讯,用的是 MODBUS 协议。上面简单介绍了:
“报文”“CRC 校验”“功能号”。
在单片机中拿出一部分内存(RAM)进行两个设备通讯,例如:
资源评论
- 星_星2014-06-27非常好的资源,现在学习正用的上!
youzi722
- 粉丝: 100
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功