非接触式IC卡预收费电度表的设计

2008-04-10 16:36:42编辑:ssb 关键字:单片机  预收费电度表  用户  非接触式IC卡  控制字符  控制继电器  二次仪表  系统

  用户使用电量的计量手段的准确程度取决于电互感器及电度表的精度。现已出现了接触式IC卡预收费电度表,它使收费从过去繁琐的人工抄表、手工计价转变为用户持卡购电,实现了电费收缴管理自动化。但它不能解决无源(卡中无电源)和免接触等问题[2~8]。

  非接触式IC卡(又称射频卡)是国外近几年发展起来的新技术[1],它成功地将射频识别技术和IC卡技术结合起来,解决了无源和免接触难题。射频卡无需专门的供电电源;它与读写器间无机械接触,避免了接触故障;它的表面无裸露芯片,可防水,且不易产生静电击空及弯曲损坏等问题;射频卡使用时没有正反面。总之,非接触式IC卡具有可靠性高、使用方便、操作速度快等特点。本文采用非接触式IC卡研制成功了智能预收费电度表。

  1 工作原理

  1.1 非接触式IC卡的工作原理

  非接触式IC卡系统由读写器和非接触式IC卡两部分组成。应用系统通过读写器对卡进行操作;读卡器通过射频信号同步进行近距离通讯,并为卡上芯片提供能量;非接触式IC卡响应读写器的指令,并报告处理的结果。非接触式IC卡通过连接IC芯片的线圈在特定交变磁场中耦合获得高压能量,非接触式IC卡的读写器通过发射线圈发射交变强磁场,强予IC卡能量,通过磁场的断、续编码写入数据,并通过线圈感应IC卡发生的磁场阅读IC卡发来的数据;IC卡通过交变磁场获得能量,通过检验磁场的数、续获得读写头写来的数据,并按设定的模式编码、调制,向读写头发出数据。

  本系统采用上海华虹集成电路公司开发的SHC1701 RF读写模块。它主要由射频和SHC1501大规模集成电路构成,共同安装在PCB板上,同时安装屏蔽罩,可完成读写器与IC卡之间的各种交互功能,包括调制/解调、加密/解密、认证、读写、加/减等,并具有同微处理器的接口。其基本结构如图1所示。

  基本结构

  

  非接触式IC卡与读写器的通信内容包括复位应答、防冲突、选择卡片、相互认证、对数据块的操作和中止。

  1.2 预收费电度表的工作原理

  预收费电度表可分为电子式和机电式两种,它们的区别在于电能变换元件不同。前者将电压、电流进行A/D转换,再将采样值相乘并累计,得到用户消耗的电度数;后者借用原感应式电度表的机芯,通过光电传感器读取转盘数据数得到用户消耗的电度数。为节省成本,选用机电式电度表。

  本系统的工作原理为:

  (1)用户持IC卡到供电部门交款购电时,供电部门把用户的IC卡放在与PC机相连的读写器上,由写卡程序在IC卡上写入与用户交款数相符的一定电度数。

  (2)用户把IC卡带回家,将卡掠过家中预收费电度表的读定,卡中电度数被主机读出,与预收费电度表中来剩余的电度数相加。由于机内采用备用电池,不怕掉电失去数据。

  (3)电表表盘转动时,由红外发射接收管把表盘数变成电脉冲送入单片机。单片机记录表盘的转数,当转数等于电表常数时,通过单片机控制使内存中的剩余电度数减去一度。

  (4)单片机随时监测内存中剩余电度数是否小于15度。如是,则点亮预告用电量将尽的发光二极管指示器,提示用户持卡到供电部门重新购电。

  (5)当单片机发现用户电表中剩余电量完全用完时,控制继电器切断用户供电电源。

  (7)系统采用VB的通讯控件通过RS232与单片机进行通讯。微机通过事先约定好的字符来实现对单片机的控制,如小区的管理中心定期通过RS232串行通讯口读取用户电度表的使用电量和剩余电度数,并制成数据库加以保存。供电部门可通过Internet对小区采集的数据进行访问和管理,从而实现了供电管理部门网络化的管理手段。

  (8)本装置属于二次仪表,精度主要取决于一次仪表。只要表盘转动正常,二次仪表不会引入误差。

  2 硬件电路

  非接触式IC卡预收费电度表的硬件电路结构图如图2所示。图中主控单元采用AT89C52单片机,其内有8K字节的快速擦写存储器(FLASH),无需外接程序存储器(EPROM)。外接电路主要包括:四位LED显示电路、电表表盘检测电路、控制供电的继电器电路、振铃控制电路、RS232串行通讯电路、看门狗复位电路、电源控制电路以及控制非接触式IC卡的SHC1701读写模块。

  

  

  

  

  SHC1701 RF模块是IC卡读写器的核心单元,它由SHC1501专用电路和RF电路等组成,覆盖了所有对非接触式IC卡SHC1101的访问操作。IC卡读写模块及显示电路与单片机的接口如图3所示。图中采用4位共阳极的动态数码显示管,显示字符由单片机P0口送至锁存器74LS374锁存,再经显示驱动芯片ULN2003驱动数据管显示,P1.0~P1.3分别控制每一位的动态显示。显示电路用显示可供使用的电度数。当读卡发生错误时,将显示错误信息。在供电部门存款时,将显示存入电卡中的电度数。

  

  

  

  

  电表转盘读数头(红外发射接收管)产生的脉冲信号经一个非门输出到单片机的P1.4口,单片机实时对P1.4口进行监测。

  RS232串行通讯电路采用MAX232芯片,实现单片机与微机的数据交换。微机主要采用VB的通讯控件通过RS232与单片机进行通讯,通过事先约定好的字符对单片机实现控制。

  看门狗电路由4538单稳电路组成。初上电时,CLR端为低电平,使输出Q为低电平,从而使系统复位。正常工作时,单片机在每个主程序循环时发出一个低电平脉冲,触发单稳;当程序受干扰跑飞时,单稳因得不到触发脉冲而复位,此时,输出端Q=0,使系统复位。

  振铃控制电路由蜂鸣器、两个三极管和电阻组成。当单片机的P1.7端发出一个高电平时,触发蜂鸣器蜂鸣。为使系统在停电时也能正常工作,由两组电源给系统供电,一组是将220V/50Hz的市电经变压、整流、稳压得到5V直流电,另一组由12V/4A的可充电电流经斩波、隐压、稳压得到5V直流电。一般由市电供电,并对可充电电池充电。市电停电时由电池供电,12V/4A的可充电电流能使系统连续工作24h以上。

  3 软件设计

  本非接触式IC卡预收费电度表的程序采用了模块化的设计,整个系统由用户端电度表计费程序和供电部门存未及管理程序两部分组成。每部分程序又由单片机系统程序和VB用户接口程序两部分组成,单片机程序和VB程序之间采用VB的通讯控件MSComm通过RS232进行通讯,通讯协议使用基于ASCII码的查询命令、中断收发字符。微机通过事先约定好的字符对单片机实现控制,单片机通过判断微机发来的不同字符,执行不同的单片机子程序。

  3.1 用户端电度表计费程序

  3.1.1 单片机系统程序的主要功能

  (1)读取有效的非接触式IC卡功能。对卡进行防冲突、密码认证、卡号认证等操作,并读出卡中存储的数据,然后将卡清零、停卡。

  (2)完成电度表的预收费功能。将从IC卡中读出的电度数与单片机内存剩余的电度数相加,并存回内存。

  (3)显示功能。系统周期性地扫描,动态显示机内剩余的电度数。此外,当读写IC卡发生错误时,显示出错信号。

  (5)电度计数功能。系统实时监测电表转盘读数头(红外发射接收管)发来的脉冲信号,当脉冲信号由高电平变为低电平时,计数器COUNT加1;而当COUNT值等于电表常数(转/度)时,剩余电度数减1,用电量加1,同时COUNT清零。

  (6)报警断电功能。当机内剩余电度数小于15度时,点亮预告用电量将尽的发光二极管指示器,提示用户持卡到供电部门重新购电。而当用户电表中剩余电量完全用完时,控制继电器切断用户供电电源。用户只有再次存入电度数后,才能继续供电。

  单片机系统程序由主监控程序、IC卡处理子程序、电度计数子程序、串行中断服务子程序等组成,其框图分别见图4(a)、(b)、(c)、(d)。

  

  

  

  

  

  

  

  

  3.1.2 VB用户接口程序的主要功能

  (1)显示。根据输入的用户编号,显示相应的用户信息。

  (2)采集。将用户编号通过通讯控件发送给单片机,单片机认证用户编号后,返回该用户的用电量和剩余电度数。

  (3)写入。将采集来的数据。加上用户编号和日期,一并写入数据库,以供查询。

  (4)查看。查看当用各用户的用电量情况及剩余电度数;查看所有的用电情况。

  3.2 供电部门存款及管理程序

  3.2.1 单片机系统程序的主要功能

  (1)系统初始化设置。设置寄存器地址、中断源入口、加载IC卡认证密码以及设置串行口、定时器0和定时器1的工作模式等。

  (2)接收微机发来的控制字符。执行串行中断服务子程序,如控制字符为R则执行对IC卡的询卡、防冲突、选卡、认证等操作,并返回给微机卡号;如控制字符为W则将用户购买的电度数写入IC卡,再读出写入的电度数,然后停卡。

  (3)显示功能。显示IC卡中存入的电度数,当对IC卡操作过程中有任何错误时,将显示错误信息,提示用户。

  程序由主程序程序和串行中断服务子程序等组成,它们的框图见图5(a)、(b)。

  

  

  

  

  (1)IC卡存款功能。用户持卡到供电部门存款,工作人员将放在读写器上,按“读卡”按钮,微机发送字符“R”给单片机,单片机执行相应的中断处理后返回卡号。系统根据返回的卡号显示对应的用户信息,确认无误后,输入用户交纳的金额,系统自动转化成电度数。按下“存款”按扭,将电度数存入IC卡,同时将存款的相关信息写入数据库,以供查询。

  (2)查询功能。查询用户信息、IC卡信息以及用户的用电情况,可以根据输入的用户编号或电卡号进行有选择地查询。

  (3)维护功能。对数据库的维护包括添加新的记录、删除不需要的记录以及对现有记录的更新。本系统所使用的数据库由MSAccess建立,通过VB的数据对象控件与用户界面关联,对数据的所有操作都实时地更新所关联的数据库。

  本文将非接触式IC卡技术与计算机技术相结合,研制出多功能电量计量收费装置。该系统实现了用电收费的电子化,改变了先用电后收费的不合理状况,促进了用电计量、收费的科学化管理。该装置利用了老式机械表的功能和结构,降低了改造的成本,适于推广使用。

 

关键字:单片机  预收费电度表  用户  非接触式IC卡  控制字符  控制继电器  二次仪表  系统

来源: 电子产品世界 引用地址:http://www.eeworld.com.cn/gykz/2008/0410/article_762.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:DS1820及其高精度温度测量的实现
下一篇:基于TMS320DM270平台的数码摄像机的设计与实现

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

Cortex-M单片机下载数据到外部flash

主机环境:Windows 10 64bit开发环境:MDK 5.23目标板:LPC54114之前在NXP社区得到一块LPC54114的板卡,是由万利制作的,LPC54114是一款双核MCU,包含了一颗M4主核和一颗M0+从核,利用该板卡学习了一下双核MCU的开发流程,板卡中提供了一颗W25P80FLASH,之前拥有的板卡都没有挂外部FLASH,刚好之前利用LPC54608学习TouchGFX时可以把图片资源下载到外部FLASH中,因此借此机会来学习一下如何把数据下载到外部FLASH。平时烧录代码我们都是烧录到MCU内部的FLASH中,如下图:可以看到下载的时片上256KB的FLASH,该算法文件是由DFP包提供的,具体
发表于 2018-07-23 20:09:32

51单片机实现LED流水灯(数组方式和位运算方式)

/* 名称:51单片机实现LED流水灯(数组方式和位运算方式)说明:今天又重新开始系统的学习51了,LED就算个开端吧。 要注意两点: 1、sfr和sbit是C语言扩展出来的关键字。其中sfr用于对特殊功能寄存器进行声明,sbit用于对某些特殊功能寄存器的某位进行声明。这里和宏定义很相似,但是不能用宏定义进行替换,对于前者是因为51单片机的寄存器存在于内部空间0x80-0xFF,这空间属于直接寻址,51特殊功能寄存只能直接寻址,不能间接寻址。如果用宏定义的话,在翻译成汇编时就会认为是通过总线访问对应的外部地址了。对于后者,sbit是定义一个标志位,也叫位变量。而类似于#define key1 P3
发表于 2018-07-21 13:08:22

51单片机之按键实验

/* 名称:51单片机之按键实验 说明:键盘是计算机最基础、最重要的输入设备之一。对于键盘来说,其工作任务大体可以分为以下三项: (1)、按键识别。即判断有无按键按下。 (2)、求键值。判断哪个键被按下。 (3)、执行相应的操作。 在这里,实验所用到的键盘为独立键盘和矩阵键盘。对于独立键盘,它的每个按键需要占用一个IO口。一般来说,按键一端接地,另一端接IO口。当按键按下时,线路被导通,IO口被拉低,即状态为‘0’。所以在使用是我们一般把对应IO口置成高电平,然后不断检测此IO口是否被拉低,从而判断按键是否按下。 对于矩阵键盘来说,它用较少的IO口完成较多个按键
发表于 2018-07-21 13:07:26

51单片机之数码管显示实验

/* 名称:51单片机之数码管显示实验 说明:对于数码管来说,其本质上可以理解为按照一定规则组合的多个二极管。其使用只需按照特定规则显示对应的二极管即可。要稍微注意一点的就是多个数码管的显示分为静态显示和动态显示。静态显示就是每个二极管显示的内容是一样的,通过片选信号来决定是哪个二极管该显示。动态数码管,即利用人眼的视觉停留效果,快速扫描,快速显示每个数码管的内容,使得每个数码管看起来好像是一起显示的一样。 本实验编写了几个数码管显示的简单程序。在此不做赘述了。*/#include <reg52.h>#define uchar unsigned char//共阳极段码(a在高位,dp在低位
发表于 2018-07-21 13:06:23

STC单片机片内EEPROM的读写

宏晶STC很多系列的单片机片内都集成了EEPROM存储器(其实是Data Flash),方便用户使用,想得真周到!今天写了个小程序,测试了一下,工作正常。下面就上我自己写的源程序。本人在STC89C52RC单片机上试验成功。首先是stcEEPROM.h头文件内容:/*When         Who     Remarks----------------------------------2011-Oct-06  黄长浩  初始版本 */ #ifndef __STCEEPROM_H__#define
发表于 2018-07-17 21:12:48

AVR单片机ATMEGA8 USART的使用

;       [Bus Signal]  TX, RX, CK    USART支持同步模式,因此USART 需要同步始终信号USART_CK(如STM32 单片机),通常情况同步信号很少使用,因此一般的单片机UART和USART使用方式是一样的,都使用异步模式。在博主目前的项目中使用通信主要是通过RS485协议来进行通信,RS485通信是工业上非常常见的半双工异步通信典型通信协议,特征是通信的设备都挂载到主线上,使用差分信号来判断收发,且同一时刻只能进行一个功能(收信息或者发信息)那么在博主这边的软件处理方式如下;首先要
发表于 2018-07-16 20:41:43

小广播

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved