钻具出入库自动检测系统毕业设计论文正文.doc_第1页
钻具出入库自动检测系统毕业设计论文正文.doc_第2页
钻具出入库自动检测系统毕业设计论文正文.doc_第3页
钻具出入库自动检测系统毕业设计论文正文.doc_第4页
钻具出入库自动检测系统毕业设计论文正文.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

钻具出入库自动检测系统目 录1绪论11.1背景1矚慫润厲钐瘗睞枥庑赖。1.1.1传统管理模式的弊端1聞創沟燴鐺險爱氇谴净。1.1.2 RFID技术的崛起1残骛楼諍锩瀨濟溆塹籟。1.2目的和意义2酽锕极額閉镇桧猪訣锥。1.2.1目的2彈贸摄尔霁毙攬砖卤庑。1.2.2意义2謀荞抟箧飆鐸怼类蒋薔。1.3RFID技术的主要应用2厦礴恳蹒骈時盡继價骚。1.4主要工作和任务3茕桢广鳓鯡选块网羈泪。2相关知识简介4鹅娅尽損鹌惨歷茏鴛賴。2.1RFID技术4籟丛妈羥为贍偾蛏练淨。2.1.1读写器4預頌圣鉉儐歲龈讶骅籴。2.1.2电子标签5渗釤呛俨匀谔鱉调硯錦。2.1.3应用软件系统6铙誅卧泻噦圣骋贶頂廡。2.2MF RC5006擁締凤袜备訊顎轮烂蔷。2.2.1MF RC500简介6贓熱俣阃歲匱阊邺镓騷。2.2.2MF RC500特性8坛摶乡囂忏蒌鍥铃氈淚。3系统设计与实现9蜡變黲癟報伥铉锚鈰赘。3.1系统总体架构9買鲷鴯譖昙膚遙闫撷凄。3.1.1系统可行性分析9綾镝鯛駕櫬鹕踪韦辚糴。3.1.2系统架构10驅踬髏彦浃绥譎饴憂锦。3.2硬件设计11猫虿驢绘燈鮒诛髅貺庑。3.2.1USB通讯及电源模块设计11锹籁饗迳琐筆襖鸥娅薔。3.2.2天线模块设计12構氽頑黉碩饨荠龈话骛。3.2.3微控制器设计14輒峄陽檉簖疖網儂號泶。3.3软件设计14尧侧閆繭絳闕绚勵蜆贅。3.3.1主程序设计14识饒鎂錕缢灩筧嚌俨淒。3.3.2显示屏程序设计18凍鈹鋨劳臘锴痫婦胫籴。3.3.3ISO14443标准协议程序设计21恥諤銪灭萦欢煬鞏鹜錦。4系统测试23鯊腎鑰诎褳鉀沩懼統庫。5结论26硕癘鄴颃诌攆檸攜驤蔹。致 谢28阌擻輳嬪諫迁择楨秘騖。参考文献29氬嚕躑竄贸恳彈瀘颔澩。附 录30釷鹆資贏車贖孙滅獅赘。I钻具出入库自动检测系统设计1绪论1.1背景在当今的社会里,石油作为我们国家发展不可缺少的能源,对世界上的每个国家来说都有着举足轻重的地位。随着钻井市场竞争的日益激烈,我们对钻井技术的要求也越来越高,与此同时,我们对钻具的保护就要求更加严格。但是,在传统的管理模式中,管理员很难做到对每一种钻具一对一的管理,导致许多钻具因为各种原因“不翼而飞”,或者磨损得比较严重,甚至导致人们因为对钻具的使用情况不熟悉而酿成不堪设想的后果。除此之外,在现在计算机技术飞速发展的社会里,RFID技术作为一种新崛起的高新技术进入我们的社会生活中,给我们带来了巨大的方便。所以,将RFID技术应用到我们的钻具管理模式中已经成为了钻进市场中的一种迫切需求。将RFID技术和IC卡系统技术相结合就形成了非接触式IC卡系统的产物。早期的IC卡是接触式的,有许多缺点,包括接触磨损,效率低,难维护等问题。而新的钻具管理模式就是采用非接触式的IC卡系统,相比早期的IC卡系统来说,具有操作方便,抗干扰强,可靠性高,安全性高等优点。怂阐譜鯪迳導嘯畫長凉。1.1.1传统管理模式的弊端目前,在国内钻井市场日益激烈的情况下,人们对钻具的管理要求也越来越严格。然而,传统的钻具管理模式实行钻具定队管理。人们为了节约成本,时间等一系列因素,要求无论钻井队伍在遇到什么样的钻井深度和井身机构的情况下,都只使用一套钻具,将全部自认为最好的钻具混在一起形成一套钻具,而不考虑钻具之间的配合是否合适。传统的管理模式导致许多好的钻具不能合理的利用,甚至许多钻具磨损得更加严重,使钻具在用的过程中失效,导致事故的发生。此外,没有对这些钻具进行跟踪分析,很可能导致许多钻具在使用的过程中或者在使用后就不见了,下次再需要的时候又要浪费时间来对这套钻具进行配套。谚辞調担鈧谄动禪泻類。1.1.2 RFID技术的崛起随着社会的进步和计算机技术的飞速发展,自动识别技术渐渐进入我们的社会生活中,其中射频识别技术作为这些识别技术中的一种新型技术,在国内市场中迅速崛起,被誉为未来取代条形码标签最具潜力的技术。近年来,RFID技术带来的产品不断的进入到我们的社会生活中,其中非接触式的IC卡系统就是一个显著地例子。门禁系统,食品溯源,博物馆应用,上海世博会门票等一系列产物都与该技术有着密不可分的关系。嘰觐詿缧铴嗫偽純铪锩。物联网已被确定为中国战略性新型产业之一,而射频识别技术作为物联网发展的最关键的技术,随着物联网的发展,射频识别技术也将得到很好的利用。熒绐譏钲鏌觶鷹緇機库。1.2目的和意义1.2.1目的为了使钻具资源得到合理的利用,使钻具的生命周期更长,新的钻具管理模式取代传统的钻具管理模式是势在必行的。只有用新的管理模式对这些钻具做到“一对一”的管理,以及跟踪分析,才能更好地利用这些资源。只有新的管理方式才能跟上钻井市场飞速发展的步伐。此外,RFID技术已经渐渐进入我们的社会生活中,将该技术应用到钻具的科学化管理中也是我们油田事业发展的一种标志。鶼渍螻偉阅劍鲰腎邏蘞。1.2.2意义基于RFID技术的钻具出入库自动检测系统不仅可以科学化地管理油田钻具,同时也是我们将RFID技术应用到我们社会生活中的一个具体的实践。该系统的设计,不仅可以方便管理员对石油钻具的管理和保护,还可以将该系统应用到其他行业中。设计和开发出的检测系统,对加快我们的经济建设和RFID技术的推广应用都有非常重大的意义。纣忧蔣氳頑莶驅藥悯骛。1.3RFID技术的主要应用随着人们对RFID技术的不断尝试和使用,射频识别技术的理论知识得到丰富和完善,在人们生活中应用越来越多。由于不同频段的RFID产品有着不同的特性,因此不同频段的RFID应用到不同的领域中。颖刍莖蛺饽亿顿裊赔泷。首先是低频段的RFID主要应用的领域有:(1) 畜牧业的管理系统;(2) 自动收费系统和车辆管理系统;(3) 自动加油系统的应用;(4) 门禁和安全管理系统等。其次是高频段的RFID主要应用的领域有:(1) 图书管理系统的应用;(2) 智能货架的管理;(3) 服装生产线和物流系统的管理和应用;(4) 固定资产的管理系统等。最后是超高频段的RFID主要应用的领域有:(1) 供应链上的管理和应用;(2) 集装箱的管理和应用;(3) 航空和铁路包裹的管理和应用;(4) 后勤管理系统的应用。1.4主要工作和任务本课题做的基于RFID技术的钻具出入库的自动检测系统主要是以STC89C54RD+单片机作为微控制器,以射频识别技术为核心的系统,系统中采用的是飞利浦公司中的MF RC500芯片作为整个射频识别系统的读写器。不仅涉及到了该系统的总体架构,系统工作原理,以及对硬件的设置,软件的编程,产品的调试。设计出的系统不仅可以识别卡的型号,也就是钻具的名称,还能识别钻具卡的ID,相当于钻具的编号。还可以利用应用软件管理系统对该识别卡进行读或写的操作。该系统主要是利用USB接口供电,同样是利用USB接口与应用软件系统连接通信。本设计最后能够达到的系统指标主要有:濫驂膽閉驟羥闈詔寢賻。(1) 显示系统:能够在LCD显示屏上看到钻具卡的信息;(2) 识别卡的信息:当识别卡进入到系统的工作范围内时,显示屏上能够正确显示卡的型号(钻具名称)和ID(钻具编号)。銚銻縵哜鳗鸿锓謎諏涼。(3) 唯一性:两张不同的卡进入到系统的工作范围内时,卡的型号(钻具名称)可以相同,但是卡的ID(钻具编号)不能够一样。挤貼綬电麥结鈺贖哓类。(4) 读写识别卡信息:可以利用应用软件系统对识别卡进行读和写的操作。设计本系统主要涉及到技术难点主要有:(1) STC89C54RD+单片机作为微控制器的程序设计;(2) 读写器与电子标签通信标准的程序设计;(3) 应用软件系统的设计;该系统设计完毕后,与不同的应用软件系统相连接可以将之投入到不同的行业中。该系统不仅可以应用到石油钻井市场中,还可以应用到食品溯源,仓库管理,小区停车等。赔荊紳谘侖驟辽輩袜錈。2相关知识简介2.1RFID技术RFID技术是射频识别技术(Radio Frequency IDentification)的简称,又称电子标签,是一种通信技术,可以通过无线电信号识别特定目标并读写相关数据,是一种非接触式通信的典型例子。一般可以分为低频(125K134.2K),高频(13.56MHz),超高频等技术。一个完整的RFID系统主要包括三个方面:读写器,电子标签,以及天线。除此之外,一般还要在PC机上建立一个应用软件系统,主要是用来对收集到的数据进行处理。塤礙籟馐决穩賽釙冊庫。图 2.1 读写器与电子标签的通信2.1.1读写器RFID读写器又被成为“RFID阅读器”,通过射频识别信号自动识别目标对象并获取相关数据,不需要人工的操作,可以识别高速运动的物体以及可以同时识别多个标签,使整个系统运行操作更加简单方便。RFID读写器通过天线与电子标签进行无线通信,可以实现对电子标签的读操作和写操作。如今的社会上有着许多种读写器,主要可以分为低频读写器,高频读写器,超高频读写器,双频读写器(所谓的双频读写器就是指该读写器可以支持两种协议的读写),防爆读写器等。射频识别技术发展到如今的地步,有许多种芯片可以制成不同的读写器。本课题研究的是利用飞利浦公司的MF RC500芯片制作的可以支持ISO14443A标准协议的读写器。一般的读写器可以包括手持式的读写器和固定式的读写器。现如今不同的RFID读写器出现在社会的不同领域中,超市中的食品保护,门禁系统的人员识别,停车场的车子的保护和防盗等,发挥着不同的作用。裊樣祕廬廂颤谚鍘羋蔺。 图 2.2 社会上的各种读写器2.1.2电子标签这里的电子标签是指纯粹的标签,常常又被叫做智能标签。电子标签也是一个芯片,该芯片不仅内部存有天线,芯片中还存储着能够识别目标的信息。RFID标签具有很多种优点,包括存储的信息量大,信息接收传播性强,非常持久,种类繁多等。甚至现在有些电子标签具有读写的功能,能够非常及时地更新标签的数据。RFID电子标签在制作时具有唯一的卡片序列号,而且该序列号无法复制,不可能出现两张一模一样的RFID电子标签,所以该标签具有很强的防伪性。电子标签还具有防冲突性,因为一个RFID读写器经常在同时访问多个电子标签,不会因为多个标签而数据发生冲突而改变。仓嫗盤紲嘱珑詁鍬齊驁。电子标签根据不同的标准可以分为不同的种类。首先根据工作频率可以分为低频电子标签,中高频电子标签,超高频和微波电子标签;其次根据其电能消耗可以分为有源式电子标签和无源式电子标签;最后还可以根据其应用可以分为物流标签,图书标签,防金属标签等。绽萬璉轆娛閬蛏鬮绾瀧。 图 2.3 常见的电子标签2.1.3应用软件系统移动数据管理系统就相当于是一个应用软件系统,而本次课题设计的上位机测试软件就是一个应用软件系统,由于时间的关系,该软件系统不是自己设计的,是在网上寻找的一个射频读卡器的应用软件系统,所以在功能上与本课题涉及到的钻具没有太大的关系,但是这并不关系到读写器与应用软件系统的通信,因为整个系统的软件设计都是参照该应用软件来设计的,所以制作的硬件设备基本上能够与该软件系统进行通信,甚至使用其功能。对于不同的领域,RFID将发挥不同的作用,所以也需要不同的应用软件系统来对数据进行管理。骁顾燁鶚巯瀆蕪領鲡赙。(1) 一卡通服务:拥有一人一卡一序列号,钱包初始化,充值,扣钱等功能;(2) 考勤管理:用户名称,打卡时间,打卡次数等功能;(3) 仓库管理:管理员登录,物品名称,出入情况等;(4) 校园图书馆管理:用户名,借阅时间,借阅书籍等功能;(5) 门禁系统管理:用户名,用户权限,用户地址等功能;2.2MF RC500MF RC500是飞利浦(Philips)公司中应用于13.56MHz非接触式通信中高集成读卡IC系统中的一员,该读卡IC系列利用了先进的调制和解调概念,完全集成了在13.56MHz下所有类型的被动非接触式通信方式和协议。此外,MF RC500还支持ISO14443A所有的层。该芯片内部包括并行微控制器接口,双向。方便的并行接口可以直接与任何8位微控制器相连接,这样可以给读卡器和终端的设计提供更多的灵活空间。该芯片相对于其他的芯片来说,应用范围更加广泛,资料更加齐全,更适合做本次设计的读写芯片。瑣钋濺暧惲锟缟馭篩凉。2.2.1MF RC500简介MF RC500是飞利浦公司制造的芯片之一,它包括了32个管脚信息,64个寄存器及其并行接口。首先其32个管脚主要有三种类型,分别是输入型,输出型,电源型。包括中断请求,两个发送器,片选,读,写,电源,数据总线,地址线,接收器等。每个引脚都有自己的功能,正是这些引脚的选择不同,才会体现出该芯片的功能。鎦诗涇艳损楼紲鯗餳類。图 2.4 MF RC500管脚配置其次该芯片内部包含了64个寄存器。主要包括了命令和状态,控制和状态,发送器和编码器控制,接收器和编码器控制,时序和信道冗余,FIFO定时器和IRQ脚配,RFU,测试控制等八页寄存器,每页都有八个寄存器。不同的寄存器的位和标志的状态是不一样的,这主要取决于它们的功能。栉缏歐锄棗鈕种鵑瑶锬。表 2.1 寄存器位的状态和设计缩写状态描述r/w读和写通过微控制器读和写,它们的内容不会被内部状态机影响。dy动态通过微控制器读和写,它们的内容可被内部状态机自动写入。r只读保存标志,其值仅有内部状态决定。w只写用于控制方式,可通过微控制器写入但不能读出。最后该芯片还支持并行接口。MF RC500支持与不同的微处理器直接接口,可与个人电脑的增强型并口直接相连。该芯片还支持许多种并口信号,包括独立的读和写选通信号,共用的读和写选通信号,带握手的共用读和写选通信号。辔烨棟剛殓攬瑤丽阄应。表 2.2 芯片支持的并口信号总线控制信号总线独立的地址和数据总线复用的地址和数据总线独立的读和写选通信号控制NRD,NWR,NCSNRD,NWR,NCS,ALE地址A0,A1,A2AD0AD5数据D0D7AD0AD7共用的读和写选通信号控制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) 非常灵活的中断处理等。正是因为该芯片具有这些特点,用MF RC500非常容易设计TYPE A型的读写器。3系统设计与实现一个好的课题设计不仅需要有好的程序设计思想,还需要适合的硬件设计和软件设计,也需要适当的编写程序的软件,仿真器,烧写器。本次设计的软件设计主要采用的是Keil作为编写程序的软件,主要生成Hex文件,然后通过STC_ISP_V488向硬件中烧写程序,其中STC_ISP_V488是一款专门烧写STC89系列单片机的软件。整个设计的编程语言主要采用的是C语言,虽然大多数单片机开发使用的是汇编语言,但是汇编语言有一定的缺点:程序的可读性和可移植性比较差,而且编写的程序周期长,调试非常困难。然而C语言就不一样了,C语言是一门国际通用的编程语言,具有较好的可读性和可移植性。除此之外,Keil编程软件是一个51系列兼容单片机C语言软件开发系统,该软件中包括了C编译器,宏汇编,连接器,库管理和一个功能强大的仿真调试器。在该软件中用C语言来编写程序可以做到事半功倍的效果,是本设计选择软件的不二之选。在课题设计的过程中,除了使用这些必要的编程软件外,我还使用了一个辅助软件Source Insight 3.5,该软件可以关联整个系统使用的所有程序,而且能分析你的源代码并在你工作的同时动态维护它自己的符号数据库,并自动为你显示有用的上下文信息。事实证明:该软件是一款非常好的辅助编程软件。詩叁撻訥烬忧毀厉鋨骜。3.1系统总体架构3.1.1系统可行性分析(1) 微控制器的选择:对于一般的基于RFID做的射频读卡系统,在选择微控制器的时候可以有两种方案:C51单片机中的STC89系列和FPGA。两者相比较而言:前者算术功能强,软件编程灵活,自由度大,容易我们掌握;后者集成度高,成本也偏高。虽然后者处理速度快,但本课题设计的系统对这方面也没有太大的要求。则鯤愜韋瘓賈晖园栋泷。(2) 读卡芯片的选择:通过对市场上部分读卡芯片的调研,飞利浦公司的RC500芯片是高整合的13.56MHz非接触IC卡读写芯片,而且支持ISO14443A协议,还具有合适的并行接口,非常适合与微控制器连接。胀鏝彈奥秘孫戶孪钇賻。(3) 通信接口以及供电选择:射频读卡系统与应用软件系统的通信一般有两种情况:一种是直接采用串口进行通信,另一种是用USB接口与CH341芯片连接组成串口的功能进行通信和供电。现在有很多PC机没有串口,采用第二种方法就能够解决PC机没有串口的尴尬。鳃躋峽祷紉诵帮废掃減。通过以上三点的选择,最后确定了整个系统是以STC89C54RD+作微控制器,读写器芯片选择RC500芯片,采用USB转串口的方式进行通信和供电,最后通过显示屏显示出来。稟虛嬪赈维哜妝扩踴粜。3.1.2系统架构整个系统是以射频识别技术为核心,电子标签中拥有存储芯片和耦合模块,读写器中包括了耦合模块,高频模块,控制模块和接口单元。其中耦合模块就是指读写器与电子标签之间通过天线进行耦合,通信;高频模块是读写器在不断地向周围发射无线电波;控制模块主要就是以STC89C54RD+为主的微控制器;接口单元就是指USB接口和CH341芯片组成的串口通信和供电。陽簍埡鲑罷規呜旧岿錟。图 3.1 系统总体结构整个系统的工作原理是:(1) 读写器通过发射天线向外发射特定频率的无线电载波信号。(2) 当电子标签进入到读写器的有效工作区域范围内,产生感应电流,从而激活能量,电子标签被激活,使电子标签将自身编码信号通过内置的射频天线发送出去。沩氣嘮戇苌鑿鑿槠谔應。(3) 读写器的接收天线接收到电子标签发出的调制信号,经内部的天线调节器将信号传送到读写器的信号处理模块。(4) 经过解调和解码后,将有效信息发送给移动数据管理系统。(5) 移动数据管理系统根据逻辑运算识别该电子标签的身份,针对不同的设定作出相应的处理和控制,最后发送指令信号给读写器完成最后的读操作和写操作。钡嵐縣緱虜荣产涛團蔺。3.2硬件设计3.2.1USB通讯及电源模块设计本课题设计的自动检测系统的USB接口有着非常重要的作用,首先整个系统的电源是靠USB接口与PC机相连接,给系统供给5V的电源;其次整个系统还是靠USB接口与PC机相连接,实现系统与上位机之间的通信。现如今有许多PC机没有串口,将CH341芯片应用到单片机中,实现将USB接口转为串口的方法,可以解决一些PC机没有串口的尴尬。在异步串口方式下,CH341提供发送使能,串口接收就绪等交互式的速率控制信号以及常用的MODEM联络信号,用于将普通的串口直接升级到USB总线。懨俠劑鈍触乐鹇烬觶騮。CH341是一个USB总线的转接芯片,一般来说,该芯片有四个功能用途。通过USB总线提供异步串口、打印口、并口以及常用的2线和4线等同步串行接口。謾饱兗争詣繚鮐癞别瀘。在异步串口方式下,CH341提供串口发送使能,串口接收就绪等控制信号,以及常用的MODEM联络信号,用于将普通的串口设备直接升级到USB总线。呙铉們欤谦鸪饺竞荡赚。在打印口方式下,CH341主要用于将普通的并口打印机直接升级到USB总线。在并口的方式下,CH341主要用于在不需要单片机/DSP/MCU的环境下,直接输入输出数据。最后,CH341还可以支持一些常用的同步串行接口,如2线接口和4线接口。图 3.2 CH341芯片的主要功能要想CH341芯片能够实现将USB接口转换为串口的功能,有几个引脚的连接是非常重要的。(1) TXD和RXD引脚:这两个引脚是与微控制器STC89C54RD+的TXD和RXD引脚相连接,实现微控制器控制读写器与测试应用软件的通信。莹谐龌蕲賞组靄绉嚴减。(2) 19号引脚:TEN#.只有当该引脚必须接地的时候,芯片才能够向单片机发送数据,当然这个引脚是由微控制器控制的,当微控制器有空闲接收的数据的时候将该引脚设置为低电平就可以了。麸肃鹏镟轿騍镣缚縟糶。(3) 7、8号引脚:这两个引脚都是连接在USB接口上的,两者都是输入类型的引脚,其中7号引脚作为中断请求输入,上升沿有效;8号则是自定义通用输入。納畴鳗吶鄖禎銣腻鰲锬。(4) 除此之外,在该模块中还设计了一个开关,用来控制整个系统的电源开关。3.2.2天线模块设计为了能够使读写器可以向外发射无线电载波信号和接收电子标签发出的信号,所以必须在读写器内部设置天线模块。而且为了使天线能够最大功率传输,天线的芯片的输入阻抗必须和天线的输出阻抗匹配。一般来说,天线可以分为全向天线和方向性天线。对于仓库管理钻具的标签来说,应该避免使用全向天线,使用的是方向性天线,方向性天线具有更少的辐射模式和返回损耗的干扰等优点。对大多数的RC 500芯片来说,都是低功耗设计,因此电子标签和天线之间的耦合系数必须满足一定的值,不能相差太大,一般不能低于0.3。下表是当电子标签与天线之间的耦合系数为0.3的情况下,天线大小与距离之间的关系表。風撵鲔貓铁频钙蓟纠庙。表 3.1 天线大小与距离的关系表大小(mmmm)距离(mm)50507655410855412为了能够使天线能够最大功率的传输信息,天线模块的设计要考虑到几个主要的物理参量。包括磁场强度,最佳天线直径,近场耦合,调谐,电感的估算,天线的品质因数等。经过事实证明:对于圆形线圈的磁场强度来说,当较大的天线在较远的距离处可以呈现出较高的磁场强度。至于最佳天线直径,每一个读写器都有自己适合的天线最佳直径,并不是天线直径越大越好,也不是越小越好,而是在合适的直径上。然而实际中的电路设计大部分都可以等效成一个R-L-C谐振电路,本课题设计的天线电路就是这样的。灭嗳骇諗鋅猎輛觏馊藹。天线主要包括了滤波器,接收电路,天线匹配电路,和天线线圈。天线获取信号后通过天线匹配电路传到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 天线线圈等效电路整个等效电路是将电容C和天线线圈电路并联,所以可以看成是一个振谐电路,振谐频率就是13.56MHz,其值是由汤姆逊公式得来的:趕輾雏纨颗锊讨跃满賺。从(1)式子中可以看出频率f与LC有关。一般来说,读写器设备与天线之间的连接方式有两种。一种是适用于射频模块和天线之间的距离比较近的系统,采用直接匹配的天线;另一种是距离较长的系统,采用50欧匹配的天线。本课题设计的系统就是采用的第一种,直接匹配的天线。夹覡闾辁駁档驀迁锬減。而且在整个读写器中,其工作频率是由一个13.56MHz的石英晶体发出的,在工作过程中会产生高次谐波,所以在设计电路时在射频模块的发送端口TX1、TX2引脚和地TVSS,DVSS之间引入一个滤波器电路。如图3.6所示:其中L1和L2均为1.1uH,两个电容为47uH。视絀镘鸸鲚鐘脑钧欖粝。读写器的天线有很多种形状,但常见的只有两种形状,就是圆环形和矩形的。本次课题的设计就是采用矩形的天线线圈。偽澀锟攢鴛擋緬铹鈞錠。3.2.3微控制器设计本次课题设计采用的是用STC89C54RD+来作微控制器,主要完成了数据的采集,处理,存储和控制整个硬件电路。本次设计采用STC系列单片机作微控制器,是因为该系列的单片机相对于其他系列的单片机有一定的优势。STC系列单片机可以降低成本,提升性能,原有程序可以直接使用,硬件无需改动。而且使用时,直接使用STC_ISP工具直接将HEX文件烧写进去即可,非常简单。緦徑铫膾龋轿级镗挢廟。STC89C54RD+单片机中将可用的Data 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软件设计整个系统除了硬件设计之外,软件设计也是相当的重要的。本课题设计的系统的软件设计主要包括三个方面,包括主程序设计,显示屏程序设计,ISO14443标准协议程序设计。其中主程序中主要包括了系统的初始化,相应上位机的各种命令;显示屏程序设计主要包括写命令,写数据,初始化,显示不同卡型号的数据;ISO14443标准协议程序设计主要包括寻卡,防冲撞,选卡,与上位机相对应进行操作。榿贰轲誊壟该槛鲻垲赛。3.3.1主程序设计本次设计的主程序包括两种情况,一种是带有显示屏的,另一种是没有显示屏的。其中带有显示屏的是让读写器主动寻卡,只有当卡进入到读卡器的工作范围内时候,整个上位机才正常工作;而没有显示屏的是让读写器被动寻卡。在带有显示屏的情况下,整个上位机先是默认的ISO14443A协议,然后再在显示屏上出现欢迎界面。然后读卡器开启天线,扫描是否有电子标签进入到读卡器的工作范围内,并且执行防冲撞函数,如果扫描到电子标签就显示卡的类型(钻具名称),然后再显示卡的序列号(钻具卡的ID)。在主程序设计中还包括了与上位机中的程序的功能的相对应,由于整个设计采用的上位机是已经设计好的软件,所以在主程序设计中就必须编写与上位机功能相对应的功能函数。因此,主程序中的设计大部分是与上位机的功能有关的,单片机中的程序主要包括了系统初始化,MF RC500芯片初始化,响应上位机发送的天线命令,响应上位机的验证A卡秘钥的命令,响应上位机的读卡命令,响应上位机的写卡命令,以及串行中断,接收上位机的数据等函数。邁茑赚陉宾呗擷鹪讼凑。图 3.4 主程序流程图从图3.4可以看出整个主程序的流程图,这里的开始主要是指给硬件供电,打开电源,系统初始化,芯片初始化后一个延时函数,这个延时时间非常短,基本上可以忽略不计,然后再是显示屏初始化,显示屏显示欢迎界面。然后通过寻卡来判读是否有钻具卡进入到读写器的工作范围内,如果没有钻具卡,则继续处于寻卡状态;如果扫描到钻具卡的存在,显示屏则显示钻具卡的名称和ID,而且上位机可以接收到钻具卡的序列号,上位机可以对钻具卡进行操作。最后判断卡是否移开,如果钻具卡移开,读写器又处于寻卡状态,如果没有移开,显示屏仍然显示钻具卡的信息,不再寻卡。嵝硖贪塒廩袞悯倉華糲。主程序的设计模块主要可以分成三个模块来实现:初始化模块,主要包括系统初始化,显示屏初始化,芯片初始化,以及默认的标准协议;显示屏模块,主要是调用显示屏模块中的函数来实现在显示屏上显示钻具卡的名称和ID;上位机功能模块,主要是用switch case结构来实现上位机功能函数的调用。该栎谖碼戆沖巋鳧薩锭。图 3.5 主程序结构图首先是初始化模块包括以下几个方面:(1)系统初始化,用的是InitializeSystem()来表示。该函数主要用来实现两个功能:功能一:设置整个系统的寄存器状态,主要包括了TMOD,PCON,SCON等寄存器状态的设置。功能二:波特率的设置,本次设计的波特率设置为19200,用TH1=TL1= BOUND19200来表示。劇妆诨貰攖苹埘呂仑庙。(2) 显示屏初始化,用的是initial_LCD()来表示。在显示屏初始化中主要实现了五个功能:功能一:设置显示屏与单片机的连接为并口,用PSB=1表示;功能二:在屏幕初始化过程中,必须要清屏,用WriteCommand(0x01)表示;功能三:设置8字节界面,用WriteCommand(0x30)表示;功能四:整体显示设置,用WriteCommand(0x0c)表示;功能五:输入方式设置,光标右移,地址位加1,而且是整体右移。用WriteCommand(0x06)表示;臠龍讹驄桠业變墊罗蘄。(3)初始化RC500芯片,用的是Rc500Ready()来表示。用一个变量status来记录是否有卡的到来,先要设置该变量为复位RC500的函数PcdReset()。然后用MI_OK来代表卡,当status不等于MI_OK的时候,继续赋值status为PcdReset(),就是继续复位。只有当status等于MI_OK的时候,蜂鸣器发出一声响声,灯亮一下。用BELL = 0,redled = 0来表示。鰻順褛悦漚縫冁屜鸭骞。(4)整个系统默认使用的是typeA协议的卡,用PcdConfigISOType( A )来表示,然后蜂鸣器再响一声表示读卡成功。穑釓虚绺滟鳗絲懷紓泺。其次是主函数中调用显示屏模块函数来实现显示屏的显示:(1)显示屏初始化显示:“西南石油大学计科,请刷钻具卡!”。调用12864.c文件中的DisplayLcd()来实现;隶誆荧鉴獫纲鴣攣駘賽。(2)显示钻具卡的名称:调用寻卡函数RequestA()来实现。在该函数中用一个status来标记是否有卡的存在,然后用do while来进行判断,如果有钻具卡的存在,调用底层文件ISO14443A.c文件中的寻卡函数PcdRequest()函数,并且赋值给status。然后送显示卡类型的函数disCardTYPE()。浹繢腻叢着駕骠構砀湊。底层文件ISO14443A协议中的寻卡函数主要有两个参数变量,第一个参数变量表示的是寻卡的方式,通常情况下有两种情况,第一种是用0x52表示寻所有符合ISO14443A协议的卡,第二种是用0x26表示寻未进入休眠状态的卡。第二个参数变量表示的是卡的类型,其中0x0400就表示石油钻杆类型的卡片。鈀燭罚櫝箋礱颼畢韫粝。(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(FAULT11);break; /返回错误 Void 功能1函数();Void 功能2函数();Void 功能3函数();Void 功能4函数();功能函数主要包括以下几个方面的功能:功能一:寻卡,用ComRequestA()表示,只有寻卡后上位机才能对钻具卡进行操作;功能二:防冲撞,用ComAnticoll()表示,两张卡同时进入到工作范围时,读写器仍然能够读其中一张卡的内容;惬執缉蘿绅颀阳灣熗鍵。功能三:休眠,用ComHlta()表示,进行休眠后在上位机中不能对钻具卡进行操作,只有重新寻卡后才能进行操作;贞廈给鏌綞牵鎮獵鎦龐。功能四:读块,用ComM1Read()表示,可以读取卡内的内容;功能五:写块,用ComM1Write()表示,可以写内容到卡内;3.3.2显示屏程序设计显示屏程序设计主要在文件12864.C中,从文件名可以看出整个系统的显示屏采用的是128X64的显示屏。显示的汉字是用字符串数组的形式表达的,方便以后显示的时候利用FOR循环,按照字节数来写,每个汉字占用两个字节。首先用字符串组定义汉字;然后编写各个函数,主要包括:写命令,写数据,系统初始化,显示欢迎界面,扫描卡的类型,扫描卡的序列号等。嚌鲭级厨胀鑲铟礦毁蕲。主要功能的实现有:(1) 屏幕初始化:用initial_LCD()表示;首先设置PSB=1来表示显示屏选择并口,然后调用写命令函数WriteCommand(unsigned char a)来进行清屏,功能设置,显示设置和输入方式设置。薊镔竖牍熒浹醬籬铃騫。(2) 屏幕初始化显示:用DispalyLcd()表示;因为汉字是用字符串数字来表示的,一个汉字占用2个字节,“西南石油大学计科”一共8个汉字,所以占用16个字节。调用写数据函数void WriteData(unsigned char b),一次只能写一个字节的数字,所以用一个for循环,0到15来表示。齡践砚语蜗铸转絹攤濼。(3) 写命令函数:用WriteCommand(unsigned char a)表示;通常用该函数来表示在显示屏上显示的位置,例如在欢迎界面中,在第一行显示“西南石油大学计科”,就必须设置为WriteCommand(0x80),在第二行显示“请刷钻具卡!”,设置位置就是WriteCommand(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 table_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); /延时 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_cSNR,表示存放序列号的内存单元的首地址;婭鑠机职銦夾簣軒蚀骞。(3) 选卡:用PcdSelect(unsigned char *pSnr,unsigned char *pSize)表示,其中输入为g_cSNR,表示序列号。譽諶掺铒锭试监鄺儕泻。(4) 卡密钥格式转换:用ChangeCodeKey()表示;部分代码如下:(寻卡功能)char PcdRequest(unsigned char req_code,unsigned char *pTagType)俦聹执償閏号燴鈿膽賾。 /其中req_code 指寻卡方式;*pTagType指卡片类型; char status; struct TranSciveBuffer MfComData; struct TranSciveBuffer *pi; pi = &MfComData; WriteRawRC(RegChannelRedundancy,0x03); ClearBitMask(RegControl,0x08); WriteRawRC(RegBitFraming,0x07); SetBitMask(RegTxControl,0x03); PcdSetTmo(4); MfComData.MfCommand = PCD_TRANSCEIVE; MfComData.MfLength = 1; MfComData.MfData0 = req_code; status = PcdComTransceive(pi); if (!status) if (MfComData.MfLength != 0x10) status = MI_BITCOUNTERR; *pTagType = MfComData.MfData0; *(pTagType+1) = MfComData.MfData1; return status;4系统测试在整个系统初步设计完成后,需要对系统进行调试。由于在初步设计的过程中,有很多因素没有考虑到,整个系统会有非常多的BUG,所以在系统设计完毕后必须对整个系统进行调试。整个调试过程主要是这样的:连接硬件设备在PC机上,将测试卡不断地放进读写器的工作范围内,观察显示屏上的效果,能否正确显示钻具卡的名称和序列号,其次是观察与上位机的连接功能是否存在错误。如果还经常存在错误,达不到预想要的效果,就必须对程序进行修改,利用Keil编程软件生成HEX文件,然后通过STC_ISP_V488软件将HEX文件烧写到硬件设备中,再重新进行调试。在系统调试过程中主要测试的有以下几个方面:缜電怅淺靓蠐浅錒鵬凜。(1) LCD显示屏的显示情况:当测试卡进入到读写器的工作范围内时,显示屏上的显示是否正确;(2) 蜂鸣器的发声情况:当硬件设备连接电源后,打开开关,蜂鸣器只发出一声“嘀”的声音,显示屏正常显示欢迎界面;当测试卡进入到读写器的工作范围内时,蜂鸣器同样发出一声“嘀”,代表读卡成功;运行PC机上的上位机测试软件的时候,蜂鸣器能够一直发出“嘀”的声音,直到有测试卡进入到读写器的工作范围内或者上位机初始化成功后,声音消失;骥擯帜褸饜兗椏長绛粤。(3) 硬件设备连接上位机,测试上位机的基本功能能否实现:由于本次课题设计的读写器设计基本上是根据上位机来进行编写的,所以整个系统在很大程度上都要满足上位机的基本功能。部分功能测试如下:癱噴导閽骋艳捣靨骢鍵。上位机功能测试一:初始化成功图 4.1 上位机初始化上位机功能测试二:菜单选卡图 4.2 界面选卡操作上位机功能测试三:端口和波特率图 4.3 界面端口和波特率设置上位机功能测试四:寻卡操作图 4.4 界面寻卡显示序列号图 4.5 寻卡操作呼叫成功上位机功能测试五:读卡图 4.6 读卡显示图 4.7 读卡操作呼叫成功(4) 系统的读和写模块的工作情况;本次系统设计调试过程主要出现的问题:(1) 当读写器读取测试卡信息的时候,显示屏上不显示钻具卡的ID信息,即LCD显示屏上只显示钻具卡的名称,下面是空白的;或者显示钻具卡的ID信息全部是零,经过多次测试显示,是由于测试卡进入到读写器的工作范围速度太快和进入频率太多

温馨提示

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

评论

0/150

提交评论