非接触式智能卡(射频卡)由于其高安全性和保密性,高速通信和易用性而被广泛应用于三表行业。
他们实现了预付费功能,大大提高了人们的生活质量。
射频卡技术在水表中的应用将是智能水表的一次巨大革命。
MFRC522是飞利浦为Sanwatch新推出的非接触式低功耗读写基站芯片。
它是用于13.56MHz非接触式通信的高集成度读卡器IC系列的成员。
该读卡器IC系列利用先进的调制和解调概念,并完全集成了13.56MHz以下的所有类型的无源非接触式读取方法和协议。
MFRC522支持ISO14443A的所有层,传输速度高达424kbps,并具有三种主机接口模式:SPI模式,UART模式和I2C模式。
本设计采用MSP430系列超低功耗16位单片机作为主控制芯片,系统的3.3V电源完全适合MFRC522电源要求,实现了低功耗的完美结合。
能量消耗。
1系统设计本系统基于TIMSP430F413单片机,工作电压为1.8V〜3.6V,内置LCD驱动器为24%26;#215; 4段,可减小体积,减小体积。
成本。
睡眠模式下的典型电流只有0.7μA;使用内部闪存保存水数据,剩余水量和水表状态信息;电源监控采用理光R3111E(可根据设定的阈值电压选择相应型号);水表阈值采用2.5V〜6V直流电动机,当水表损坏或人为时,当购买的水量低于设定值时,水表会及时报警并关闭阀门,并保存数据同时在内部Flash中; MFRC522读写芯片用于读写Mifare1S50卡,以实现预付费功能。
系统框架如图1所示。
最初的设计采用RC522UART模式与单片机通信,因为MSP430F413没有硬件串行端口,所以需要使用TIMERA模拟串行端口,如图2所示。
对于MSP430F413 ,P1.0(TimerA捕获/比较输出端口)是UART的TX,而P1.1(TimerA捕获/比较输出)是UART的RX。
2MFRC522命令寄存器和基本指令集2.1命令寄存器CommandReg(0x01)MFRC522内部有64个寄存器,分为4页:PAGE0:COMMANDANDSTATUS;第1页:COMMAND;第2页:CFG;第3页:测试。
MFRC522通过内部寄存器的读写控制与Mifare1IC卡数据进行通信。
CommandReg命令控制字如表1所示。
命令类别如表2所示。
2.2基本指令集MFRC522具有14种基本指令集,它们以不同的方式实现数据传输,如表3所示。
3软件设计MSP430F413首先初始化MFRC522的配置。
设置完寄存器后,MFRC522可以接收控制执行命令并执行操作以实现与Mifare1S50卡的通信。
Mifare1S50卡根据收到的指令执行相应的操作。
但是MSP430F413无法通过简单的命令读取和写入IC卡,它需要进行一系列操作才能完成通信。
主要包括:(1)请求唤醒; (2)防重叠; (3)选卡; (4)密码认证; (5)读写操作。
Mifare1S50卡的MSP430F413的操作流程如图3所示。
3.1请求RequestStd / RequestAll当在天线的有效工作距离内检测到该卡时,MFRC522发送一个RequestStd / RequestAll请求命令,并且该卡返回一个收到请求命令后的握手信号,以确定操作是否成功。
RequestStd(0x26)连续读卡指令RequestAll(0x52)非连续读卡指令3.2冲突(防重叠)MFRC522可以防止由于重叠多张卡而引起的数据错误。
当在天线的有效工作距离内检测到多个卡时,MCU读取序列号进行判断和检测。
Mifare1S50卡在世界上具有唯一的4字节序列号。
SN存储在Sector0的Block0的前4个字节中,第五个字节存储校验码(4字节XOR结果)。
MCU控制循环读取序列。
读取正确的序列号后,保存并退出循环;当然,如果发生错误,循环也会退出。
Sector0的Block0数据格式如表4所示。
3.3Select(选择卡)将通过防冲突操作读取的序列号SN4字节和异或的校验码发送到Mifare1S50卡。
收到卡后,请使用其自己的SN和验证码进行检查。
只能一样