当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于GSM的中央空调末端控制器研究

中央空调末端控制器是中央空调系统中最重要的装置之一,对于中央空调的节能有着重要意义。现有的中央空调末端风阀启/停控制有手动开闭控制和固定时间调度的风量控制两种。启动后的控制策略常采用PID或模糊控制方法对室内温度进行控制[1,2]。这种由中央空调控制系统集中的固定调度算法,虽然控制系统容易实现,但它只适用于负荷和作息时间固定的用户,如何根据用户的实际需求来调整末端送风装置调度时间,是节能和保持舒适度的关键。现有按照需求实现远程末端控制的方式有蓝牙技术和以太网。而蓝牙的有效传输距离短,以太网又布线复杂,受地域、环境、经济条件等影响的限制[3]。
  为了解决以上问题,本文设计实现了一种基于手机SIM卡GSM网络的中央空调末端风阀异地控制模块。GSM除语音业务外,另有短消息数据传输业务[4-8]。该模块不但可以完成室内温度信息通过GSM网络以短信息的形式报告用户,同时也可以由用户通过该模块发送期望设定室内温度给末端控制器,完成远程控制。
        本文以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为系统硬件框图。

 

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;i<nbytes;i++) {
    write(tty_fd,&buf[i],1);
    usleep(100);
    }
   return tcdrain(tty_fd);
}
  [!--empirenews.page--]短消息的接收与发送由处理器和SIM300模块通过16C550芯片串行通信完成,处理器向SIM300模块发送AT指令读取或发送短消息。发送中文短信息时,发送的是汉字的UCS2编码,所以在初始化SIM300模块时须发送指令“AT+CMGF=0”,把模块的短消息工作模式设置为PDU模式,以UCS2编码方式发送短消息。同样,SIM300模块收到的短消息也是PDU编码方式,要读取出用户发送的中文指令就必须将消息内容解码成ASCII字符。根据实际应用情况(发送汉字信息较少且固定),从节约系统资源的角度考虑,直接查找汉字的UCS2编码表,查出要发送汉字的UCS2码并发送。
  发送短消息首先要向SIM300模块发送整个短消息代码位数的16进制数,之后是短信头代码“001100D”、中国区号“+86”的编码“9168”和发送的目的手机号码。此处的目的手机号码必须是每两位互换得来,由于手机号码是11位,最后一位用“N”补齐,而短消息内容是用UCS2码编写,所以继续发送编码方式代码“0008A7”,最后才是短消息正文的UCS2码。
  当有新消息到达时,收到的数据包内封装了消息发送时间、来自的手机号码和消息正文。如果来自的手机号码与预先设置的用户号码不一致则直接将短消息删除;一致则继续判断短消息正文。由于接收到的短消息也是由UCS2编码处理过的中文,所以把消息正文内容与预先约定好的“设定温度”和“当前状态”两种UCS2编码相比较后分别转到相应的处理函数,若与约定的两种编码都不一致,则视为错误消息删除。
  本文全部程序代码由C语言编写,短消息发送部分代码如下:
void gprs_msg(char*number,char*msgr)//短信发送函数
{
  char ctl[]={26,0};
  char head[]=″0011000D9168″;//短信头代码及中国区号
  char headmsg[]=″0008A7″;//短信编码方式代码
  unsigned int count;
  char sum[2];

  tty_writecmd(″at″,strlen(″at″));
  tty_writecmd(″at″,strlen(″at″));
  tty_write(″at+cmgs=″,strlen(″at+cmgs=″));

  count=strlen(msgr)/2+14;//计算短信长度

  sum[0]=(char)(count/10+48);
  sum[1]=(char)(count%10+48);//将短信长度
                //解码为16进制
 
  tty_writecmd(sum,2);
  tty_write(head,strlen(head));
  tty_write(number,strlen(number));
  tty_write(headmsg,strlen(headmsg));//发送短信头
  tty_write(msgr,strlen(msgr));//发送短信正文

  tty_write(ctl,1);
  tty_write(″r″,strlen(″r″));//发送短信结束代码
  usleep(300000);//进程休眠
  printf(″Message sent.n″);
}
  上述函数封装了PDU模式发送短消息的头信息和正文字符长度等,参数仅为目的手机号码的PDU编码和短消息正文的UCS2编码。这样做避免了大量的重复代码,也提高了程序的运行效率。
1.3 增量式PID控制策略
  PID是一种线性控制器,它根据给定值r(t)与实际输出y(t)构成控制偏差:
 

  式中:KP为比例系数;TI为积分时间常数;TD为微分时间常数。
  由于计算机处理的是数字量,控制器的驱动对象是风阀执行器,所以控制系统中使用的控制策略是数字增量式PID。
  u(k)=Ae(k)-Be(k-1)+Ce(k-2)
  以下是增量式PID控制策略的实现函数:
double PID(double feedback)
{
  double Err,pErr,dErr,dU;
  Err=Command-feedback;//当前误差
  pErr=Err-ppreErr;//比例项增量式误差
  dErr=Err-2*preErr+pre2Err;//微分项增量式误差
  dU=Proportion*pErr+pDerivative*dErr+ Integral*Err;
                                        //控制量增量
  pre2Err=preErr;
  preErr=Err;
  return dU;
}
2 实验
  本实验对象以1.3吨的中央空调系统的实物模型为例,该系统可以模拟中央空调多种运行模式,并可以通过对执行风阀输入模拟信号来调节风阀的具体开度,以此来调整送入房间的送风量,达到控制模拟房间制冷量的目的。本实验对象有2个模拟房间,其中末端装置的驱动阀为TANG TECH TM04~24,温湿度传感器为VECTOR ADS-H1T1。嵌入式控制器的D/A输出的0~4.096 V信号经放大至0~10 V后,直接驱动风阀驱动器。模拟房间的的温湿度传感器输出范围为1~5 V,直接输入处理器内部A/D的AIN[0]脚。
  系统提供了两种用户短消息内容的识别,分别是“设定温度XX”和“查询状态”。如用户发送“查询状态”,而当前室内状态为23℃,则系统自动向用户返回短消息“温度:23;状态:正常”。如果室内是异常温度,则系统发送短消息自动报警“温度60;状态警告”。如果用户发送“设定温度23”,则系统将当前室内设定温度改为23℃,并回复“已设定温度23”。此时本地的控制器以PID进行温度控制。
  为了使用户可以方便关闭室内控制器,而又不需要增加其他的短消息内容,本文设置了最高温度限制50℃。当用户发送“设定温度”大于49℃时,系统认为用户要求关闭控制器,继而把温度设定点改为OFF,风阀完全关闭,同时返回短消息“已关闭”。采用这种方法,既保证了系统有关闭风阀的功能,又不需要添加新的短消息命令。控制器关闭后,如果用户再次发送短消息设置室内温度为正常范围内的温度,则控制器重新开启。
  短消息命令详情见表1。

  为了测试系统节能实际效果,在室外温度9℃的条件下开启2个模拟房间的末端控制器,并设置预期室内温度23℃。假定2个房间中,模拟房间一8:00有人,模拟房间二9:00开始有人;通过计算表明,9:00开启模拟房间二的室内控制器要比8:00同时开启2个模拟房间的室内控制器节约全天所耗能量的7%左右。
  本文实现了GSM远程控制方法,通过手机短信方式,对中央空调系统末端装置进行控制及对室内温度进行实时监控和管理。实验结果表明,系统可以方便、灵活、快捷、按需调节房间的温度,实现节能。并且,系统可扩充性强,在软件升级后还可实现如末端能量计量等更多功能。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭