基于RFID的预付费电能表的研制

发布者:HappyHearted最新更新时间:2006-09-13 来源: 单片机及嵌入式系统应用关键字:卡片  模块  单片机 手机看文章 扫描二维码
随时随地手机看文章

引言

  随着人均用电量的大幅度增加,推动了一户一表制的使用。传统的机械式电能表测量精度有限,会带来较大误差;当用电量很大时,误差将让人难以接受。本文介绍的电子式预付费电能表是通过电能测量集成电路对电压电流的取样信号进行处理,并输出与有功功率成正比的频率信号;微处理器通过对脉冲计数来计算所消耗的电量。用户将RFID卡片(预先在电力部门购买,卡片上充有定额的现金)靠近电能表,这时MCU通过射频芯片读取卡的金额,将其存储到 EEPROM,同时此卡清零。电能表将通过声音和LCD显示来提醒用户充值。

1 硬件电路总体设计

  通过对AD7755的电能测量,与以低功耗著称的MSP430 MCU接口,再用DS1302作为时钟,将数据储存在24LC16 EEPROM中。用工作于13.56 MHz的MFRC500芯片来实现预付费卡片数据的读取。硬件框图如图1所示。

1.1 电能计量模块AD7755的特点和接口

  AD7755是Analog Devices公司生产的电量计量集成电路,技术指标超过了IEC1036规定的准确度要求。值得一提的是,国内现有替代产品,上海贝岭的BL0932可以很好地替代AD7755。这里的AD7755工作于这种方式:电流和电量通过其互感器送入各输入通道。电压和电流通道上额定值要设计在最大输出电压的半刻度上,使电表能满足过压和过流的要求。把CF频率输出端接到单片机的端口,设置SCF=0,S1=0,S0=1,CF的最高输出频率为21.76 Hz,MCU对输入脉冲进行计数,计数值的大小即反映电能消耗的多少。本设计中,分流器电阻在340 μΩ条件下,表常数为3 200脉冲/kWh,即每kWh电产生3 200脉冲。从CF经光耦输出到MCU计数。


图1? 硬件框图

1.2 MCU模块MSP430

  MSP430 MCU是TI公司的超低功耗16位单片机;采用精简指令集;具有丰富的片内外设,功能强大,并且具有很低的电能消耗,特别适用于三表设计。在此选用带有 LCD驱动和I/O丰富的MSP430F435。MSP430F435有80和100两种封装形式(在此选用小型化的80封装)。MCU作为电路的核心模块,要与各个外设打交道,不仅要负责计出AD7755所输出的计量脉冲值,还要将其转换为金额,并对各种外扩的接口芯片进行协调和处理。

1.3 时钟模块DS1302

  要保证电能表时间的准确性,时钟电路还是必需的。在此选用Dallas公司推出的高性能、低功耗、带RAM的实时时钟芯片DS1302,可以对年、月、周、日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5 V。DS1302采用三线接口与MSP430单片机进行通信。这部分主要是对DS1302的串行信号和时钟的模拟以及掉电保护电路设计。

1.4 外扩存储器模块24LC16

  作为计量仪表需要有许多数据(如电流电压的系数、分时计费表、累计计费表等)是变动的或可以通过正常手段修改的,但不能因系统中的干扰而改写,更不能因停电等事件而丢失。串行EEPROM是当前仪表设计中最合适的器件。这里选用Microchip公司生产的24LC16来实现这种功能。 24LC16是具有I2C接口的EEPROM。其容量为2048×8位,分为8个页面,每页256字节。由于MSP430F435不带I2C接口,所以在此要对其进行I2C总线模拟。其主要困难还是延时。

  液晶模块和键盘以及RS232通信相对简单,各个模块之间通过MCU来控制。

2 RFID实现预付费的过程

  RFID(Radio Frequency Identification,射频识别),是一种非接触式的自动识别技术。它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境;操作快捷方便。根据频段不同,RFID分为低频和高频系统: 低频近距离RFID系统主要集中在125 kHz、13.56 MHz频段;高频远距离RFID系统主要集中在频段(902 MHz~928 MHz)915 MHz、2.45 GHz、5.8 GHz。

  本设计采用Philips公司的13.56 MHz MFRC500 RFID芯片,Mifare Standard 1k智能卡的核心是Philips公司的Mifare1 IC S50系列微芯片。Mifare 1 IC智能卡内建有高速的CMOS EEPROM和MCU等。卡片除了IC微芯片及一副高效率天线外,无任何其他元件。卡片无电池,工作时的电源能量由卡片读写器天线发送电载波信号耦合到卡而产生电能,一般可达2 V以上,供卡片IC工作。Mifare1射频卡所具有的独特的Mifare RF非接触接口标准已被制定为国家标准——ISO/IEC 14443 TYPE A标准。

  MFRC500采用总线时序和单片机接口。由于MSP430总线不外扩,所以还要对其模拟总线时序,典型接法如图2所示。


图2 MFRC500接口图

  MFRC500采用寄存器写数据和写命令的形式来控制卡片数据的读和写。大概有以下步骤:

  ① 请求之应答。Answer to Request(ATR) . Mifare卡片处在天线范围内时,读写器向卡发出REQUEST all(或REQUEST std)命令后,卡片ATR启动,将卡片Block0的卡片类型(TagType)号共2字节传送到读写器,这样建立第一步联系。卡片返回数据 0004H。
  ② AntiCollision模块。防止卡片重叠,当多张卡片一起放入天线范围时,AntiCollision模块的防重叠功能将被启动。MFRC500将与每张卡片进行通信,取得每张卡的序列号。由于每张Mifarel卡片都具有唯一的序列号,不会相同,因此MFRC500可以通过序列号来区别,区分选中的卡片。AntiCollision模块启动时,卡片读写器将得到卡片的序列号(Serial Number)。序列号存储在卡片的Block0中,共有5字节(实际用的是4字节,另一个字节为序列号的校验字节)。返回值为卡片序列号。
   ③ Select Application模块,主要用于卡片选择。当卡片与读写器完成了上述2个步骤,读写器要对卡片读写操作,必须对卡片进行“Select”操作,使卡片真正被选中。被选中的卡片将卡片上存储在Block 0中的卡片容量“Size”字节传送到读写器。当读写器收到这一字节后,将明确对卡进行深入操作。读写器收到的字节可能是88H。
  ④ Authentication&Access Control模块,认证及存取模块。在确认了上述3个步骤后,确认已经选择了一张卡后,在对卡进行读写之前,必须对其进行验证。如果匹配,则允许进行下一步的Read/Write操作。Mifare 1卡片有16个扇区,每个扇区都可分别设置各自的密码,互不干涉,采用三重认证方式。

  做完上述所要求的步骤就可以对卡片进行读写了(以上步骤参看图3便一目了然)。在这个电路中,天线的设计和寄存器操作是值得一提的,也是 MFRC500的难点所在。MFRC500的这种卡片安全性很高,不大可能破解,所以用于电能表是很安全的。RFID读卡程序顺序如下:

  char PcdReset()//复位
  char PcdConfig()//配置
  void Init_reg()//初始化寄存器
  char Picc_Reguest(unsigned char cmd ,unsigned char snr_num[])//发送请求到卡
  char Picc_SelectCard(unsigned char cmd ,unsigned char snr_cardsnr[]);//选择卡
  char Picc_Anticoll(unsigned char cmd ,unsigned char snr_num[])//防冲突
  char Picc_Auth(unsigned char data block,unsigned char data secret_key)//认证
  char Picc_Read(unsigned char data addr,unsigned char data dataum);//读数据  
  char Picc_Write(unsigned char data addr,unsigned char data content);//写数据到卡


图3? RFID程序操作流程

结语

  完成了硬件的设计后,主要就是如何协调各个子程序的工作了,在这里采取中断方式来处理各种模块。本课题已经完成第1版的设计,且运行良好。

参考文献

[1]沈建华,等. MSP430系列16位超低功耗单片机原理与应用. 北京:清华大学出版社,2004.
[2] 魏小龙. MSP430系列单片机接口技术及系统设计实例. 北京:北京航空航天出版社,2002.
[3] 张敏.关于非接触IC智能(射频)卡及其读写设备内核技术的研究与应用. http://www.goldencard.com.cn.
[4] ISO/IEC144433:Identification cardsContactless integrated circuit(s) cardsProximity cardsPart2.3:Radio frequency Power and signal interface. Initialization and anticollision.
[5] Philips Semiconductors. Mifare MF RC500 Highly Integrated ISO14443A Reader IC Data Sheet.Philips corporation,2001.

关键字:卡片  模块  单片机 引用地址:基于RFID的预付费电能表的研制

上一篇:基于DSP56F805的便携式多功能超声波检测系统
下一篇:涡街流量计的二次仪表设计

推荐阅读最新更新时间:2024-05-13 18:14

最大限度降低电池供电的MCU系统耗电量
  今日的便携式产品设计对所用的电池会有些相互冲突的要求,例如更丰富的产品功能会增加耗电,终端用户希望电池使用时间更长,但不断缩小的产品体积和成本限制却使电池容量无法增加,因此节省电力就成为最重要的考虑。传统设计为了将耗电减到最低,通常都尽可能减少电流消耗,但其实电池的蓄电量是电压、电流和时间的乘积,要有效提升整个系统的电源效率,就必须同时考虑这三项变量。微控制器系统若以电池做为电源,这些电池又能由使用者更换,则可采用专为这些变量而设计的微控制器,因为它们可通过芯片内置电压转换等功能和传统低耗电操作模式来解决上述问题。   电池特性   多数低端和中端便携式产品都会使用可替换的电池或充电电池,这些电池还可由使用者自行更换。
[电源管理]
单片机成长之路(51基础篇)- 024 基于 N76E003 的按键按键状态
前端时间要用按键,搞了个状态机(如图): main.c 1 #include N76E003.H 2 #include SFR_Macro.h //N76E003 SFR寄存器设置宏定义 3 #include Function_define.h //功能定义 4 #include data.h 5 #include interrupt.h 6 #include button.h 7 /*--------------------------------------------------------*/ 8 // 初始化所有 9 void Init_All(void){ 10
[单片机]
<font color='red'>单片机</font>成长之路(51基础篇)- 024 基于 N76E003 的按键按键状态
ATmega64 MCU控制寄存器MCUCR
ATmega64 MCU 控制寄存器包含了电源管理的控制位。 • Bit 5 – SE: 睡眠使能 为了使MCU 在执行SLEEP 指令后进入睡眠模式, SE 必须置位。为了确保进入睡眠模 式是程序员的有意行为,建议仅在SLEEP 指令的前一条指令置位SE。一旦唤醒立即清 除SE。 • Bits 4..2 – SM2..0: 睡眠模式选择位 如Table 17 所示,这些位用于选择具体的睡眠模式。 Note: 1. 仅在使用外部晶体或谐振器时Standby 模式和扩展的Standby 模式才可用。
[单片机]
ATmega64 <font color='red'>MCU</font>控制寄存器MCUCR
AVR单片机入门系列(25)AVR PWM OC0
系统功能 AVR内部脉宽调制OC0输出实验,用LED指示PWM的频率,在PWM速度较低时,可观察到LED的闪烁。 硬件设计 AVR主控电路原理图 软件设计 //目标系统: 基于AVR单片机 //应用软件: ICC AVR /*01010101010101010101010101010101010101010101010101010101010101010101 ---------------------------------------------------------------------- 实验内容: AVR内部脉宽调制输出实验,用LED指示PWM的频率,在PWM速度较低时,可观察到LED的闪烁
[单片机]
AVR<font color='red'>单片机</font>入门系列(25)AVR PWM OC0
利用16C554实现主从式单片机远距离通信扩展
    摘要: 通过16C554完成上位主机对多台MODEM的控制,利用背靠背连接实现主机与下位机的远距离通信。该系统已成功地用于城市交通路口的信息传输。     关键词: MODEM 单片机系统 16C554 通信 引言 在交通路口的红绿灯控制系统中,需要将各器口车流量、车速等状态信息时传到主控室,另外,上位主机随时可能下发各种道路控制信息。这种远距离通信常通过MODEM以点对点的方式进行。常用MODEM通信链路的连接方式有两种。第一种是通过电话以拨号方式完成通信链接。采用这种方式,上位主机与各路口机的距离可无限远,但缺点是每个路口占用1个电话号。由于主机与路口机的通信是频繁的,若不采用专线电话,则难以保
[应用]
给初学8位单片机的一些建议
学前要求: (1)有一定的c语言基础, (2)最好还要有点数字电路知识 前言:(1)只要你是电子系,或者是计算机系的学生。C语言都是你入手专业知识的最低门槛。所以请c语言基础不是很扎实的学生能专注点,踏踏实实地把c语言的基础知识都掌握了再入手单片机,不要急于求成,本人也尝过急于求成的 苦瓜 ,那走过的弯路可要绕惠州学校好几圈。学c语言的时候,希望同学能重点关注一下数组,指针,还有结构体。能够弄懂数组跟指针之间的关系以及这三者之间的相互结合。个人认为这3者的相互结合真是相当给力,相当出色,所向无敌,好像有点夸张了,反正就是很强大。还有一点就是写代码的时候要注意一下自己的编程风格,最好能参考一下一些大公司或者大工程里面给出的规范。不
[单片机]
STC15单片机测频率
测量频率 我这里用到了一个计数器,一个定时器,看一下图片 C/T 主要是用来选择是定时器还是计数器,置0为定时器使用,置1为计数器使用,这里我把定时器0作为计数器,定时器1作为定时器来使用,可以令TMOD=0X04; P34引脚是定时器0作为计数器时对外部脉冲进行计数,每来一个脉冲就让计数的值加1,定时器1定时1s后脉冲的个数就是测得的频率 #include typedef unsigned char uchar; typedef unsigned int uint; uchar code smg ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
[单片机]
STC15<font color='red'>单片机</font>测频率
semihost/ITM机制浅析以及使用JLINK通过ITM调试stm32单片机
使用ITM机制实现调试stm32单片机,实现printf与scanf。 1. ITM简介 ITM机制是一种调试机制,是新一代调试方式,在这之前,有一种比较出名的调试方式,称为半主机(semihosting)方式。 在pc上编写过C语言的人都知道,printf可以向控制台输出,scanf可以从控制台获取输入,这里的printf/scanf都是标准库函数,利用操作系统的这些函数,我们可以很方便的调试程序。在嵌入式设备上(如stm32单片机平台上)开发工具(如MDK/IAR)也都提供了标准库函,自然也提供了printf/scanf函数,那么这些函数是否可以使用呢? 问题来了,printf向哪里输出呢?并且大部分情况下,也没有键盘,又如何
[单片机]
小广播
最新应用文章

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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