基于MSP430F413单片机和MFRC522芯片实现低功耗预付费水表的设计

非接触式智能卡(射频卡)以其高度安全保密性、通信高速性、使用方便性广泛应用于三表行业,实现预付费功能,使人们生活质量有了很大的提高。射频卡技术应用于水表将是智能水表的一次伟大革命。
mf rc522是philips公司针对三表最新推出的一款非接触式低功耗读写基站芯片,它是应用于13.56mhz非接触式通信中高集成读卡ic系列中的一员。该读卡ic系列利用了先进的调制和解调概念,完全集成了13.56mhz下所有类型的被动非接触式通读方式和协议。mf rc522支持iso14443a所有的层,传输速度最高达424kbps,具有三种主机接口方式:spi模式、uart模式、i2c模式。
本设计采用msp430系列超低功耗16位单片机为主控芯片,系统3.3v供电完全适合mfrc522供电要求,实现了低功耗的完美结合。
1 系统设计
该系统以ti msp430f413单片机为核心,工作电压为1.8v~3.6v,内置lcd驱动器24%26;#215;4段,可以缩小体积、降低成本,在休眠模式下典型电流仅为0.7μa;采用内部flash保存用水数据、剩余水量和水表状态信息;电源监控采用理光r3111e(可根据设定的门限电压选择相应的型号);水表阈门采用2.5v~6v直流电机,当人为破坏水表或所购买水量低于设定值时,水表报警并及时关掉阀门,同时将数据保存在内部flash中;采用mfrc522读写芯片读写mifare 1 s50卡片实现预付费功能。系统框如图1所示。
本设计利用rc522 uart模式与单片机通信,由于msp430f413没有硬件串口,故需使用timera模拟串口,如图2所示。
对于msp430f413而言,p1.0(timera捕获/比较输出口)口是uart的tx,p1.1(timera捕获/比较输出口)是uart的rx。
2 mfrc522命令寄存器及基本指令集
2.1 命令寄存器commandreg(0x01)
mf rc522内部有64个寄存器,共分4页:page0:command and status;page1:command;page2:cfg;page3:test。mf rc522通过内部寄存器的读写控制与mifare 1 ic卡数据通信。
commandreg命令控制字如表1所示。
command命令类别如表2所示。
2.2 基本指令集
mf rc522有14种基本指令集,实现不同方式的数据传输,如表3所示。
3 软件设计
msp430f413首先对mf rc522进行初始化配置,寄存器设置好后,mf rc522可以接收控制执行命令执行操作,实现与mifare 1 s50卡片通信;mifare 1 s50卡根据接收到的指令进行相应操作。但是msp430f413并不是通过简单的指令就可以读写ic卡片,需要一系列的操作才能完成通信。主要包括:(1)请求唤醒;(2)防重叠;(3)选择卡片;(4)密码认证;(5)读写操作。
msp430f413对mifare 1 s50卡片操作流程,如图3所示。
3.1 请求request std/request all
当在天线有效工作距离内检测到卡片,mf rc522发送request std/request all请求指令,卡片接收到请求指令后返回握手信号,从而判断操作是否成功。
request std(0x26)连续读卡指令
request all(0x52)非连续读卡指令
3.2 atcollision(防重叠)
mf rc522能够防止多张卡片重叠造成的数据错误。当在天线有效工作距离内检测到多张卡片时,mcu读取序列号进行判断检测。
mifare 1 s50卡具有全球唯一4个字节的序列号,sn存放在sector0的block0内前4个字节,第5个字节存放校验码(4字节异或结果),mcu控制循环读取序列号,直到读取一个校验正确的序列号后,保存并退出循环;当然出错也会退出循环。
sector0的block0数据格式如表4所示。
3.3 select(选择卡片)
将anticollision操作读取的序列号sn 4个字节还有异或的校验码发送到mifare 1 s50卡上,卡片接收后与自身sn及校验码核对,只有完全一样才能选定卡片。
3.4 authentication(密码认证)
mifare 1 s50卡有1kb容量,分为16个扇区:sector0到sector15,每个sector(扇区)包括4个block(块),每个block具有16个byte的存储容量。block被分为block0至block3;整个mifare 1 s50非接触式智能卡共有64个block。
每个sector的block3都存放着本扇区自己的密码keya、keyb和access bits。通过access bits设置密码方式和数据块类型(write/read或value)。
只有密码完全认证通过后,才可以对卡片进行write/read操作。
3.5 write/read(读写操作)
authentication密码认证通过后,可以对64block进行读写操作。其中sector0中的block0只能执行读操作。mifare 1 s50读写时是以block为单位的,读或写都是针对整个block 16字节的数据,不能单个字节读写。为了确保数据的正确性,可进行数据校验。
3.6 decrement/increment(增值和减值操作)
当数据块通过设置access bits配置成value型时,可以对其进行decrement/increment操作。为了防止数据出错,value block设有复杂的数据格式。value重复存放3次,其中原码存放2次,补码再存放1次;adr重复存放4次,其中原码存放2次,补码再存放2次。
value:增值或减值 adr:操作block地址
执行decrement/increment后,把结果存放在内部数据缓冲寄存器中,等待transfer指令操作写入指定的目标block中。
3.7 restore
restore指令是将mifare 1 s50内某一block内容读出,存放在内部数据缓冲寄存器中,等待tranfer指令操作写入指定的目标block中,相当于复制block a到block b中。
3.8 transfer(传送)
transfer指令操作是将内部数据缓冲区内数据传送到目标block中。执行decrment/increment和restore指令操作都需要transfer指令,数据才能成功传输。
3.9 halt(停机)
halt指令操作将结束mf rc522与mifare s50通信。
mf rc522作为新一代非接触ic卡与传统的ic卡相比有着很大的优势,具有较强的保密性能和防碰撞功能,特别是采用低电压供电大大降低功耗,能够与超低功耗msp430单片机结合实现低功耗预付费水表的设计。


Wolfson推出高效能多信道音频方案
7nm处理器产能现在成为问题了吗
手机壳气密性检测设备的工作原理以及应用
研究人员设计了一款能够实时测量血小板强度的微流控装置
北京宝沃复活失败,申请破产清算
基于MSP430F413单片机和MFRC522芯片实现低功耗预付费水表的设计
腔镜手术机器人研发商术锐完成近3亿元B轮融资
IC设计:软硬件交互-polling方式
UART自动波特率识别程序设计方案
调节阀和控制阀的区分
紫光集团与中国电信在芯云领域已展开良好合作
苹果供应链还没完全恢复 大规模生产要到5月份
世平集团所代理产线ADI针对DSC提出一系列解决方案
串口转WIFI模块
机器人和人工智能科技成为常态,会造成现有劳动力的失业吗?
消息 传滴滴亏损109亿 苹果春季发布会时间3月25日
Iphone5S/5C拆机秘密武器大曝光!
一款轻巧多模的无线充电鼠标雷柏M300S
德国对特斯拉触摸屏失灵问题进行调查
是德科技出席首届“全球5G 大会”并展示最新5G创新与合作成果