钻具出入库自动检测系统毕业设计论文正文.doc

上传人:仙人指路1688 文档编号:4069618 上传时间:2023-04-03 格式:DOC 页数:37 大小:1.26MB
返回 下载 相关 举报
钻具出入库自动检测系统毕业设计论文正文.doc_第1页
第1页 / 共37页
钻具出入库自动检测系统毕业设计论文正文.doc_第2页
第2页 / 共37页
钻具出入库自动检测系统毕业设计论文正文.doc_第3页
第3页 / 共37页
钻具出入库自动检测系统毕业设计论文正文.doc_第4页
第4页 / 共37页
钻具出入库自动检测系统毕业设计论文正文.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《钻具出入库自动检测系统毕业设计论文正文.doc》由会员分享,可在线阅读,更多相关《钻具出入库自动检测系统毕业设计论文正文.doc(37页珍藏版)》请在三一办公上搜索。

1、目 录1绪论11.1背景11.1.1传统管理模式的弊端11.1.2 RFID技术的崛起11.2目的和意义21.2.1目的21.2.2意义21.3RFID技术的主要应用21.4主要工作和任务32相关知识简介42.1RFID技术42.1.1读写器42.1.2电子标签52.1.3应用软件系统62.2MF RC50062.2.1MF RC500简介62.2.2MF RC500特性83系统设计与实现93.1系统总体架构93.1.1系统可行性分析93.1.2系统架构103.2硬件设计113.2.1USB通讯及电源模块设计113.2.2天线模块设计123.2.3微控制器设计143.3软件设计143.3.1主

2、程序设计143.3.2显示屏程序设计183.3.3ISO14443标准协议程序设计214系统测试235结论26致 谢28参考文献29附 录301绪论1.1背景在当今的社会里,石油作为我们国家发展不可缺少的能源,对世界上的每个国家来说都有着举足轻重的地位。随着钻井市场竞争的日益激烈,我们对钻井技术的要求也越来越高,与此同时,我们对钻具的保护就要求更加严格。但是,在传统的管理模式中,管理员很难做到对每一种钻具一对一的管理,导致许多钻具因为各种原因“不翼而飞”,或者磨损得比较严重,甚至导致人们因为对钻具的使用情况不熟悉而酿成不堪设想的后果。除此之外,在现在计算机技术飞速发展的社会里,RFID技术作为

3、一种新崛起的高新技术进入我们的社会生活中,给我们带来了巨大的方便。所以,将RFID技术应用到我们的钻具管理模式中已经成为了钻进市场中的一种迫切需求。将RFID技术和IC卡系统技术相结合就形成了非接触式IC卡系统的产物。早期的IC卡是接触式的,有许多缺点,包括接触磨损,效率低,难维护等问题。而新的钻具管理模式就是采用非接触式的IC卡系统,相比早期的IC卡系统来说,具有操作方便,抗干扰强,可靠性高,安全性高等优点。1.1.1传统管理模式的弊端目前,在国内钻井市场日益激烈的情况下,人们对钻具的管理要求也越来越严格。然而,传统的钻具管理模式实行钻具定队管理。人们为了节约成本,时间等一系列因素,要求无论

4、钻井队伍在遇到什么样的钻井深度和井身机构的情况下,都只使用一套钻具,将全部自认为最好的钻具混在一起形成一套钻具,而不考虑钻具之间的配合是否合适。传统的管理模式导致许多好的钻具不能合理的利用,甚至许多钻具磨损得更加严重,使钻具在用的过程中失效,导致事故的发生。此外,没有对这些钻具进行跟踪分析,很可能导致许多钻具在使用的过程中或者在使用后就不见了,下次再需要的时候又要浪费时间来对这套钻具进行配套。1.1.2 RFID技术的崛起随着社会的进步和计算机技术的飞速发展,自动识别技术渐渐进入我们的社会生活中,其中射频识别技术作为这些识别技术中的一种新型技术,在国内市场中迅速崛起,被誉为未来取代条形码标签最

5、具潜力的技术。近年来,RFID技术带来的产品不断的进入到我们的社会生活中,其中非接触式的IC卡系统就是一个显著地例子。门禁系统,食品溯源,博物馆应用,上海世博会门票等一系列产物都与该技术有着密不可分的关系。物联网已被确定为中国战略性新型产业之一,而射频识别技术作为物联网发展的最关键的技术,随着物联网的发展,射频识别技术也将得到很好的利用。1.2目的和意义1.2.1目的为了使钻具资源得到合理的利用,使钻具的生命周期更长,新的钻具管理模式取代传统的钻具管理模式是势在必行的。只有用新的管理模式对这些钻具做到“一对一”的管理,以及跟踪分析,才能更好地利用这些资源。只有新的管理方式才能跟上钻井市场飞速发

6、展的步伐。此外,RFID技术已经渐渐进入我们的社会生活中,将该技术应用到钻具的科学化管理中也是我们油田事业发展的一种标志。1.2.2意义基于RFID技术的钻具出入库自动检测系统不仅可以科学化地管理油田钻具,同时也是我们将RFID技术应用到我们社会生活中的一个具体的实践。该系统的设计,不仅可以方便管理员对石油钻具的管理和保护,还可以将该系统应用到其他行业中。设计和开发出的检测系统,对加快我们的经济建设和RFID技术的推广应用都有非常重大的意义。1.3RFID技术的主要应用随着人们对RFID技术的不断尝试和使用,射频识别技术的理论知识得到丰富和完善,在人们生活中应用越来越多。由于不同频段的RFID

7、产品有着不同的特性,因此不同频段的RFID应用到不同的领域中。首先是低频段的RFID主要应用的领域有:(1) 畜牧业的管理系统;(2) 自动收费系统和车辆管理系统;(3) 自动加油系统的应用;(4) 门禁和安全管理系统等。其次是高频段的RFID主要应用的领域有:(1) 图书管理系统的应用;(2) 智能货架的管理;(3) 服装生产线和物流系统的管理和应用;(4) 固定资产的管理系统等。最后是超高频段的RFID主要应用的领域有:(1) 供应链上的管理和应用;(2) 集装箱的管理和应用;(3) 航空和铁路包裹的管理和应用;(4) 后勤管理系统的应用。1.4主要工作和任务本课题做的基于RFID技术的钻

8、具出入库的自动检测系统主要是以STC89C54RD+单片机作为微控制器,以射频识别技术为核心的系统,系统中采用的是飞利浦公司中的MF RC500芯片作为整个射频识别系统的读写器。不仅涉及到了该系统的总体架构,系统工作原理,以及对硬件的设置,软件的编程,产品的调试。设计出的系统不仅可以识别卡的型号,也就是钻具的名称,还能识别钻具卡的ID,相当于钻具的编号。还可以利用应用软件管理系统对该识别卡进行读或写的操作。该系统主要是利用USB接口供电,同样是利用USB接口与应用软件系统连接通信。本设计最后能够达到的系统指标主要有:(1) 显示系统:能够在LCD显示屏上看到钻具卡的信息;(2) 识别卡的信息:

9、当识别卡进入到系统的工作范围内时,显示屏上能够正确显示卡的型号(钻具名称)和ID(钻具编号)。(3) 唯一性:两张不同的卡进入到系统的工作范围内时,卡的型号(钻具名称)可以相同,但是卡的ID(钻具编号)不能够一样。(4) 读写识别卡信息:可以利用应用软件系统对识别卡进行读和写的操作。设计本系统主要涉及到技术难点主要有:(1) STC89C54RD+单片机作为微控制器的程序设计;(2) 读写器与电子标签通信标准的程序设计;(3) 应用软件系统的设计;该系统设计完毕后,与不同的应用软件系统相连接可以将之投入到不同的行业中。该系统不仅可以应用到石油钻井市场中,还可以应用到食品溯源,仓库管理,小区停车

10、等。2相关知识简介2.1RFID技术RFID技术是射频识别技术(Radio Frequency IDentification)的简称,又称电子标签,是一种通信技术,可以通过无线电信号识别特定目标并读写相关数据,是一种非接触式通信的典型例子。一般可以分为低频(125K134.2K),高频(13.56MHz),超高频等技术。一个完整的RFID系统主要包括三个方面:读写器,电子标签,以及天线。除此之外,一般还要在PC机上建立一个应用软件系统,主要是用来对收集到的数据进行处理。图 2.1 读写器与电子标签的通信2.1.1读写器RFID读写器又被成为“RFID阅读器”,通过射频识别信号自动识别目标对象并

11、获取相关数据,不需要人工的操作,可以识别高速运动的物体以及可以同时识别多个标签,使整个系统运行操作更加简单方便。RFID读写器通过天线与电子标签进行无线通信,可以实现对电子标签的读操作和写操作。如今的社会上有着许多种读写器,主要可以分为低频读写器,高频读写器,超高频读写器,双频读写器(所谓的双频读写器就是指该读写器可以支持两种协议的读写),防爆读写器等。射频识别技术发展到如今的地步,有许多种芯片可以制成不同的读写器。本课题研究的是利用飞利浦公司的MF RC500芯片制作的可以支持ISO14443A标准协议的读写器。一般的读写器可以包括手持式的读写器和固定式的读写器。现如今不同的RFID读写器出

12、现在社会的不同领域中,超市中的食品保护,门禁系统的人员识别,停车场的车子的保护和防盗等,发挥着不同的作用。 图 2.2 社会上的各种读写器2.1.2电子标签这里的电子标签是指纯粹的标签,常常又被叫做智能标签。电子标签也是一个芯片,该芯片不仅内部存有天线,芯片中还存储着能够识别目标的信息。RFID标签具有很多种优点,包括存储的信息量大,信息接收传播性强,非常持久,种类繁多等。甚至现在有些电子标签具有读写的功能,能够非常及时地更新标签的数据。RFID电子标签在制作时具有唯一的卡片序列号,而且该序列号无法复制,不可能出现两张一模一样的RFID电子标签,所以该标签具有很强的防伪性。电子标签还具有防冲突

13、性,因为一个RFID读写器经常在同时访问多个电子标签,不会因为多个标签而数据发生冲突而改变。电子标签根据不同的标准可以分为不同的种类。首先根据工作频率可以分为低频电子标签,中高频电子标签,超高频和微波电子标签;其次根据其电能消耗可以分为有源式电子标签和无源式电子标签;最后还可以根据其应用可以分为物流标签,图书标签,防金属标签等。 图 2.3 常见的电子标签2.1.3应用软件系统移动数据管理系统就相当于是一个应用软件系统,而本次课题设计的上位机测试软件就是一个应用软件系统,由于时间的关系,该软件系统不是自己设计的,是在网上寻找的一个射频读卡器的应用软件系统,所以在功能上与本课题涉及到的钻具没有太

14、大的关系,但是这并不关系到读写器与应用软件系统的通信,因为整个系统的软件设计都是参照该应用软件来设计的,所以制作的硬件设备基本上能够与该软件系统进行通信,甚至使用其功能。对于不同的领域,RFID将发挥不同的作用,所以也需要不同的应用软件系统来对数据进行管理。(1) 一卡通服务:拥有一人一卡一序列号,钱包初始化,充值,扣钱等功能;(2) 考勤管理:用户名称,打卡时间,打卡次数等功能;(3) 仓库管理:管理员登录,物品名称,出入情况等;(4) 校园图书馆管理:用户名,借阅时间,借阅书籍等功能;(5) 门禁系统管理:用户名,用户权限,用户地址等功能;2.2MF RC500MF RC500是飞利浦(P

15、hilips)公司中应用于13.56MHz非接触式通信中高集成读卡IC系统中的一员,该读卡IC系列利用了先进的调制和解调概念,完全集成了在13.56MHz下所有类型的被动非接触式通信方式和协议。此外,MF RC500还支持ISO14443A所有的层。该芯片内部包括并行微控制器接口,双向。方便的并行接口可以直接与任何8位微控制器相连接,这样可以给读卡器和终端的设计提供更多的灵活空间。该芯片相对于其他的芯片来说,应用范围更加广泛,资料更加齐全,更适合做本次设计的读写芯片。2.2.1MF RC500简介MF RC500是飞利浦公司制造的芯片之一,它包括了32个管脚信息,64个寄存器及其并行接口。首先

16、其32个管脚主要有三种类型,分别是输入型,输出型,电源型。包括中断请求,两个发送器,片选,读,写,电源,数据总线,地址线,接收器等。每个引脚都有自己的功能,正是这些引脚的选择不同,才会体现出该芯片的功能。图 2.4 MF RC500管脚配置其次该芯片内部包含了64个寄存器。主要包括了命令和状态,控制和状态,发送器和编码器控制,接收器和编码器控制,时序和信道冗余,FIFO定时器和IRQ脚配,RFU,测试控制等八页寄存器,每页都有八个寄存器。不同的寄存器的位和标志的状态是不一样的,这主要取决于它们的功能。表 2.1 寄存器位的状态和设计缩写状态描述r/w读和写通过微控制器读和写,它们的内容不会被内

17、部状态机影响。dy动态通过微控制器读和写,它们的内容可被内部状态机自动写入。r只读保存标志,其值仅有内部状态决定。w只写用于控制方式,可通过微控制器写入但不能读出。最后该芯片还支持并行接口。MF RC500支持与不同的微处理器直接接口,可与个人电脑的增强型并口直接相连。该芯片还支持许多种并口信号,包括独立的读和写选通信号,共用的读和写选通信号,带握手的共用读和写选通信号。表 2.2 芯片支持的并口信号总线控制信号总线独立的地址和数据总线复用的地址和数据总线独立的读和写选通信号控制NRD,NWR,NCSNRD,NWR,NCS,ALE地址A0,A1,A2AD0AD5数据D0D7AD0AD7共用的读

18、和写选通信号控制R/NW,NDS,NCSR/NW,NDS,NCS,AS地址A0,A1,A2AD0AD5数据D0D7AD0AD7带握手的共用读和写选通信号控制nWrite,nDStrb,nAStrb,nWait地址AD0AD5数据AD0AD72.2.2MF RC500特性本次设计之所以选择该芯片作为读写芯片,正是因为该芯片相对于其他的芯片来说,其独有的特性更加适合本次设计。(1) 拥有唯一的序列号;(2) 集成有64字节的收发FIFO缓存器;(3) 集成了编码调制和解调解码的收发电路;(4) 天线驱动电路仅需要少量的外围元件,可以近距离操作(100mm);(5) 非常灵活的中断处理等。正是因为该

19、芯片具有这些特点,用MF RC500非常容易设计TYPE A型的读写器。3系统设计与实现一个好的课题设计不仅需要有好的程序设计思想,还需要适合的硬件设计和软件设计,也需要适当的编写程序的软件,仿真器,烧写器。本次设计的软件设计主要采用的是Keil作为编写程序的软件,主要生成Hex文件,然后通过STC_ISP_V488向硬件中烧写程序,其中STC_ISP_V488是一款专门烧写STC89系列单片机的软件。整个设计的编程语言主要采用的是C语言,虽然大多数单片机开发使用的是汇编语言,但是汇编语言有一定的缺点:程序的可读性和可移植性比较差,而且编写的程序周期长,调试非常困难。然而C语言就不一样了,C语

20、言是一门国际通用的编程语言,具有较好的可读性和可移植性。除此之外,Keil编程软件是一个51系列兼容单片机C语言软件开发系统,该软件中包括了C编译器,宏汇编,连接器,库管理和一个功能强大的仿真调试器。在该软件中用C语言来编写程序可以做到事半功倍的效果,是本设计选择软件的不二之选。在课题设计的过程中,除了使用这些必要的编程软件外,我还使用了一个辅助软件Source Insight 3.5,该软件可以关联整个系统使用的所有程序,而且能分析你的源代码并在你工作的同时动态维护它自己的符号数据库,并自动为你显示有用的上下文信息。事实证明:该软件是一款非常好的辅助编程软件。3.1系统总体架构3.1.1系统

21、可行性分析(1) 微控制器的选择:对于一般的基于RFID做的射频读卡系统,在选择微控制器的时候可以有两种方案:C51单片机中的STC89系列和FPGA。两者相比较而言:前者算术功能强,软件编程灵活,自由度大,容易我们掌握;后者集成度高,成本也偏高。虽然后者处理速度快,但本课题设计的系统对这方面也没有太大的要求。(2) 读卡芯片的选择:通过对市场上部分读卡芯片的调研,飞利浦公司的RC500芯片是高整合的13.56MHz非接触IC卡读写芯片,而且支持ISO14443A协议,还具有合适的并行接口,非常适合与微控制器连接。(3) 通信接口以及供电选择:射频读卡系统与应用软件系统的通信一般有两种情况:一

22、种是直接采用串口进行通信,另一种是用USB接口与CH341芯片连接组成串口的功能进行通信和供电。现在有很多PC机没有串口,采用第二种方法就能够解决PC机没有串口的尴尬。通过以上三点的选择,最后确定了整个系统是以STC89C54RD+作微控制器,读写器芯片选择RC500芯片,采用USB转串口的方式进行通信和供电,最后通过显示屏显示出来。3.1.2系统架构整个系统是以射频识别技术为核心,电子标签中拥有存储芯片和耦合模块,读写器中包括了耦合模块,高频模块,控制模块和接口单元。其中耦合模块就是指读写器与电子标签之间通过天线进行耦合,通信;高频模块是读写器在不断地向周围发射无线电波;控制模块主要就是以S

23、TC89C54RD+为主的微控制器;接口单元就是指USB接口和CH341芯片组成的串口通信和供电。图 3.1 系统总体结构整个系统的工作原理是:(1) 读写器通过发射天线向外发射特定频率的无线电载波信号。(2) 当电子标签进入到读写器的有效工作区域范围内,产生感应电流,从而激活能量,电子标签被激活,使电子标签将自身编码信号通过内置的射频天线发送出去。(3) 读写器的接收天线接收到电子标签发出的调制信号,经内部的天线调节器将信号传送到读写器的信号处理模块。(4) 经过解调和解码后,将有效信息发送给移动数据管理系统。(5) 移动数据管理系统根据逻辑运算识别该电子标签的身份,针对不同的设定作出相应的

24、处理和控制,最后发送指令信号给读写器完成最后的读操作和写操作。3.2硬件设计3.2.1USB通讯及电源模块设计本课题设计的自动检测系统的USB接口有着非常重要的作用,首先整个系统的电源是靠USB接口与PC机相连接,给系统供给5V的电源;其次整个系统还是靠USB接口与PC机相连接,实现系统与上位机之间的通信。现如今有许多PC机没有串口,将CH341芯片应用到单片机中,实现将USB接口转为串口的方法,可以解决一些PC机没有串口的尴尬。在异步串口方式下,CH341提供发送使能,串口接收就绪等交互式的速率控制信号以及常用的MODEM联络信号,用于将普通的串口直接升级到USB总线。CH341是一个USB

25、总线的转接芯片,一般来说,该芯片有四个功能用途。通过USB总线提供异步串口、打印口、并口以及常用的2线和4线等同步串行接口。在异步串口方式下,CH341提供串口发送使能,串口接收就绪等控制信号,以及常用的MODEM联络信号,用于将普通的串口设备直接升级到USB总线。在打印口方式下,CH341主要用于将普通的并口打印机直接升级到USB总线。在并口的方式下,CH341主要用于在不需要单片机/DSP/MCU的环境下,直接输入输出数据。最后,CH341还可以支持一些常用的同步串行接口,如2线接口和4线接口。图 3.2 CH341芯片的主要功能要想CH341芯片能够实现将USB接口转换为串口的功能,有几

26、个引脚的连接是非常重要的。(1) TXD和RXD引脚:这两个引脚是与微控制器STC89C54RD+的TXD和RXD引脚相连接,实现微控制器控制读写器与测试应用软件的通信。(2) 19号引脚:TEN#.只有当该引脚必须接地的时候,芯片才能够向单片机发送数据,当然这个引脚是由微控制器控制的,当微控制器有空闲接收的数据的时候将该引脚设置为低电平就可以了。(3) 7、8号引脚:这两个引脚都是连接在USB接口上的,两者都是输入类型的引脚,其中7号引脚作为中断请求输入,上升沿有效;8号则是自定义通用输入。(4) 除此之外,在该模块中还设计了一个开关,用来控制整个系统的电源开关。3.2.2天线模块设计为了能

27、够使读写器可以向外发射无线电载波信号和接收电子标签发出的信号,所以必须在读写器内部设置天线模块。而且为了使天线能够最大功率传输,天线的芯片的输入阻抗必须和天线的输出阻抗匹配。一般来说,天线可以分为全向天线和方向性天线。对于仓库管理钻具的标签来说,应该避免使用全向天线,使用的是方向性天线,方向性天线具有更少的辐射模式和返回损耗的干扰等优点。对大多数的RC 500芯片来说,都是低功耗设计,因此电子标签和天线之间的耦合系数必须满足一定的值,不能相差太大,一般不能低于0.3。下表是当电子标签与天线之间的耦合系数为0.3的情况下,天线大小与距离之间的关系表。表 3.1 天线大小与距离的关系表大小(mmm

28、m)距离(mm)50507655410855412为了能够使天线能够最大功率的传输信息,天线模块的设计要考虑到几个主要的物理参量。包括磁场强度,最佳天线直径,近场耦合,调谐,电感的估算,天线的品质因数等。经过事实证明:对于圆形线圈的磁场强度来说,当较大的天线在较远的距离处可以呈现出较高的磁场强度。至于最佳天线直径,每一个读写器都有自己适合的天线最佳直径,并不是天线直径越大越好,也不是越小越好,而是在合适的直径上。然而实际中的电路设计大部分都可以等效成一个R-L-C谐振电路,本课题设计的天线电路就是这样的。天线主要包括了滤波器,接收电路,天线匹配电路,和天线线圈。天线获取信号后通过天线匹配电路传

29、到RC 500芯片的RX引脚,然后再经过该芯片内部的处理,通过并行接口发出数据。此外,RC 500芯片的TX1,TX2,DVSS,TVSS,AVSS,WMD等引脚都是与天线模块相连接的。这些引脚都有自己的功能,其中TX1,TX2引脚主要起到天线驱动器的功能,有输出缓冲的作用;DVSS,TVSS,AVSS起到电感隔离的作用,而WMD引脚则是模拟参考电压。由于现实所设计的大部分天线模块的电路都可以等效成一个R-L-C谐振电路,所以可以将所有的天线模块等效成一个如图3.3这样的等效电路。其中R为TX1和TX2之间天线线圈的电阻消耗,C为线圈与TX1和TX2之间的电容消耗,L为天线线圈电感。图 3.3

30、 天线线圈等效电路整个等效电路是将电容C和天线线圈电路并联,所以可以看成是一个振谐电路,振谐频率就是13.56MHz,其值是由汤姆逊公式得来的:从(1)式子中可以看出频率f与LC有关。一般来说,读写器设备与天线之间的连接方式有两种。一种是适用于射频模块和天线之间的距离比较近的系统,采用直接匹配的天线;另一种是距离较长的系统,采用50欧匹配的天线。本课题设计的系统就是采用的第一种,直接匹配的天线。而且在整个读写器中,其工作频率是由一个13.56MHz的石英晶体发出的,在工作过程中会产生高次谐波,所以在设计电路时在射频模块的发送端口TX1、TX2引脚和地TVSS,DVSS之间引入一个滤波器电路。如

31、图3.6所示:其中L1和L2均为1.1uH,两个电容为47uH。读写器的天线有很多种形状,但常见的只有两种形状,就是圆环形和矩形的。本次课题的设计就是采用矩形的天线线圈。3.2.3微控制器设计本次课题设计采用的是用STC89C54RD+来作微控制器,主要完成了数据的采集,处理,存储和控制整个硬件电路。本次设计采用STC系列单片机作微控制器,是因为该系列的单片机相对于其他系列的单片机有一定的优势。STC系列单片机可以降低成本,提升性能,原有程序可以直接使用,硬件无需改动。而且使用时,直接使用STC_ISP工具直接将HEX文件烧写进去即可,非常简单。STC89C54RD+单片机中将可用的Data

32、flash(EEPROM)的地址分成了64个扇区,每个扇区512字节,一般最好只用128字节以下。微控制器STC89C54RD+和MF RC500芯片的主要引脚连接有:(1) 两者的/RD,/WR引脚相连接,来控制读操作和写操作;(2) 两个芯片的/CS相连接,控制整个系统的片选。(3) 微控制器的P00(AD0)到P07(AD7)与P10到P17引脚同时连接在RC 500芯片的D0到D7上,采用地址数据复用方式的连接方式。(4) 此外两个芯片的ALE,RST,IRQ也是连接的,分别有地址锁存控制信号,复位,中断请求等功能,在整个微控制器中有非常重要的作用。3.3软件设计整个系统除了硬件设计之

33、外,软件设计也是相当的重要的。本课题设计的系统的软件设计主要包括三个方面,包括主程序设计,显示屏程序设计,ISO14443标准协议程序设计。其中主程序中主要包括了系统的初始化,相应上位机的各种命令;显示屏程序设计主要包括写命令,写数据,初始化,显示不同卡型号的数据;ISO14443标准协议程序设计主要包括寻卡,防冲撞,选卡,与上位机相对应进行操作。3.3.1主程序设计本次设计的主程序包括两种情况,一种是带有显示屏的,另一种是没有显示屏的。其中带有显示屏的是让读写器主动寻卡,只有当卡进入到读卡器的工作范围内时候,整个上位机才正常工作;而没有显示屏的是让读写器被动寻卡。在带有显示屏的情况下,整个上

34、位机先是默认的ISO14443A协议,然后再在显示屏上出现欢迎界面。然后读卡器开启天线,扫描是否有电子标签进入到读卡器的工作范围内,并且执行防冲撞函数,如果扫描到电子标签就显示卡的类型(钻具名称),然后再显示卡的序列号(钻具卡的ID)。在主程序设计中还包括了与上位机中的程序的功能的相对应,由于整个设计采用的上位机是已经设计好的软件,所以在主程序设计中就必须编写与上位机功能相对应的功能函数。因此,主程序中的设计大部分是与上位机的功能有关的,单片机中的程序主要包括了系统初始化,MF RC500芯片初始化,响应上位机发送的天线命令,响应上位机的验证A卡秘钥的命令,响应上位机的读卡命令,响应上位机的写

35、卡命令,以及串行中断,接收上位机的数据等函数。图 3.4 主程序流程图从图3.4可以看出整个主程序的流程图,这里的开始主要是指给硬件供电,打开电源,系统初始化,芯片初始化后一个延时函数,这个延时时间非常短,基本上可以忽略不计,然后再是显示屏初始化,显示屏显示欢迎界面。然后通过寻卡来判读是否有钻具卡进入到读写器的工作范围内,如果没有钻具卡,则继续处于寻卡状态;如果扫描到钻具卡的存在,显示屏则显示钻具卡的名称和ID,而且上位机可以接收到钻具卡的序列号,上位机可以对钻具卡进行操作。最后判断卡是否移开,如果钻具卡移开,读写器又处于寻卡状态,如果没有移开,显示屏仍然显示钻具卡的信息,不再寻卡。主程序的设

36、计模块主要可以分成三个模块来实现:初始化模块,主要包括系统初始化,显示屏初始化,芯片初始化,以及默认的标准协议;显示屏模块,主要是调用显示屏模块中的函数来实现在显示屏上显示钻具卡的名称和ID;上位机功能模块,主要是用switch case结构来实现上位机功能函数的调用。图 3.5 主程序结构图首先是初始化模块包括以下几个方面:(1)系统初始化,用的是InitializeSystem()来表示。该函数主要用来实现两个功能:功能一:设置整个系统的寄存器状态,主要包括了TMOD,PCON,SCON等寄存器状态的设置。功能二:波特率的设置,本次设计的波特率设置为19200,用TH1=TL1= BOUN

37、D19200来表示。(2) 显示屏初始化,用的是initial_LCD()来表示。在显示屏初始化中主要实现了五个功能:功能一:设置显示屏与单片机的连接为并口,用PSB=1表示;功能二:在屏幕初始化过程中,必须要清屏,用WriteCommand(0x01)表示;功能三:设置8字节界面,用WriteCommand(0x30)表示;功能四:整体显示设置,用WriteCommand(0x0c)表示;功能五:输入方式设置,光标右移,地址位加1,而且是整体右移。用WriteCommand(0x06)表示;(3)初始化RC500芯片,用的是Rc500Ready()来表示。用一个变量status来记录是否有卡

38、的到来,先要设置该变量为复位RC500的函数PcdReset()。然后用MI_OK来代表卡,当status不等于MI_OK的时候,继续赋值status为PcdReset(),就是继续复位。只有当status等于MI_OK的时候,蜂鸣器发出一声响声,灯亮一下。用BELL = 0,redled = 0来表示。(4)整个系统默认使用的是typeA协议的卡,用PcdConfigISOType( A )来表示,然后蜂鸣器再响一声表示读卡成功。其次是主函数中调用显示屏模块函数来实现显示屏的显示:(1)显示屏初始化显示:“西南石油大学计科,请刷钻具卡!”。调用12864.c文件中的DisplayLcd()来

39、实现;(2)显示钻具卡的名称:调用寻卡函数RequestA()来实现。在该函数中用一个status来标记是否有卡的存在,然后用do while来进行判断,如果有钻具卡的存在,调用底层文件ISO14443A.c文件中的寻卡函数PcdRequest()函数,并且赋值给status。然后送显示卡类型的函数disCardTYPE()。底层文件ISO14443A协议中的寻卡函数主要有两个参数变量,第一个参数变量表示的是寻卡的方式,通常情况下有两种情况,第一种是用0x52表示寻所有符合ISO14443A协议的卡,第二种是用0x26表示寻未进入休眠状态的卡。第二个参数变量表示的是卡的类型,其中0x0400就

40、表示石油钻杆类型的卡片。(3)显示钻具卡的ID:直接调用显示屏文件12864.c中的函数disCardID()来实现。最后一部分也是本次设计最重要的一部分之一,就是上位机功能模块的实现:首先用伪代码的形式来表示整个系统是怎么让上位机实现与单片机的通信的。If(接收上位机指令的标志) 接收上位机指令的标志=0;/表示单片机接收到上位机的指令。 Switch(接收到的命令码) Case 命令码1:功能1函数;break; Case 命令码2:功能2函数;break; Case 命令码3:功能3函数;break; Case 命令码4:功能4函数;break; Default:AnswerErr(FA

41、ULT11);break; /返回错误 Void 功能1函数();Void 功能2函数();Void 功能3函数();Void 功能4函数();功能函数主要包括以下几个方面的功能:功能一:寻卡,用ComRequestA()表示,只有寻卡后上位机才能对钻具卡进行操作;功能二:防冲撞,用ComAnticoll()表示,两张卡同时进入到工作范围时,读写器仍然能够读其中一张卡的内容;功能三:休眠,用ComHlta()表示,进行休眠后在上位机中不能对钻具卡进行操作,只有重新寻卡后才能进行操作;功能四:读块,用ComM1Read()表示,可以读取卡内的内容;功能五:写块,用ComM1Write()表示,可

42、以写内容到卡内;3.3.2显示屏程序设计显示屏程序设计主要在文件12864.C中,从文件名可以看出整个系统的显示屏采用的是128X64的显示屏。显示的汉字是用字符串数组的形式表达的,方便以后显示的时候利用FOR循环,按照字节数来写,每个汉字占用两个字节。首先用字符串组定义汉字;然后编写各个函数,主要包括:写命令,写数据,系统初始化,显示欢迎界面,扫描卡的类型,扫描卡的序列号等。主要功能的实现有:(1) 屏幕初始化:用initial_LCD()表示;首先设置PSB=1来表示显示屏选择并口,然后调用写命令函数WriteCommand(unsigned char a)来进行清屏,功能设置,显示设置和

43、输入方式设置。(2) 屏幕初始化显示:用DispalyLcd()表示;因为汉字是用字符串数字来表示的,一个汉字占用2个字节,“西南石油大学计科”一共8个汉字,所以占用16个字节。调用写数据函数void WriteData(unsigned char b),一次只能写一个字节的数字,所以用一个for循环,0到15来表示。(3) 写命令函数:用WriteCommand(unsigned char a)表示;通常用该函数来表示在显示屏上显示的位置,例如在欢迎界面中,在第一行显示“西南石油大学计科”,就必须设置为WriteCommand(0x80),在第二行显示“请刷钻具卡!”,设置位置就是Write

44、Command(0x88)。(4) 数值的格式转换:用LCD_Data(unsigned char LCDbyte )表示,用来显示数字。(5) 钻具卡序列号的显示:用disCardAID(unsigned char *gID)表示,用for循环输出4个字节的序列号:LCD_Data(gID0+i)。(6) 根据卡的类型显示钻具卡的名称:用disCardTYPE(unsigned char *gID)表示,根据gID0和gID1的数值来判断卡的类型,然后显示该类型卡的名称。显示屏流程图如下:图 3.6 显示屏流程图部分代码如下:(1)字符串数组定义汉字:unsigned char code t

45、able_1=西南石油大学计科;(2) 写命令:void WriteCommand(unsigned char a) E=0; /1读取信息,1-0下降沿执行指令; RS=0; /0=写指令,1=写数据; RW=0; /0=写指令或者写数据,1=读LCD信息; E=1; /读信息 P1=a; /写指令 delay1(5); / 延时 E=0; /执行指令 delay1(5);/延时(3)写数据:void WriteData(unsigned char b) E=0; /执行指令 RS=1; /写数据 RW=0; /写数据 E=1; /读取信息 P1=b; /写数据 delay1(5); /延时

46、 E=0; /执行指令 delay1(5); /延时 (4)利用FOR循环显示汉字:void DispalyLcd()/初始化显示:西南石油大学计科 请刷钻具识别卡! unsigned char i; WriteCommand(0x80); for (i=1;i=16;i+) WriteData(table_1i-1) ; WriteCommand(0x88); for (i=1;i=15;i+) WriteData(table_ci-1) ; 3.3.3ISO14443标准协议程序设计该程序设计的源代码是放在文件ISO14443A.C中的,因为整个系统的测试都是基于该标准下选择的TYPE A类型卡进行的,所以在读写器默认状态下就设置的是该标准。而且改程序中的软件设计主要是针对测试软件进行编写的,里面的程序大部分都是为了实现测试软件的基本功能的。包括读写器寻卡,防冲撞,选卡,数据传输,实现基本功能,休眠状态等。主要功能函数有:(1) 寻卡:用char PcdRequest(unsigned char req_code,unsigned char *pTagType)来表示的,req_code表示寻卡方式,pTagType表示卡片类型的代码;(2) 防冲撞:用char PcdAnticoll(unsigned char *pSnr)表示,其中输入为g_cSN

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号