《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 基于PIC单片机的智能IC卡燃气表电控系统设计

基于PIC单片机的智能IC卡燃气表电控系统设计

2009-05-08
作者:李 锋 邢 武 龙 飞 陈

  摘  要: 给出了一种以PIC单片机为核心的智能IC卡燃气表电控系统的设计,介绍了该系统的控制模式、电控系统的硬件电路构成、系统软件设计及其实际应用情况。

  关键词: PIC单片机   智能IC卡燃气表   电控系统

 

  智能IC卡燃气表是一种根据用户IC卡购气量实现自动计量计费、自动控制用气的民用高技术产品,具有传统人工抄表收费式燃气表无可比拟的优越性。当前,随着国家“金卡工程”的深入开展和开发大西北“西气东输”计划的正式启动,智能IC卡燃气表已呈现出十分广阔的应用前景。本文介绍了该产品的核心技术——基于PIC单片机的智能IC卡燃气表电控系统设计,论述了智能IC卡燃气表的控制模式、电控系统的硬件电路构成、系统软件设计及其实际应用情况。

1 智能IC卡燃气表控制模式

  智能IC卡燃气表是在常规家用模式燃气表体上安装智能测控系统而构成的,该测控系统主要由IC卡、计量电路、电控系统以及气路控制阀等组成,系统结构如图1所示。

 

  当用户将含有购气量(以加密数值形式表示)的IC卡插入表内时,控制阀在电控系统控制下开通气路。用户每用一个计量单位,计量电路便发出一组等周期计量脉冲序列,该脉冲序列如经电控系统判定为有效,即可从已购气量中减去一个计量单位,并通过液晶模块显示表内剩余气量。当剩余气量为零时,控制阀自动关闭,气路即被切断,此时用户须重新持卡购气。在正常情况下控制阀处于接通态,只有当特殊事件发生时控制阀才从接通态变为关闭态。图2示出了三种事件状态下控制阀的通断情况。

2 系统电路构成

  智能IC卡燃气表电控系统电路由低功耗单片机、EEPROM存储电路、电源电压监测电路、电池保护电路、液晶显示及声光报警电路、IC卡读写控制电路等组成,下面结合图3所示的电路原理图作进一步介绍。

2.1  PIC单片机及电路组成

  PIC单片机是Microchip公司近年来推出的新型单片机系列。它采用先进的RISC技术,具有低价格、低功耗、高性能、全静态、易使用等特点,目前已在仪器仪表、工业自动化、计算机通讯以及民用产品等领域得到广泛应用。本设计中采用了PIC系列中的主流型号PIC16C57作为电路系统的控制核心。该单片机在静态时处于低功耗睡眠状态,功耗小于3μA。当接收到计量脉冲或有IC卡操作时,单片机由睡眠态转为工作状态。在本系统中,单片机通过C5、C6口以I2C 总线方式对IC卡进行读写操作,以模拟I2C 方式与存储器IC2进行数据通讯,并通过B2、B4口分别获取实时电池电压及电源保护信号,通过输出口B6、B7控制电控阀动作,通过输出口A0、A1驱动汉字液晶模块。

2.2 EEPROM存储电路

  EEPROM存储器IC2采用24LC02B芯片,该芯片可以在无电源状态下长期可靠存储系统内重要数据,工作寿命可达106次。当用户卡插入系统时,卡内密码、卡号、购气量及用户用气记录等关键数据将以密文形式存储在24LC02B芯片中。

2.3 电压监测电路

系统采用S80751芯片进行电压实时监测,当系统电池电压在正常值时,S80751的输出1脚为高电平;当电池电压低于保护值时,该芯片的1脚变为低电平,单片机检测到该信号后,即控制液晶模块显示欠压,以提醒用户更换电池。

2.4 电源保护电路

为有效保护系统电源,本电路可对电池盒位置进行高灵敏检测。当电池盒被拉开时,保护电路输出低电平,单片机监测到该信号后,即控制阀门使其关断。直到电池安装好并将电池盒推入表内正常位置时,单片机才会再次控制阀门使其重新开阀供气。

2.5 液晶显示及声光报警电路

液晶显示电路采用PHILIP标准I2C通讯模块制作,可汉字显示欠压、购气、关阀、卡误和气量五种信息状态及其任意组合。声光报警电路采用高亮LED和高响蜂鸣器,由单片机控制发出声光报警。

2.6 IC卡及读写电路

  IC卡由于具有存储容量大、数据保密性好、抗干扰能力强、操作速度快等突出优点,近年来在世界范围内得到广泛应用。本系统采用符合ISO7816国际标准的IC卡,用于可靠存储用户密钥、购气量、用气记录等关键数据。单片机通过IC卡读写电路完成对IC卡信息的读写,本读写电路在卡口保护、辅助伪卡识别、确保准确安全读写IC卡信息等方面都进行了精心而合理的设计。

3 系统软件设计

  系统软件采用PIC16C5X精简指令集编写。软件设计紧密结合智能IC卡燃气表的控制模式,充分体现了对IC卡信息读写、卡类型判断、计量信号判断与数据处理、电压监测与电源保护等功能,并在IC卡信息安全性、软件运行可靠性及抗干扰等方面进行了精心设计。系统主程序框图如图4所示。

 

  下面给出IC卡读、写的子程序:

  R10BYTE       MOVF 8,0

                     MOVWF FSR

                     MOVLW .10         ;读10个存储单元

                     MOVWF BCOUNT

                     CALL START

                     MOVLW CTRL_W

                     CALL TR1BYTE

                     CALL RACK

                     MOVLW  8          ;存于寄存器8中

                     CALL  TR1BYTE

                     CALL  RACK

                     CALL  START

                     MOVLW   CTRL_R

                     CALL  TR1BYTE

                     CALL  RACK

  READ             CALL  RD1BYTE     ;读字节子程序

                   INCF FSR

                  DECFSZ BCOUNT

                     GOTO  READ11

                     CALL THACK

                     CALL STOP

                     RETLW 0            ;子程序返回

  READ11         CALL TACK

                     GOTO READ

  W8BYTE           MOVF  8,0

                     MOVWF  FSR

                     CALL  START

                     MOVLW  CTRL_W     ;IC卡存放地址

                     CALL TR1BYTE

                     CALL RACK       

                     MOVL W 8          ;从寄存器8中读取数据

                     CALL TR1BYTE

                     CALL RACK

  WRITE            MOVF  0,0         ;写入IC卡

                     CALL  TR1BYTE

                     CALL  RACK

                     INCF  FSR

                     BTFSS  FSR,3

                     GOTO  WRITE

                     CALL  STOP

  DE10MS    MOVLW   .5            ;写延时

                     MOVWF  LOOPS

                     BCF  3,5

                     CALL  WAIT  

                     BSF 3,5

                     RETLW  0            ;返回主程序

 

参考文献

1 蔡纯洁,邢 武. PIC16/17单片机原理和应用.合肥中国科学技术大学出版社,1997

2 何立民.I2C总线应用系统设计.北京:北京航空航天大学出版社,1995

3 王爱英.智能卡技术.北京:清华大学出版社,1996

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。