电力电子技术
直播中

陈具松

8年用户 156经验值
私信 关注
[问答]

stm32f103 + FM1702SL射频模块程序的基本流程

STM32f103 + FM1702SL射频模块之射频读卡器

回帖(2)

罗丹

2020-12-29 09:25:33
  硬件 :stm32f103开发板 + FM1702SL射频模块
  软件:
  串口:上位机与下位机接口
  SPI接口 :控制与射频模块接口
  
举报

李嘉元

2020-12-29 09:25:48
  程序基本流程:
  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卡
  读:向FIFO写PICC_READ(0x30)+块得绝对地址,向Command写Transceive,等待FIFO长度为16,然后读出来。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分