ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:40.13KB ,
资源ID:16845500      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16845500.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(stm32NFC芯片PN532的使用Word格式文档下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

stm32NFC芯片PN532的使用Word格式文档下载.docx

1、读写器模式,支持 FeliCa机制读写器模式,支持ISO/IEC 14443B机制卡操作模式,支持ISO 14443A / MIFARE卡操作模式,FeliCa机制ISO/IEC18092,ECM340点对点支持主机接口:SPI接口I2C接口串行UARTPN532的操作形式如下图所示: 卡操作模式读写器模式三、PN532模块搭配ISO/IEC14443Type A-4卡片我使用的是PN532模块搭配ISO/IEC14443Type A-4卡,使用串口模式。这个卡是使用APDU(Application Protocol Data Unit-应用协议数据单元)的指令形式操作的。我拿到的卡片是由发卡

2、商提供的,发卡指的是卡的初始化,即卡号写入和密钥写入的过程,完成后卡片才可发放出去;发卡:注入卡号,只能注入一次;注入密钥,各个密钥只能注入一次;接口调用:S C0 F5 00 01 00001F /卡号 55 55 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF 03 FD D4 14 01 17 00线没接错的话就会返回:D 00 00 FF 00 FF 00 00 00 FF 02 FE D5 15 16 002、寻卡寻卡是涉及到卡片的第一个步骤,nfc对卡的操作都是先寻找卡的,若寻不到卡,则后续的读写操作将无法进行;反之,若寻到卡,则后续的读写

3、操作过程中将不再对卡片进行身份确认。寻卡命令: 00 00 FF 04 FC D4 4A 01 00 E1 00上面的数据中:00 00 FF-帧头,与卡相关的所有命令都要包含该头;04-包长度,即“D4 4A 01 00”的长度;FC-包长度校验:0x100-包长度;此处0xFC=0x100-0x04;D4-方向标识码:数据方向是stm32(主机)至PN5324A-寻卡命令标识码01-卡数量,最大是2,PN532一次只能同时处理两张卡00-PN532工作模式:106 kbps type A (ISO/IEC14443 Type A)E1-发送的数据校验:等于:0x100-(0xff&(0xD

4、4+0x4A+0x01+0x00)00-暂时没发现有什么卵用;对于我的卡,若寻到卡,则返回:D 00 00 FF 00 FF 00 00 00 FF 20 E0 D5 4B 01 01 00 84 20 0A 01 23 45 67 89 AB CD EF AA 55 0E 78 77 84 03 66 52 57 45 32 50 52 4F 4D 29 00返回的命令也是有规则可循的,但你看上面太长了,对返回的命令部分,在下面再讨论吧(下面短)。3、读卡号 C0 F1 00 01 08R 62 00 00 00 00 00 00 1F 90 00所以读卡号的命令是:00 00 ff 08

5、f8 d4 40 01 c0 f1 00 01 08 31 00看吧:00 00 ff-帧头;08-包长度(d4 40 01 c0 f1 00 01 08);f8-0x100-0x08;d4-主控至PN532;40-数据读写命令;01-卡1;c0 f1 00 01 08-读卡号命令;31-数据校验:(0xd4+0x40+0x01+0xc0+0xf1+0x00+0x01+0x08)我的卡,返回的命令码是:D 00 00 FF 00 FF 00 00 00 FF 0D F3 D5 41 00 62 00 00 00 00 00 00 1F 90 00 D9 00 现在短了,可以分析一下啦:00 0

6、0 FF 00 FF 00-ACK(应答)指令码:千万别以为收到应答码就以为卡片正常读写了,因为不正常读写也会收到应答码哟。原因是你操作PN532芯片,只要芯片工作正常,都会有应答码的啦。所以还得往下看,看后边的命令码是否符合规则。00 00 FF-还记得吗?帧头-与卡相关的所有命令都要包含该头,所以无论是发送还是接收,都要包含帧头的。0D-包长度,长度13(从D5到90 00正好是13)F3-包长度校验D5-方向标识码:PN532至主控41 00-读正确标志位,若为其它如41 17之类的数据,就要注意了哦,说明读出错辣。62 00 00 00 00 00 00 1F-卡号;卡号为8字节BCD

7、编码,最大卡号支持16位数字。卡号小于16位数字时填充F。90 00-APDU命令正确时的通用码子(错误时为69 00);D9-返回的数据校验:0xff-0xff&(SUM(00 00 FF 0D F3 D5 41 00 62 00 00 00 00 00 00 1F 90 00)4、外部认证为了安全考虑,卡片需要进行外部认证。其步骤如下:外部设备从卡片获取16字节随机数;外部设备使用“外部认证密钥”对随机数使用SM4_ECB方式加密;外部设备将加密结果送入卡中,卡片对其进行解密,并对比随机数与解密结果是否一致;卡片返回认证结果。 C0 84 00 00 10 /读取随机数R 1B 93 C6

8、 32 91 A3 65 8B 2E D7 5D 90 49 B9 34 4F 90 00 C0 82 00 00 10EC15BF495C66D569C654C02AFBCAA3A2 /写入加密结果指令R 90 00 /验证成功所以主控首先要获取卡片的随机数:(命令码解析规则和前述一样,在此不再赘述啦)00 00 ff 08 f8 d4 40 01 c0 84 00 00 10 97 00返回:D 00 00 FF 00 FF 00 00 00 FF 15 EB D5 41 00 15 5E 1E A0 04 77 67 25 4B 0B E4 9B 7D 60 21 05 90 00 4A

9、 00分析得到卡片发来的随机数为:15 5E 1E A0 04 77 67 25 4B 0B E4 9B 7D 60 21 05(当然,每次获取的数都不会相同)接着主控获取上面那串16字节随机数,使用已经写好的SM4加密算法对其进行加密。加密后的数据如下:A5 96 7E 70 C3 B8 55 9E BB A7 E4 BA 12 95 7D 2E然后外部设备将加密结果送入卡中,写入加密结果的指令为:00 00 ff 18 e8 d4 40 01 c0 82 00 00 10 A5 96 7E 70 C3 B8 55 9E BB A7 E4 BA 12 95 7D 2E B0 00D 00 0

10、0 FF 00 FF 00 00 00 FF 05 FB D5 41 00 90 00 5A 00 看到90 00就可以安心了,外部认证成功!5、刷卡消费出于安全考虑,刷卡消费过程还需要使用消费密钥进行数据的加解密,步骤如下:外部设备从卡片获取14字节随机数外部设备使用“消费密钥”加密14字节随机数+2字节消费金额,组成16字节消费报文;外部设备将加密结果发送至卡片;卡片解密消费报文,判断消费报文是否正确,执行消费,并拼接“DONE”+2字节消费金额+“AMOUNT”+4字节余额,用消费密钥加密后返回给外部设备;外部设备调用解密算法解密收到的报文,并判断对比是否为“DONE”+2字节消费金额+

11、“AMOUNT”+4字节余额”的格式,若正确,则开水阀打开。 C0 84 00 00 0eR 37 F3 10 E1 ED CC 07 F9 34 4B 39 50 1A 82 90 00 C0 85 00 00 1036E9DEBBFB21A6CEAEA791ECFR F1 ED 7F 4C D5 1E AA D5 35 E6 62 63 6E 89 12 5D 90 00余额:654.60所以主控首先要获取卡片的14字节随机数,命令如下:00 00 ff 08 f8 d4 40 01 c0 84 00 00 0e 99 00D 00 00 FF 00 FF 00 00 00 FF 13 E

12、D D5 41 00 37 F3 10 E1 ED CC 07 F9 34 4B 39 50 1A 82 90 00 E2 00分析得到卡片发来的14字节随机数为:37 F3 10 E1 ED CC 07 F9 34 4B 39 50 1A 82再加上两字节的消费金额,这里我假定消费了1分钱,即两字节为:0x00 0x01所以外部设备使用消费密钥,调用SM4算法对:37 F3 10 E1 ED CC 07 F9 34 4B 39 50 1A 82 00 01 进行加密,加密后的数据如下:36 E9 DE BB FB 21 A6 C6 48 25 68 EA EA 79 1E CF然后外部设备将

13、加密结果发送至卡片,命令如下:00 00 FF 18 E8 D4 40 01 C0 85 00 00 10 36 E9 DE BB FB 21 A6 C6 48 25 68 EA EA 79 1E CF 47 00D 00 00 FF 00 FF 00 00 00 FF 15 EB D5 41 00 F1 ED 7F 4C D5 1E AA D5 35 E6 62 63 6E 89 12 5D 90 00 F9 00即卡片拼接“DONE”+2字节消费金额+“AMOUNT”+4字节余额,并用消费密钥加密后的发送给外部设备的数据为:F1 ED 7F 4C D5 1E AA D5 35 E6 62 63 6E 89 12 5D最后外部设备再对该串密文使用消费密钥,调用SM4解密算法进行解密,得到:44 4f 4e 45 00 01 41 4d 4f 55 4e 54 00 00 ff b4其中:44 4f 4e 45-DONE(ASCII码的十六进制正好为44 4f 4e 45);00 01-2字节消费金额,即一分钱41 4d 4f 55 4e 54-AMOUNT(ASCII码的十六进制正好为41 4d 4f 55 4e 54)00 00 ff b4-4字节余额,即余额为654.60元

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1