方案介绍:
硬件设计
由于天然气是易燃混合气,并且天然气表的安装有地方限制,在天然气表的设计时必须要考虑天然气使用安全。严禁在使用过程中产生任何电火花。所以,天然气表一般采用低电压电池供电,要保证一节电池使用3年以上,需要系统功耗很低。所以,在设计时CPU可采用EFM32TG系列。EFM32TG系列可工作在1.85~3.8 V,而且耗电电流也特别小,在休眠状态下只有1个微安左右的电流。
EFM32 具有 5 种功耗模式,在 RTC及低功耗模块运行的EM2 模式下,EFM32 的功耗仅 900nA。EFM32 的 LESENSE、LEUART 以及 LETIMER 模块均为针对低功耗设计。ADC 模块在12bit,1Msps的速率下功耗低至 350μA。驱动液晶屏显示的LCD Controller 能够在低功耗模式下保持显示 8~36 段的驱动功耗也只需 0.55μA。此外EFM32TG系列还内置了3个运放,可以大大精简外部电路。
EFM32 的低功耗外设功能模块非常适合于表类方案的设计应用。在设计中,考虑到天然气是易燃混合气体,安全可靠性非常重要,因而,增加了火灾探测、漏气检测、通风控制等安全保护功能。为了提高天然气表的可靠性,满足功耗低、计量准的要求,采用模块化设计思想。
软件设计
天然气表在设计中充分考虑了低功耗情况下CPU处于休眠状态,只有在中断发生时才将它唤醒。系统中的中断源有定时器A、火灾探测信号、电压监控信号、IC卡读写操作中断信号。当中断发生后,系统立即调用中断处理程序进行处理。
计量过程:当用户用气时,流量传感器将流量信号进行差动放大、整形后送入控制器。该信号作为定时器A的输入脉冲,一有信号输入,定时器A就计~次数,当计够lO次时(1 cm3),定时器A发出一个中断信号(CCIFG0),这时,系统在不到6us时间里被唤醒,并转入计量处理中断程序进行处理。在计量处理时,还要对漏气检测接口进行扫描,看是否有漏气现象出现,如果出现,就要立即关阀通风,并报警。如果没有才能继续用气,计量。计量过程是一个比较重要的环节,该系统中,使用定时读数的方法。当没有漏气发生时,先将天然气可用量减去1 cm3,再将定时器A的中断禁止,开启基本定时器。基本定时器定时1 ms,在定时中断发生后,系统就对定时器A中的数据读一次,并将读出数据相加存人0220H单元,当0220H单元读出的数据大于1000(即1 cm3)时,就将可用量减去0220H单元读出的数据。在可用量减去10 cm3十次之后,还要对其进行显示;若可用量小于5 m3,就要显示“请充值”;若可用量小于l m3,则要显示“欠量”;若可用量为0,则关阀,且显示“欠量”。
IC卡进入读写器天线的操作范围后,读写器向控制器MCU发出中断请求。在读写操作时,需通过软件校验密码,检查卡机是否相符,如果卡片类型号、序列号都正确,且成功通过了选卡及密码验证,则可读入卡中天然气可使用量,向卡片中写入0。如IC卡操作完后,可将读人的购气数送LCD显示,并与表中可用量相加,得到新的可用量。火灾探测信号、电压监控信号都是以中断形式输人的。当有火灾发生或有欠压情况出现时,系统转入相应中断程序进行处理。有火灾发生时,立即关阀,并声光报警。有欠压情况出现时,关阀,发光报警,显示“欠压”。