关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于GSM的中央空调末端控制器研究

基于GSM的中央空调末端控制器研究

作者:时间:2009-12-17来源:网络收藏
系统中最重要的装置之一,对于的节能有着重要意义。现有的中央空调风阀启/停控制有手动开闭控制和固定时间调度的风量控制两种。启动后的控制策略常采用PID或模糊控制方法对室内温度进行控制[1,2]。这种由中央空调控制系统集中的固定调度算法,虽然控制系统容易实现,但它只适用于负荷和作息时间固定的用户,如何根据用户的实际需求来调整送风装置调度时间,是节能和保持舒适度的关键。现有按照需求实现远程末端控制的方式有蓝牙技术和以太网。而蓝牙的有效传输距离短,以太网又布线复杂,受地域、环境、经济条件等影响的限制[3]。
  为了解决以上问题,本文设计实现了一种手机SIM卡网络的中央空调末端风阀异地控制模块。除语音业务外,另有短消息数据传输业务[4-8]。该模块不但可以完成室内温度信息通过网络以短信息的形式报告用户,同时也可以由用户通过该模块发送期望设定室内温度给末端,完成远程控制。
本文以Samsung公司的S3C2410芯片作为处理器,以Linux2.6为嵌入式操作系统,PID控制策略,通过手机短信的方式对中央空调末端装置进行远程控制,实现了对室内温度的设置和监控,取得了很好的实际效果。
1 末端系统设计
1.1 控制器系统硬件设计
  本文ARM9平台,采用Linux嵌入式操作系统,以S3C2410处理器为核心。系统硬件主要由以下模块组成:
  (1)GSM/GPRS射频模块。用来与GPRS网络进行通信的射频模块,本文选用Simcom公司推出的工业级GSM/GPRS双频Modem模块SIM300,具有完整的Modem信号,在网络通信时可以作为一个Modem而存在。模块采用串行接口通信,主要为语音传输、短信息和数据业务提供无线接口,带GPRS功能[9]。SIM300芯片的外围电路采用了芯片的典型连接,利用阻容充电和施密特触发器整形获得上电后大约1.5 s低电平延时来启动。
  (2)16C550串行接口。16C550是一种用于将并口数据转换成串口数据的高速UART芯片,并自带16位FIFO缓存通道,而且波特率可选。一方面可获得完整的Modem控制,另一方面也是为了获得精准的UART波特率,本文在SIM300射频模块与处理器组成的控制单元进行串行通信时使用16C550芯片。16C550芯片的虚拟地址为0xdb000000,工作在带中断的FIFO方式;其波特率设置为115200,传输无校验,8位数据位,1位停止位,忽略输入BREAK、帧错误和奇偶校验错,使用标准模式传输。
  (3)CPU中央处理单元。采用Samsung公司生产的32/16位高性能基于ARM920T内核的RISC微处理器S3C2410,具有低功耗、自带8通道10位ADC和DAC、并支持NAND Flash和SDRAM存储器等特点。该单元包括S3C2410微控制器的最小系统、时钟电路、复位电路等部分。
  (4)输入输出单元:模拟房间内的温度传感器信号输入到处理器的A/D转换器;处理器通过PID算法得到的输出量由D/A转换器输出以控制送风执行阀的开度,调整房间内的送风量从而达到调节室内温度的目的。
  图1为系统硬件框图。

本文引用地址:http://www.eepw.com.cn/article/163402.htm

1.2 控制器系统软件设计
  操作系统采用实时性强的Linux2.6内核,编译器使用gcc 4.0.2版本,完成了各个功能模块的接口函数。由于在进行嵌入式系统内核开发时,若交叉编译工具(特别是gcc)版本较低则无法编译高版本内核,版本过高也不行。因此本文为配合要采用的Linux2.6.18内核开发末端控制器,进行定制开发交叉编译环境。具体如下:crosstool-0.43,binutils-2.16.1.tar.bz2,gcc-4.0.2,glibc-2.3.5,glibc-linuxthreads-2.3.5,linux-libc-headers-2.6.12.0,gdb-6.5,生成交叉编译工具为arm-9tdmi-linux-gcc。其中短消息通信线程的初始化和主循环共分为以下4个步骤:
  (1)完成串口初始化。系统启动并完成初始化后,开始反复读取16C550芯片发来的串口数据。当GSM模块收到新短信后,通过串口向处理器发送1个字符串。该字符串格式、长度及内容都是固定的,以+CMTI开头,以此为依据判断是否新短信到来。
  (2)向SIM300模块发送读取短消息的AT指令,判断短消息内容。首先通过手机号来判断短消息是否由用户发来。如果短消息由用户发来,则判断用户发送的指令,否则直接删除。
  (3)如果用户发送的内容是“设定温度XX”(XX代表二位温度值),则将“XX”通过解码函数解码成ASCII字符,再通过换算得到用户期望设置的温度发送给温度控制模块,最后删除该信息。如果用户发送的内容是“查询状态”,则将当前温度值和室内状态以短消息的形式发送给用户手机,最后同样删除该信息。
  (4)处理器继续读取串口数据。
  短消息通信程序流程如图2所示。

  处理器通过串口与GSM模块通信,串行通信的基本参数有:波特率、数据位、停止位及校验方式等。串口驱动程序实现了对串口的读写操作,给应用程序提供发送接收数据的接口。串口正常工作之前,需要进行初始化设置,选择串口工作方式,设置波特率、数据格式及中断,建立数据队列和信号量。应用程序只要调用相应的函数,就可以实现相应的功能。
  以串口发送一个字符串为例介绍发送程序,其中buf表示要发送的字符串,nbytes表示字符的个数:
int tty_write(char*buf,int nbytes)
{
 int i;
 for(i=0;inbytes;i++) {
  write(tty_fd,buf[i],1);
  usleep(100);
   }
   return tcdrain(tty_fd);
}
  

pid控制器相关文章:pid控制器原理



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭