一种嵌入式的太阳能干燥实时监控系统的设计方案(2)
- UID
- 1023166
- 性别
- 男
- 来自
- 燕山大学
|
一种嵌入式的太阳能干燥实时监控系统的设计方案(2)
2.3 继电器控制电路设计
当监测到干燥室内湿度超过上位机设定的上限值时,STM32单片机将继电器控制引脚电平拉高,继电器触点吸合控制排气扇开启;当监测到干燥室内湿度降低至上限值以下时,STM32单片机将继电器控制引脚电平拉低,继电器触点分离控制排气扇关闭,完成过湿废气的排空工作。继电器控制电路如图3所示。
2.4 RS 485通信电路设计
太阳能干燥设备需要长时间工作在露天环境下,对通信电路的距离和抗干扰要求较高。针对此项要求,实时嵌入式太阳能干燥监测和控制系统采用SP485R芯片组建RS 485 通信控制电路实现与PC 上位机的通信。
SP485R应用电路如图4所示。
3 嵌入式太阳能干燥监测和控制系统软件设计
3.1 FreeRTOS在STM32上的移植
太阳能干燥设备进行干燥作业时对干燥室内的温湿度要求较高:温度过高会影响干燥物料的品质,温度过低或湿度过高又会降低干燥效率。这要求监测和控制系统应具有高实时性和可靠的稳定性,能够快速反应并准确动作,使干燥室内温度能够维持恒定且保证湿度在限定范围之内。基于此,将FreeRTOS实时操作系统移植到STM32嵌入式处理器以满足设计需求。
FreeRTOS的实现主要由list.c、queue.c、croutine.c和tasks.c4个文件组成。list.c是一个链表的实现,主要供内核调度器使用;queue.c是一个队列的实现,支持中断环境与信号量控制;croutine.c和task.c是两种任务的组织实现。对于croutine,各个任务共享同一个堆栈,使RAM的需求进一步缩小,也正因如此,他的使用受到相对严格的限制。而task则是传统的实现,各个任务使用各自的堆栈,支持完全的抢占式调度。FreeRTOS在STM32的移植大致由3个文件实现,一个。h文件定义编译器相关的数据类型和中断处理的宏定义;一个。c文件实现任务的堆栈初始化、系统心跳的管理以及任务切换的请求;一个。s文件实现具体的任务切换,具体如图5所示。
FreeRTOS 下可实现创建任务、删除任务、挂起任务、恢复任务、设定任务优先级、获得任务相关信息等功能,在嵌入式太阳能干燥实时监测和控制系统的程序设计中调用xTaskCreate()函数创建监测、通信、控制三个任务,程序任务按设定优先级顺序执行实现既定功能。
监测任务(vmonitorTask)实现对干燥室内温湿度以及鼓风机转速的实时监测。嵌入式处理器将通过参数传感器获得的实时参数进行保存。
通信任务(vcommunicateTask)实现上位机与嵌入式处理器的实时通信。嵌入式处理器接收PC上位机发送的干燥温度和湿度上限值,并将收集到的温湿度以及鼓风机转速参数发送至PC上位机进行实时显示。
控制任务(vcontrolTask)实现干燥室内的温湿度控制。PC 上位机设定的干燥温度作为系统控制目标量,参数传感器测得的实时温度作为输入量调用PID算法,输出量作为变频器工作频率调节鼓风机转速实现干燥室的恒温控制。当干燥室内湿度超过PC上位机设定的湿度上限时,继电器控制排气扇动作完成过湿废气的排空作业。
程序任务执行框图如图6所示。
|
|
|
|
|
|