基于SAM模块的CPU型IC卡燃气表的设计
时间:10-29
来源:作者:强英
点击:
预付费型智能IC卡燃气表是一种根据用户IC卡购气量实现自动计费、自动控制用气的民用高技术产品。它和售气管理系统配合可实现预付费,从而免去人工入户抄表带来的诸多不便,并可解决欠费问题,具有传统人工抄表收费式燃气表无可比拟的优越性。目前,随着国家"金卡工程"的深入开展和开发大西北"西气东输"工程的正式启动,IC卡燃气表已呈现出十分广阔的应用前景。而将普通IC卡改进成CPU卡(智能卡),将使这种燃气表的保密性得到进一步的提升。本文介绍了该产品的核心技术--基于NEC单片机的预付费型智能CPU IC卡燃气表的硬件和软件设计,论述了该IC卡燃气表的工作原理、功能、可靠性设计、低功耗低成本设计及其实际应用情况。
1 预付费型智能CPU IC卡燃气表的工作原理
预付费型智能CPU型IC卡燃气表是在常规机械燃气表体上安装以单片机为主的智能测控系统而构成的。该测控系统主要由单片机、SAM(Secure Access Module)模块、CPU IC卡接口、计量电路、保护检测电路以及气路控制阀等组成,其系统结构如图1所示。
工作原理:当用户将含有一定购气量的CPU型IC卡插入表内时,控制阀在电控系统软件控制下打开气路阀门。用户每使用一个微小的计量单位(如1/1000L,该值根据机械表的参数设定)的气体时,计量电路便发出1个计量脉冲,该脉冲如经电控系统判定为有效,即进入软件进行累计,当达到一定数目(如1/100L)时可以从存于SAM模块中的已购气量中减去1个计量单位。当剩余气量为某一设定值时,燃气表进入报警状态,并关闭控制阀,切断气路以便提醒用户购气。用户此时按一次按键后,仍然可以打开阀门继续用气;当剩余气量为零时,控制阀再次关闭,用户只有将存储一定购气量的卡插入后才能打开阀门。
2 预付费型智能IC卡燃气表实现的功能
(1)计量和控制功能:充分利用单片机计量各种煤气用量;通过控制阀控制用户用气。
(2)加密功能:采用加密强度极高的CPU卡且一户一卡,通过完善的多重内部和外部认证后,达到一定的权限才可实现购气及其他操作。
(3)显示功能:可显示剩余煤气、月累计和季度累计煤气等;各种系统状态显示,如电池欠压、报警状态、气体过流等。
(4)提示功能:当剩余气不多(等于某一设定值)时,关阀一次提醒用户购气。
(5)报警功能:电池欠压报警、防止管道破裂的气体过流报警、阀门打开及关闭故障报警、外接可燃气体报警器接口的报警、卡非正常操作报警、燃气表开盖报警等。在发生报警情况时,首先关闭控制阀,然后蜂鸣器发声、LCD显示。每次报警事件都会记录在SAM模块中,在用户下次购气时返写到用户购气卡,再由购气卡返回到售气部门,从而可供主管部门或银行查询。
(6)自我保护功能:防止IC卡口和电池接线处的高电压攻击和短路行为、开盖检测、无电池检测、选用不怕强磁场的特殊脉冲传感器等。
3 预付费型智能IC卡燃气表的硬件设计
因为本预付费型IC卡燃气表是一种面向家庭的民用产品,因此,在设计硬件时要兼顾以下的原则:低成本;低功耗,尽量延长电池寿命;高可靠型,不允许死机以及已购气数据丢失的情况发生。
3.1 控制单片机的选择
控制单片机选用NEC公司生产的8位单片机uPD789167。uPD789167是44pin封装的低成本单片机,具有24KB ROM、512B RAM、8路8位A/D转换器、外部32kHz副时钟、6个定时器、4个外部中断等资源,在掩模后具有非常低的成本。
3.2 时钟电路的设计
本设计使用了uPD789167单片机的3.58MHz的主时钟和32kHz的副时钟。前者在单片机高速工作时运行,并经过内部2分频后提供给SAM模块和外部CPU型IC卡。为了降低功耗,在上电、访问SAM模块和IC卡以外的时间里,3.58MHz的主时钟停止振荡,而32kHz晶体则一直振荡,完成内部软件走时、气量的累计和统计,并协助对单位时间内的用气量进行判断,确定是否气体过流,必要时驱动LCD模块的显示。
3.3 SAM模块及CPU型IC卡的选择
CPU卡同普通的存储卡和逻辑加密卡相比,由于采用了CPU、片上操作系统(COS)、文件系统、加解密算法等先进技术,因而具有更高的安全性。为了提高智能燃气表的保密性能,本设计选取了北京握奇公司的SAM模块和CPU卡作为安全认证、数据存储和传输的介质。该产品拥有自主知识产权,符合ISO7816、PBOC等国际标准和行业标准;支持层次化文件结构,可建立三级应用目录,适合一卡多用的要求;支持包括二进制、定(变)长记录、钱包记录等多种文件类型;包含可擦写50万次的E2PROM,其容量从0.5K~16KB可选;已有在电表等行业成功应用的经验。CPU与SAM模块的接口如图2所示。标准规定CLOCK频率必须大于1MHz,本设计中CLOCK为1.79MHz;在不访问SAM模块时,SAM模块的电源被切断,同时CPU的-RST、CLOCK脚也输出低电平,CPU的I/O脚被置为输入、内部不上拉模式。
1 预付费型智能CPU IC卡燃气表的工作原理
预付费型智能CPU型IC卡燃气表是在常规机械燃气表体上安装以单片机为主的智能测控系统而构成的。该测控系统主要由单片机、SAM(Secure Access Module)模块、CPU IC卡接口、计量电路、保护检测电路以及气路控制阀等组成,其系统结构如图1所示。
工作原理:当用户将含有一定购气量的CPU型IC卡插入表内时,控制阀在电控系统软件控制下打开气路阀门。用户每使用一个微小的计量单位(如1/1000L,该值根据机械表的参数设定)的气体时,计量电路便发出1个计量脉冲,该脉冲如经电控系统判定为有效,即进入软件进行累计,当达到一定数目(如1/100L)时可以从存于SAM模块中的已购气量中减去1个计量单位。当剩余气量为某一设定值时,燃气表进入报警状态,并关闭控制阀,切断气路以便提醒用户购气。用户此时按一次按键后,仍然可以打开阀门继续用气;当剩余气量为零时,控制阀再次关闭,用户只有将存储一定购气量的卡插入后才能打开阀门。
2 预付费型智能IC卡燃气表实现的功能
(1)计量和控制功能:充分利用单片机计量各种煤气用量;通过控制阀控制用户用气。
(2)加密功能:采用加密强度极高的CPU卡且一户一卡,通过完善的多重内部和外部认证后,达到一定的权限才可实现购气及其他操作。
(3)显示功能:可显示剩余煤气、月累计和季度累计煤气等;各种系统状态显示,如电池欠压、报警状态、气体过流等。
(4)提示功能:当剩余气不多(等于某一设定值)时,关阀一次提醒用户购气。
(5)报警功能:电池欠压报警、防止管道破裂的气体过流报警、阀门打开及关闭故障报警、外接可燃气体报警器接口的报警、卡非正常操作报警、燃气表开盖报警等。在发生报警情况时,首先关闭控制阀,然后蜂鸣器发声、LCD显示。每次报警事件都会记录在SAM模块中,在用户下次购气时返写到用户购气卡,再由购气卡返回到售气部门,从而可供主管部门或银行查询。
(6)自我保护功能:防止IC卡口和电池接线处的高电压攻击和短路行为、开盖检测、无电池检测、选用不怕强磁场的特殊脉冲传感器等。
3 预付费型智能IC卡燃气表的硬件设计
因为本预付费型IC卡燃气表是一种面向家庭的民用产品,因此,在设计硬件时要兼顾以下的原则:低成本;低功耗,尽量延长电池寿命;高可靠型,不允许死机以及已购气数据丢失的情况发生。
3.1 控制单片机的选择
控制单片机选用NEC公司生产的8位单片机uPD789167。uPD789167是44pin封装的低成本单片机,具有24KB ROM、512B RAM、8路8位A/D转换器、外部32kHz副时钟、6个定时器、4个外部中断等资源,在掩模后具有非常低的成本。
3.2 时钟电路的设计
本设计使用了uPD789167单片机的3.58MHz的主时钟和32kHz的副时钟。前者在单片机高速工作时运行,并经过内部2分频后提供给SAM模块和外部CPU型IC卡。为了降低功耗,在上电、访问SAM模块和IC卡以外的时间里,3.58MHz的主时钟停止振荡,而32kHz晶体则一直振荡,完成内部软件走时、气量的累计和统计,并协助对单位时间内的用气量进行判断,确定是否气体过流,必要时驱动LCD模块的显示。
3.3 SAM模块及CPU型IC卡的选择
CPU卡同普通的存储卡和逻辑加密卡相比,由于采用了CPU、片上操作系统(COS)、文件系统、加解密算法等先进技术,因而具有更高的安全性。为了提高智能燃气表的保密性能,本设计选取了北京握奇公司的SAM模块和CPU卡作为安全认证、数据存储和传输的介质。该产品拥有自主知识产权,符合ISO7816、PBOC等国际标准和行业标准;支持层次化文件结构,可建立三级应用目录,适合一卡多用的要求;支持包括二进制、定(变)长记录、钱包记录等多种文件类型;包含可擦写50万次的E2PROM,其容量从0.5K~16KB可选;已有在电表等行业成功应用的经验。CPU与SAM模块的接口如图2所示。标准规定CLOCK频率必须大于1MHz,本设计中CLOCK为1.79MHz;在不访问SAM模块时,SAM模块的电源被切断,同时CPU的-RST、CLOCK脚也输出低电平,CPU的I/O脚被置为输入、内部不上拉模式。