[作品提交] 【平头哥RVB2601创意应用开发】移动modbus主站

shileiwu0505   2022-7-2 21:03 楼主

作品名称移动modbus主站

作者shileiwu0505

 

一、项目背景

 

        本人从事农业传感器行业一年有余,目前农业传感器这一块传输协议大部分都是modbus通讯协议,在传感器采集数据采集基本都在野外农田,每个传感器厂家都会有不同类型的手持机进行采集,但是配套的手持机价格昂贵,“移动modbus主站” 可以完美解决该问题。

 

二、作品简介

        农业传感器厂家的用的都是modbus协议,设备使用modbus 30 功能码采集32个寄存器出来(一般32个足够),进行数据显示,显示支持无符号、有符号和16进制显示,使用K2 切换显示模式,K1切换屏幕显示地址

 

1.jpg 1. 电脑使用 Modbus Slave 软件做从机仿真

2. 如图上所示,从机地址0数据是123, 主机也显示123,从机地址1数据是-123,主机也显示-123

3. 上图是有符号显示

2.jpg 无符号显示

3.jpg 16进制显示

 

 三、系统框图

 

 

4.jpg

        main.c 对各个功能模块初始化,包括modbus主站查询代码初始化,代码解析并屏幕显示代码初始化,按键代码初始化;串口接受可以使用采用了不定长接受原理,启动串口接受的时候顺带启动了一个5ms的软件定时器,每次接受到一个字节,就会重新复位定时器,知道没有接收到数据,定时器超时后认为接受完一包数据。

 

四、各部分功能说明和解析

 

     6.png

   1.  key.c      key.h

    包含了按键驱动初始化,采集开发板K1 K2两个按下的状态

   2.  mb_modbus.c      mb_modbus.h

    包含了modbus主站查询代码,CRC16校验代码,大小端转换代码,数据处理和屏幕显示代码

   3.  font.h     screen.c      screen.h

    包含了字符串相关字模,1206和1608两种,重新编写屏幕显示代码,使用缓存打点方式显示数据,使用方法更简单

    4. uart1_port.c     uart1_port.c 

    重新编写了串口驱动程序,由原来的串口0改为了串口1,其中串口1引脚是驱动OLED的,将OLED的驱动引脚映射到了其它引脚上了

 

五、作品源码

   

工程文件压缩后约21.4MB 。

modbus_test.zip (21.4 MB)
(下载次数: 136, 2022-7-2 20:58 上传)

 

六、视频演示

20096b8a3fa38ec75c5c61d48e1d2c20

 

 

七、项目总结

1、项目总结:

    本项目学习了RVB2601的串口接收、屏幕和IO使用,对RVB2601有了深入的了解,

 

 

回复评论 (1)

超级给力

点赞  2022-7-2 21:49
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复