基于RC522的非接触式IC卡读卡器设计(含程序)_第1页
基于RC522的非接触式IC卡读卡器设计(含程序)_第2页
基于RC522的非接触式IC卡读卡器设计(含程序)_第3页
基于RC522的非接触式IC卡读卡器设计(含程序)_第4页
基于RC522的非接触式IC卡读卡器设计(含程序)_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中北大学 2016 届毕业设计说明书 第 1 页 共 63 页 1 1 绪论绪论 1 1 1 1 课题的研究背景课题的研究背景 工业 3 0 将世界带入信息化的时代 信息技术的发展日新月异 一个以电子 商务为主要特征的经济时代成为主要潮流 智能射频卡是一种将用户数据最快捷 地送入到环球信息互联网并获得信息的最有用的工具 智能 IC 卡成为了人们身份 识别和实现电子支付的手段 影响了我们生活工作的方式 智能 IC 卡与普通磁卡 对比具有更高的安全性 所以 对智能 IC 卡的功能进行研究是非常有意义的 智能 IC 卡 又是 CPU 卡 顾名思义 这种卡片上集成了存储器 通信接口及 CPU 具有存储数据 对外交流和数据处理的能力 因此 又是一片卡上的单片机 系统 为了使这一系统中的硬件和软件资源充分得到利用 卡上存放了进行数据 读写和安全通信的协议 以及管理这些程序的 Chip Operating system 卡上操作系 统 这操作系统是按照 IC 卡性能特征而专门设计的操作系统 它极大地不同于计 算机上常见的 DOS 和 WINDOWS 等操作系统 IC 卡存储器的容量大小和 CPU 的性 能的限制着 Chip Operating system 卡上操作系统 主要功能是 控制 IC 卡与读 卡器的数据交流 管理 IC 卡上各种存储器 在 IC 卡内执行读写器发来的各种操作 命令 有了 CPU 与 COS 系统 成就了智能 IC 卡 所以 智能射频卡具有超强的管 理性能 提供很高的数据安全性和可靠性 1 1 21 2 非接触式非接触式 ICIC 卡卡 1 2 1 非接触式 IC 卡的简介 非接触式 IC 卡又称射频卡 由 IC 芯片 感应天线组成 封装在一个标准的 PVC 卡片内 芯片及天线无外露部分 2 它是全球上最近发展成熟的一项技术 射频识别技术和IC 卡技术被成功地结合起来 解决了无源和非接触这一难题 无源 即卡中没有电源 这是电子科学领域的一大突破 2 卡片接近读写器天线产生电 磁场的一定空间范围 通常为 50 100mm 通过电磁波的发送来完成数据的读写 操作 1 2 2 非接触式 IC 卡的特点 1 操作快捷 卡与读卡器之间的通讯是非接触的 不用定向使用和插拔卡 操作时 卡也 中北大学 2016 届毕业设计说明书 第 2 页 共 63 页 可以不用拿出 可以放在钱夹 裤子口袋中 极大加快了刷卡速度 同时 卡与 读卡器进行通信时的载波频率较高 卡内芯片可以在较高的频率时钟下工作 提 高了二者的通信速率 3 2 高抗干扰性 射频卡具有防冲撞机制 读卡器可以同一时间读写多张卡片 并且不会导致 卡片之间产生数据干扰 用算法逐一选定一张卡 相当于读卡器添加了 并行 处理功能 3 具有多种工作距离 目前 IC 卡的工作距离有好几米的远距离 IC 卡 可用于车库门禁收费系统 中 又有工作距离为几厘米 可作为电子支付的近距离 IC 卡 使得应用灵活多变 4 高可靠性 非接触式 IC 卡与读卡器之间无机械接触 不会产生由接触通信而导致的各种 故障 同时 无需担心由于触点残损或金属生锈而导致卡片接触不良 4 增强了 通信的可靠性 增加了读卡器和卡的寿命 而且尘土 潮气和震动的干扰不会影 响无线电磁波 使得非接触式 IC 卡在多变的环境下使用 5 高安全性 厂商在产品投入批量生产之前 将卡的卡号一次性写入第一个存储区的块 0 中 以后不可再更改 保证此的序列号是唯一的 读写前射频卡与读写系统要进 行三次应答认证 并且通信过程会产生随机数和加密的数据 防止各种破解和篡 改 卡内每个存储区的访问密码和条件都不同 1 2 3 非接触式 IC 卡的发展趋势 随着非接触式 IC 卡的广泛应用与迅速发展 从目前看来 非接触式 IC 卡主 要有以下几个发展趋势 1 大容量 一卡多用 的新功能处于新的阶段 这种功能使得目前卡内 16K 的存储容 量远远不能满足要求 将来用户只用带着的一张具有多个功能 IC 卡 既能成为身 份证和护照 又可以当做电子钱包 工作证 能存储个人简历 因此 研发更大 卡内存储器的容量变得重要 除了目前已经广泛使用的 E2PROM 存储器 一些新的 中北大学 2016 届毕业设计说明书 第 3 页 共 63 页 存储器技术也正在开发 列如 Flash 技术和铁电技术 未来 IC 卡行业使用的主 要存储器极大可能是铁电存储器 FeRAM 4 2 更强的处理能力 IC 卡在日常生活的普及 相关技术迅速发展 我们需要一张具有更强的处理 能力的 IC 卡 有两种增强处理能力的方法 其一是增加具有多样寻址方式的汇编 指令 它能加快寻找有效数据的地址的速率 减少指令译码的工作量 二是增加 数据总线位数到 32 位 同时还可以提高内部时钟频率从 5MHz 到 10MHz 3 低功耗 无论非接触式 IC 卡的是有源还是无源 低压低功耗设计对卡内芯片都是非常 重要 可以使用新型低功耗电池 达到增加电源提供给 IC 卡的时间 相当于增加 了卡的使用时间 可以增加无源非接触式 IC 卡的工作距离 远距离卡在通信效率 和快捷性上都超过了近距离卡 远距离低功耗成为非接触式 IC 卡发展的必然趋势 4 4 发展复合式 IC 卡 复合式卡的意思是双界面卡 接触式和非接触式的通信工作方式集成在一张 卡上 也就是一卡两用 所以在结构上既有天线也有触点 使用起来更加灵活多 变 如今大多数国际大企业都成功开发并开始使用复合式卡 1 31 3 非接触式非接触式 ICIC 卡读卡器发展状况卡读卡器发展状况 现在 由于应用的场合不同 国内外出现大同小异的非接触式 IC 卡读卡器 有读卡器模块 便携式读卡器 高低频读卡器 双频标签读卡器 微波读卡器等 各种各样的产品 5 这些产品有适合读写的距离大大不同 但都有一个共同的特 征 各种产品之间的区别不大 同质化严重 性能也相似 结构上都是读卡器芯 片结合单片机 而并没有核心技术 缺乏成套技术的自主产权 国外公司手中拥有读卡器的读卡器芯片的核心技术的控制权 在整个读卡器 市场的利润 国外公司如 TI NXP 等芯片厂商占绝大部分 随着市场的发展 这 些国外公司又同时在加强对整个非接触式 IC 卡技术的掌控 却有新的实力雄厚的 ST 意法半导体 公司加入这一行 许多公司也觊觎这一迅速发展的市场 TI 和 NXP 公司牢牢控制着市场的主动权 提供从读卡模块 读卡器 读卡芯片及系统应 用等一整套设备及服务 令人欣慰的是 我国在这项技术的研究方面发展迅猛 中北大学 2016 届毕业设计说明书 第 4 页 共 63 页 在 IC 卡身份识别技术研究及产品研发方面 我国已经能够独立开发微波 低频和 高频波的电子标签 拥有系统集成能力及读写器的技术 1 41 4 课题的设计内容课题的设计内容 非接触近距离识别技术主要研究基于射频原理的非接触 IC 卡识别技术 具有 操作快捷便利 可靠性高 安全性好 寿命长 防伪性好 抗干扰能力强等优点 被广泛应用于各种身份识别 收费系统中 本次研究将掌握非接触式 IC 卡读卡器的原理 实现对非接触式 IC 卡的读写 能够正确读取 IC 卡的序列号及读卡用户信息 并通过计算机将信息显示出来 中北大学 2016 届毕业设计说明书 第 5 页 共 63 页 2 2 非接触式非接触式 ICIC 卡卡 MifareMifare 1 1 S50S50 技术支持技术支持 2 12 1 MifareMifare 1 1 S50S50 简介简介 MIFARE 1 s50 是非接触智能 IC 卡 其通信协议符合 ISO IEC 14443A 通讯 层 MIFARE RF 接口 符合 ISO IEC 14443A 标准的第 2 和第 3 部分 其安全层支 持域检验的 CRYPTO1 数据流加密 在 MIFARE 卡结构中 芯片与一个几匝的天线线圈相连接 并封装到塑料中 制作了一个无源的近距离卡 不需要电池 当卡接近读写器天线时 进入带有能 量的电磁场 高速的 RF 通讯接口将以 106 kBit s 的速率传输数据 6 图 2 1 Mifare 1 s50 卡 2 1 1 Mifare 1 S50 的特性 1 MIFARE RF 接口 ISO IEC 14443 A 非接触数据通信并提供能量 无需电源 通信距离 大约 100mm 取决于天线尺寸匝数 工作频率 13 56 MHz 数据传输速率 106 kbit s 高度数据安全性 16 位 CRC 奇偶校验 位编码 位计数 多卡防冲撞 典型票务交易 100 ms 2 EEPROM 1 Kbyte 分为 16 个区 每区 4 个块 每块 16 字节 中北大学 2016 届毕业设计说明书 第 6 页 共 63 页 用户自定义存储块的读写条件 数据可存储长达 10 年 可重复写入 10 万次 3 安全性 安全的重点是防盗窃 相互随机数和应答认证 数据加密和报文鉴别检查和 防止各种破解和篡改 使其更适于票务应用 不可更改的序列号 保证了每张卡 的唯一性 7 相互三轮应答认证 ISO IEC DIS9798 2 射频通道数据加密 每个区的尾块有两个密钥 按应用场合不同密钥分级 每张卡的序列号唯一 在通信过程中以发送密钥保护对存储区的访问权 2 1 2 结构功能说明 卡 4 匝线圈 读卡器 嵌入的芯片模块 天线 能量 数据 图 2 2 Mifare 卡内部结构 RF 接口 数字控制单元 防冲突 认证 控制和算逻单元 EEPROM 接口 加密 天线 图 2 3 Mifare 卡的功能说明 中北大学 2016 届毕业设计说明书 第 7 页 共 63 页 RF 接口 1 调制解调器 检波器 时钟发生器 上电复位 稳压器 防冲突 一一选定通信范围内的几张卡 然后先后操作 2 认证 在对任意存储器的存储块进行读写操作之前得先通过认证 必须各个存 3 储区指定的密钥相匹配才能获得访问资格 控制和算术逻辑单元 写入特定的冗余格式的数据 可以读写 加减 4 EEPROM 接口 5 加密单元 每次数据交换的 CRYPTO1 数据流都进行加密 防止数据被非法盗窃 6 EEPROM 1 KB 分 16 区 每区 4 块 每一块有 16 字节 7 2 1 3 存储区结构 1024 x 8 bit EEPROM 存储器分为 16 区 每区 4 块 每块 16 字节 在擦处 后的状态下 EEPROM 的单元读为逻辑 0 写后的状态下读为 1 表 2 1 存储区扇区结构 块内字节编号 扇区块0 1 2 3 4 5 6 7 8 9 A B C D E F说明 3KEY A控制位KEY B扇区 15 尾块 2数据 1数据 15 0数据 3KEY A控制位KEY B扇区 14 尾块 2数据 1数据 14 0数据 3KEY A控制位KEY B扇区 1 尾块 2数据1 1数据 中北大学 2016 届毕业设计说明书 第 8 页 共 63 页 0数据 3KEY A控制位KEY B扇区 0 尾块 2数据 1数据 0 0制造商占用块 1 制造商占用块 第 1 个区的第 1 个块 块 0 它含有卡的序列号 检查字节和制造商数据 由于安全和系统要求 此块只能由制造商在生产过程进行一次编程 用户对块 0 只能进行只读 前 4 个字节是卡的序列号 此值唯一 字节 序列号 检查字节 制造厂商数据 最高位最低位 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 X X X X X X X X 0 图 2 4 块 0 的存储结构 2 数据块 各区均有 3 个 16 字节的块用于存储数据 除区 0 只有两个数据块以及一个只 读的厂商代码块 数据块可以通过读写控制位设置为 读写块 比如用于非接触门禁系统 存储用户资料 1 数值块 可以加减 可作电子钱包的用途 2 在进行任一数据块操作之前 必须先通过认证环节 此次研究我只使用读写 块功能 用于存储用户的信息 我将自己的名字存储到 0 区的块 1 中 3 尾块 各区都有一个尾块 存有 密钥 A 和 B 可选 读块时返回逻辑 0 1 该区四个块的读写条件 存储在字节 6 至 9 读写控制位也指定了数据 2 块的类型 读写块或数值块 每张卡的密钥 A 的默认密码是 6 个字节的 FF 如果不需要密钥 B 块 3 的 最后 6 字节可以用作数据字节 尾块的字节 9 可用于用户数据 因为此字节享有 中北大学 2016 届毕业设计说明书 第 9 页 共 63 页 与字节 6 7 8 相同的读写权限 7 表 2 2 尾块的存储结构 字节 号 0123456789101112131415 说明密密钥钥 A读读写条件写条件密密钥钥 B 可 可选选 2 22 2 通信原理通信原理 卡呼叫 休眠卡 全部 防冲突循环 取得卡号 选卡 激活 三轮认证 对指定扇区 读块 切换扇区 不切换扇区 写块加值减值恢复休眠 转存 图 2 5 通信流程图 读写器发出或根据 commandReg 寄存器里得到的命令 按照对应区访问条 件 再由数字控制单元来处理 2 2 1 寻卡 REQUEST 读卡器向所有在天线范围内未进入休眠状态的卡发出的请求 0 x26 命令 进入电磁场的卡被唤醒后 发送请求应答码 ATQA 符合 ISO IEC 14443A 2 2 2 防冲突循环 ANTICOLL 在防冲突过程中 读回一张卡的序列号 若在读卡器的通信范围内同时有几 张卡 这过程可以通过唯一序列号一一选定 并进行下一步操作 没被选定的卡 转入待命状态 等待新的请求命令 2 2 3 选卡 SELECT CARD 然后选定卡片 得到校验码 将 2 个字节的卡片类型 4 个字节的序列号和 中北大学 2016 届毕业设计说明书 第 10 页 共 63 页 1 字节的校验码进行 CRC 计算 将其发送给卡片 通信成功 则返回 SAK 选择确 认 SAK 1 字节 2 字节 CRC 校验 0 x18 24 共 3 个字节 2 2 4 三轮认证 3 PASS AUTHENTICATION 选卡后 读写器指定后续读写的存储器位置 并用相应密钥进行三轮认证 8 认证成功后 所有的存储器操作都是加密的 非接触式卡 片读卡器 Mifare 1卡 片 A RB B TOKEN AB D TOKEN BA E C 图 2 6 三轮认证的流程图 认证过程 A 环 卡片向读卡器发送一个随机数据 RB B 环 读卡器发出一组携带随机数据 RA 的令牌数据 TOKEN AB C 环 当卡片收到令牌数据 TOKEN AB 后 对 TOKEN AB 进行解密并得到 RB 校验 得到的 RB 与 A 环中发出的 RB 是否相同 D 环 若校验得到的 RB 与 A 环中发出的 RB 相同 则卡片再次向读卡器发出令牌 数据 TOKEN BA E 环 读卡器收到令牌数据 TOKEN BA 后 对 TOKEN BA 进行解密并得到 RA 校验 得到的 RA 与 B 环中发出的 RA 是否相同 如果以上的每一个环节都能顺利进行 每次校验结果都相同 则整个的认证 过程将成功 2 32 3 存储器读写存储器读写 在此强调 必须先依次通过防冲突和密钥认证过程 才能进行存储器操作 先把该区的访问条件设置好了 区块才会执行相对应的操作 表 2 3 存储器操作说明 存储器操作 操作操作说明说明使用块型使用块型 读读存储器块读写 数值和尾块 写写存储器块读写 数值和尾块 中北大学 2016 届毕业设计说明书 第 11 页 共 63 页 增值增加块的内容 并将结果存入内部寄存器数值 减值减少块的内容 并将结果存入内部寄存器数值 转存将内部寄存器内容写入块中数值 恢复将块中内容写入内部寄存器数值 2 3 1 读写条件 对该区块是读是写需要设置 3 个控制位 并以原码和反码格式存放在每个区 的尾块中 这 3 个读写控制位还控制密钥 A 和 B 的访问权限 如果知道正确的密 钥 并且对应读写条件许可 读写条件是可以修改的 9 表 2 4 控制位对块的影响 读写控制位读写控制位有效命令有效命令块块说明说明 C13 C23 C33read write 3尾块 C12 C22 C32read write increment decrement transfer restore 2数据块 C11 C21 C31read write increment decrement transfer restore 1数据块 C10 C20 C30read write increment decrement transfer restore 0数据块 在表 2 4 中访问条件的每一位都用符号来表示 其中 C13 C23 C33 用来控制 本区块 3 的访问条件 C1X C2X C3X X 0 2 用来控制本区块 0 块 2 的访问条件 8 在每一次读写存储区时 存储条件必须正确 如果发现是错误的 会锁死这 个区块 2 3 2 尾块的读写条件 对密钥和控制位的读写取决于尾块 块 3 的访问控制位 分为 禁止 KEY A KEY B 和 KEY A B KEY A 或 KEY B 9 访问控制位 字节 6 字节 7 字节 8 字节 9 图 2 7 访问条件的组成 为了安全起见 访问条件的每一位即用原码又用反码存储 相当于存放了两 中北大学 2016 届毕业设计说明书 第 12 页 共 63 页 遍 特定的数据存放于访问条件的最后一个字节 9 表 2 5 块 3 的访问条件 所控制的访问对象 访问控制位 KEY A访问控制位KEY B 注释 C1C2C3读写读写读写 000禁止Key AKey AKey BKey AKey AKey B 可读 010禁止禁止Key A禁止Key A禁止Key B 可读 100禁止Key B Key A B 禁止禁止Key B 110禁止禁止 Key A B 禁止禁止禁止 001禁止Key AKey AKey AKey AKey A Key B 可读 传输配置状态 011禁止Key B Key A B Key B禁止Key B 101禁止禁止 Key A B Key B禁止禁止 111禁止禁止 Key A B 禁止禁止禁止 附注 2 1 灰色行为 key B 可读并可用于存储数据的访问控制条件 如果 C1 C2 C3 000 则 key A 不能读 而持卡人在正确输入 key A 后 可 以改写 key A 读访问条件和读写 key B Key A 在任一条件下都禁止读出 但达到特定条件下可以修改 Key B 作为密 钥使用时 也是不能读出 但达到一定条件 输入正确的 key A 下能读出时 这时存放在 key B 位置的内容为数据而不是密钥 9 尾块和 key A 被预定义为传输配置状态 因为在传输配置状态下 key B 可读 新卡必须用 key A 认证 因为访问控制位本身也可以禁止访问 所以个人化时应 当特别小心 8 2 3 3 数据块的访问控制条件 不同的控制位的设置 相关的用途也不同 读写块 可读 写 中北大学 2016 届毕业设计说明书 第 13 页 共 63 页 数值块 运行另外的数值操作 加值 减值 转存和恢复 在用于非充值 卡的一种情况 001 下 只能够读和减值 在另一种情况 110 下 可以用 key B 充值 制造厂商块 只读 不受访位控制位设置的影响 密钥管理 在传输配置状态下 必须用 key A 认证 表 2 6 数据分组的访问条件 访问控制位所控制的访问操作用途 C1C2C3读写加值 减值 转存 恢复 000key A B1key A B1key A B1key A B1传输配置状态 010key A B1key B1禁止禁止读写块 100key A B1key B1禁止禁止读写块 110key A B1key B1key B1key A B1数值块 001key A B1禁止禁止key A B1数值块 011key B1key B1禁止禁止读写块 101key B1禁止禁止禁止读写块 111禁止禁止禁止禁止读写块 中北大学 2016 届毕业设计说明书 第 14 页 共 63 页 3 3 MFMF RC522RC522 射频芯片射频芯片 3 13 1 概述概述 MF RC522 是具有高集成度读写卡芯片 也是一款常用的非接触式通信芯片 工作于 13 56MHz 的时钟频率 也是 NXP 公司针对 三表 应用推出的一款低 电压 低成本 体积小的非接触式读写卡芯片 是智能仪表和便携 式手持设备研发的较 好选择 10 MF RC522 利用了先进的调制和解调概念 完全集成了在 13 56MHz 下所有类 型的被动非接触式通信方式和协议 11 支持 ISO14443A 的多层应用 其芯片的 TX1 和 TX2 引脚可驱动读写器天线 发送经过调试的 13 56MHz 载波能量信号 该 信号上就有我们需要的数据 接收到的载波信号会通过接收器解调成有效信号 有效信号再经过 A D 转换器转换成数字信号 该信号会依照 ISO14443A 协议处理 先进行错误检测 奇偶 可将发送器控制的 TX 管脚直接驱动天线 支持 ISO IEC 14443 TypeA 通信协议 读写器模式中的 ISO 14443A 协议的工作距离高达 60mm 与天线的长度和 匝数有关 支持 ISO 14443 212kbit s 和 424kbit s 的更高传输速率的通信 中北大学 2016 届毕业设计说明书 第 15 页 共 63 页 支持 MIFARE Classic 加密 支持的主机接口 10Mbit s 的 SPI 接口 I2C 接口 快速模式的速率为 400kbit s 高速模式的速率为 3400kbit s 串行 UART 传输速率高达 1228 8kbit s 帧取决于 RS232 接口 电压电平 取决于提供的管脚电压 64 字节的发送和接收 FIFO 缓冲区 灵活的中断模式 可编程定时器 具备软 硬件掉电和发送器掉电 3 种节电模式 其中 发送器掉电 则是 关闭内部天线驱动器 即关闭电磁场 内置温度传感器 以便在芯片温度过高时自动停止 RF 发射 采用相互独立的多组电源供电 以避免模块间的相互干扰 提高工作的稳 定性 具备 CRC 和奇偶校验功能 CRC 协处理器的 16 位长 CRC 计算多项式固 定为 x16 x12 x5 1 符合 ISO 1EC14443 和 CCTITT 协议 12 内部振荡器 连接 27 12MHz 的晶体 2 5 3 3V 的低电压低功耗设计 工作温度范围 30 85 5mm 5mm 0 85mm 的超小体积 3 33 3 功能结构功能结构 3 3 1 简化的 MF RC522 框图 中北大学 2016 届毕业设计说明书 第 16 页 共 63 页 图 3 1 简化 MF RC522 框图 模拟接口用来处理模拟信号的调制和解调 非接触式 UART 用来处理与主机通 信时的协议要求 FIFO 缓冲区快速而方便地实现了主机和非接触式 UART 之间的 数据传输 12 不同的通信接口可应用于不同场合 功能和用户要求 3 3 2 数字接口 MF RC522 与微控制器通信支持三种接口类型 如 SPI I2C 和串行 UART 作 出复位单片机系统 并对射频系统上电或硬复位操作 就能自动检测接口的类型 它通过复位阶段后控制管脚上的逻辑电平来识别为控制器接口 12 每种接口采用 不同的管脚 其管脚的功能也不同 表 3 1 检测不同接口类型的连接方式 3 3 3 模拟接口和非接触式 UART 中北大学 2016 届毕业设计说明书 第 17 页 共 63 页 非接触式 UART 可处理与主机之间的通信协议要求 协议本身可产生面向位和 字节的帧 也可以处理不同的非接触式通信机制的奇偶A SBUF 表示从串口中得到 的数据存入 A 因此 使用 SBUF 缓冲器并不会导致重叠 4 2 2 串行通信的数据结构 中北大学 2016 届毕业设计说明书 第 30 页 共 63 页 停 止 位数据位 校 验 位 起 始 位 LSBMSB 空 闲 下一字符 起始位 空 闲 一个字符帧 图 4 4 数据结构 串行异步通信的特点 收发双方的时钟可以相异 减少了硬件设备 多了点 自主性 但每个字节的数据要加上 2 3 位的起止位 各个数据之间还有空闲时间 所以串行异步通信传输效率低 5 5 读卡器的硬件电路设计读卡器的硬件电路设计 5 15 1 读卡器硬件组成读卡器硬件组成 图 5 1 读卡器结构框图 从本课题的要求上看 非接触近距离识别技术主要研究基于射频原理的非接 触 IC 卡识别技术 该课题涉及到无线通信和射频识别技术 因此需要一片具有调 制和解调功能的射频芯片 从安全性能上需要能对通信时的数据进行加密 所以 MF RC522 可以作为射频识别芯 射频芯片与 IC 卡之间的通信 需要 RC522 连接 一个具有能形成 RF 场的天线模块 51 单片机起到连接 IC 卡和计算机的桥梁作用 用以处理数据和写入用户信息 是整个系统的核心 单片机通过 PL2303 模块将卡 PL2303 串口 电路 电源电路 蜂鸣器驱动 电路 51 单片机 RC522 芯片 天线模块 串行通信 电源供应 计算机 中北大学 2016 届毕业设计说明书 第 31 页 共 63 页 号和用户信息发送到计算机 得到的数据通过串口调试助手软件来显示 同时 整个系统的电源由计算机的 USB 口提供 也是通过 PL2303 模块传给单片机 5 25 2 微控制器微控制器 STC11F60XE 是采用 8051 核的 ISP In System Programming 在系统可编程芯 片 是一款高速 低功耗的增强型 8051 单片机 芯片内含有 60KB 的用户应用程 序空间 可反复擦写 10 万次 经常工作在 5V 的电压和 12MHz 的时钟频率下 芯 片内部含有 MAX810 专用复位电路 与传统的 8051 相比 多了一个独立波特率发 生器 除去了定时器 2 工作速率相当于普通 51 单片机的十多倍 指令的执行速 度也全面提升 最快的指令能快 24 倍 该芯片与常用 STC89C51 的引脚结构相同 并且通用所有的普通 8051 单片的 C 语言指令代码 只要学会使用普通的 8051 单 片机也就会使用该款芯片 如图所示的是 STC11F60XE 的最小系统 所用的是 DIP 40 封装的芯片 该芯 片外接了复位电路和 11 0592MHz 的晶振 PO 接口接上 1K 的排阻 单片机 EA 管脚外接一个 LED 灯 当系统通电后 LED 亮 图 5 2 STC11F60XE 最小系统 5 35 3 蜂鸣器蜂鸣器 中北大学 2016 届毕业设计说明书 第 32 页 共 63 页 图 5 3 蜂鸣器电路 蜂鸣器一端接上 8550PNP 三极管用以放大电流 基极上连接单片机的 P20 接 口 另一端直接接地 当智能卡操作正确时 蜂鸣器长响一声 当智能卡操作错 误时 蜂鸣器发出警报 短响三声 5 45 4 PL2303PL2303 串口模块串口模块 该器件内置 USB 功能控制器 USB 收发器 振荡器和带有全部调制解调器控 制信号的 UART 只需外接几只电容就可实现 USB 信号与 RS232 信号的转换 能 够方便嵌入到各种设备 15 PL2303 模块是一个双向串行异步通信串口 它既可以 把从计算机接收到的 USB 数据转换成标准的串行 RS232 数据流格式发送给单片机 也可以把单片机的二进制数据加工成 USB 数据传送给计算机 这个转换过程是有 芯片自动进行 开发者不用再作程序设计 PL2303 的高兼容驱动可在大多操作系统上模拟成传统 COM 端口 并允许基于 COM 端口应用可方便地转换成 USB 接口应用 通讯波特率高达 6 Mb s 16 该模块 完全兼容 USB2 0 通信协议 常用的 3 3V 和 5V 输入电压 支持串行 RS232 数据流 格式 可编程常用的波特率 如 4800b s 9600b s 和 19200b s 等 支持目前的 WindowsXP Windows7 Windows8 Windows10 等操作系统 该模块 DM MP 管脚连接着 USB 的 D D 端口 它们之间分别连接着一个 27R 的限流电阻 模块上的 USB 接口是用来连接计算机上的 USB 接口的 整个 5V 电源 电压是通过这个 USB 接口提供给整个系统的 在 USB 的 VCC 电源端连接着一个电 容和一个电解电容 起到抗干扰的作用 芯片上的 TXD 与单片机的 RXD 管脚连接 芯片上的 RXD 与单片机的 TXD 管脚连接 整个芯片的工作始终由一个 12MHz 的晶 振提供 中北大学 2016 届毕业设计说明书 第 33 页 共 63 页 图 5 4 PL2303 电路 5 55 5 MFMF RC522RC522 电路电路 图 5 5 MF RC 电路 MF RC522 是使用 SPI 接口与微控制器通信 在 3 3 2 小节中说明了 SPI 接口 所用到的管脚 用不到的管脚直接悬空 5 65 6 3 3V3 3V 电源电路电源电路 中北大学 2016 届毕业设计说明书 第 34 页 共 63 页 图 5 6 3 3V 电源电路 3 3V 电源转换使用了 AMS1117 稳压器 输入输出端接上电容 起到滤出杂波 的作用 可以将 5V 的 VCC 降压到 3 3V 3 3V 电压供 RC522 和 PL2303 作电源使用 5 75 7 天线模块天线模块 电感藕合式射频天线用于产生磁通量 而磁通量用于向非接触式 IC 卡提供电 源并在读卡器与非接触式 Ic 卡之间传输信息 16 一个天线电路有两种匹配方式 直接匹配和 50 匹配方式 我这采用直接匹配的方式设计天线 这种方式电路简 单 且完全满足与非接触式 IC 卡的通信 图 5 7 天线模块电路 天线模块包含低通滤波电路 接收电路 天线匹配电路和天线共四个部分 低通滤波电路 射频系统是在 13 56MHz 频率下工作 此频率同时用作驱动 1 天线的载波基频 在 Tx1 和 Tx2 输出端加上 LC 低通滤波器来滤掉高次谐波 接收电路 Rx 为信号接收端 Vmid 为 Rx 提供输入电势 Rx 和 Vmid 之间 2 连接了分压电阻 R11 和 R12 天线匹配电路 如图 由 C20 和 C25 C21 C22 C23 C24 组成 为并联 3 经过天线的调谐过程可以逐渐得出电容的最优值 中北大学 2016 届毕业设计说明书 第 35 页 共 63 页 天线 直接匹配的天线是低电阻的器件 RC522 又是低功耗芯片 所以得满 4 足一定的耦合系数 k k 值最小为 0 3 k 被定义为读卡器天线线圈与卡线圈之间 的距离和两个线圈大小的一个几何参数 可以设计为圆形或者方形天线 天线的 直径必须介于 0 5 1 5mm 之间 5 7 1 滤波和接收电路参数的设计 根据 Philips 天线设计应用指南中 Tx1 和 Tx2 与地之间的结构 元件参数 是对称相等的 低通滤波电路和接收电路的元件参数是确定的 L1 L2 2 2 UH C18 C19 47PF R11 820 R12 5 1k C17 0 1UF 5 7 2 天线线圈电路参数的设计 在我的设计中 选择设计方形的天线 线圈匝数为 4 天线的直径为 0 8mm 最里面的一圈中 线圈长 36 0mm 宽 33mm 最外圈中 长为 42 5mm 宽为 39 5mm 每条线圈之间的间隔约为 0 1 0 2mm 图 5 8 天线线圈 PCB 图 天线线圈本身就可用电感 Lant 损耗电阻 Rant 和并联的损耗电容 Cant 组成 在计算品质因子和天线调谐时损耗电容 Cant 可以忽略 线圈的等效电路为 图 5 9 天线等效电路 中北大学 2016 届毕业设计说明书 第 36 页 共 63 页 1 估算天线线圈的电感公式为 式 8 1 ln 2NklL d l 5 1 其中 L 为线圈电感 单位 nH l 为一圈导线的长度 单位 cm 取平均值 l 42 5 39 5 36 33 151mm 15 1cm d 为 PCB 上导线的宽度 k 1 47 方形线圈 N 为线圈匝数 经计算 Lant 1380 718nH 2 线圈的损耗阻抗 Rant 用阻抗分析仪精确测量 该值越小越好 经查阅资料 得 标准天线的 Rant 范围为 0 3 0 5 之间 我这里取 Rant 0 3 3 品质因子的计算公式 式 Rant Lantf Q 2 5 2 其中 f 13 56MHz 经计算得 Q 39 因为元件的容差和对温度的依靠 Q 因子最好取 35 我计算的 Q 值为 39 两 值比较接近 所以 本次设计的天线可以使用 5 7 3 天线匹配电路参数的设计 在设计直接匹配天线的匹配电路时 电容值由天线本身和环境影响来决定 经过天线的调谐过程可以逐渐得出电容的最优值 调谐过程分为两个部分 其一 就是在能量传递中得到最优的工作距离 其二 计算品质因子保障数据正确传输 已知 Lant 1380 718nH 调谐过程以下表的电容值作为起始值 将直接匹配 的天线调谐出最优的状况 表 5 1 天线匹配电路的起始值 中北大学 2016 届毕业设计说明书 第 37 页 共 63 页 经调谐 C20 C25 15PF C21 C23 180PF C22 C24 10PF 可使天线处于最优状 态 6 6 读卡器的软件程序设计读卡器的软件程序设计 6 16 1 程序设计思路程序设计思路 中北大学 2016 届毕业设计说明书 第 38 页 共 63 页 开始 初始化 寻卡 防冲撞 有卡 认证 写入用户 信息 读出序列 号和用户 信息 Y 计算机 串口调试 助手显示 发送 N 图 6 1 总程序流程图 1 串口初始化 先设定波特率为 9600 设串口为工作方式 1 定时器为工作 方式 2 用波特率初值计算软件得出定时器的计数初值为 FDH 2 RC522 初始化 使 RC522 复位 选择 ISO 14443 协议 typeA 对相关的寄 存器进行设置 ModeReg 0 x3D 为 PCD 发送器的开启做准备 sigin 高电平有效 CRC 预设值 6363 RxSelReg 0 x86 选择非接触式 UART 输入 定义 6 个帧保护时间 TModeReg 0 x8D 自动启动定时器 以减计数的方式 RFCfgReg 0 x7F 接收器信号电压的增益因子 48dB 设置 RC522 内部定时器初值为 0 x30 最后打开天线 中北大学 2016 届毕业设计说明书 第 39 页 共 63 页 初始化 复位 RC522 关闭天线 选择 ISO14443 的type A 设置寄存 器 延迟2ms 开启天线 图 6 2 RC522 初始化流程图 3 寻卡 进行 IC 卡的检测 发送请求命令为 ISO 14443 TYPE A 通信协议的 REQIDL 命令 寻天线区内未进入休眠状态的卡 将此命令存入 FIFO 缓冲区 当 有卡靠近入感应区 用 TRANSCEIVE 命令将 REQIDL 命令发送到 IC 卡 等待感应区 域的卡对读卡器的返回应答码 ATQA 接收到卡片的类型码 0 x0400 Mifare 1 S50 4 防冲撞 清认证标志位 设置帧格式 即最后一个字节的所有位都应该被 发送 复位冲突寄存器 用 TRANSCEIVE 命令将防冲撞 ANTICOLL1 命令发送到 IC 卡 接收 IC 卡返回的 4 个字节的序列号 5 选定卡片 得到校验码 将 2 个字节的卡片类型 4 个字节的序列号和 1 字节的校验码进行 CRC 计算 将其发送给卡片 通信成功 则返回 SAK 选择确 认 SAK 1 字节 2 字节 CRC 校验 0 x18 24 共 3 个字节 6 认证 验证区 0 的密钥 KEY A 默认密码为 6 个字节的 FF 密码正确则认 证成功 卡允许进行读写操作 7 写用户名 可以在程序里定义一个常量数组 用户名字由英文组成 每个 英文字母用 ASCII 码表示 如 INT8U const tangliankai 16 0 x74 0 x61 中北大学 2016 届毕业设计说明书 第 40 页 共 63 页 0 x6e 0 x67 0 x6c 0 x69 0 x61 0 x6e 0 x6b 0 x61 0 x69 0 x00 0 x00 0 x00 0 x00 0 x00 用 PICC WRITE 0 xA0 写命令将数组写入区 0 的块 1 处 8 读卡号和用户名 通过 PICC READ 0 x30 读命令读出区 0 的块 0 这里 要得到前 4 个字节的序列号 读写命令只能读写整块 16 个字节的数据 读出块 1 的数据 存到 CardReadBuf 数组 9 转换卡号 由于串口助手显示的是 ASCII 码所表示的字符 则需要将读出 的 4 个字节的序列号进行转换 转换后的数据存入 CardUid 数组中 转换过程 假设读到的序列号的其中一个字节为 2A 将 2A 拆成 2 个字节 02 0A 再换成 02 0A 所代表的 ASCII 码 32H 41H 将 32H 41H 输出到串口助手上 显示出 02 0A 10 发送数据 关闭接收中断 中断标志位 TI 清零 将数组中的第一个字节 给到 SBUF 寄存器 判断 TI 位 发送结束后 TI 1 再打开接收中断 如此 将 CardUid 和 CardReadBuf 数组一个字节一个字节地连续发送给计算机 6 26 2 软件调试软件调试 该软件是串口调试助手 程序正确下载到单片机后 IC 卡一进入天线的工作 范围 该软件就会显示如下信息 前 4 个字节为卡的序列号 后面为用户名字 图 6 3 信息软件显示 中北大学 2016 届毕业设计说明书 第 41 页 共 63 页 7 7 总结总结 非接触近距离身份识别技术研究是一个硬件和软件相结合的课题 国家也正 致力于非接触式 IC 卡识别技术的研究 该项技术被广泛应用于各个场所 所以该 课题是十分具有意义 通过这次毕设的研究学习 我深入了解到 RFID 系统和读卡器系统的原理 熟 悉掌握 51 单片机和射频芯片的运用 掌握了单片机与计算机的串口串行通信原理 也学会了天线的设计 同时 也再次熟悉 C 语言的语句结构 学会编写 C 语言程 序达到设定的功能 其次 我完成本次毕设所要求的任务 设计了各个模块的电 路原理图 制作了 PCB 版图 也做出演示电路板 能达到读卡器与计算机相互通 信并正确显示信息 不同的是 我开题时参考了许多毕设论文及相关资料 多数 学生都是将得到的信息在读卡器上的 LCD 屏或者数码管上显示 我是首先想到读 卡系统与计算机通信的 并完成了这个想法 但是 我没有达到自己最初的设想 我的最初的想法是想将集合所有模块的一整个 PCB 板制作成实物 但由于 RC522 的芯片太小且引脚在芯片底下 以我的能力还焊接不了 所以就只制作了单片机 的最小系统 就用各模块演示了 总之 通过这次毕设的研究学习 我做到学以致用 学到了课程之外的知识 锻炼了动手能力 基本达到学院和老师的要求 对我今后的生活工作具有不可磨 灭的意义 中北大学 2016 届毕业设计说明书 第 42 页 共 63 页 附录附录 A A 读卡器图读卡器图 附图 1 读卡器实物图 附图 2 读卡器 PCB 图 中北大学 2016 届毕业设计说明书 第 43 页 共 63 页 中北大学 2016 届毕业设计说明书 第 44 页 共 63 页 附图 3 读卡器系统原理图 附录附录 B B 程序程序 include include include include stc11 h include main h include uart h include rc522 h include ctrl h const INT8U DefaultKeyABuf 0 xFF 0 xFF 0 xFF 0 xFF 0 xFF 0 xFF INT8U FromCardRevBuf 16 0 定义从卡发送过来的信息 即 RC522 从 卡中读取信息 存储信息 INT8U const tangliankai 16 0 x74 0 x61 0 x6e 0 x67 0 x6c 0 x69 0 x61 0 x6e 0 x6b 0 x61 0 x69 0 x00 0 x00 0 x00 0 x00 0 x00 0 xff 0 x07 0 x80 0 x69 为控制字 所有数据块 均可读可写可修改 每一数据块都有 4 种控制模式可以供选择 可以有多种控制模式并存 也可以所有模式都被禁止 INT8U bPass 1 bWarn 0 bpass 上电操作成功 操作成功 声音 void main void if PCON 将 POF 位置 1 IAP CONTR 0 x60 软复位 从 ISP 监控区启动 else PCON PCON 将 POF 位清零 init all while 1 ctrl process void init all void 中北大学 2016 届毕业设计说明书 第 45 页 共 63 页 EA 0 init uart init rc522 init par EA 1 串口发送使用查询发送 void init uart void SCON 0 x50 工作方式 1 禁止串行接收 ES 1 打开接收中断 TMOD 0 x21 定时器工作方式 2 TH1 0 xFD TL1 0 xFD TR1 1 启动定时器 串口发送程序 void send byte INT8U SendData ES 0 TI 0 SBUF SendData while TI 0 发送结束后 TI 1 TI 0 软件复位 ES 1 打开接收中断 void send bytes INT8U Buf INT8U Len while Len send byte Buf RC522 初始化 void init rc522 void PcdReset PcdAntennaOff M500PcdConfigISOType A PcdAntennaOn 中北大学 2016 届毕业设计说明书 第 46 页 共 63 页 功 能 复位 RC522 返 回 成功返回 MI OK char PcdReset void SET RC522RST delay us 10 CLR RC522RST delay us 10 SET RC522RST delay us 10 Write Reg RC CommandReg PCD RESETPHASE 复位命令 delay us 10 return MI OK 关闭天线 void PcdAntennaOff void ClearBitMask TxControlReg 0 x03 开启天线 每次启动或关闭天险发射之间应至少有 1ms 的间隔 void PcdAntennaOn void unsigned char i i Read Reg RC TxControlReg if i 设置

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论