找回密码
 立即注册
楼主: wuzhengmin

有关DMA,山东大学陈桂友教授

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-1-22 23:04:41 | 显示全部楼层
设置好断点,可以清晰的看到发送的过程:

截图202601222304374122.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-1-22 23:09:36 | 显示全部楼层
接下来就是开始陈桂友教授教学视频十九集串口通信时梁工补充:ModBus从入门到实战

截图202601222309337034.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-1-22 23:15:33 | 显示全部楼层
79年开始用这个协议;

截图202601222315312733.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-1-23 17:34:30 | 显示全部楼层
教学视频 ModBus从入门到实战

RTU 模式:
控制器以RTU模式在Modbus总线上进行通讯时,信息中的数据按十六进制传输,该模式的主要优点是在相同波特率下其传输的字符的密度高于ASCI模式,每个信息必须连续传输。.
RTU 模式中每个字节的格式:编码系统:所有数据均为十六进制。
数据位:1 起始位.8 位数据,低位先送.
奇/偶校验:有奇/偶校验时占 1 位;无奇偶校验时不发送。(项目中一般都是无校验)。
停止位:有奇/偶校验则用1位停止位;无奇/偶校验则用2位停止位。(项目中一般使用1个停止位)。.
校验域:循环冗余校验(CRC16)


结束符:3.5个字符(字节)时间空闲。.
RTU 帧:
RTU模式中,信息开始至少需要有3.5个字符的静止(空闲)时间(或者主机发送一帧结束后至少要间隔3.5个字符的时间才发送下一帧),依据使用的波特率,很容易计算这个静止(空闲)的时间。.
下面用实际的命令来说明,命令中所有数据均为十六进制。整个信息必须连续发送,如果在发送帧信息期间出现大于1.5个字符的静止时间时,则接收设备有可能丢弃不完整的信息。.

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-1-23 17:42:23 | 显示全部楼层

写多寄存器:

截图202601231742201253.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-1-23 18:44:52 | 显示全部楼层
偏移0:此字节为从机设备地址,用于指定本次接收处理的从机地址,取值为0x00-0xff。从机设备地址是唯一的,同一条总线上不能有相同地址的连个从机。
一般 0x00 用于广播(比如发送同步帧),从机不返回信息。上例从机设备地址为0x01。.
偏移 1:此字节为功能码,表明本次命令的操作功能,这个可以查询 MODBUS 支持的各种功能,实际项目一般用其中的一部分工嗯呢码,上例的功能码0x10就是“写多寄存器”。.
偏移 2:此 2 字节为要写入的寄存器首地址 0x0100,MODBUS 协议对数据的都是基于寄存器访问的,每个寄存器2个字节(一个WORD)。高字节在前,低字节在后。.
偏移 4:此 2 字节为要写入的寄存器个数,0x0008 表示要写入 8 个寄存器。.
偏移 6:此字节为要写入的字节数,0x10 表示要写入 16 个字节(8 个寄存器)。

偏移7:此16个字节为要写入的数据。.
·最后两个字节:CRC16校验值0x12CE,低字节在前,高字节在后(算法与电脑通用,小端模式)。.

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-1-23 18:54:58 | 显示全部楼层
各个从机接收到信息后,有多种方式去判断是否是自己的数据,我一般习惯先校验,校验通过才做数据解析,然后做出应答。如果校验通过,从机地址正确,则本机一定要做应答(即使是错误的命令)。.

截图202601231910047091.jpg
截图202601231912005126.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-1-28 13:05:17 | 显示全部楼层
实际上是一主多从:

接收到信息的从机必须应答
截图202601281304539384.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-1-28 13:10:17 | 显示全部楼层
RTU 模式:
控制器以RTU模式在Modbus总线上进行通讯时,信息中的数据按十六进制传输,该模式的主要优点是在相同波特率下其传输的字符的密度高于ASCI模式,每个信息必须连续传输。
RTU 模式中每个字节的格式:
编码系统:所有数据均为十六进制。.
数据位:1 起始位
8 位数据,低位先送。
奇/偶校验:有奇/偶校验时占1位;无奇偶校验时不发送。(项目中一般都是无校验)。
停止位:有奇/偶校验则用1位停止位;无奇/偶校验则用2位停止位。(项目中一般使用1个停止位)。.
校验域:循环冗余校验(CRC16).
结束符:3.5个字符(字节)时间空闲。
RTU 帧:
RTU模式中,信息开始至少需要有3.5个字符的静止(空闲)时间(或者主机发送一帧结束后至少要间隔3.5 个字符的时间才发送下一帧),依据使用的波特率,很容易计算这个静止(空闲)的时间下面用实际的命令来说明,命令中所有数据均为十六进制。整个信息必须连续发送,如果在发送帧信息期间出现大于1.5个字符的静止时间时,则接收设备有可能丢弃不完整的信息。.
截图202601281310147400.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-1-28 13:16:34 | 显示全部楼层
偏移 0:此字节为从机设备地址,用于指定本次接收处理的从机地址,取值为0x00-0xff。从机设备地址是唯一的,同一条总线上不能有相同地址的连个从机。
一般0x00用于广播(比如发送同步帧),从机不返回信息。上例从机设备地址为0x01。
偏移 1:此字节为功能码,表明本次命令的操作功能,这个可以查询 MODBUS 支持的各种功能,实际项目一般用其中的一部分工嗯呢码,上例的功能码0x10就是“写多寄存器”。.
偏移 2:此 2 字节为要写入的寄存器首地址 0x0100,MODBUS 协议对数据的都是基于寄存器访问的,每个寄存器2个字节(一个WORD)。高字节在前,低字节在后。
偏移 4:此 2 字节为要写入的寄存器个数,0x0008 表示要写入 8 个奇存器。偏移 6:此字节为要写入的字节数,0x10 表示要写入 16个字节(8个寄存器)。

CRC校验电脑是小端模式

51是大端模式:
算出来是12CE  传出去的是CD12
截图202601281315255186.jpg
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-4-1 02:43 , Processed in 0.121638 second(s), 75 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表