长期以来,我国在热水供暖上实行“小区式集体供暖”、按供热面积结算,与用户是否用热无关。这种结算方式属"包费制",一方面严重影响了供热方供热积极性,另一方面由于部分用户缺乏节能意识,造成了资源浪费。计热表作为热力公司向每一位用户收费的依据和手段,不仅已广泛被用户所接受,而且由于用热量与费用直接相关,加强了用户的节能意识。
目前计热表的种类有很多,但多数都有着操作复杂、价格高等缺点。本文为大家介绍一种利用凌阳公司的SPCE061A单片机设计出的一款新型的计热表。该计热表不仅将用热实现了分户式管理,而且用户可对自家的各个房间分别控制;强大的语音发声功能弥补了人机交互界面单调乏味的缺陷;另外具有结构简单,易于操作,性价比高等优点。
“节能意味着节费”本计热表将工作时间标准分为:上、下班时间、出差时间、假日时间以满足不同情况的需求;计热表实现“一控五”即一个计热表控制五个房间;每个房间的温度、控热时间可分别设置;八位LCD可显示热量值、流量值、供水温度、回水温度、剩余费用、累计工作时间等相关数据资料;语音播报各个房间的温度、设置时间等;串行通讯实现集中抄表,方便管理。
1、 系统组成
如图1.1中所示,我们可以发现本计热表由计量、控制、显示、低电压保护等几个部分组成。那么我们就针对不同的功能模块的实现作以详细的描述。
1.1 计量部分
总的来说计热表的计量包括热量、费用计算两个部分。具体的计算公式如下:
Q=V*(ρ入*h入—ρ出*h出)(1)
其中:V为体积,ρ为水密度,h为焓值,Q为热量
M=k*Q(2)
其中:k为热量的单价,Q为热量,M为费用
水密度、焓值在已知温度的情况下可通过查表获得,那么计量实际上是检测:进、出水温度,流量等。在实际设计中,每隔20s进行一次费用、热量计算。SPCE061A可支持7路A/D转换,A/D转换的速率最大可达到96k/s,转换的结果为10位数据。在此设计中由于对进、出水温度精度要求较高,所以选用2个PT100。流量的检测可转化为计量流速计发送的脉冲数,(100个脉冲为0.001立方米)在本设计中,SPCE061A通过外部中断EXT2来检测流量,流速计每发送一个脉冲便产生一个方波脉冲作为外部中断信号,通过计算进入中断的次数进而计算出流量。SPCE061A内部的两个定时器有较宽的频率选择范围,另外芯片内部的时基发生器可提供更加丰富的定时/计数频率。在设计中我们采用2Hz的定时频率制作万年历,20s的定时可以通过读取万年历的时间值获得。每隔20s系统将IC卡中的费用值刷新一次。
1.2 控制部分:
此计热表控制部分包括:各时间标准的设置、各个房间温度的设置、各个房间阀门的开关、语音输出等。这些控制操作基本是通过遥控器来实现。SPCE061A对遥控信号的接收是以EXT1引入,每接收完一组数据后便进行相应的判断、操作。设置时间标准指设置上下班时间,出差时间,假日时间。设置完毕后,系统会按所设标准运行:在上班期间房间温度保持在所设低温,下班后房间温度保持在所设高温;出差期间房间温度保持在所设低温;假日时间房间温度保持在所设高温。同样可设置各个房间温度,值得注意的是房间温度的底线必须大于4℃——防止管道结冰。SPCE061A内置双通道发声器,每个DAC通道的输出能力为3mA。D/A转换的模拟量电流信号分别通过AUD1,AUD2管脚输出。本设计中将其用于播报各个房间的温度、所设的日期时间以及错误提示。
1.3 显示、按键操作:
此计热表上设有一个手动按键,通过按键可查询:累计热量值J、热量、流量、累计流量、供水温度、回水温度、累计工作时间、剩余费用等。在按键的同时LCD会有相关的数值显示,用户可从此读出相关的信息。SPCE061A与LCD之间的通讯通过IO口来实现。
1.4 低电压保护、低功耗:
SPCE061A内置低电压检测模块,当系统电压低于正常工作电压底线时,为了防止系统程序运行混乱,系统自动复位。在系统复位前可将重要的数据信息保存到SPCE061A的FLASH中。系统再次上电运行时将保存的数据读出继续参加运算。SPCE061A的内核采用CMOS制造工艺同时具有弱振、空闲等方式,极大的降低了功耗。此外SPCE061A通常会有工作和睡眠两种状态,在睡眠期间CPU停止运行,此间系统的功耗约为2uA。当然睡眠可以通过按键、中断等唤醒。
2、 硬件设计
硬件结构原理图如2.1所示:主体部分采用SPCE061A,该芯片属于16位机,芯片的设计体现了SOC概念,内嵌32K的FLASH的存储空间,双16位的计数器、定时器,14个中断源,A/D、D/A转换单元,32位可编程的多功能IO口,LVD/LVR等部分。SPCE061A在2.6v~3.6v的工作电压范围内的工作速率范围为0.32MHz~49.152MHz,较高的工作速率使其应用领域极其宽广。
系统用到7路温度检测,这7路模拟信号是通过IOA0~IOA6输入到SPCE061A,通过SPCE061A自身的A/D转换单元将其转换为数字信号。其中2路用于计量,5路用于室温检测。根据不同的精度要求要求分别采用PT100,热敏电阻。
LCD采用8位8段微功耗的液晶显示模块LCM0826B,它的显示状态功耗为4uA,省电模式下为1uA。SPCE061A通过IOA8~IOA10三个端口和LCD连接,其中IOA8用于片选,IOA9、IOA10分别为时钟和数据接口。
IC卡采用AT24C01A,用于存储相关数据。SPCE061A对IC卡的读写是通过IOB0、IOB1两个端口来实现。
SPCE061A通过外接两个CC4097实现对五个房间的电磁阀的控制。IOA13~IOA15的不同组合用于选择不同的电磁阀;IOA11和IOA12用于输出高低电平对所选电磁阀进行控制;IOB11和IOB12是所选的电磁阀的状态输入口。
3、 软件设计
本系统的工作流程如下图3.1:
首先进行的是故障检测,在此期间主要检测IC卡上金额是否大于0元,进水温度的检测,出水温度的检测,进、出水温度的比较,流量检测等。如果出现:卡上无钱,检测不到进、出水温度,或进水温度小于出水温度,检测不到流量等问题系统都会有相关的错误信息提示。有错,则关闭所有的阀门,不参加各种计量运算;无错,按照选定的标准进行阀门控制,接着进行相关的计量。
按键扫描主要针对表上的手动按键,如有按键操作,存储按键次数,在按键处理部分根据该次数进行相关的显示,其中次数为0显示累计热量,次数为1显示热量,次数为2显示流量,次数为3显示累计流量,次数为4显示入水温度,次数为5显示出水温度,次数为6显示累计工作时间,次数为7电源欠压提示,次数为8显示剩余费用。30秒后无按键操作自动恢复显示累计热量。
在遥控处理部分,用户可以通过遥控器设置出差、假日、循环时间、各个房间的高低温、即时控制各个房间的开关等。