• 137
•
ELECTRONICS WORLD・技术交流
本文设计了一款低成本、支持多种信号检测和多方式操作控制,通信数据符合行业标准协议的高速网络监控设备远程监控器。方便易用,性能稳定、安全、可快速集成,实现基于网络的远程控制,能够方便快捷地应用于多种场合。 轮胎帘布本文基于RT-Thread的远程监控系统,可以通过网络来实现远程监测和控制,主要有控制和通信两个模块。控制模块采用STM-32F030RCT6芯片,实现电压和温度模拟量的数据采集以及继电器开关的控制。通信模块采用MT7688AN芯片,采用基于RT-Thread 进行系统的开发,多任务同步执行,确保设备快速响应任务并稳定工作。系统可自动发起socket连接服务,连接到远程服务器,服务器端通过收发Modbus指令数据,来实现远程控制。 1 系统设计矩阵干扰
STM32F030RCT6芯片资源足够跑小型操作系统,资源紧缺足够,为了后期维护升级方便选择使用操作系统进行开发。监控器的存储介质选择使用FLASH和SPI-FLASH。设备存储数据分为三大类:设备运行参数,设备默认参数,待升级固件存储数据。参数设置按照Modbus协议进行设置,所有参数以寄存器的形式表现出来,设置参数时写相应的寄存器即可实现快速高效配置。
2 软件设计
2.1 软件框架分解
软件框架分解如图1
半轴螺栓
所示。
图1 软件框架分解图
整个系统的软件框架可分8个模块。
(1)BootLoader:实现备份升级方案。
(2)Watch dog:看门狗程序,开启最低优先级程序每500ms 喂狗一次。
(3)DI、DO:DI使用switch实现输入状态采集,DO通过查询寄存器状态改变。
(4)AI:模拟采集通过任务实现,每10ms采集一次数据,每秒进行一次数据计算。
(5)串口:串口接收通过中断实现,存放在接收缓存中,空闲时确认接收完成,根据设置实现Modbus的程序或者DTU的程序。
(6)RTC:实时获取当前时间,并写入modbus的时间寄存器。
(7)MT7688AN:提供联网通信,远程通信,局域网通信。
(8)RS485:RS485端口通信,接Modbus主机或者Modbus从机。2.2 通信模块流程设计
通信模块在监控器中负责的主要任务为数据判断与转发。具体的功能描述为:
(1)网络AT指令保留,串口AT指令保留。
(2)拉低CFG引脚进入串口A T指令模式,拉高退出串口A T指令。
(3)FTP他升级功能,实现MCU的远程升级。
(4)实现MODBUS TCP转RTU、MODBUS RTU转modbus tcp 透传功能。
(5)MODBUS轮询功能,超时时间默认150ms。
(6)TCP Client支持连接远程服务器。并支持设置注册包,通信协议固定为Modbus TCP。注册码根据MCU唯一ID计算而来,使用指定的数字来替换随机数,这样方便服务器识别不同的设备。
3 工作模式
对于工作模式的选择,需要根据用户对监控器的使用场景来确定。
系统默认工作在从机模式,在网络端和RS485端均为从机,收到不是本机地址的数据将会被丢弃。
4 软件模块设计与实现
基于RT-Thread系统的多线程创建。多个功能模块之间互相关联。主要有空闲任务、初始化任务、串口、AI模拟量、输入DI、输出DO、RTC实时时钟以及Modbus任务等几个模块:混凝土表面增强剂
4.1 空闲任务
创建RT-Tread空闲任务线程,设置优先级为最低,保证只要一个任务出现问题既无法喂狗。通过Modbus协议修改升级寄存器的值之后,20ms之内跳转到BootLoader中执行boot程序这个任务调试需要结合BootLoader调试,保证固件升级中稳定喂狗。
4.2 初始化任务
设备启动时,在创建多线程时,需初始化操作包括系统时钟的初始化、定时器初始化、系统线程初始化、参数初始化、设备版本显示、开机信息打印等。对于设备外设,还需要FLASH参数读取、串口、GPIO等初始化。监控器程序中具体实现函数为Read_ Model_type和MT7688AN_init,读取设备参数区的参数以及初始化MT7688AN的参数设置。
4.3 串口收发
uart任务需要先编写环形缓冲区函数,实现入队出队函数。由于串口要求实时性高。串口设计为中断触发执行,中断有着速度快,不影响其他任务,响应结束可立即退回原有状态的优点。
4.4 模拟量AI
预埋螺母
ADC任务主要是计算电压和温度值。误差小于1%。ADC转换完成后保存在全局变量中,读取当前时间ADC的转换结果并保存在缓冲区里面,可以被所有任务调用。需要实现SPI_FLASH和SPI_
基于RT-Thread的远程监控系统的设计与实现
德州学院 王振岭 李海军 于学斗
阻焊油墨