微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > μC/OS-II系统与ARM在中央空调机组控制器中的应用

μC/OS-II系统与ARM在中央空调机组控制器中的应用

时间:08-21 来源:互联网 点击:
随着中央空调的普及应用,如何对中央空调机组实施有效的控制,是许多科研人员研究的重要课题。目前国内中央空调机组控制器硬件方面主要采用8位单片机为核心处理器,这种方式由于资源有限,导致人机交互不友好、机组的实时监控性能低、整机运转难以实现多机组网联控、节能效果差。采用RISC架构的ARM微处理器具有小体积、低功耗、低成本、高性能的特点,指令执行速度快,执行效率高,且具有丰富的片内外围电路,有利于简化系统设计,提高系统可靠性。本控制系统选择了Philips公司ARM7处理器LPC2210,移植了实时操作系统μC/OS-II,系统运行稳定可靠。  

1 空调系统简介及控制要求  

中央空调由集中制冷/加热站和空调机组两大部分组成。前者提供系统所需要的冷热源,后者通过调节冷冻水/热蒸汽的流量及空气风量来调节温度,调节加湿阀来调节房间的湿度。机组的控制任务是自动调节空气温湿度、风速、送风量及空气的洁净度。系统中所需检测与控制的参量为:自动检测新风、送风、回风及被控房间温、湿度及正压值,表冷器/加热器的供、回水温度;自动检测送、回风机及故障报警;中低效过滤器压差状态及超差报警;根据室外空气状态和室内正压值自动调节新风、回风、排风阀开度 ;根据被控参数及设定参数自动调节表冷器、加湿器的电动调节阀的开度。  

2 现场控制器硬件结构  

如图1所示,整个系统可分为ARM处理器模块、电源模块、各总线接口模块、存储模块、人机交互模块、模拟量输入输出模块及数字量输入输出模块等。  


  
主处理器选用Philips公司生产的ARM7芯片LPC2210,该芯片是基于支持实时仿真和跟踪的ARM7TDMI-S CPU的微控制器,最高工作频率可达60 MHz,内部带有16 KB RAM,多达122个通用I/O口(可承受5 V电压),具有两个带16 B收发FIFO的UART,两个完全独立的同步串行接口SPI等丰富的外设。本系统中,存储模块由扩展的2 MB NOR Flash(SST39VF160)与8 MB PSRAM(MT45W4MW16)构成,分别使用LPC2210外部存储器接口的Bank0和Bank1地址空间;人机交互模块包含键盘和LCD两部分,显示和设置空调机组的运行参数及状态。控制器设有8个按键输入,使用I2C接口的接盘与LED驱动芯片ZLG7290进行键盘扫描;从USB接口用于控制器与调试计算机的通信;控制平台设计了以RTL8019AS芯片为核心的以太网接口电路,实现控制器与上位监控级计算机之间的通信;CAN总线接口可用于现场设备的通信;ISP接口、JTAG口为程序下载调试接口;A/D模块采用LPC2210自带的8路10位ADC转换器,检测各路温度及湿度模拟量的输入,构成反馈控制。D/A模块的输出信号作为比例放大器的输入,控制各个调节阀门的开度大小,实现风量和流量控制。数字量输入通道检测风机的运行状态及过滤网压差报警信号;数字量输出通道输出风机、加湿器的开关控制信号。控制器通过对整个空调系统新风、回风的温湿度、送风风机运行状态、初中效过滤段的压差等信号的采集,控制送风风机的变频调速、加湿器的加湿、新风及回风阀门的开度、冷热水阀的开度大小,以达到设定的空气状态。  

3 现场控制单元的软件设计  

3.1 软件层次与功能  

控制器软件由3部分组成:实时操作系统、硬件驱动程序和运行在操作系统之上的应用程序。实时操作系统采用源码公开的μC/OS-II,基于其内核扩展的实时操作系统的整体结构如图2所示。  


  
Bootloader的主要功能是初始化必要的硬件并启动操作系统。应用软件层实现中央空调的相关控制任务,包括初始化任务、故障处理任务、数据通信任务、数据采集任务、机组控制任务及显示任务。底层硬件设备控制驱动层初始化微控制器与外围部件管脚连接的配置,建立处理器与外围功能电路之间的关联,与具体硬件电路相关。功能部件命令接口驱动实现处理器各个功能模块的运作机制,如串口、SPI、CAN等模块,该层函数由上两层调用。功能部件协议实现层提供各功能模块初始化函数、读写函数以及中断处理函数等。上两层软件设计与操作系统密切相关,利用操作系统管理控制任务、实现任务间的数据交互通信和延时等。  

3.2 移植μC/OS-II  

LPC2210的ARM7TDMI-S内核用ARM ADS1.2作为编译器移植μC/OS-II。μC/OS-II的移植涉及到与处理器及编译器相关的OS_CPU.H、OS_CPU_C.C和OS_CPU_A.S 3个文件。其包括以下内容:(1)设置OS_CPU.H头文件中与处理器和编译器相关的代码,如整数、浮点数、堆栈等数据类型定义,打开或者关闭中断函数设置,定义堆栈增长方向,任务切换的执行代码。(2)用C语言在OS_CPU_C.C文件中编写若干与操作系统相关函数,如任务堆栈初始化函数OSTaskStkInit();μC/OS-II在执行某些操作时调用的用户函数,如OSTaskCreateHook()、OS-TaskDelHook()、OSTaskSwHook()、OSTaskStatHook()和OS-TimeTickHook()等。(3)在OS_CPU.ASM文件中用汇编语言编写4个与处理器相关的函数:运行优先级最高的就绪任务OSStartHighRdy()、任务级的任务切换函数OSCtxSw()和中断级的任务切换函数OSIntCtxSw()和中断服务函数OS-TickISR()。  

3.3 应用程序  

在μC/OS-II中,应用程序以任务形式存在,每个任务都是无限循环的,并处于以下五种状态之一:休眠态、就绪态、运行态、挂起态和被中断态。根据中央空调的控制要求,本系统由以下几个任务来实现。  

(1)定义5个基本的信号量用于任务之间的同步:故障信号量、通信信号量、定时采集信号、机组控制信号量和显示信号量。  

(2)初始化任务Task_init()具有最高运行优先级,优先级Prio=10,该任务完成处理器I/O接口的初始化,向量中断分配与设置,定时器初始化以及I2C、串口等基本功能部件的初始化工作,为后继任务的运行做准备,只运行一次。  

(3)故障处理任务Task_error()为次优先级任务,优先级Prio=11。当获得Data_err_sem信号后判断机组故障的类型,按照预先的设定进行实时故障处理,并给出报警、提示故障原因。  

(4)数据通信任务Task_comminication()的优先级Prio=12,当有数据传送请求时便通过以太网与上位机进行通信,完成命令及数据的传送。  

(5)数据采集任务Task_collect()优先级Prio= 13,主要完成周期性地采集各路温度模拟量、湿度频率量和开关量信号的输入,为机组控制任务提供运算数据。  

(6)机组控制任务Task_control()是整个系统任务中的核心,优先级Prio=14。当获得采集任务释放的Data_Control_sem信号后,便对采集过来的各路温湿度信号及开关量信号进行处理,输出控制信号,完成对各个调节阀的控制;且当有故障发生时释放故障信号量Data_err_sem。  

(7)显示任务Task_display()优先级最低,Prio= 15。当获得显示信号量Data_Display_sem时任务就绪,刷新机组当前的设置参数及运行状态。  

系统整体软件流程图如图3所示。系统初始化后便建立各个运行任务,启动多任务调度机制,在各个同步信号的协调下有序运行。  


  

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top