- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3. 主程序设计 主程序首先调用System_Init()函数进行系统初始化,然后进入循环,等到上位机下发的指令,若收到指定功能的指令,则执行执行并返回结果,代码如下: 3.2.2 软件设计与调试 软件测试 1. 测试方法 (1)利用STC_ISP软件烧录程序进单片机。 (2)利用串口调试调试助手连接阅读器,然后根据表3.3下发指令,测试执行结果。 表3.4 125kHz标签阅读器的功能测试情况 3.3 任务小结与作业 任务小结 在本任务中,通过对实验型标签阅读器工作流程的分析,我们熟悉了阅读器软件应具备的基本功能,明确了阅读器内嵌单片机程序的开发思路。 开发125kHz标签阅读器软件的关键点是: 1. 要明确阅读器需实现的功能。 2. 要熟悉125kHz标签的技术标准及技术特点,重点要深入理解曼侧斯特解码原理,并严格按照时序要求编写各功能子程序。 3. 要进一步学会规划读写器与PC通讯的串口协议,深入理解状态机的运用方法,并熟练运用单片机基础知识开发串口通讯程序。 完成本任务后,请大家深入总结,并完成下述作业: 1. 为所设计的阅读器编写软件技术设计报告。 2. 对阅读器内嵌单片机的软件进行改进,使其能自动读取激励范围内的标签,若读取到标签后,通过串口上传标签序列号。 3. 以任务2中改进的阅读器为平台,开发一款酒店门禁阅读器软件,实现门卡注册、刷卡校验、开门等功能。 RFID技术及应用 阅读器的完整程序构成如图3.17所示,主要包括检测数据位子程序、读取数据位子程序、接收数据及解码子程序、读取卡号子程序、阅读器与上位机串口通信接口程序、系统初始化程序、标签操作程序等组成部分。 * 案例:实验型125kHz标签阅读器的使用步骤 以本项目任务1中所示教学实验用125kHz标签阅读器为例,其对标签操作的基本步骤如图3.25所示。 * 阅读上述案例,请思考如下问题: 1. 阅读器在单片机软件上应具备哪些功能? 2. 曼侧斯特解码原理是什么?如何在单片机上实现曼侧斯特解码? 请带着上述问题,查阅有关资料,并借鉴任务1中的阅读器平台,完成如下任务: 1. 分析125kHz标签阅读器的软件需求,确定软件设计所需实现的功能。 2. 分析曼侧斯特解码原理,并编程实现曼侧斯特解码。 3. 规划阅读器与PC通讯的协议,并根据协议编程串口处理程序。 4. 根据读写器功能需求,编写相应主程序,并利用串口调试助手,完成软件的功能测试。 * 通过对图3.25分析可知,通用阅读器内置的主控单片机在软件上应满足如下需求: 1. 读卡声光提示功能 阅读器读卡后,单片机能通过P2.4口驱动蜂鸣器Buz1发生、通过P2.3口控制点亮二极管D5,并持续一定时间(如100ms)后,让Buz1停止蜂鸣并熄灭D5。 * 2. 接收上位机指令,并执行相应操作 主控单片机应能根据指定的通讯协议,接收和解析来自上位机的控制指令,然后执行对应的操作,如蜂鸣、读标签序列号等。 * 完整的阅读器程序结构如图2.26所示。其中,SerialPort.c主要用于串口初始化、串口接收数据(中断方式)、串口数据封装及发送;SLE4442.c是对卡操作的有关代码,如操作模式子程序、读写各类存储器子程序;Dleay.c定义有各类延时子程序;main.c中主要包含系统初始化及串口数据处理子函数。 * 阅读器端口定义与硬件接口程序设计主要完成表2.7所示任务。 * 从图3.16可知,单片机选用的晶振为22.1184MHz,所以一个机器周期为0.5us,因此当利用定时器计数TIME00、TIME05、TIME10次后,计时长度分别为50us、260us、550us。 * 检测数据位子程序readbit()的功能是通过检测端口是否跳变和判断位脉冲宽度的方式来发现数据位,其工作流程如图3.26所示。 * * 读取数据位子程序readdata()通过调用readbit()函数检测数据位,若有可用数据位,则根据当前位状态bitin,返回前一位状态的值(!bitin)。 * 要对标签返回的曼彻斯特信号进行解码,首先应掌握标签的存储格式和数据编码方式。接收数据及解码子程序CheckData()的基本思路是首先检测起始位,然后读取55位数据,并判断结束位,再进行逐行、逐列偶校验。对应的程序流程如图3.27所示。 * * 本项目的串口通信接口程序与项目2任务3的相似,主要涉及通信协议、状态机、串口初始化、串口中断服务程序等几方面。 * 根据软件需求分析可知,本项目涉及的上位机指令主要包括获取硬件版本号、蜂鸣、读标签序列号等三方面,因此制定如表3.3所示的串口通信协议。 * 在本任务中,通过对实验型标签阅读器工作流程的
文档评论(0)