datasheet

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

2008-04-10来源: 电子产品世界 关键字:单片机  预收费电度表  用户  非接触式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卡  控制字符  控制继电器  二次仪表  系统

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

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

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

推荐阅读

stm32F030C8单片机串口利用USART_IT_IDLE接收完整的一帧

;4;uart_recv_flag = 1;UART_send(USART1, "hello", sizeof("hello"));} }注意F0芯片的清除中断的方法是用ICR寄存器,在使能中断之后就要立即清除一次中断否则会不停的进入中断
发表于 2018-12-10
stm32F030C8单片机串口利用USART_IT_IDLE接收完整的一帧

单片机A/D采样的原理

在A/D转换器中,因为输入的模拟信号在时间上式连续的,而输出的数字信号代码是离散的。所以A/D转换器在进行转换时,必须在一系列选定的瞬间(时间轴上的一些规定点上)对输入的模拟信号采样保持,然后再把这些采样值转换为数字量。因此,一般的A/D转换过程是通过采样保持、量化和编码这三个步骤完成的,即首先对输入的模拟电压采样保持,采样结束后进入保持时间,在这段时间内将采样的电压量转化为数字量,并按一定的编码形式给出转换结果,然后开始下一次采样。下图给出模拟量到数字量转换过程图:1、采样定理 可以证明,为了正确无误的用5.2.2图中所示的采样信号Vs表示模拟信号V1,必须满足: 因此,A/D转换器工作时采样频率必须高于上式所
发表于 2018-12-01
单片机A/D采样的原理

单片机C语言函数之中断函数

      在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统。      中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该知道),我们在这里就不讲了,首先来回忆下中断系统涉及到哪些问题。     (1)中断源:中断请求信号的来源。(8051有3个内部中断源T0,T1,串行口,2个外部中断源INT0,INT1(这两个低电平有效,上面的那个横杠不知道怎么加上去))     (2)中断响应与返回:CPU采集到中断请求信号,怎样转向特定的中断服务子程序,并在执行完之后返回被中断程序继续执行。期间
发表于 2018-12-01

STM32单片机串口的深思

其实学单片机使用的时候,往往大家都觉得简单,很快就过了,但其实有一些东西是值得深思的,我以前在写程序的时候往往都是发送数据,那么调用重写的printf()函数就可以了,但这次的项目中用到了NRF双全工通讯,这就需要串口的收发,这回就发生了写问题,具体的流水账就不说了。简单说就是串口收可比发讲究多了。void USART1_IRQHandler(void)                //串口1中断服务程序{u8 i;if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)//如果寄存器中有
发表于 2018-11-30

STM8L15x系列单片机独立看门狗配置

时钟采用LSI时钟,频率为38000Hz;为了使看门狗周期尽量大,将分频系数设置为256分频;因此在256分频情况下,看门狗超时时间最长,时间为1.7s左右:(254+1)*256/38000 = 1.717sTwdg = (C + 1) * PreDiv / f;其中:    C为计数值,取值范围为0~254;    PreDiv为分频系数,取固定值256;    f为LSI时钟频率,固定为38000;
发表于 2018-11-30

单片机/ARM死机的常见原因及解决方案

前几天在写ARM时经常死机,莫名其妙,在这搜集了一些比较好的解答和方案,给大家参考。可能原因:一 振荡器停止振荡又可以分为电源电压不稳,或者强干扰引起的振荡器停振。二 PC指针跑飞电源电压不稳或强干扰引起PC跑飞,如果看门狗不好,也会引起死机。三 设计上对长引出线的IO没有保护,静电打在IO口上引起单片机死锁,破坏了硬件逻辑功能,导致死机。四. 复位收到干扰,引起反复复位,在反复复位当中有可能会导致死机。五.电源电压 的地 不稳  ,造成电源电压 瞬间负电压 导致单片机故障 程序不发运行综上所述:设计电路时,应该注意:1.电源稳定2.IO保护3.振荡器PCB布线要注意4.复位电路设计和PCB布线5.电源,信号线干扰路径
发表于 2018-11-30
单片机/ARM死机的常见原因及解决方案

小广播

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved
pt type="text/javascript" src="//v3.jiathis.com/code/jia.js?uid=2113614" charset="utf-8">