基于RK3576单板机的Modbus数据采集开发指南

天资达人 科技创新 2026-05-17 4283 0

前 言

本文是创龙科技专为 RK3576 单板机编写的 Modbus 应用开发手册,面向工业自动化场景提供完整实战方案。文档围绕 Modbus RTU 协议展开,详细讲解 RS485 硬件接线、串口配置、温湿度数据采集、实时显示与 CSV 文件存储的全流程,并提供可直接编译运行的源码与交叉编译步骤。

开发环境

Windows开发环境:Windows 7 64bit、Windows 10 64bit

Linux开发环境:VMware16.2.5、Ubuntu22.04.5 64bit

系统版本:Tronlong-Desktop 22.04、Linux-6.1.115、U-Boot-2017.09

sysroot:rk3576-Tronlong-Desktop-22.04-sysroot-[版本号].tar.gz

术语表

为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。

wKgZO2oGi9eAdzy7AAAisGQmx3k236.png

注意事项

无特殊说明情况下,本文默认从eMMC启动系统,使用DEBUG作为调试串口。

1PTP简介

IEEE1588协议简称精确时钟协议PTP(Precision Timing Protocol),它的全称是“网络测量和控制系统的精密时钟同步协议标准”(IEEE 1588 Precision Clock Synchronization Protocol),用于同步计算机网络中的时钟。

PTP工作的基本原理,是通过主从节点之间进行同步数据帧的发送,记录数据帧的发送时间和接收时间信息进行工作,并且将该时间信息添加到该数据帧中。从节点获取这些时间信息,并计算从节点本地时钟与主时钟的时间偏差和网络节点之间的传输延时,对本地时钟进行纠正,使之与主节点时钟同步。

2PTP时钟同步测试

本次测试以LAN1进行演示,请准备2个SBC-TL3576单板机,使用一根网线将2个单板机的LAN1网口直接连接。本次测试中,单板机1的LAN1网口作为Master,单板机2的LAN1网口作为Slave。

备注:如需使用LAN2网口进行测试,请将命令中的"eth0"修改为"eth1"即可。

分别进入单板机1、单板机2文件系统,执行如下命令,设置两块单板机IP地址,确保两块单板机的网段相同。

Target# ifconfig eth0 192.168.13.190 up

Target# ifconfig eth0 192.168.13.191 up

wKgZPGoGjAmAWAuDAAAGAr_i7Qs953.png

进入单板机1文件系统,执行如下命令,进行对时测试。

Target# ptp4l -i eth0 -m -H

进入单板机2文件系统,执行如下命令,进行对时测试。下图第一列红色框打印的信息为2个单板机的对时时差,单位为ns;查看s2时钟的master offset数据,可见PTP对时功能基本正常。第二列红色框打印的信息为path delay,单位为ns。按"Ctrl + C"可停止测试。

Target# ptp4l -i eth0 -m -H -s

参数解析:

-i eth0:指定网络端口

-m:打印测试信息;

-H:使用硬件时间戳;

-s:Slave模式。

wKgZPGoGjBaAerIWAAByBU6Zfxk043.png

参数解析:

(1)master offset:测量与主设备的偏移(以ns为单位),即对时时差;

(2)s0、s2:不同的时钟伺服状态;

path delay:从主设备发送同步消息的延迟(以ns为单位)。