基于FPGA的多功能空调控制器设计
标准模式:该模块将外部采集的室温与用户自设温度值进行对比判断,确定当前室温状况(冷、热或适宜),并将该状态信息送入驱动模块处理。
自动模式:该模块将外部采集的室温与系统内预设温度阈值(此处设定为[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所示。
评论