硬件 :stm32f103开发板 + FM1702SL射频模块
软件: 串口:上位机与下位机接口 SPI接口 :控制与射频模块接口
程序基本流程:
1.配置FM1702芯片,包括复位等
2.寻卡
1)失能接收CRC、发送CRC、奇偶校验
2)关闭加密单元
3)清空FIFO
4)发送0x52到FIFO
5)发送Transceive(0x1E)命令到Command(0x01)
6)等待FIFO的长度为2时,读出FIFO中数据(这是卡的类型)
3.读取S50卡号
1)向Command中写Idle,反正当前还运行着其他命令
2)清空FIFO
3)向RegDecoderControl(0x1A)写0x28,所有接收到的冲突位之后的数据置0
4)向RegControl(0x09)写0x08,打开加密单元
5)向FIFO写0x93、0x20
6)向Command中写Transceive
7)等待卡返回卡号,当FIFO==4时说明收到卡号并读出FIFO中的卡号
4.选卡
1)使芯片进入空闲模式,向Command中写Idle,反正当前还运行着其他命令
2)向RegChannelRedundancy(0x22)写0x0F,使能接收CRC、发送CRC、奇偶校验
3)向RegControl(0x09)写入0x08,打开加密单元
4)清空FIFO
5)向FIFO写入0x93+0x70+卡号(4个字节)+卡号的BCC校验
6)向Command中写Transceive
7)等待卡返回卡号,当FIFO==1时说明收到卡的容量并
5.密码认证
1)加载密码:改变密码格式(具体查手册),得到的12字节密码数据发送到FIFO,然后向Command写入LoadKey(0x19)加载密码到密码缓存中
2)等待1)完成后 向FIFO写PICC_AUTHENT1A(0x60)或PICC_AUTHENT1B(0x61)+块绝对地址+4字节S50卡号,然后向Command写入PCD_AUTHENT1(0x0C)进行第一步认证,等待芯片进入空闲模式
3)清空FIFO,向Command写PCD_AUTHENT2(0x14),进行认证第二步,并等待进入空闲模式
4)读RegControl(0x09)看Crypto1On位是否置1,置1表示认证成功了
6.读写S50卡
1)读:向FIFO写PICC_READ(0x30)+块得绝对地址,向Command写Transceive,等待FIFO长度为16,然后读出来
- [课程]深入浅出讲解物联网超高频射频识别(UHF RFID)技术
- [方案]小马哥STM32F1主控720空心杯四轴飞行器资料(包含源代码和相关教程)
- [方案]参赛-基于STM32的H型微型四轴飞行器(硬件+源代码+文档)
- [文章]奥迪集成恩智浦先进的Trimension UWB产品组合
- [方案]【匿名四轴/六轴开源了】STM32制作的微型四轴/六轴飞行器及配套遥控器电路原理图、源代码等
- [课程]5G已至,射频先行——手机射频工程师、射频FAE入门必修课
- [文章]电磁波到底能不能穿透金属?
- [方案]开源项目作品 — STM32智能遥控器开发板,两轮和四轴飞行器必备
[直播]STM32WBA6新品剖析,解锁Matter-低功耗蓝牙应用潜能
[活动]5月15-17日STM32峰会:新品生态全揭秘,线上线下联动
[下载]LAT1511运行Ux_Host_HUB_HID_MSC通过Hub连接U盘读写不稳定问题分析
[课程]STM32电机控制软件开发软件X-CUBE-MCSDK 6x介绍