




已阅读5页,还剩63页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XX 大学本科生毕业论文 I 基于 ARM 的电子标签 阅读器设计毕业论文 目 录 第 1 章 绪 论 5 1 1选题背景 1 1 2RFID 的技术组成 1 1 3应用前景及国内外研究状况 2 第 2 章 电子标签阅读器软硬件设计方案 4 2 1系统硬件设计方案 4 2 2系统主要芯片与模块介绍 5 2 2 1微控制器 LPC2210 5 2 2 2M210 2G 非接触式读写模块 7 2 3系统软件设计方案 7 第 3 章 电子标签阅读器硬件设计 9 3 1阅读器电源设计 9 3 1 15V 稳压电路设计 9 3 1 23 3V 与 1 8V 电压产生电路 10 3 2阅读器串口通信硬件设计 12 3 2 1RS232 协议概述 12 3 2 2SP3232E 芯片简介 14 3 2 3SP3232E 与单片机硬件接口 15 3 2 4M210 2G 读头与 LPC2210 的硬件接口 16 3 3阅读器键盘及 LED 显示电路设计 16 3 3 1I2C 总线协议概述 16 3 3 2ZLG7290 键盘和 LED 驱动芯片 20 3 3 3ZLG7290 芯片操作指令 22 XX 大学本科生毕业论文 II 3 3 4ZLG7290 与键盘 数码管及 LPC2210 硬件接口 26 3 4LPC2210 外围电路设计 27 3 4 1复位电路设计 27 3 4 2系统时钟电路 27 3 4 3蜂鸣器电路设计 28 第 4 章 电子标签阅读器软件设计 30 4 1概述 30 4 2LPC2210 初始化 30 4 2 1LPC2210 堆栈初始化程序 30 4 2 2LPC2210 工作时钟初始化 31 4 2 3LPC2210 串口初始化 31 4 2 4LPC2210 I2C 初始化 32 4 2 5LPC2210 引脚连接 32 4 3电子标签阅读器主程序设计 33 4 3 1M210 2G 的操作 33 4 3 2M210 2G 应答信号过滤设置 33 4 3 3数据存储单元设置 33 4 3 4蜂鸣器控制 34 4 4程序流程 34 4 4 1阅读器系统初始化流程 34 4 4 2阅读器键盘扫描程序流程 35 4 4 3LED 动态扫描显示程序流程 35 4 4 4M210 2G 操作流程 36 4 4 5LPC2210 与上位机通信流程 36 4 5上位机软件设计 38 4 5 1MSComm 控件 39 4 5 2串口数据接收 39 4 5 3串口数据发送 40 4 5 4上位机软件界面 40 第 5 章 系统调试与结果 41 XX 大学本科生毕业论文 III 5 1阅读器显示与键盘测试 41 5 2蜂鸣器测试 41 5 3M210 2G 读头与 LPC2210 通信测试 41 5 4阅读器与上位机软件的通信测试 42 结论 45 致谢 46 参考文献 47 附录 47 XX 大学本科生毕业论文 1 第 1 章 绪 论 1 1选题背景 RFID 是 Radio Frequency Identification 的缩写 即射频识别 一种非接触式的自 动识别技术 它通过射频信号自动识别目标对象并获取相关数据 识别的距离可达几 十厘米至几米 且根据读写的方式 可以输入数千字节的信息 同时 还具有极高的 保密性 RFID 电子标签是一种突破性的技术 第一 可以识别单个的非常具体的物体 而不是像条形码那样只能识别一类物体 第二 其采用无线电射频 可以透过外部 材料读取数据 而条形码必须靠激光来读取信息 第三 可以同时对多个物体进行 识读 而条形码只能逐个识别 此外 电子标签储存的信息量也非常大 RFID 技术可识别高速运动物体并可同时识别多个标签 操作快捷方便 工作无 须人工干预 可工作于各种恶劣环境 其应用范围十分广泛 主要有生产制造和装配 航空行李处理 邮件 快运包裹处理 文档追踪 图书馆管理 动物身份标识 运动计 时 门禁控制 电子门票 道路自动收费 防伪等 尽管目前 RFID 领域里还存在着一些问题 但 RFID 仍然是一项绝对值得期待的 技术 据 ABI 估计 到 2008 年 RFID 电子标签 阅读器和相关软件与服务的销售 额有可能达 30 亿美元之巨 1 2RFID 的技术组成 RFID 是一种采用射频技术的非接触式自动识别技术 其工作原理是 标签进入 感应区域后 如果接收到阅读器发出的特殊射频信号 就能凭借感应电流所获得的 能量发送出存储在芯片中的产品信息 即 Tag 无源标签或被动标签 或者主动 发送某一频率的信号 阅读器读取信息并解码后 送至中央信息系统进行有关数据 处理 一套完整的 RFID 系统主要由标签 天线和控制器组成 而一套完整的 RFID 应 用方案则是由 RFID 系统 系统控制设备和信息层软件构成的 其相关的技术分为 基础 控制和应用三个层面 XX 大学本科生毕业论文 2 基础层面主要解决 RFID 系统内部的信息交换问题 其中包括标签芯片的设计 加工及封装工艺 天线与标签的作用原理 控制器的编码方式以及控制器与天线间 的通信方法等 可以说 这个层次是 RFID 系统应用的基础与支撑 标签根据是否 需要电源可以分为有源和无源两种 其中有源标签一般体积比较大 但是可以支持 比较长的感应距离 而无源标签一般则体积小 适合于作用距离比较近的场合 另 外 根据不同的用途 还有耐高温 薄膜式等各种特殊用途的标签 天线和标签的 作用方式则有电磁耦合 电磁感应 微波和光学等若干种 它们有不同的频率 通 信速度和通信距离 可以满足不同的用途 控制层面主要解决不同环境下 RFID 系统与上层控制系统的信息交换问题 这 个层面在工业使用环境下尤其常见 而在商业用途中 由于可以直接实现应用层软 件与 RFID 系统的通信 所以并不是必需的 在工业使用环境下 如汽车制造业中 往往是多种控制系统并存 它们为了各自特定的目的一起协调工作 在引进 RFID 系统后 某些控制系统需要读取 RFID 系统提供的相关信息来进行工作 并需要将 新的加工信息追加到 RFID 系统当中去 这就需要实现控制系统与 RFID 系统之间的 通信问题 而这就是本层面的核心课题 目前流行的解决方法是双方同时提供某种 标准接口 如 DeviceNet ProfiBus 等 进行通信 或者利用 RFID 系统提供的通信 指令 通过串口通信的方式来实现 应用层面也可以称为信息层 主要利用后台软件完成对信息的进一步分析 判 断与处理 包括数据跟踪 数据挖掘和信息分析 处理及共享等内容 这也是 RFID 技术跃升为所谓的 物联网 的重要前提之一 由于可以对标签内的信息进行重新写 入 因此 RFID 不再是一个静态固定的货物标识 而是反映了货物与货主之间的互 动关系 并且 RFID 的互动作用又使得 RFID 与企业和社会之间能够保持联系 从这 个意义上讲 RFID 代表了现代工业社会对物资生产 运输 销售到消费的全方位信 息处理及服务过程 1 3应用前景及国内外研究状况 射频识别技术在国外发展很快 RFID 产品种类很多 欧姆龙 德州仪器 摩托 罗拉等世界著名厂家都在生产 RFID 产品 并且各有特点 自成系列 我国在这方 面起步较晚 但经过几年的努力 也已经开发出了自主知识产权的产品 XX 大学本科生毕业论文 3 RFID 技术在传感器网络方面的应用被美国 商业周刊 评为 将掀起新产业浪 潮的未来四大高技术 之一 ABI 估计 到 2008 年 RFID 电子标签 阅读器和相 关软件与服务的销售额有可能达 30 亿美元之巨 由此可见 射频识别技术具有广阔 的市场前景 RFID 技术现在正逐渐被广泛应用于工业自动化 商业自动化 交运管理 防伪 等众多领域 甚至在军事中也开始应用 国内电子标签市场处于启动期 各地纷纷 开展基于电子标签的应用工作 主要应用于物流管理领域 医疗产业 货物和危险 品的追踪管理监控 民航行李包裹管理 强制性的检验产品 证件防伪 路桥的不 停车收费 电子门票等方面 由于技术水平和技术设备比较落后 国内的 RFID IC 开发目前处于消化和吸收国外的先进技术 提高射频通讯距离阶段 国内大多数设 计公司研究开发 RFID IC 集中在 LF HF 频段 收发距离较短 在 UHF 频段开发较 少 在微波频段目前尚未出现国内自主研制开发的产品 基本具有一般商业环境的 电子标签天线的设计和研发能力 但还不具备应用于金属 液体等特殊环境中的标签 天线设计能力 HF 的标签封装技术和生产已经成熟 但还不能进行 UHF 的标签封 装 封装设备依靠进口 基本具有 HF 读写器设计和集成制造能力 但还没有 UHF 以上读写器设计和制造能力 中间件和应用系统处于起步和试探阶段 随着 RFID 技术发展及我国 RFID 标准的即将出台等有利因素的推动 RFID 应 用将在我国呈快速发展的势头 特别是在政府行业用户应用的带动下 RFID 应用将 很快拓展到其他行业和部门 预计政府 RFID 应用 交通行业 RFID 应用 制造行业 的部分环节 RFID 应用将是近期 RFID 应用的重要发展领域 而物流行业 制造业的 供应链管理完善则是中期的重要发展领域 最后才是零售行业的大规模应用 加强关键技术研究 集中技术突破 各个国家和地区出于自身安全和利益的考虑 都在积极地制定自己的标准 各 个标准体系不但编码不同 频率的使用也不同 即使同一频段 在空中接口 传输 方式上也有差异 再加上各国无线电管理差异 电子标签使用的频段不可能一致 标准的不统一给电子标签全球化应用带来重重困难 XX 大学本科生毕业论文 4 第 2 章 电子标签阅读器软硬件设计方案 2 1系统硬件设计方案 如果一个应用系统 应用软件 要从一个非接触的数据载体 Tag 中读出数据或 写入数据到一个非基础的数据载体中去 则它需要一个非接触的阅读器作为接口 从应用软件角度看 对数据载体的访问应式尽可能地透明地 也就是说 对 Tag 的 读写操作与对一个同类的数据载体 有接触芯片卡 串行 EEPROM 的访问尽可能 地一致 对一个非基础地数据载体地读写操作式严格按照 主 从原则 来进行地 这意 味着阅读器和 Tag 地所有动作均由应用软件来控制 因此在一个分层系统中 应用 软件式作为主动方 而阅读器则作为从动方只对应用软件地读写指令做出反应 为了执行应用软件发出地一条指令 阅读器会与一个 Tag 建立通信 而相对于 Tag 此时的阅读器是主动方 Tag 只响应阅读器所发出的指令 从不自主活动 由应用软件向阅读器发出的一条简单的读取命令 此时会在阅读器和某个 Tag 之间触发一系列的通信步骤 一条读取命令首先启动了一个 Tag 并进行身份验证 然后传送所要求的数据 因此 阅读器的基本任务就是启动数据载体 Tag 与这个数据载体建立的通 信并且在应用软件和一个非接触的数据载体之间传送数据 非接触通信的所有具体 细节 如建立通信 防止碰撞或身份验证均由阅读器自己来处理 电子标签阅读器的基本工作原理为 标签进入磁场后 接收解读器发出的射频 信号 凭借感应电流所获得的能量发送出存储在芯片中的产品信息 Passive Tag 无源标签或被动标签 或者主动发送某一频率的信号 Active Tag 有源标签或主 动标签 解读器读取信息并解码后 送至中央信息系统进行有关数据处理 系统从功能上主要分为 4 大模块 控制模块 RFID 系统 串行通信模块 显示 模块 各模块组成的系统框图如图 2 1 所示 如图在系统中控制模块主要由 LPC2210 负责整个系统的控制工作 显示模块主 要由七段数码显示管和驱动器件组成负责电子标签信息的显示 XX 大学本科生毕业论文 5 图图 2 1 RFID 电子标签阅读器系统框图电子标签阅读器系统框图 电子标签数据阅读接收发送主要由 RFID 系统负责 串行通信模块主要由 RS 232 C 标准采用 9 芯接口和电平转换芯片 SP3232B 组成 本模块负责阅读器与 PC 机通讯 可进行射频卡信息修改等 RFID 系统由四部分组成 1 标签 Tag 即射频卡 由耦合元件及芯片组成 标 签含有内置天线 用于和射频天线间进行通信 2 阅读器 M210 2G 读取 在读写卡 中还可以写入 标签信息的设备 3 天线 在标签和读取器间传递射频信号 2 2系统主要芯片与模块介绍 本设计方案的两个主要芯片是 LPC2210 和 M210 2G LPC2210 功耗低 性能 高 接口资源丰富 可以在 RFID 阅读器的基础上进行其它功能的扩展 实现一个多 功能应用系统 M210 2G 非接触式读写模块符合多标准 安装简便成本经济 安全 可靠 2 2 1微控制器 LPC2210 LPC2210 是基于一个支持实时仿真和跟踪的 16 32 位 ARM7TDMI STM CPU 对 代码规模有严格控制的应用可使用 16 位 Thumb 模式将代码规模降低超过 30 而 性能的损失却很小 串行通信模块 控制模块 RFID 系统 显示模块 XX 大学本科生毕业论文 6 由于 LPC2210 的 144 脚封装 极低的功耗 多个 32 位定时器 8 路 10 位 ADC PWM 输出以及多达 9 个外部中断使它们特别适用于工业控制 医疗系统 访问控制和电子收款机 POS 通过配置总线 LPC2210 最多可提供 76 个 GPIO 由于内置了宽范围的串行通信接口 LPC2210 也非常适合于通信网关 协议转换器 嵌入式软件调制解调器以及其它各种类型的应用 1 ARM7TDMI STM 结构概述 ARM7TDMI S 是一个通用的 32 位微处理器 它可提供高性能和低功耗 ARM 结构是基于精简指令集计算机 RISC 原理而设计的 指令集和相关的译码机制比复 杂指令集计算机要简单得多 这样使用一个小的 廉价的处理器核就可实现很高的 指令吞吐量和实时的中断响应 由于使用了流水线技术 处理和存储系统的所有部分都可连续工作 通常在执 行一条指令的同时对下一条指令进行译码 并将第三条指令从存储器中取出 ARM7TDMI S 处理器使用了一个被称为 THUMB 的独特的结构化策略 它非常 适用于那些对存储器有限制或者需要较高代码密度的大批量产品的应用 2 LPC2210 部分特性介绍 1 UART LPC2210 包含 2 个 UART 一个 UART 提供一个完全的调制解调器控制握手接 口 另一个 UART 只有发送和接收数据线 16 字节接收和发送 FIFO 寄存器位 置遵循 550 工业标准 接收器 FIFO 触发点为 1 4 8 和 14 个字节 内置波特率 发生器 UART1 包含标准调制解调器接口信号 2 I2C 接口 I2C 是一个双向总线 它使用两条线 串行时钟线 SCL 和串行数据线 SDA 实现互连芯片的控制 每个器件都通过一个唯一的地址来识别 这些器件可以是只 接收器件 例如 LCD 驱动器 或是可以发送和接收信息的发送器 例如存储器 发送器和 或接收器可以操作为主或从模式 这取决于芯片是启动数据的发送还是只 被寻址 I2C 是一个多主总线 它可以由超过一个总线主控器进行控制 LPC2210 所包含的 I2C 功能支持 400kbit s 快速 I2C 具有标准的 I2C 总线接口 可配置为主机 从机或主 从机 可编程时钟可实现通用速率控制 主机从机之间双 向数据传输 多主机总线 无中央主机 同时发送的主机之间进行仲裁 避免了总 线数据的冲突 串行时钟同步使器件在一条串行总线上实现不同位速率的通信 串 XX 大学本科生毕业论文 7 行时钟同步可作为握手机制使串行传输挂起和恢复等特性 3 通用并行 I O 口 没有连接到特定外设功能的管脚由 GPIO 寄存器进行控制 管脚可以动态配置 为输入或输出 寄存器可以同时对任意输出口进行置位或清零 输出寄存器的值以 及管脚的当前状态都可以读出 I O 口具有单个位的方向控制 输出置位和清零可单 独控制 所有 I O 在复位后的默认状态都为输入等特性 2 2 2M210 2G 非接触式读写模块 M210 2G 非接触式读写模块可应用到提供非接触式阅读器中 范围涉及门禁控 制 逻辑访问 物品追踪等 M210 2G 符合 ISO 14443 A B 和 ISO 15693 协议标准 并能与 Sony 协议 标准取得通信 在透明模式中 它能与符合以上标准的任何芯片取得通信 包括天 线在内尺寸仅为 6 x 4 1cm 设计优化 形状小巧 这样它就更容易安装到尺寸迷 你的便携式电子访问控制设备中 进行非接触式信息读取 它的卡片自动检测功能 和低功耗设计可在电池供电的设备中起到省电节能的作用 设备能够连续运行多年 M210 2G 提供了 picopass 安全措施 包括密钥管理和加密计算 它们确保了 p icopass micropass 阅读器 主机设备之间的身份验证和通信都是安全可靠的 M210 2G 带有扩展存储空间 可另行下载及存储软件 优化芯片与阅读器的通信 时间 或者使功能变得更加个性化 M210 2G 支持双标准 非接触式读写模块也具 有接触式功能 进行通信时 它可以和常规的接触卡一样 采用 ISO7816 T 0 因此 它是一种可将阅读器从接触式转变为非接触式的工具 M210 2G 非接触式读写模块具有兼容 ISO 14443A PINSEL0 PINSEL0 设置I2C控制口有效 I2SCLH Fpclk fi2c 1 2 设置I2C时钟为fi2c I2SCLL Fpclk fi2c 2 I2CONCLR 0 x2C I2CONSET 0 x40 使能主I2C 设置I2C中断允许 VICIntSelect 0 x00000000 设置所有通道为IRQ中断 VICVectCntl0 0 x29 I2C通道分配到IRQ slot 0 即优先级最高 VICVectAddr0 int IRQ I2C 设置I2C中断向量地址 VICIntEnable 0 x0200 使能I2C中断 XX 大学本科生毕业论文 33 4 2 5LPC2210引脚连接 因为系统中用到LPC2210的两个UART I2C I O等资源 所以在系统初始化中 要通过LPC2210的引脚连接模块将这些资源激活 在设计中UART0 UART1与I2C在 LPC2210中相应的引脚连接模块为PINSEL0将PINSEL0设置为0 x55550005将 UART0 UAT1 I2C激活 4 3电子标签阅读器主程序设计 电子标签阅读器主程序中主要包括对M210 2G的操作 数据的存储 UART的 操作 I2C的操作等 4 3 1M210 2G的操作 设计中对M210 2G读头的操作也就是对UART1的操作 通过串口给M210 2G发 送命令 其命令字方式由INSIDE公司的通信协议所规定 如读取电子标签序列号的 指令如表4 2所示 表表4 2 M210 2G读头读取卡号命令字读头读取卡号命令字 CLASSCommandCommand parameterCommand parameterCommand parameter 80hA4h020202 在程序中将命令字按字节的方式发送到UART1 波特率设置为9600 8位数据 位 偶校验 2位停止位 4 3 2M210 2G应答信号过滤设置 M210 2G的应答信号中前两个字节为应答状态字可根据状态字判断应答信号类 型 在读取卡号中 M210 2G的应答信号第一字节为A4h如果应答信号的第一字节 不是A4可不做处理 如是A4h序列号读取并存储 4 3 3数据存储单元设置 XX 大学本科生毕业论文 34 由于Tag 电子标签 的序列号由64位二进制数组成即8字节16进制数 M210 2G在接收读取卡号命令后读取卡号并回答其格式如表4 3所示 表表4 3 M210 2G回答状态字格式回答状态字格式 A4hCard Type序列号90h00h 如表4 2所示前两个字节为应答状态字从第三个字节开始为电子标签序列号 最 后两个字节也为M21 2G返回的状态字 在存储前将第一二字节与最后两字节过滤 只存储序列号 在设计中采用动态循环的方式存储30组数据 当存储了30组有效数据后在此有 数据存储时将最先一组数据覆盖 在设计中设置了一个8 30的二位数组来存储数据 由于LED数码管显示为BCD码所以在送显前将16进制数转换为BCD码 4 3 4蜂鸣器控制 在硬件设计中蜂鸣器与LPC2210的P0 7脚相连 只要控制P0 7脚即对蜂鸣器的控 制 当P0 7输出低电平时蜂鸣器工作输出高电平时蜂鸣器停止工作 通过延时的方 法可得到长短不一样的鸣叫声 4 4程序流程 程序包括 LPC2210 的初始化 串口的初始化 I2C 总线的初始化 键盘扫描 LED 动态显示 ZLG7290 的操作等 4 4 1阅读器系统初始化流程 为了使系统能够正常运行 必须在系统复位时对系统进行初始化工作 其中包 括中断向量表的建立和REMAP 重映射 操作 各种模式堆栈初始化操作 时钟初 始化操作 串口初始化操作和中断选择初始化操作 ARM7 处理器有7 种异常模式 其中断向量位置是固定的 采用64 字节存储中断向量表 为了实现LPC2210 在不 同操作模式下对中断的使用 必须对LPC2210 中Flash 的Boot Block 块和SRAM 空 间的一小部分REMAP 另外 需要对各种模式的堆栈进行初始化 LPC2210 振荡器 XX 大学本科生毕业论文 35 工作在振荡模式 外部晶体振荡频率为20 25MHz 通过内部PLL 电路调整时钟 使 系统运行速度更快 程序首先使能PLL 但不连接PLL 然后设置外设时钟与系统时 钟的分频比 接着设置PLL 的乘因子和除因子 设置完成后 把数据正确写入硬件 并等待PLL 跟踪完成 最后 使能PLL 并使PLL 连上系统 串口是阅读器与PC 机 通信端口和M210 2G与LPC2210通信端口 在使用前须设置串口波特率 接收和发送 数据字符格式和初始化 4 4 2阅读器键盘扫描程序流程 在系统初始化完毕后 通过操作以 I2C 通信的 ZLG7290 发送读键命令 读取 ZLG7290 返回的值并按其返回值做出相应的动作 键盘扫描程序流程图如图 4 1 所示 4 4 3LED 动态扫描显示程序流程 在系统初始化完毕后 通过操作以 I2C 通信的 ZLG7290 来启驱动 7 段 LED 数码 XX 大学本科生毕业论文 36 管来显示系统中所需要的可视化操作 如读取到的 Tag 序列号 及上位机发送的命 令号 其流程图如图 4 2 所示 4 4 4M210 2G 操作流程 对 M210 2 读头的操作是这次设计中的重要工作 在 LPC2210 初始化后通过串 口给 M210 2G 发出命令 M210 2G 接收命令并执行命令 做出相应的动作 在本 设计中只涉及到 M210 2G 对 Tag 序列号的读取 每个 Tag 的 64 位序列号是唯一的 M210 2G 接收到 LPC2210 发出的命令后打开射频天线并发射带有一定能量的射频信 号 Tag 接收到带有能量的射频信号 自身线圈在电磁耦合下产生工作电流并将自 己的序列号发送给 M 210 2G 图 4 3 是 LPC2210 对 M210 2G 的操作流程图 4 4 5LPC2210 与上位机通信流程 LPC2210 将 M210 2G 读头读到的数据存储在内部 FLASH 中 当上位机需要数据时 XX 大学本科生毕业论文 37 图图 4 3 M210 2G 操作流程操作流程 XX 大学本科生毕业论文 38 可通过发送十六进制的命令给 LPC2210 LPC2210 得到上位机发送的命令字 判断并做出相应动作 将存储的 30 个 Tag 序列号或最后一序列号发给上位机 其流 程如图 4 4 所示 图图 4 4 LPC2210 与上位机通信软件流程与上位机通信软件流程 4 5上位机软件设计 通过上位机软件可以直观的查看到阅读器所读出的卡号信息 阅读器器在读取 序列号后将序列号发送到上位机 操作人员可通过电脑显示器 可阅读到目前刷卡的 序列号 或以发送命令的方式给阅读器发送命令 来读取最后一次刷卡记录与最后 30 次刷卡记录 上位机软件是用 VC 编程 利用了 VC 中的 Mscomm 控件 软 开始 N Y LPC2210 初始化 I2C 串口初始化 给 M210 2G 发送命令字 存储读到的卡号 发送相应序列号数组到上位 等待上位机通过串口 0 发送的 命令 判断命令类型 最后 1 组或 30 组 结束 XX 大学本科生毕业论文 39 件可改变串口号与波特率 默认校验位为无校验 两位停止位 4 5 1MSComm 控件 MSComm 控件提供下列两种处理通讯的方式 1 事件驱动通讯是处理串行端口交互作用的一种非常有效的方法 在许多情 况下 在事件发生时需要得到通知 例如 在 Carrier Detect CD 或 Request To Send RTS 线上一个字符到达或一个变化发生时 在这些情况下 可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件 OnComm 事件还可以 检查和处理通讯错误 2 在程序的每个关键功能之后 可以通过检查 CommEvent 属性的值来查询 事件和错误 如果应用程序较小 并且是自保持的 这种方法可能是更可取的 例 如 如果写一个简单的电话拨号程序 则没有必要对每接收一个字符都产生事件 因为唯一等待接收的字符是调制解调器的 确定 响应 每个使用的 MSComm 控件对应着一个串行端口 如果应用程序需要访问多个 串行端口 必须使用多个 MSComm 控件 可以在 Windows 控制面板 中改变端 口地址和中断地址 无论何时当 CommEvent 属性的值变化时 就产生 OnComm 事件 标志发生 了一个通讯事件或一个错误 尽管 MSComm 控件有很多重要的属性 但首先必须熟悉几个属性如表 4 4 所 示 表表 4 4 MSComm 控件的几个重要属性控件的几个重要属性 属性描述 CommPort设置并返回通讯端口号 Settings以字符串的形式设置并返回波特率 奇偶校验 数据位 停止位 PortOpen设置并返回通讯端口的状态 也可以打开和关闭端口 Input从接收缓冲区返回和删除字符 Output向传输缓冲区写一个字符串 4 5 2串口数据接收 XX 大学本科生毕业论文 40 当由串口事件发生并检测到数据缓冲区由时读取缓冲区内的数据 将读取的数 据定义为 VARIANT 类型 再将 VARIANT 类型数据转化为字节型数组 再将数组 转换为字符串形式 如果是以 16 进制显示则先将字符串转换为 16 进制显示 如果 不是以 16 进制显示则直接显示字符串 4 5 3串口数据发送 串口数据发送与串口数据接收一样分为 16 进制和非 16 进制 当以 16 进制发送 时将一个字符串作为十六进制串转化为一个字节数组 字节间可用空格分隔 返回 转换后的字节数组长度 同时字节数组长度自动设置 当不是以 16 进制发送时直接 将字符串送到发送缓冲区并发送 4 5 4上位机软件界面 上位机软件界面介绍如图 4 5 所示 如果需要特殊需要可在此程序基础上进行二次开发 XX 大学本科生毕业论文 41 第 5 章 系统调试与结果 因为在系统中涉及下位机与上位机 所以系统调试分为下位机调试和上位机调 试 及系统整体调试几部分 下面是具体的测试方法与过程 5 1阅读器显示与键盘测试 LPC2210 的硬件前面已描述 显示与键盘是通过 ZLG7290 显示与键盘集成芯片 阅读器显示与键盘的操作就是对 ZLG7290 芯片的操作 1 测试方法 在操作过程中 可以通过 I2C 总线按照规定格式向 ZLG7290 发送命令字 看能 否显示指定字符或数字 按键的测试和显示的测试一样 可以发送 ZLG7290 的命令 字来读取按键值 2 测试工具与程序 EasyARM2210 实验开发板 ADS 开发环境 EasyJTAG 3 测试结果 ZLG7290 显示出指定字符 如发送 HELLO 的命令字 11H 0EH 14H 14H 00H 7 段数码显示管正确显示 HELLO 并且当有按键按下时 ZLG7290 返回正 确的键值 说明 ZLG7290 硬件连接正确 5 2蜂鸣器测试 1 测试方法 蜂鸣器的测试可在按键测试后进行 结合当键盘按下时可使蜂鸣器鸣叫 判断 蜂鸣器正确与否 通过调节延时的长短控制蜂鸣器的鸣叫长短 2 测试结果 测试过程中蜂鸣器在按键按下鸣叫 证明了蜂鸣器的连接正确 5 3M210 2G 读头与 LPC2210 通信测试 1 测试方法 XX 大学本科生毕业论文 42 M210 2G 读头与 LPC2210 通信在前面章节已提到 M210 2G 是通过 LPC2210 的 UART1 相连引脚相连 通过 LPC2210 的 UART1 控制 M210 2G 读头 测试时将 M210 2G 的电源端子接正 5V 并将地端接至 LPC2210 的低端以保持共地 将 M210 2G 的 RXD 与 TXD 分别与 LPC2210 的 RXD1 和 TXD1 相连接 连接完成后上电 通过编写 LPC2210 的应用软件向 UART1 发送命令字 80 A4 02 02 09 如果 M210 2G 读头返回状态字并在 LED 数码管有显示说明 LPC2210 与 M210 2G 通信成功 2 测试工具 LPC2210 开发板 M210 2G 读头 串口延长线 万用表 ADS 开发环境 EasyJTAG 3 测试结果 在刷卡后 M210 2G 读到 Tag 序列号并将序列号发送到串口线上 LPC2210 接收 到序列号并在 LED 数码管上通过三组 8 位显示将序列号显示完毕 说明 LPC2210 与 M21 2G 读头间的通信建立成功 5 4阅读器与上位机软件的通信测试 阅读器与上位机的硬件连接如第 4 章所述 上位机软件具有发送命令 字符串 等功能 而阅读器通过判定上位机所发的命令执行一定的命令 在设计过程中已将 上位机所发指令格式已经固化在阅读器中 如上位机要获得阅读器最近 30 组的刷卡 记录 可发 01H 命令给阅读器 阅读器会将最近 30 组的刷卡记录以十六进制返回给上 位机 如上位机要获得阅读器最近 1 组的刷卡记录可发 02H 命令给阅读器 阅 读器会将最近 1 组的刷卡记录以十六进制返回给上位机 1 测试方法 在测试过程中加入了通信测试命令 按下测试按键阅读器发送通信成功的字符 串 210 2G susseful 给上位机 若上位机成功接收并显示字符串 说明上位机 软件接收与阅读器发送正常 2 测试工具 LPC2210 开发板 M210 2G 读头 串口延长线 万用表 ADS 开发环境 EasyJTAG 上位机软件 VC 调试环境 XX 大学本科生毕业论文 43 3 调试结果 通过阅读器的通信测试按键我们可以方便的检测按键通信是否成功 当上位机 软件收到 210 2G susseful Z 字符串并显示时表示通信成功 如图 5 1 所示在 实际测试中上位机软件得到阅读器发出的测试字符串 表明阅读器与上位机通信成 功 使用上位机软件给阅读器发送命令 01H 阅读器返回最近 30 组刷卡记录如图 5 2 所示 发送 02H 阅读器返回最后一次刷卡记录如图 5 3 所示 图图 5 1 阅读器与上位机软件通信成功示意图阅读器与上位机软件通信成功示意图 XX 大学本科生毕业论文 44 图图 5 2 阅读器返回最近阅读器返回最近 30 组刷卡记录组刷卡记录 图图 5 3 阅读器返回最后一次刷卡记录阅读器返回最后一次刷卡记录 XX 大学本科生毕业论文 45 前面几项测试为模块测试 按照系统模块的组成 将系统搭建后经过长达 10 小 时的整机 系统稳定工作 测试表明系统的稳定性能达到工作要求 附录 1 阅读器设计程序代码 2007 5 13 日 XX 大学信息与控制工程学院 电子 0303 班 段金龙 文件信息 文 件 名 RFID 电子标签阅读器软件 创 建 人 段金龙 最后修改日期 2007 5 10 描 述 RFID 电子标签阅读器软件主程序 历史版本信息 创建人 段金龙 版 本 0 01 日 期 2003 5 8 描 述 RFID 电子标签阅读器软件 修改人 版 本 日 期 描 述 当前版本修订 修改人 日 期 XX 大学本科生毕业论文 46 描 述 文件名 I2CTEST C 功能 使用硬件 I2C 对 ZLG7290 进行操作 利用中断方式操作 说明 将跳线器 JP5 短接 include config h define ZLG72900 x70 定义器件地址 define BEEPCON 0 x00000080 define Glitter COM 0 x70 uint8 SAVE 30 8 定义 30 组数据存储地址 uint8 Zuihou 8 typedef struct UartMode uint8 datab 字长度 5 6 7 8 uint8 stopb 停止位 1 2 uint8 parity 奇偶校验位 0 为无校验 1 奇数校验 2 为 偶数校验 UARTMODE 名称 I2C Init 功能 主模式 I2C 初始化 包括初始化其中断为向量 IRQ 中断 入口参数 fi2c初始化 I2C 总线速率 最大值为 400K 出口参数 无 void I2C Init uint32 fi2c XX 大学本科生毕业论文 47 if fi2c 400000 fi2c 400000 PINSEL0 PINSEL0 设置 I2C 控制口有效 I2SCLH Fpclk fi2c 1 2 设置 I2C 时钟为 fi2c I2SCLL Fpclk fi2c 2 I2CONCLR 0 x2C I2CONSET 0 x40 使能主 I2C 设置 I2C 中断允许 VICIntSelect 0 x00000000 设置所有通道为 IRQ 中断 VICVectCntl0 0 x29 I2C 通道分配到 IRQ slot 0 即优 先级最高 VICVectAddr0 int IRQ I2C 设置 I2C 中断向量地址 VICIntEnable 0 x0200 使能 I2C 中断 名称 UART0 Ini 功能 串口 0 及串口 1 的初始化 入口参数 baud set 出口参数 无 设计 段金龙 版本 2007 年 5 月 24 日 uint8 UART0 Ini uint32 baud UARTMODE set uint32 bak 参数过滤 if 0 baud baud 115200 return 0 XX 大学本科生毕业论文 48 if set datab8 return 0 if 0 set stopb set stopb 2 return 0 if set parity 4 return 0 设置串口波特率 U0LCR 0 x80 U1LCR 0 x80 DLAB 位置 1 bak Fpclk 4 baud U0DLM bak 8 U0DLL bak U1DLM bak 8 U1DLL bak 设置串口模式 bak set datab 5 设置字长度 if 2 set stopb bak 0 x04 判断是否为 2 位停止位 if 0 set parity set parity set parity 1 bak 0 x08 bak set parity 0 dly for i 0 i0 dly for i 0 i 5000 i uint8 rcv buf 12 UART0 数据接收缓冲区 volatile uint8 rcv new 接收新数据标志 名称 GetBUF 功能 从 UART1 口读取一字节按键数据 入口参数 无 出口参数 返回 TRUE 表示接收到数据 返回 FALSE 表示无数据 uint8 GetBUF uint8 i if U1LSR for i 0 i 12 i rcv buf i U1RBR 读取 FIFO 的数据 并清除中断标志 return TRUE else rcv buf 0 0 x00 return FALSE XX 大学本科生毕业论文 54 名称 ISendBuf 功能 将缓冲区的数据发送回主机 使用 FIFO 并等待发送完毕 入口参数 无 出口参数 无 void ISendBuf uint8 sendbuf 8 uint8 i for i 0 i 8 i SendByte sendbuf i while U0LSR 等待数据发送 名称 SendSAVE 功能 将缓冲区的数据发送回主机 使用 FIFO 并等待发送完毕 入口参数 无 出口参数 无 void SendSAVE uint8 i uint8 t for i 0 i 30 i for t 0 t0 i for t 0 t 5000 t IO0SET BEEPCON DelayNS i uint8 const SEND STRING M210 2G Succesful n 名称 main 功能 进行串口及 I2C 器件 7290 的操作 说明 在 STARTUP S 文件中使能 IRQ 中断 清零 CPSR 中的 I 位 在 CONFIG H 文件中包含 I2CINT H ZLG7290 H int main void UARTMODE uart0 set uint8 key1 uint8 DISBUF1 8 uint8 DISBUF2 8 uint8 DISBUF3 8 uint8 disp buf 8 uint8 disp buf1 8 XX 大学本科生毕业论文 56 uint8 Count 0 uint8 key uint8 i uint8 t uint8 j uint8 k PINSEL0 0 x55550005 PINSEL1 0 x00000000 IO0DIR BEEPCON uart0 set datab 8 uart0 set stopb 2 uart0 set parity 2 UART0 Ini 9600 uart0 set 串口初始化 I2C Init 30000 I2C 配置及端口初始化 U0FCR 0 x81 设置触发深度为 14 个字节 U1FCR 0 xC1 设置触发深度为 14 个字节 DelayNS 20 IO0SET BEEPCON 关闭蜂鸣器 while 1 SendCommand 0 xA4 0 x02 0 x02 0 x09 if GetBUF TRUE 判断串口是否有 数据 采用查询方式 DelayS 20 if rcv buf 0 0 xA4 for i 0 i 8 i XX 大学本科生毕业论文 57 Zuihou i rcv buf i 2 i 0 ISendBuf Zuihou if Count 30 for j 0 j 30 j 判定数组是否有 30 个值如果 for k 0 k 8 k 有 30 个数据就将数据向前 SAVE j k SAVE j 1 k 移动 1 位保证最后 的数据放在第 30 行 Count 29 将指针指向第 29 行 for t 0 t 8 t SAVE Count t rcv buf t 2 Count DISBUF1 7 rcv buf 2 100 DISBUF1 6 rcv buf 2 100 10 DISBUF1 5 rcv buf 2 100 10 DISBUF1 4 rcv buf 3 100 DISBUF1 3 rcv buf 3 100 10 XX 大学本科生毕业论文 58 DISBUF1 2 rcv buf 3 100 10 DISBUF1 1 rcv buf 4 100 DISBUF1 0 rcv buf 4 100 10 DISBUF2 7 rcv buf 4 100 10 DISBUF2 6 rcv buf 5 100 DISBUF2 5 rcv buf 5 100 10 DISBUF2 4 rcv buf 5 100 10 DISBUF2 3 rcv buf 6 100 DISBUF2 2 rcv buf 6 100 10 DISBUF2 1 rcv buf 6 100 10 DISBUF2 0 rcv buf 7 100 DISBUF3 7 rcv buf 7 100 10 DISBUF3 6 rcv buf 7 100 10 DISBUF3 5 rcv buf 8 100 DISBUF3 4 rcv buf 8 100 10 DISBUF3 3 rcv buf 8 100 10 DISBUF3 2 rcv buf 9 100 DISBUF3 1 rcv buf 9 100 10 DISBUF3 0 rcv buf 9 100 10 beep 10 ZLG7290 SendBuf DISBUF1 8 DelayNS 20 ZLG7290 SendBuf DISBUF2 8 DelayNS 20 ZLG7290 SendBuf DISBUF3 8 DelayNS 20 else disp buf1 7 0 x1f XX 大学本科生毕业论文 59 disp buf1 6 0 x11 disp buf1 5 0 x0e disp buf1 4 0 x14 disp buf1 3 0 x14 disp buf1 2 0 x00 disp buf1 1 0 x1f disp buf1 0 0 x1f ZLG7290 SendBuf disp buf1 8 if PC GetKey 串口查询方式 beep 3 短叫 disp buf1 7 0 x0c disp buf1 6 0 x00 disp buf1 5 0 x0d disp buf1 4 0 x0e disp buf1 3 0 x1f disp buf1 2 key1 100 10 disp buf1 1 key1 10 10 disp buf1 0 key1 1 10 if disp buf1 0 1 SendSAVE if disp buf1 0 2 XX 大学本科生毕业论文 60 ISendBuf Zuihou ZLG7290 SendBuf disp buf1 8 将串口数据送显 DelayNS 10 else DelayS 5 key 0 IRcvStr ZLG7290 0 x01 disp buf 2 if 0 disp buf 1 key disp buf 0 switch key case 1 case 9 UART0 SendStr SEND STRING beep 1 DelayNS 10 break case 2 case 10 beep 8 for i 0 i 12 i ZLG7290 SendCmd 0 x31 0 x00 DelayNS 8 break case 3 case 11 beep 1 ZLG7290 SendBuf DISBUF1 8 XX 大学本科生毕
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 报考研究生申请书
- 2025内蒙古额尔古纳市第一中学人才引进(第二号)考前自测高频考点模拟试题有答案详解
- 2025-2030工业机器人系统集成商区域布局与技术服务升级报告
- 2025年六安阳光电力维修工程有限责任公司招聘85人考前自测高频考点模拟试题附答案详解(完整版)
- 2025-2030工业机器人市场预测及投资策略研究报告
- 2025-2030工业机器人密度提升与制造业效率改善研究报告
- 2025-2030工业废水处理技术升级需求与专业化运营市场前景报告
- 2025-2030工业大数据分析平台功能演进与行业解决方案创新报告
- 2025年美容合作协议合同6篇
- 宿舍店申请书
- 国开2025年《行政领导学》形考作业1-4答案
- GB/T 45952-2025科技馆运行评估规范
- 2025年全球汽车供应链核心企业竞争力白皮书-罗兰贝格
- 儿童营养性疾病的预防
- 幼儿园大班安全教育:《暴力玩具不能玩》 课件
- 26个英文字母大小写描红
- 养老院预算及成本管理制度
- 研学旅行基地评估认定评分表
- DL∕T 1867-2018 电力需求响应信息交换规范
- 版良性前列腺增生诊疗指南PPT
- 眼睑基底细胞癌ppt课件
评论
0/150
提交评论