智能IC卡收费器的设计.doc_第1页
智能IC卡收费器的设计.doc_第2页
智能IC卡收费器的设计.doc_第3页
智能IC卡收费器的设计.doc_第4页
智能IC卡收费器的设计.doc_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

智能ic卡收费器的研究与设计 摘 要 本论文系统是以 stc89c52 单片机为核心 配合射频读卡模块 显示电路等组成 的控制系统 当 ic 卡靠近射频 rc522 模块时 单片机通过 spi 通信控制 rc522 使其读取 ic 卡里面的某个地址的数据 然后对数据进行处理后 在通过 spi 通信 写入到 ic 卡里 这样就完成了一次读写过程 使数据保存在 ic 卡里 掉电也不 丢失 该系统具有灵活性强 易于操作 可靠性高等优点 将会有更广阔的开发 前景 关键词 ic 智能卡 单片机 射频读卡模块 中图分类号 tm93 the intelligent ic research and design abstract the system is based on stc89c52 single chip microcomputer as the core combined with rf card reader module display circuit and control circuit when close to the rf rc522 ic card module microcontroller through the spi communication control rc522 to read the ic card inside an address data then carries on processing to the data in writing to the cary ic through the spi communication so that the completion of a read and write process so that the data is stored in the ic cary power down is not the loss of this system has the flexibility easy operation high reliability there will be more broad development prospects key words ic smart card single chip rf card reader module clc number tm93 目目 录录 引 言 1 1 绪论 2 1 1 作品的背景 2 1 2 作品概述 2 1 3 本文主要结构安排 3 2 方案的论证 3 2 1 智能 ic 卡收费器的总体框图 3 2 2 读卡芯片的选取 3 2 3 显示屏的选取 5 2 4 指示灯的选取 6 3 系统主要器件选用与介绍 6 3 1 主控器件 stc89c52 7 3 2 智能 ic 卡 8 3 3 显示器件 lcd1602 12 3 4 射频读卡器 mf rc522 14 3 5 稳压器 ams1117 16 4 系统硬件电路设计 17 4 1 主控电路 17 4 2 读写电路 17 4 3 显示电路 18 4 4 电源电路 18 5 软件电路设计 19 5 1 程序总流程图 19 5 2 读卡器 mf rc522 程序设计 20 5 3 lcd1602 显示程序设计 21 6 系统调试与测试结果分析 22 7 总结与展望 24 8 参考文献 25 1 智能 ic 卡收费器研究与设计 引 言 ic 卡的出现和发展 它将进一步推动人类经济活动支付体系的革命性变革 并将成 为 21 世纪人类最重要 最便利 最不可或缺的工具 当今 ic 卡已逐渐广泛地应用于 金融 医疗卫生 社会保险 工商税务 电信 交通管理 智能建筑等各类领域 ic 卡 读写器是 ic 卡与应用系统间的桥梁 它连接在 ic 卡与 pc 机之间 承担信息识别 传送 处理任务 随着 ic 卡在社会经济各领域广泛应用的需求 与各类 ic 卡适配的 ic 卡读写 器应运而生 发展迅速快 ic 卡按卡与外界数据传送的形式不同 分为接触式 ic 卡和非接触式 ic 卡 接触式 ic 卡通过 8 个触点从读写器获取能量和交换数据 非接触式 ic 卡通过射频感应从读写 器获取能量和交换数据 所以非接触式 ic 卡又叫射频卡 现在常见的是接触式 ic 卡 这类卡的读写操作速度较慢 在公交 考勤等需要频繁 读写卡的场合就很不方便 而且 ic 卡的触点暴露在外 容易损坏和搞脏而造成接触 不良 非接触式 ic 卡是根据电磁感应原理产生的 它的读写操作只需卡片放在读写器附 近的一定距离之内就能实现数据交换 无需任何接触 使用非常方便 快捷 不易损坏 因此 在公交 门禁 校园 企事业人事管理等方面有广泛的应用前景 目前 我国引 进的射频 ic 卡主要有 philips 公司的 mifare1 和 atmel 公司的 temic 卡 而 philips 公司的 mifare1 卡现在是市场的主流产品 应用越来越广 其典型型号为 mifare1 s50 它有 1 k 字节 e2prom 用于存放数据 分成 16 个区 每个区都有自己的密码 完善的安全 机制使之具有一卡多用性 本文是以 stc89c52 单片机为核心设计的智能 ic 卡收费器 1 绪论 1 1 作品的背景 射频识别 radio frequency identification 简称 rfid 技术是 20 世纪 90 年代开 始兴起的一种天线的 非接触方式的自动识别技术 是近几年来发展的前沿科技项目 2 该技术主要是利用无线射频方式进行非接触式的通信 实现对被识别物体的自动识别 射频识别技术的显著优点在于非接触性 因此完成识别工作时无需人工干预 能够实现 识别自动化且不易损坏 可识别高速运动物体并可同时识别多个射频标签 操作快捷方 便 射频标签不怕油渍 灰尘污染等恶劣的环境 且可以穿透非金属物体进行识别 抗 干扰能力强 rfid 技术与互联网 通讯等技术相结合 可实现全球范围内物品跟踪与信 息共享 研究 rfid 产业对提升社会信息化水平 促进经济可持续发展 提高人民生活质 量 增强公共安全与国防安全等方面产生深远影响 具有战略性的重大意义 射频卡又叫非接触式 ic 卡 诞生于 90 年代初 是世界上最近几年发展起来的一项 新技术 它成功地将射频识技术和 ic 卡技术结合起来 解决了无源 卡中无电源 和免接 触这一难题 是电子器件领域 的一大突破 由于存在着磁卡和接触式 ic 卡不可比拟的 优点 使之一经问世 便立即引起广泛的关注 并以惊人的速度得到推广应用 射频卡 与接触式 ic 卡相比较 非接触式卡具有以下优点 可靠性高 操作方便 快速 防冲突 非接触式卡中有快速防冲突机制 能防止卡片之间出现数据干扰 可以适合于多种 应用加密性能好 随着社会的不断向前推移 人们生活水平的不断提高 也就意味着人们的消费水平 也有了很大的提高 商家的收费系统也有很大的改进 应用于生活中许多消费控制系统 中 如汽车消毒收费系统 公交刷卡 售饭收费系统 门禁 电梯刷卡系统 交通收费 停车收费等 1 2 作品概述 本文作品是以 stc89c52 单片机为核心 配合射频读卡模块 显示电路 电源电路等 组成的控制系统 当 ic 卡靠近射频 rc522 模块时 单片机通过 spi 通信控制 rc522 使 其读取 ic 卡里面的某个地址的数据 然后对数据进行处理后 在通过 spi 通信写入到 ic 卡里 这样就完成了一次读写过程 使数据保存在 ic 卡里 掉电也不丢失 该作品 具有灵活性强 易于操作 可靠性高等优点 将会有更广阔的开发前景 1 3 本文主要结构安排 本文是智能 ic 卡收费器设计 主要结构安排如下 第一章为绪论 主要介绍了该智能 ic 卡收费器设计的背景知识 对系统整体作了一 3 个概述 包括实现的功能 设计的关键问题 器件的选取 第二章是方案论证 主要论证了读写芯片模块的选取和显示电路部分的选取 分别 提出了几种方案 经比较分析 选取了一种最优方案 读卡芯片模块选用 mf rc522 显示电路选取的是 lcd1602 和 led 灯 第三章主要讲述的是系统主要器件的选用与介绍 包括核心部件 stc89c52 射频 卡 ic 卡 射频读卡芯片 mf rc522 显示器件 lcd1602 稳压器 ams117 介绍了它们 的工作原理 第四 五章为本文的核心章节 就本系统的软硬件进行了详尽地介绍 包括各功能 模块的硬件电路设计和软件程序流程图 同时在第五章的开头部分 给出了系统程序的 总程序流程图 第六章为调试部分 介绍调试方案 如何一步步实现该系统的功能 第七章对全文进行了总结和展望 分析了该系统的特点 并指出该文的不足之处和 需要完善的地方 2 方案的论证 2 1 智能 ic 卡收费器的总体框图 作品打算是以 stc89c52 单片机为核心 配合射频读卡模块 显示电路 电源电路等 组成的控制系统 作品的总体框图如图 1 所示 图 1 智能ic 卡收费器总体框图 2 2 读卡芯片的选取 2 2 1 mf rc522 mf rc522 是应用于 13 56mhz 非接触式通信中高集成度读写卡系列芯片中的一员 是 nxp 公司针对 三表 应用推出的一款低 电压 低成本 体积小的非接触式读写卡 芯片 是智能仪表和便携 式手持设备研发的较好选择 4 mf rc522 利用了先进的调制和解调概念 完全集成了在 13 56mhz 下所有类型的 被动非接触式通信方式和协议 支持 iso14443a 的多层应用 其内部发送器部分可驱 动读写器天线与 iso 14443a mifare 卡和应答机的通信 无需其它的电路 接收器部分 提供一个坚固而有效的解调和解码电路 用于处理 iso14443a 兼容的应答器信号 数字 部分处理 iso14443a 帧和错误检测 奇偶 可直接使用串口下载 at89s52 单片机 8k 字节程序存储空间 256 字节数据存储空间 8 自带 2kb 的 eeprom 存储空间 3 1 3 stc89c52 的器件参数 1 增强型 8051 单片机 6 时钟 机器周期和 12 时钟 机器周期可以任意 选择 指令代码完全兼容传统 8051 2 2 工作电压 5 5v 3 3v 5v 单片机 3 8v 2 0v 3v 单片机 3 工作频率范围 0 40mhz 相当于普通 8051 的 0 80mhz 实际工作 频率 可达 48mhz 4 用户应用程序空间为 8k 字节 5 片上集成 512 字节 ram 6 通用 i o 口 32 个 复位后为 p0 p1 p2 p3 是准双向口 弱上拉 p0 口是漏极开路输出 作为总线扩展用时 不用加上拉电阻 作为 i o 口用时 需加上拉 电阻 7 isp 在系统可编程 iap 在应用可编程 无需专用编程器 无 需专用 仿真器 可通过串口 rxd p3 0 txd p3 1 直接下载用户程 序 数秒即可完成一片 8 具有 eeprom 功能 9 共 3 个 16 位定时器 计数器 即定时器 t0 t1 t2 10 外部中断 4 路 下降沿中断或低电平触发电路 power down 模式可 由外部 中断低电平触发中断方式唤醒 11 通用异步串行口 uart 还可用定时器软件实现多个 uart 12 工作温度范围 40 85 工业级 0 75 商业级 13 pdip 封装 3 2 智能 ic 卡 ic 卡 integrated circuit card 集成电路卡 也称智能卡 smart card 智慧卡 intelligent card 微电路卡 microcircuit card 或微芯片卡等 它是将一个微电子芯片嵌入 符合 iso 7816 标准的卡基中 做成卡片形式 3 2 1 ic 卡的主要指标 ic 卡与读写器之间的通讯方式可以是接触式 也可以是非接触式 根据通讯接口把 ic 卡分成接触式 ic 卡 非接触式 ic 和双界面卡 同时具备接触式与非接触式通讯接口 9 ic 卡的主要指标 容量为8k位eeprom 分为16个扇区 每个扇区为4块 每块16个字节 以块为存取单位 每个扇区有独立的一组密码及访问控制 每张卡有唯一序列号 为32位 具有防冲突机制 支持多卡操作 无电源 自带天线 内含加密控制逻辑和通讯逻辑电路 数据保存期为10年 可改写10万次 读无限次 工作温度 20 50 湿度为90 工作频率 13 56mhz 通信速率 106 kbps 读写距离 10 cm以内 与读写器有关 3 2 2 ic 卡的结构 m1 卡片的存储容量为 8192 bit x 1 位字长 即 1kx8 位字长 采用 eeprom 作为存 储介质 整个结构划分为 16 个扇区 编为扇区 0 15 每个扇区有 4 个块 block 分别 为块 0 块 1 块 2 和块 3 每个块有 16 个字节 一个扇区共有 16 byte x4 64 byte 每 个扇区的块 3 即第四块 包含了该扇区的密码 a 6 个字节 存取控制 4 个字节 密码 b 6 个字节 是一个特殊的块 称为控制块 其余三个块是一般的数据块 数据块有 两种应用方法 一种是用作一般的数据保存用 直接读写 另一种用法是用作数值块 可以进行初始化值 加值 减值 读值的运算 系统配用相应的函数完成相应的功能 但扇区 0 的块 0 是特殊的 是厂商代码 已固化 不可改写 扇区存储结构 m1卡分为16个扇区 每个扇区由4块 块0 块1 块2 块3 组成 我们也将16 个扇区的64个块按绝对地址编号为0 63 存贮结构如表1所示 10 表1 存储结构 绝对地址 存放厂商代码 已固化 块 0 数据块 0 扇区 0 块 1 数据块 1 块 2 数据块 2 块 3 控制块 3 块 0 数据块 4 扇区 1 块 1 数据块 5 块 2 数据块 6 块 3 控制块 7 块 0 数据块 60 扇区 15 块 1 数据块 61 块 2 数据块 62 块 3 控制块 63 数据块可作两种应用 用作一般的数据保存 可以进行读 写操作 用作数据值 可以进行初始化值 加值 减值 读值操作 每个扇区的块3为控制块 包括了密码a 6字节 存取控制 4字节 密码b 6字 节 具体结构如图3 a0 a1 a2 a3 a4 a5 密码 a ff 07 80 69 存取控制 b0 b1 b2 b3 b4 b5 密码 b 图3 扇区结构 每个扇区的密码和存取控制都是独立的 可以根据实际需要设定各自的密码及存取 控制 存取控制为4个字节 共32位 扇区中的每个块 包括数据块和控制块 的存取条 密码 a 存取控制 密码 b 密码 a 存取控制 密码 b 密码 a 存取控制 密码 b 11 件是由密码和存取控制共同决定的 在存取控制中每个块都有相应的三个控制位 定义如 表2 表2控制位定义 三个控制位以正和反两种形式存在于存取控制字节中 决定了该块的访问权限 如 进行减值操作必须验证 key a 进行加值操作必须验证 key b 等等 块 0 1 2 的存取控制与块 3 的存取控制不同 a 数据块 块 0 块 1 块 2 的存取控制如下 表 3 数据块存取控制 控制位 x 0 1 2 访问条件 对数据块 0 1 2 c1xc2xc3xreadwriteincrementdecrement transfer restore 000keya bkeya bkeya bkeya b 010keya bnevernevernever 100keya bkeybnevernever 110keya bkeybkeybkeya b 001keya bneverneverkeya b 011keybkeybnevernever 101keybnevernevernever 111nevernevernevernever b 控制块块 3 的存取控制与数据块 块 0 1 2 不同 它的存取控制如下 表 4 控制块块 3 的存取结构 密码 a存取控制密码 b c13c23c33readwritereadwritereadwrite 000neverkeya bkeya bneverkeya bkeya b 010neverneverkeya bneverkeya bnever 块0 c10c20c30 块1 c11c21c31 块2 c12c22c32 块3 c13c23c33 12 100neverkeybkeya bneverneverkeyb 110neverneverkeya bnevernevernever 001neverkeya bkeya bkeya bkeya bkeya b 011neverkeybkeya bkeybneverkeyb 101neverneverkeya bkeybnevernever 111neverneverkeya bnevernevernever 3 2 3 ic 卡的工作原理 ic卡卡片的电气部分只由一个天线和asic组成 天线 卡片的天线是只有几组绕线的线圈 很适于封装到is0卡片中 asic 卡片的asic由一个高速 106kb波特率 的rf接口 一个控制单元和一个 8k位eeprom组成 读写器向m1卡发一组固定频率的电磁波 卡片内有一个lc串联谐振电路 其频率与 读写器发射的频率相同 在电磁波的激励下 lc谐振电路产生共振 从而使电容内有了 电荷 在这个电容的另一端 接有一个单向导通的电子泵 将电容内的电荷送到另一个 电容内储存 当所积累的电荷达到2v时 此电容可做为电源为其它电路提供工作电压 将卡内数据发射出去或接取读写器的数据 3 3 显示器件 lcd1602 工业字符型液晶 能够同时显示 16x02 即 32 个字符 16 列 2 行 1602 液晶也叫 1602 字符型液晶 它是一种专门用来显示字母 数字 符号等的点 阵型液晶模块 它由若干个 5x7 或者 5x11 等点阵字符位组成 每个点阵字符位都可以显 示一个字符 每位之间有一个点距的间隔 每行之间也有间隔 起到了字符间距和行间 距的作用 正因为如此所以它不能很好地显示图形 用自定义 cgram 显示效果也不 好 1602lcd 是指显示的内容为 16x2 即可以显示两行 每行 16 个字符液晶模块 显示 字符和数字 3 3 1 lcd1602 的管脚功能 1602 型液晶的外观如图 4 所示 l602型液晶的接口信号说明如表5所列 13 表 5 l602 型液晶接口信号说明 编号符号引脚说明编号符号引脚说明 1vss 电源地 9d2 数据口 2vdd 电源正极 10d3 数据口 3vee 液晶显示偏压信号 11d4 数据口 4r s 数据 命令选择端 h l 12d5 数据口 5r w 读写选择端 h l 13d6 数据口 6e 使能信号 14d7 数据口 7d0 数据口 15bla 背光电源正极 8d1 数据口 16blk 背光电源负极 rs为寄存器选择 高电平时选择数据寄存器 低电平时选择指令寄存器 rw为读 写信号线 高电平时进行读操作 低电平时进行写操作 e端为使能端 d0 d7为8位双 向数据线 3 3 2 lcd1602的主要技术参数 1602液晶主要技术参数如表6所列 图 4 1602 芯片外观图 14 表6 1602液晶主要技术参数表 显示容量 162个字符 芯片工作电压4 5 5 5v 工作电流 2 0ma 5 0v 模块最佳工作电压 5 0v 字符尺寸 2 954 35 wh mm 3 4 射频读卡器mf rc522 mf rc522 是应用于13 56mhz 非接触式通信中高集成度读写卡系列芯片中的一员 是nxp公司针对 三表 应用 推出的一款低 电压 低成本 体积小的非接触式读写卡芯 片 是智能仪表和便携 式手持设备研发的较好选择 3 4 1 mf rc522 的管脚功能 3 2 3 1 3 0 2 9 2 8 2 7 2 6 2 5 mf rc522 1 2 3 4 5 6 7 8 24 23 22 21 20 19 18 17 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 vc pvdd dvdd dvss pvss nrstpd mfin fmout tx1 sda irq t x 1 tvsssvddtvddtx2tvss avddvmid oscout oscin aux2 aux1 avss rx ead7d6d5d4d3d2d1 图 5 mf rc522 引脚图 i 输入 o 输出 电源 表 7 mf rc522 的管脚功能 符号类型描述 oscini 晶振输入 振荡器的反向放大器的输入 它也是外部产 生的时钟的输入 fosc 27 12mhz 15 irqo 中断请求 输出 用来指示一个中断事件 sigini 信号输入 sinouto 信号输出 tx1o 发送器 1 传送调制的 13 56mhz 的的能量载波信号 tvddpwr 发送器电源 给 tx1 和 tx2 的输出级供电 tx2o 发送器 2 传送调制的 13 56mhz 的的能量载波信号 tvsspwr 发送器地 给 tx1 和 tx2 的输出级供电 d0i o d1i o d2i o d3i o d4i o d5i o d6i o d7i o 数字地 不同接口地数据管脚 测试端口 i ic spi uart sdai 串行数据线 eai 外部地址 该管脚用来编码 i ic 地址 i2ci i ic 使能 dvddpwr 数字电源 avddpwr 模拟电源 aux1o aux2o 辅助输出 这两个管脚用于测试 avsspwr 模拟地 rxi 接收器输入 接受管脚 rf 信号管脚 vmidpwr 内部参考电源 该管脚提供内部电压 nrstpdi 不复位和掉电 管脚为低电平时 切断内部电源吸收 关闭振荡器 断开输入管脚与外部电路的连接 管脚的 上升沿来启动内部复位阶段 oscouto 晶振输出振荡器的反相放大器的输出 16 testpin 不连接 三态管脚 pvddpwr 管脚电源 pvsspwr 管脚电源地 3 4 2 mf rc522芯片相关功能介绍 电池 微控制器 rsc522 射频卡 读卡器 非接触式卡 图 6 mf rc522 的读写功能 读卡器卡 数据从 mfrc522 发送到卡 读卡器一方的调制 位编码 卡读卡器 接受卡的数据 卡一方的调制 位编码 3 5 稳压器 ams1117 ams1117 是一个正向低压降稳压器 在 1a 电流下压降为 1 2v ams1117 有两个 版本 固定输出版本和可调版本 固定输出电压为 1 5v 1 8v 2 5v 2 85v 3 0v 3 3v 5 0v 具有 1 的精度 固定输出电压 1 2v 的精 度为 2 ams1117 内部集成过热保护和限流电器 是电池供电和便携式计算机的最佳 选择 3 5 1 ams1117 的基本参数 绝对最大额定值 工作结温范围 40 125 c 输入电压 15v 焊接温度 25 秒 265 c 存储温度 65 150 c 电气特性 输出电压 3 267 3 333v 0 iout 1a 4 75v vin 12v 线路调整 最大 10mv 4 75v vin 12v 负载调节 最大 15mv vin 5v 0 iout 1a 电 压差 最大 1 3v 电流限制 900 1500ma 静态电流 最大 10ma 纹波抑制 最 小 60db 17 4 系统硬件电路设计 4 1 主控电路 主控电路由 stc89c52 排阻和晶振电路组成 晶振电路由 2 个 30pf 瓷片电容和 1 个 12m 晶振组成 stc89c52 作为作品的中央处理器 对读卡器读入的数据进行处理 再将数据通过 显示屏显示出来 单片机 stc89c52 的 f 是 12mhz 因为作品用到单片机 stc89c52 的 p0 口 而且 p0 口需接外电阻 才能输出数据 所以单片机 stc89c52 的 p0 口接了排阻 具体电路图如下 图 7 主控电路图 4 2 读写电路 读写电路由智能ic卡和读写器mf rc522组成 读写器向m1卡发一组固定频率的电磁 波 卡片内有一个lc串联谐振电路 其频率与读写器发射的频率相同 在电磁波的激励 下 lc谐振电路产生共振 从而使电容内有了电荷 在这个电容的另一端 接有一个单 向导通的电子泵 将电容内的电荷送到另一个电容内储存 当所积累的电荷达到2v时 此电容可做为电源为其它电路提供工作电压 将卡内数据发射出去或接取读写器的数据 读写器读入的数据通过单片机stc89c52的p1口输入 具体电路图如下 18 图 8 读写电路图 4 3 显示电路 显示电路由 lcd1602 和 led 灯组成 单片机 stc89c52 的 p0 口接显示屏 lcd1602 的接口 用显示屏 lcd1602 显示 ic 卡里面的数据 单片机 stc89c52 的 p2 0 接 led 灯 用 led 灯作为指示灯 具体电路图如下 图 9 显示电路图 4 4 电源电路 电源电路主要是稳压器 ams1117 因为读卡器的工作电压是 3 3v 这个电压不能直 接得到 需要稳压器 ams1117 稳压器 ams1117 将 5v 的电压转换成 3 3v 的电压即可 电源接口的 vcc 和 gnd 通过一个电容连接 可达到滤波的作用 使系统稳定 具体电路图如下 19 图 10 电源电路图 5 软件电路设计 5 1 程序总流程图 程序总流程图如图 11 所示 20 图 11 程序总流程图 5 2 读卡器 mf rc522 程序设计 读卡器 mf rc522 程序流程图如图 12 所示 21 图12 读卡器mf rc522程序流程图 复位应答 answer to request m1 射频卡的通讯协议和通讯波特率是定义好的 当有卡片进入读写器的操作范围时 读写器以特定的协议与它通讯 从而确定该卡是否为 m1 射频卡 即验证卡片的卡型 防冲突机制 anticollision loop 当有多张卡进入读写器操作范围时 防冲突机制会从其中选择一张进行操作 未选 中的则处于空闲模式等待下一次选卡 该过程会返回被选卡的序列号 选择卡片 select tag 选择被选中的卡的序列号 并同时返回卡的容量代码 三次次互相确认 3 pass authentication 选定要处理的卡片之后 读写器就确定要访问的扇区号 并对该扇区密码进行密码 22 校验 在三次相互认证之后就可以通过加密流进行通讯 在选择另一扇区时 则必须 进行另一扇区密码校验 对数据块的操作 读 read 读一个块 写 write 写一个块 加 increment 对数值块进行加值 减 decrement 对数值块进行减值 存储 restore 将块中的内容存到数据寄存器中 传输 transfer 将数据寄存器中的内容写入块中 中止 halt 将卡置于暂停工作状态 5 3 lcd1602 显示程序设计 在单片机应用系统中 常使用点阵字符形 lcd 显示器 本系统采用 lcd1602 作为 显示模块 显示 ic 卡里的数据 至关重要 1602 子程序主要编写了一下几个函数 初 始化 字符函数 字符串函数 字符函数 l1602 char 功能 改变液晶中某位的值 如果要让第一行 第五个字符显 示 a 调用该函数如下 l1602 char 1 5 a 字符串函数 l1602 string 功能 改变液晶中某位的值 如果要让第一行 第五个字符 开始显示 l1602 调用该函数如下 l1602 string 1 5 l1602 注意 该函数中定义了以字符 0 结尾 5 3 1 lcd1602 显示程序流程图 1602 的显示流程图如图 13 对 1602 进行初始化 然后写命令寄存器 即写指令 待 不忙后再写数据寄存器 即写数据 23 图 13 lcd1602 显示程序流程图 6 系统调试与测试结果分析 该智能 ic 卡收费器的调试主要是 lcd1602 的显示 通过 ic 卡靠近射频 rc522 模 块 lcd1602 显示 ic 卡里的数据 但是等我把作品焊好了 出现了一系列问题 显示 屏显示不全 首先我考虑的是焊接的顺序问题 当初板子做好以后 我一口气就把所有的元件焊 上去了 这样对于没有调试过的板子 就很难找到原因 所以焊接的顺序很重要 应该 是应该按功能划分的器件进行焊接 顺序是功能部件的焊接 调试 ok 另一功能部件 的焊接 这样容易找到问题的所在 其次如果在调试按功能划分的器件上出现问题 可以按以下步骤进行 1 检查原理图连接是否正确 2 检查原理图与 pcb 图是否一致 3 检查原理图与器件的 datasheet 上引脚是否一致 24 4 用万用表检查是否有虚焊 引脚短路现象 5 查询器件的 datasheet 分析一下时序是否一致 同时分析一下命令字是否正确 注意 命令字的顺序很重要 前些日子调试 intel e28f640 这款 flash 是的时候 在 对其擦除和写操作的时候 就碰到了这样的问题 6 有条件的可以用示波器 如我就是通过示波器对 sram 各个引脚进行检查 发现 地址线都是有信号的 而数据线无信号出现 才找到问题所在 7 飞线 用别的的口线进行控制 看看能不能对其进行正常操作 多试验 才能找 到问题出现在什么地方 经过多次测试 我终于得到了以下的显示效果 图 14 作品实物图 25 图 15 作品实物图 7 总结与展望 本论文系统以 at89c52 单片机为核心部件 用单片机实现 ic 卡数据的读 写功能 显示当前 ic 卡内金额 消费金额和余额 具有误操作报警功能 该系统具有灵活性强 易于操作 可靠性高等优点 将会有更广阔的开发前景 该文在第二章方案论证中详尽地介绍了射频读卡芯片的选取 经比较分析最后选取 mfrc522作为射频读卡芯片 mf rc522 是应用于13 56mhz 非接触式通信中高集成度 读写卡系列芯片中的一员 是nxp公司针对 三表 应用 推出的一款低 电压 低成本 体积小的非接触式读写卡芯片 是智能仪表和便携 式手持设备研发的较好选择 mf rc522 利用了先进的调制和解调概念 完全集成了在13 56mhz 下所有类型的 被动非接触式通信方式和协议 支持 iso14443a 的多层应用 其内部发送器部分可驱 图 6 4 设定的水温值为 60 26 动读写器天线与iso 14443a mifare卡和应答机的通信 无需其它的电路 接收器部分 提供一个坚固而有效的解调和解码电路 用于处理iso14443a 兼容的应答器信号 数字 部分处理iso14443a 帧和错误检测 奇偶 unsigned char code defaultkey 6 0 xff 0 xff 0 xff 0 xff 0 xff 0 xff 校 验密码 unsigned char g uctempbuf 20 unsigned char idata mlastselectedsnr 4 unsigned char idata revbuffer 30 unsigned char data serbuffer 20 unsigned char data money 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 最后的 50 就是卡上的金额可以修改 void com unsigned char com void dat unsigned char dat void delay unsigned char x bit cmdvalid unsigned char status 系统初始化 void initializesystem p0 0 xff p1 0 xff p3 0 xff et2 0 t2con 0 x04 pcon 0 x80 scon 0 x70 tmod 0 x21 tmod 0 x22 th1 baud 9600 tl1 th1 tr1 1 波特率发生器 th0 0 x60 tl0 0 x60 tr0 0 et0 0 et1 0 ea 1 ex0 1 it0 1 tr2 0 es 1 cmdvalid 0 led green 1 pcdreset pcdantennaoff pcdantennaon m500pcdconfigisotype a 用 t2 做延时子程序 void main unsigned char baud t 0 flag 5 initializesystem lcdinit xs while 1 status pcdrequest 0 x26 寻卡 while status mi ok t status pcdrequest 0 x26 寻卡 if status mi ok status pcdanticoll 防冲撞 memcpy mlastselectedsnr if status mi ok status pcdselect 选定卡片 if status mi ok status pcdauthstate 0 x60 1 defaultkey mlastselectedsnr 校验卡密码 if status mi ok status pcdwrite 0 x01 money 写卡充值 status pcdread 0 x01 读卡 if status mi ok money 15 revbuffer 17 com 0 x85 dat money 15 100 0 dat money 15 10 10 0 dat money 15 10 0 t 0 money 15 com 0 xc5 dat money 15 100 0 dat money 15 10 10 0 dat money 15 10 0 status pcdwrite 0 x01 money 写卡 delay 50 led green 1 2 读卡器程序如下 include include reg52 h include main h include mfrc522 h include define maxrlen 18 void com unsigned char com void dat unsigned char dat void delay unsigned char x 功 能 寻卡 参数说明 req code in 寻卡方式 0 x52 寻感应区内所有符合 14443a 标准的卡 0 x26 寻未进入休眠状态的卡 ptagtype out 卡片类型代码 0 x4400 mifare ultralight 0 x0400 mifare one s50 0 x0200 mifare one s70 0 x0800 mifare pro x 0 x4403 mifare desfire 返 回 成功返回 mi ok char pcdrequest unsigned char req code unsigned char ptagtype char status unsigned int unlen unsigned char uccommf522buf maxrlen setbitmask txcontrolreg 0 x03 uccommf522buf 0 req code status pcdcommf522 pcd transceive uccommf522buf 1 uccommf522buf if status mi ok ptagtype 1 uccommf522buf 1 else status mi err return status 功 能 防冲撞 参数说明 psnr out 卡片序列号 4 字节 返 回 成功返回 mi ok char pcdanticoll unsigned char psnr char status unsigned char i snr check 0 unsigned int unlen unsigned char uccommf522buf maxrlen clearbitmask status2reg 0 x08 writerawrc bitframingreg 0 x00 clearbitmask collreg 0 x80 uccommf522buf 0 picc anticoll1 uccommf522buf 1 0 x20 status pcdcommf522 pcd transceive uccommf522buf 2 uccommf522buf if status mi ok for i 0 i 4 i psnr i uccommf522buf i snr check uccommf522buf i if snr check uccommf522buf i status mi err setbitmask collreg 0 x80 return status 功 能 选定卡片 参数说明 psnr in 卡片序列号 4 字节 返 回 成功返回 mi ok char pcdselect unsigned char psnr char status unsigned char i unsigned int unlen unsigned char uccommf522buf maxrlen uccommf522buf 0 picc anticoll1 uccommf522buf 1 0 x70 uccommf522buf 6 0 for i 0 i 4 i uccommf522buf i 2 psnr i uccommf522buf 6 psnr i calulatecrc uccommf522buf 7 clearbitmask status2reg 0 x08 status pcdcommf522 pcd transceive uccommf522buf 9 uccommf522buf if status mi ok else status mi err return status 功 能 验证卡片密码 参数说明 auth mode in 密码验证模式 0 x60 验证 a 密钥 0 x61 验证 b 密钥 addr in 块地址 pkey in 密码 psnr in 卡片序列号 4 字节 返 回 成功返回 mi ok char pcdauthstate unsigned char auth mode unsigned char addr unsigned char pkey unsigned char psnr char status unsigned int unlen unsigned char i uccommf522buf maxrlen uccommf522buf 0 auth mode uccommf522buf 1 addr for i 0 i 6 i uccommf522buf i 2 pkey i for i 0 i 6 i uccommf522buf i 8 psnr i status pcdcommf522 pcd authent uccommf522buf 12 uccommf522buf if status mi ok readrawrc status2reg return status 功 能 读取 m1 卡一块数据 参数说明 addr in 块地址 pdata out 读出的数据 16 字节 返 回 成功返回 mi ok char pcdread unsigned char addr unsigned char pdata char status unsigned int unlen unsigned char i uccommf522buf maxrlen uccommf522buf 0 picc read uccommf522buf 1 addr calulatecrc uccommf522buf 2 status pcdcommf522 pcd transceive uccommf522buf 4 uccommf522buf if status mi ok for i 0 i 16 i pdata i uccommf522buf i else status mi err return status 功 能 写数据到 m1 卡一块 参数说明 addr in 块地址 pdata in 写入的数据 16 字节 返 回 成功返回 mi ok char pcdwrite unsigned char addr unsigned char pdata char status unsigned int unlen unsigned char i uccommf522buf maxrlen uccommf522buf 0 picc write uccommf522buf 1 addr calulatecrc uccommf522buf 2 status pcdcommf522 pcd transceive uccommf522buf 4 uccommf522buf if status mi ok unlen 4 uccommf522buf 0 if status mi ok for i 0 i 16 i uccommf522buf i pdata i calulatecrc uccommf522buf 16 status pcdcommf522 pcd transceive uccommf522buf 18 uccommf522buf if status mi ok unlen 4 uccommf522buf 0 return status 功 能 命令卡片进入休眠状态 返 回 成功返回 mi ok char pcdhalt void char status unsigned int unlen unsigned char uccommf522buf maxrlen uccommf522buf 0 picc halt uccommf522buf 1 0 calulatecrc uccommf522buf 2 status pcdcommf522 pcd transceive uccommf522buf 4 uccommf522buf return mi ok 用 mf522 计算 crc16 函数 void calulatecrc unsigned char pindata unsigned char len unsigned char poutdata unsigned char i n clearbitmask divirqreg 0 x04 writerawrc commandreg pcd idle setbitmask fifolevelreg 0 x80 for i 0 i len i writerawrc fifodatareg pindata i writerawrc commandreg pcd calccrc i 0 xff do n readrawrc divirqreg i while

温馨提示

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

评论

0/150

提交评论