完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
|
|
程序基本流程:
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,然后读出来。 |
|
|
|
只有小组成员才能发言,加入小组>>
801 浏览 1 评论
999 浏览 1 评论
12433 浏览 0 评论
5885 浏览 3 评论
17675 浏览 6 评论
996浏览 1评论
971浏览 1评论
801浏览 1评论
3840浏览 1评论
999浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 06:09 , Processed in 0.806315 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号