基于SAM模块的CPU型IC卡燃气表的设计 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

基于SAM模块的CPU型IC卡燃气表的设计

来源:维库开发网  作者:中国一卡通网 收编  发布时间:2010-06-21 16:16:21  字体:[ ]

关键字:SAM  CPU  IC卡  燃气表  

摘   要:预付费型智能IC卡燃气表是一种根据用户IC卡购气量实现自动计费、自动控制用气的民用高技术产品。它和售气管理系统配合可实现预付费,从而免去人工入户抄表带来的诸多不便,并可解决欠费问题,具有传统人工抄表收费式燃气表无可比拟的优越性。


    3.5 看门狗电路

    在有大容量电容的供电电路中,电源充放电速度缓慢,普通的RC复位电路经常不能产生正确的复位。在用户的正常使用过程中,更不允许燃气表死机的情况出现。为此采用74HC14设计了兼有上电复位、看门狗、低功耗低成本的振荡器型的复位、监控电路(低成本看门狗电路),如图4所示。图中,30kΩ电阻配合104电容及二极管,组成RC上电复位;在3V工作电压时,该看门狗清除时间间隔必须小于0.9秒。本设计的燃气表中,CPU每0.5秒唤醒1次,以检测并累计燃气脉冲,同时发出高电平宽度为20μs的清狗脉冲。另外,74HC14的其他门还用于燃气脉冲的整型电路和IC卡座时钟线的隔离电路中。 

    3.6 控制阀驱动电路

    燃气阀门采用了专门设计的低功耗自保持阀门,只有在开关过程中耗电,平常不耗电。电磁阀驱动电路如图5所示。开关电压最低要求2.5V,开阀时最大电流约120mA,最大时间2秒;关阀时消耗电流最大为100mA,最大时间1秒。开阀有到位检测开关,如果开阀超时,则CPU发出阀门故障报警信号,同时关闭阀门。阀门驱动电路采用了0.22ΩF/5.5V电容的单独供电电源VDD(见图3),以保障开关阀门成功。 

    3.7 IC卡接口电路

    IC卡接口直接执行人机交互,最有可能受到有意或无意的损坏,最常见的现象是短路、高压串入,因此接口电路必须具备完善的保护功能。IC卡座及保护电路如图6所示。CPU发现IC SWITCH为低电平后,知道有卡插入,则启动3.58MHz晶体振荡,输出-IC PWR CTRL低电平,给卡座供电,随后经过5ms延时再从IC VCC端检查卡座的电源是否准确。这可以用单片机的A/D转换器检测,如果电压太低,立即关闭供电放弃读卡。每一根信号线上具有由正温度系数热敏电阻(MZ12A-75S102M008,阻值为1000Ω,动作电流16mA)和嵌位二极管(1N4148)构成的限流限压保护电路,以防止外部高压串入。因电源线上阻值不能太大,热敏电阻要单独选取,故选择MZ12A-3R5N010(阻值为3.5Ω,动作电流200mA)。 

    3.8 开盖检测电路

    如图7所示,S1是一个簧片,在燃气表出厂表壳盖上时是闭合的,当燃气表被打开表盖时,S1断开。图7中左、右2个电路虽然都能检测到开盖,即开盖时“开盖检测”端子都有电平变化,但左边电路的功耗明显比右边电路的功耗大。首先,由于CPU的输入管脚允许有最大3μA的漏电流,200kΩ的电阻不能再增大阻值,否则会影响高低电平的判断。设VCC=3V,左边的静态电流为3V/200kΩ=15μA,右边的静态电流为3V/1MΩ=3μA,其电流是前者的1/5,故本设计采用右边的电路。CPU在每0.5秒唤醒时间内检测“开盖检测”端子,一旦发现开盖,将关闭阀门、报警、并记录一次开盖事件到SAM模块中。 

    3.9 报警及LCD显示电路

    uPD789167单片机以串行通信的方式驱动LCD模块实现显示,但LCD平常不显示时断开电源以节省电能。另外,设置有蜂鸣器报警电路,以便在刚发现故障时提醒用户。

    4 低功耗设计技术

    本燃气表的设计是:不旦要有CPU保持实时时钟走时、带看门狗,而且功耗要很低(平常的工作电流略大于30μA),为此采用了如下一些措施,以保证本机的低功耗运行。

    4.1 采用低功耗的器件

    本设计中尽可能采用低功耗器件,如3V稳压器采用了理光的低功耗产品;采用低功耗的可自保持的阀门,只有在开关过程中才会耗电。

    4.2 采用低耗电的电路设计

    (1)电池电压降至3V后才给CPU及其他外围电路供电,使芯片工作于低电压时消耗电流较少。

    (2)SAM模块和IC卡座平常断电,只在读写认证时才供给电源。

    (3)在不影响CPU电平判断的情况下,使用大一些的电阻(如开盖检测和电池检测电路中)。

    脉冲采样电路也只在有脉冲时瞬间耗电。

    4.3 软件配合实现低功耗

    (1)让单片机尽量低速工作,软件只在访问SAM模块及CPU IC卡时才让3.58MHz的晶体振荡,平时只用32kHz的晶体就可以完成工作。

    (2)合理配置CPU的各个管脚,输出脚输出合适电平,使平常不输出或吸入电流;输入脚平常一般不用内部上拉电阻而用外部电阻,因为内部上拉电阻较小,掩模时典型值为30kΩ,当输入低电平时耗电较多;CPU多余的管脚设置为输出模式,且输出低电平。

    (3)CPU在32kHz晶体下工作时,处于HALT模式,每0.5秒时间到、或中断唤醒一次,软件检查几个中断标志、计数、走时、清狗后立即转入HALT睡眠,从而有效节省电能。

    5 预付费型智能IC卡燃气表的软件设计

    5.1 软件功能模块

    软件用NEC78k0S C语言编写,采用模块化、层次化的编程方法。核心部分包括以下几个模块:SAM、CPU卡的通信模块(T=0,字符方式,串行速率9.6Kbps);SAM、CPU卡的认证和读写模块;燃气计量模块;电源管理模块;LCD显示模块;报警模块;工厂测试模块等(由于篇幅原因,在此不细述)。

    5.2 SAM和CPU卡的认证过程

    本燃气表中,软件必须接收和处理多种CPU卡:用户购气卡、检查卡、厂家生产测试卡(如阀门检测卡等6种)、修改主密钥卡等。每种CPU卡的目录文件结构和认证访问方式不尽相同,以使用用户购气卡购气后在燃气表上插卡为例,说明软件认证过程:

    (1)从卡的可读二进制文件中识别出卡的类型,即用户购气卡。

    (2)燃气表从用户卡中读取卡序列号和用户号,并比较用户号是否与SAM中存储的一致,不一致则拒绝读卡。

    (3)若用户号一致,IC卡燃气表将卡序列号送至SAM模块。SAM模块对卡序列号进行加密,并生成相应的内部认证密钥。

    (4)燃气表用内部认证密钥对用户卡做内部认证。

    (5)燃气表用气表外部认证密钥对用户卡做外部认证。

    (6)燃气表从用户卡购气应用二进制文件中读取购气数据,判断其完整性,同时判断购气次数是否与IC燃气表内一致。若不一致则向IC卡燃气表返写应用二进制文件(返写数据)退出;若判断一致,则进入(7)。

    (7)由IC卡燃气表用气量外部认证密钥对SAM模块进行外部认证,若一致则将购气量及状态数据存入SAM模块,并返写数据退出,完成购气操作;否则只返写数据退出。

    6 结束语

    基于NEC单片机和SAM模块的CPU IC卡预付费型燃气表,在安全保密性、防攻击、低功耗、低成本等方面作了有益的探索,经过几个月的实际使用,已证明达到了预期的效果。

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖