当前位置 首页 >写作素材 >

基于RT-Thread的远程电压表

作者:jkyxc 浏览数:

摘要:电压测量技术在现实生活中应用十分广泛,很多工业生产等重要部分通过检测电压数据控制系统正常运行。而远程监控可以减少不必要的人力资源消耗。RT-Thread系统的使用,使得原本复杂的功能可以得到模块化的开发。通过 STM32采集外部电压数据,液晶屏实时显示当前系统状态,ESP8266网络通信,RT-Thread作为系统内核。处理器将采集到的数据分析处理后,显示系统状态在液晶屏上,同时将处理后的电压数据通过网络发送至手机客户端。

关键词:STM32;物联网;RT-Thread

在现代生活中,人们发展进入了网络信息时代,随着网络普及度越来越高,用户对嵌入式有关的电子产品要求也越来越严格,功能需求也越来越复杂。嵌入式领域中通用操作系统也慢慢开始与实时操作系统竞争,占领新兴产业的市场。人们对嵌入式系统的功能要求越来越高,对其稳定性与安全性的研究也越来越深入,随着它不断的实验完善[1],在市场的大量投放使用,用户的需求也给嵌入式产生了新挑战。而嵌入式应用到远程电压表,可以使电压表的使用更加方便,快捷,精度更高,使其体积更小,更便于携带。

1、系统硬件设计:

本系统在STM32F103C8T6上移植了RT-Thread操作系统,通过RT-Thread操作系统执行任务调度,达到单个CPU实现多任务的目的[2],分时运行不同的应用程序。STM32内部ADC外设采集外部电压值,对电压值进行采样、分析、处理。OLED显示经过处理后的ADC值和按键状态。按键扫描执行不同的功能。

2、單片机最小系统电路设计:

单片机选型采用STM32 F103,是ST公司推出的中等容量的单片机,是32位的基于ARM核心的微控制器,其内部拥有拥有丰富的定时器资源、高精度ADC外设、多个独立的通信接口。拥有较大的内存,和代码运行空间,它的Cortex内核支持RTOS任务调度,以及它的双栈指针,加速了代码运行的功能。

2.1复位电路设计

复位电路可以控制单片机的驱动或重置。通常CPU为了避免上电直接运行程序或复位电路重启而导致执行非预期的操作[3]。复位电路一共有如下几种类型,1.手动按钮复位 2.上电复位 3.积分型上电复位 4.看门狗型复位电路 5.比较器型复位电路。

2.2显示电路设计

OLED液晶屏。OLED模块,每一页包含128个字节,总共8页,共为128*64。为了知道当前的状态(0/1),必须在图中设置各字节的状态。否则,写入的数据可以覆盖以前的状态,会显示不需要显示的点。

2.3时钟电路设计

STM32如果不特别设置时钟输入状态,默认使用内部时钟作为其主时钟。本系统外接了一颗8Mhz的石英晶体作为其输入时钟[4]。

3 WIFI模块电路设计

ESP8266EX模块。由一个32位的RISC超低功率处理器,CPU速度总线时钟,使其运行速度可以达到160 MHz,其独特的WIFI协议栈保证网络通信,确保稳定,目的是为了低功耗,或低成本控制设备,其特殊的架构使其具有了难以想象的低功耗能力。

4系统软件设计

初始化系统外设,为外设的使用做准备,初始化系统内存空间,准备必要的内存空间为任务调度做准备,启动操作系统,由系统内核控制任务切换,任务状态保存。

5系统模块软件设计

RT-Thread任务调度。RT-Thread 提供了抢占优先级调度机制,总而言之,系统支持优先级设置,其中数值越低任务优先级越高。

电压采集子程序。STM32 F103C8T6一共拥有2个内部ADC。ADC转换控制器分为不同的模式,规则扫描通道组和注入扫描通道组。

OLED显示子程序。OLED初始化,首先初始化IIC总线,发送IIC总线命令,设置OLED内部寄存器,控制OLED显示状态。

LED显示子程序。通过RT-Thread进行任务上下文切换,空闲时定时改变LED灯状态,以表示系统正常运行。

6 测试结果

OLED显示可能会发生错误显示,原因是上一次的显示状态未被清除,原来残留的显示数据还停留在液晶屏幕上,将整行液晶缓冲全部用空白字符填充重新刷新解决了这个问题,整体系统可能会出现死机想象,经过不断排除,最终发现,在代码中,OLED的缓冲数据需要17位存储,而只给了16位数据位,导致OLED函数访问内存越界,导致系统死机,改变函数参数后成功解决这个现象。WIFI 测试部分,可能因为周围环境比较复杂而配置多次失败,对默认配置经过了修改,当第一次配置成功后无需重新配置,WIFI即可正常连接上一次配置的网络。

A/D采样部分,当无输入状态时,输入数据为浮空值,可能对数据检测造成影响,这里改变A/D的内部配置为下拉电阻,设置后,检测无浮空影响。A/D的采样范围过小,这里可以对外部输入电压进行电阻分压,对分压后的电阻电压进行检测,再倍乘分压值,即可得到对应实际值,能够解决电压值偏小的问题。

7 总结

在本研究中,本文对远程传输的稳定性进行了优化,根据STM32内部ADC外设来测量电压数据,使设备更加简单。通过STM32的其他扩展功能还可以实现更多控制应用,并可以适应复杂的工业环境。

RT-thread的驱动分层思想提供给开发者一个统一接口,同时实时操作系统也屏蔽了硬件的底层特性,为代码移植与功能复用和二次开发带来了很大的便捷。使用户可以更加方便的进行人机交互,并使计算机的利用率增大。该设计成本低、体积小、布局方便、运行稳定等,克服了现场环境重构的难度和成本高,现场监测等问题,并提出了解决方案。

参考文献:

[1]赵祖烨.代码集成开发调试平台的设计与实现[D].武汉华中科技大学.2009

[2]甘兴明.基于RS274_NGC的数控系统刀具补偿的设计与实现[D].北京:中国科学院,2006

[3]宋天盈,张红梅,冯欢,CAN-RS232转换器在实时操作系统RT-Thread上的实现[J].自动化仪表,2012

[4]陈伟.基于RT-thread的远程家用服务机器人系统开发[D].杭州:浙江工业大学,2015

推荐访问:电压表 RT Thread

相关文章:

Top