1 引言
今年八月,以格力“睡梦宝”卧室空调为代表的一批性能卓越,设计人性化的空调一经上市,就吸引了大批消费者的目光,但其居高不下的价格却也让很多普通的消费者望而却步。
空调市场的高价位,除了商家基于利润的考虑之外,一个很重要的原因,就是在空调的研发过程中所投入的巨额经费。以格兰仕为例,公司每年拿出的科研奖励基金就高达1000万元,其投入的研发经费之巨也就不难想象。如何降低设计成本,缩短研发周期,规避前期风险投资已成为空调产业发展所面临的一个重要课题。
基于对上述问题的思索,本文以一个小型多功能家用空调控制器的设计作为实例,介绍一种设计简便,性能优秀且能有效控制成本的FPGA解决方案。
2 设计指标
本设计的任务是一个具有多种工作模式和多级风速可供选择的小型家用空调控制器。其基本设计指标如下:
1.系统上电后,默认工作于标准模式,风速为1级,自设温度为22℃,定时功能关,工作状态指示灯亮。
2.系统有四种工作模式:
标准模式:系统根据用户自设温度与室内温度进行对比判断,驱动响应设备工作。
自动模式:系统根据室内温度与系统内预设温
度阈值进行对比判断,驱动响应设备工作。
睡眠模式:除具有标准模式的功能外,在该模式下系统能根据人体睡眠特点和夜间温度变化情况,自动进行温度调节。
除湿模式:启用该模式后,将驱动响应设备对室内进行除湿操作。
3.此外系统还提供四级风速供用户选择,方便的温度设定输入,定时,工作状态指示等功能。
3 FPGA方案的引入
长期以来,对于这类家用空调控制器的设计,多采用单片机来实现,其特点是成本较低,性能一般。但普通单片机的集成度通常较低,如Intel公司的AT89S51仅128字节片内数据存储器,32根可编程I/O口线,5个中断源。显然,要想完成较为复杂的运算和控制功能,就必须对其进行扩展,而外部硬件电路所带来的延时等不可预知风险,使得扩展必须以牺牲整机性能作为代价。而且这种设计方法受制于硬件电路,开发难度较大。而一些商家研发的空调专用芯片,也多因技术上的壁垒,在通用性,升级和价格方面不具优势。
FPGA作为一种新兴的可编程技术,是进行原型设计最理想的载体,其精确的可测试性和目前已达到的深亚微米级工艺,能较好的解决传统设计方法中的诸多难题。其丰富的编程资源和灵活的编程特性,能将许多原本需要借助外部硬件实现的功能,转化为软件编程来完成,使升级改进更为灵活。而且这种设计方法能在软件阶段就对设计做出准确的预测和*估,从而能极大地提高开发效率,有效规避前期的风险投资。现代先进的FPGA工艺技术,使得FPGA在功耗和价格方面都大为降低,以工作电压为3.3V的EPCS1SI8芯片为例,其目前的市场价格仅在10元左右。
4 系统划分
FPGA技术的一个巨大优势,就是采用自顶向下的设计思想,将设计模块化处理。为完成控制器各项功能,设计被划分为多个模块进行。整个控制器的组成及各模块之间控制关系如图1所示。
图1 控制器结构图
由图1可知,控制器由工作模式(含模式选择和四种工作模式),风速选择,室温设定,定时,设备驱动等模块构成。且在各模块之间,存在明确的控制关系。
5 设计实现
由系统划分可知,控制器的各项功能由各模块协同完成。其中模式选择,室温设定,定时三个模块都要接受来自外部的按键输入,经硬件实测,设计选用了4HZ的系统频率来减少按键输入过程中的抖动干扰。另外,有限状态机设计作为进行高效率高可靠逻辑控制的重要途径[3],设计中也多次运用了这一设计方法。以下分别阐释各模块及模块间控制关系的设计思想和工作流程。
5.1 工作模式
模式选择由选择控制和四种工作模式构成。
选择控制:该模块为四种工作模式提供选通信号,通过按键从NORMAL开始循环切换,驱动各模式正常工作。该部分被设计为一个具有四种工作状态的字符型有限状态机,其状态转换控制关系如图2所示。
图2 选择控制状态转换图
标准模式:该模块将外部采集的室温与用户自设温度值进行对比判断,确定当前室温状况(冷、热或适宜),并将该状态信息送入驱动模块处理。
自动模式:该模块将外部采集的室温与系统内预设温度阈值(此处设定为[17℃-26℃])进行对比判断,若外部采集的温度超出该阈值,则有相应状态信号向驱动模块发出。
睡眠模式:该模块除具有标准模式的功能外,为了营造一个舒适的睡眠环境,系统每隔1小时,会向自设温度模块发出自增1℃的请求信号,5小时后向设备驱动模块发出关机请求。睡眠模式程序设计流程如图3所示。
图3 睡眠模式设计流程图
除湿模式:该模式下除湿请求自动向设备驱动模块发出。
5. 2 风速选择
风速选择模块由设备驱动提供选通信号,该部分由一个具有五种工作状态的字符型有限状态机来实现,通过按键从ST0到ST3进行循环切换。当设备驱动模块无设备请求输出时,风速自动切换到ST4状态,禁止风机工作;当设备驱动恢复设备请求后,风速将重新切换到原来的状态。风速选择模块状态转换控制关系如图4所示。
图4 风速切换状态转换图
5.3 定时
在该模块中,通过按键预置关机时间(最长可设置270min),并将关机时间送出实时显示,在关机时会驱动系统状态指示灯进行闪烁提示。为方便用户输入,节约按键和显示所用硬件资源,程序采用了映射输入和映射显示的设计方法,即将用户每次按键以一个特定步长值(此处设为30min)在程序中替换,并将倒计时按步长区间进行反替换输出显示。该部分程序设计流程如图5所示。
图5 定时模块设计流程图
5.4 室温设定
室温设定模块,由一对加减按键循环进行输入,同时也接收来自睡眠模块的调温请求,温度可调区间设为[10℃-35℃]。在程序设计中,利用VHDL不完整IF语句保持原值的特性,可很容易地实现自设温度的增减功能。该模块仅在系统工作于标准模式或睡眠模式时,温度可被设置,其余情况则将温度复位到初始值22℃。
5.5 设备驱动
设备驱动模块接收来自四种工作模式的室内状况信号,经分类处理后,向后续设备发出响应请求。该部分采用了一个具有四种工作状态(采暖、制冷、除湿和无操作)的字符型有限状态机来实现。另外,为保护后续设备,在状态机的设计中引入了异常输入的保护机制,即当设备驱动模块判定为异常输入时(如同时出现冷热两种室内状况),则立即将所有设备请求禁止。设备驱动模块的状态转换控制关系如图6所示。
图6 输出驱动状态转换图
6 设计验证
设计采用了具有良好可移植特性的VHDL语言进行描述,通过Altera公司的MAX+PLUSII工具软件,以其FPGA/ACEX1K /EP1K30TC144-3芯片作为测试载体,进行了编译测试和硬件验证。
6.1 仿真测试
控制器整体仿真测试结果如下:
图7 控制器仿真波形1
图8 控制器仿真波形2
图7为控制器按键输入的响应情况,如图所示,随着按键的按下,各种输出正常。图8为控制器工作于睡眠模式,风速为4级,定时两小时的波形图,从图中可以清晰地看到,在关机到来时,STATE信号进行了闪烁提示,自设温度值也随着时间由21℃自增为23℃。综合以上分析可以看出,软件仿真达到了预期的性能指标。
6.2 资源使用状况
FPGA具有精确的可测试性,借助功能强大的分析软件可以在软件设计阶段就对设计做出准确的预测和*估。由MAX+PLUSII软件分析可知,设计中关键路径的最大延时不超过20个纳秒,这是一般的设计方法所不能达到的。控制器的资源使用情况如表1所示。
表1 控制器资源使用状况
输入引脚数 输出引脚数 逻辑单元数
15 32 230
6.3 硬件测试
设计已于零七年十月在乐山师范学院EDA技术开发实验平台上通过硬件测试,控制器各项功能工作正常,整机运行良好,性能稳定,达到预期设计指标。
7 结束语
FPGA技术的引入,使得设计摆脱了硬件电路的束缚,设计者只需将更多的精力致力于软件的设计和优化上,从而极大地提高了设计效率。本设计从任务提出到最终完成硬件测试仅历时两个多月,这在一定程度上也证明了在空调控制器的设计中引入现代FPGA技术的可行性和巨大潜力。随着FPGA技术及其制作工艺的不断进步,将现代FPGA技术融入该类控制器的研发和生产之中必将大有可为。
[参考文献]
[1]http://xk.cn.yahoo.com/articles/070814/1/2a52_2.html. 雅虎数码.
[2] 黄志伟.FPGA系统设计与实践[M].北京:电子工业出版社,2005.
[3] 潘松,黄继业.EDA技术与VHDL[M].北京:清华大学出版社,2005.
[4] 周启,冀兆良.家用空调的现状与发展趋势[J].山西建筑,2007,(3):159-160.
[5] AT89S51datasheethttp://www.dzsc.com/datasheet/AT89S51_970858.html.
[6] EPCS1SI8datasheethttp://www.dzsc.com/datasheet/EPCS1SI8_2343741.html.
[7] ST3datasheethttp://www.dzsc.com/datasheet/ST3_1180714.html.
[8] ST4datasheethttp://www.dzsc.com/datasheet/ST4_1180686.html.