DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 600|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 18:47:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                    ???? 随着中央空调的普及应用,如何对中央空调机组实施有效的控制,是许多科研人员研究的重要课题。目前国内中央空调机组控制器硬件方面主要采用8位单片机为核心处理器,这种方式由于资源有限,导致人机交互不友好、机组的实时监控性能低、整机运转难以实现多机组网联控、节能效果差。采用RISC架构的ARM微处理器具有小体积、低功耗、低成本、高性能的特点,指令执行速度快,执行效率高,且具有丰富的片内外围电路,有利于简化系统设计,提高系统可靠性。本控制系统选择了Philips公司ARM7处理器LPC2210,移植了实时操作系统μC/OS-II,系统运行稳定可靠。
  1 空调系统简介及控制要求
  中央空调由集中制冷/加热站和空调机组两大部分组成。前者提供系统所需要的冷热源,后者通过调节冷冻水/热蒸汽的流量及空气风量来调节温度,调节加湿阀来调节房间的湿度。机组的控制任务是自动调节空气温湿度、风速、送风量及空气的洁净度。系统中所需检测与控制的参量为:自动检测新风、送风、回风及被控房间温、湿度及正压值,表冷器/加热器的供、回水温度;自动检测送、回风机及故障报警;中低效过滤器压差状态及超差报警;根据室外空气状态和室内正压值自动调节新风、回风、排风阀开度 ;根据被控参数及设定参数自动调节表冷器、加湿器的电动调节阀的开度。
  2 现场控制器硬件结构
  如图1所示,整个系统可分为ARM处理器模块、电源模块、各总线接口模块、存储模块、人机交互模块、模拟量输入输出模块及数字量输入输出模块等。




  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中,应用程序以任务形式存在,每个任务都是无限循环的,并处于以下五种状态之一:休眠态、就绪态、运行态、挂起态和被中断态[7]。根据中央空调的控制要求,本系统由以下几个任务来实现。
  (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所示。系统初始化后便建立各个运行任务,启动多任务调度机制,在各个同步信号的协调下有序运行。







  以温控为例,网络的输入信号x1、x2分别是温差及温差变化率et、Δet,模糊论域分别定为[-20,20]、[-10,10],模糊子集均为:NB(负大)、NM(负中)、NS(负小)、ZE(零)、PS(正小)、PM(正中)、PB(正大),模糊规则49条,隶属度函数为高斯函数。前件网络输入层直接将et、Δet送入到模糊化层计算其属于各语言变量值模糊集合的隶属度函数,规则层采用求积法计算出每条规则的适用度[10]。后件网络由3个结构相同的并列子网络组成,输出PID控制器的3个控制参数kp、ki、kd。系统采集常规PID控制器工作时et、Δet输入数据及控制参数为训练样本,利用误差反传算法训练网络参数:连接权pkji、隶属度函数中心值cij及宽度δij。试验记录表明训练后的控制器的动态特性与静态特性均优于传统PID及单纯模糊控制方法。
  本中央空调现场控制器采用32位高性能ARM处理器,满足了控制系统对实时监控能力和组网通信能力的要求,简化了系统设计。嵌人式操作系统μC/OS-II的移植保证了系统的实时性,多任务运行特性使所开发的控制软件运行稳定、可靠。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-5-5 14:38 , 耗时 0.086260 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表