基于NRF2401的RFID读卡系统的设计与实现.doc_第1页
基于NRF2401的RFID读卡系统的设计与实现.doc_第2页
基于NRF2401的RFID读卡系统的设计与实现.doc_第3页
基于NRF2401的RFID读卡系统的设计与实现.doc_第4页
基于NRF2401的RFID读卡系统的设计与实现.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

基于NRF2401的RFID读卡系统的设计与实现摘 要 射频识别(RFID,Radio Frequency Identification)技术是一种利用无线射频通信实现的非接触式自动识别技术。与目前广泛采用的条形码技术相比,RFID 具有容量大、识别距离远、识别速度快、穿透能力强、可多卡识别、抗污性强等特点,近年来越来越受到业界人士的广泛关注。 本文首先介绍了射频识别技术的基本工作原理,并在此基础上设计了一个简单的RFID系统,包括读卡器和有源标签两部分,可以适用于停车场的车辆管理等场合。本系统采用无线收发一体芯片NRF2401(读卡器用)和NRF24e1(标签用),工作频率为2.42.5GHz。系统设计包括硬件和软件两部分,标签设计为有源式,可主动发送向读卡器发送标签内带有的信息;读卡器接收到相关信息后,由MCU芯片控制,通过串口将有效数据传输到后台PC机内,进行相关处理。关键词射频识别 读卡器 有源标签 NRF2401/24e1 RS-232 AT89S52正文1、 课题背景1.1 RFID技术概述在我们的现实生活中,各种各样的活动或事件都会产生这样或那样的数据,这些数据包括人、物质、财务的数据,也包括采购、生产和销售中的数据,这些数据的采集与分析对于我们的生产或者生活决策来说十分重要。如果没有这些实际的数据支持,生产和决策将成为一句空话,将缺乏现实基础。在信息系统早期,相当一部分数据的处理都是通过人工手工录入的,这样不仅数据量十分庞大,劳动强度大,而且数据误码率较高,也失去了实时的意义了。为了解决这些问题,人们需要研究和发展了各种各样的自动识别技术(automatic identification system, AIS),将人们从繁重且十分不精确的手工劳动中解放出来,提高了系统信息的实时性和准确性,从而为生产的实时调整、财务的及时总结以及决策的正确制定提供了正确的参考依据。在计算机信息处理系统中,数据的采集是信息系统的基础,这些数据通过数据系统的分析和过滤,最终成为影响我们决策的信息。自动识别技术就是应用一定的识别装置,通过被识别物品和识别装置之间的接近活动,自动地获取被识别物品的相关信息,并提供给后台的计算机系统做后续处理的一种技术。自动识别技术是以计算机技术和通信技术的发展为基础的综合性科学技术,它是信息数据自动识别、自动输入到计算机的重要方法和手段。可以这么说,自动识别技术是一种高度自动化的信息和数据采集技术。自动识别技术近几十年来在全球范围内得到了迅速发展,初步形成了一个包括条码技术、磁卡磁条技术、IC 卡技术、光学字符识别技术、射频技术、声音识别及视频识别等集计算机、光、磁、物理、机电、通信技术为一体的高新技术学科。其中,射频识别(Radio Frequency Identification简称RFID)技术是 90 年代兴起的自动识别技术。它是一项利用射频信号通过空间耦合(交变磁场或电磁场)实现无接触信息传递并通过所传递的信息达到识别目的的技术。RFID标签与读写器之间进行无线通信的频段的国际标准达 5 种之多,分别是135KHz以下、13.56MHz、860 MHz-911 MHz(UHF)、2.45GHz以及 5.8GHz。五者各具特色也都有缺陷,前两者使用最广,但通信速度较慢,传输距离也不够长,而后三者频段高,耗电量也大。目前RFID存在两个技术标准阵营,一个是欧美的EPC标准,其RFID采用的是UHF频段,如 902MHz928MHz,侧重于物流管理、库存管理等;另一个是日本的UID标准,采用的频段为 2.45GHz和 13.56MHz,可用于库存管理、信息发送与接收以及产品和零部件的跟踪管理等。本课题研究的内容为 2.45GHz射频识别手持式读卡器,其读写距离较远,非常适合用于仓储物流与供应管理,以及车库车辆管理等等。由于射频标签的读取依靠辐射电磁场而不是依靠可见光,这就克服了条码技术由于恶劣天气环境、条码污损等限制带来的识别难,甚至不能识别的问题,从而实现自动读取数据的目的。又由于不用近距离接触,甚至阅读距离可以长达近百米,而且电子标签可以粘附在任何动态目标上,只要运动速度在读写器识别速度限制之内,就可以远距离读取运动物品标签上的信息。射频识别系统从狭义的角度说,由两个部分组成,即电子标签和读写器。广义的射频识别系统还应该包括实际应用中的后台软硬件,甚至包括所构建的数据传输网络。在实际的应用中,电子标签附着在待识别的物品上,当附着有电子标签的待识别物品通过读写器可识读范围时,读写器会以无接触的方式自动将电子标签中的约定识别信息取出,从而实现自动识别物品或者自动收集物品标识信息的功能。电子标签是射频识别系统真正的数据载体,读写器是射频识别系统实现的基础保证。1.2 基本工作原理射频识别系统的基本模型如图 1-1 所示。其中,电子标签又称为射频标签、应答器、数据载体;阅读器又称为读卡器、扫描器、读头、读写器。电子标签与阅读器之间通过耦合元件实现射频信号的空间(无接触)耦合;在耦合通道内,根据时序关系,实现能量的传递和数据的交换。图1-1 射频识别系统 由图 1-1 可以看出,在射频识别系统的工作过程中,应答器与阅读器之间的数据传输是通过空气介质以无线电波的形式进行的。一般地,可以利用两个参数衡量数据在空气介质中传播,即数据传输的速度和数据传输的距离。由于应答器的体积、电能有限,从应答器发出的无线信号很弱,因而信号传输的速度与传输的距离就很有限。为了实现数据远距离、高速度传输,必须把要传输的数据信号叠加在一个规则变化、信号比较强的电波上,这个过程就是调制,规则变化的电波即载波。在 RFID 系统中,载波一般由阅读器发出并进行调制,而实现数据的调制也有许多方法,如用数据信息改变载波的波幅即调幅、改变载波的频率即调频、改变载波的相位即调相。射频识别系统一般采用调幅或调频方式。 实际应用中,RFID 标签除了具有数据存贮量、数据传输速率、工作频率、多标签识读特征等电学参数之外,还根据其内部是否需要加装电池及电池供电的作用而将电子标签分为无源标签(passive)、半无源标签(semi-passive)和有源标签(active)三种类型。无源标签没有内装电池,在阅读器的阅读范围之外时,标签处于无源状态,在阅读器的阅读范围之内时标签从阅读器发出的射频能量中提取其工作所需的电能。半无源标签内装有电池,但电池仅对标签内要求供电维持数据的电路或标签芯片工作所需的电压作辅助支持,标签电路本身耗电很少。标签未进入工作状态前,一直处于休眠状态,相当于无源标签。标签进入阅读器的阅读范围时,受到阅读器发出的射频能量的激励,进入工作状态时,用于传输通信的射频能量与无源标签一样源自阅读器。有源标签的工作电源完全由内部电池供给,同时标签电池的能量供应也部分地转换为标签与阅读器通信所需的射频能量。射频识别系统的另一主要性能指标是阅读距离,也称为作用距离,它表示在最远距离上,阅读器能够可靠地与电子标签交换信息,即阅读器能读取标签中的数据。实际系统这一指标相差很大,取决于标签及阅读器系统的设计、成本的要求、应用的需求等,范围从 0100m 左右。典型的情况是,在低频 125kHz、13.56MHz频点上一般均采用无源标签,作用距离在 1030cm 左右,个别有到 1.5m 的系统。在高频 UHF 频段,无源标签的作用距离可达到 310m。更高频段的系统一般均采用有源标签。采用有源标签的系统,其作用距离一般可以达到 30200m 左右。1.3 应用现状及发展 RFID技术的应用范畴可分为四类:商品电子防盗系统EAS(Electronic Article Surveillance)、移动数据采集(Portable data capture)、网络系统(Networked systems)、定位系统(Positioning systems)。1.3.1商品电子防盗系统 商品电子防盗系统已经不是一个陌生的名词了,现在的各大超市和零售店中都可以看到。早期的 EAS 主要应用于防止贵重物品被盗,将射频电子标签附在贵重商品上,读卡器定时监测该物品是否在商店内,一旦监测到物品在射频电子标签未被使无效之前离开了商店,便会发出警钟。而现在,EAS 已经广泛的应用在各种个样的商品中。1.3.2移动数据采集 比如说,在一种移动设备上安装感应器,可感应周围环境的温度、湿度、亮度或某种移动速度,这些数据均会自动存储在附在装置上的射频电子标签上,数据可由读卡器读取。1.3.3网络系统此系统使用的是固定读卡器,可对移动的目标进行跟踪,通常直接跟企业系统连接,是一种典型的目录管理技术。1.3.4定位系统 可对目标进行定位,可提供导航作用。目标可为各种各样的物体,如汽车、动物,还有人类等等。具体的应用有:动物身份标记、高速公路自动收费、动物的饲养、商品监控系统、有毒废弃药品的管理、门禁管理、邮件/包裹追踪、物品出入库记录、航空行李管理、生产过程监控、药物防伪标志、电子护照、车辆防盗系统等等。射频识别技术在国外发展非常迅速,射频识别产品种类繁多。在北美、欧洲、大洋洲、亚太地区及非洲南部,射频识别技术被广泛应用于工业自动化、商业自动化、交通运输控制管理等众多领域:汽车、火车等交通监控;高速公路自动收费系统;停车场管理系统;物品管理;流水线生产自动化;安全出入检查;仓储管理;动物管理;车辆防盗等。而在我国,由于射频识别技术起步较晚,应用的领域不是很广,除了在中国铁路应用的车号自动识别系统外,主要应用仅限于射频卡。总体而言,我国射频识别技术应用状况还处于初级阶段,市场前景非常广阔。不久的将来,我国射频识别技术应用将在生产线自动化、仓储管理、电子物品监视系统、货运集装箱的识别以及畜牧管理等方面有所突破。实现射频识别技术在我国逐渐成熟、全面应用将是一个长期的过程。2、 RFID系统的设计方案2.1 设计方案2.1.1 射频识别系统的传输协议 由于本文设计的电子标签为主动式标签,在工作中所需要的能量由标签内的电池提供,另外标签不需要阅读器的激活,阅读器和标签之间是单向通信,为了简化阅读系统的设计,通信方式只选择单工,即电子标签主动地每隔一定时间向外发射代表其自身编码的微波信号,阅读器不向电子标签发送指令和数据,只负责接收电子标签的信号。由于读写器与标签之间的通信可能会受到其他数据终端或外界环境的干扰而发生错误,因此,需要通信协议来保证数据传输的可靠性。nRF2401的协议格式见表所示,其中前导码是由nRF2401自动产生,地质包括标签地址和阅读器地址,用户数据可由用户自定义写入标签的信息,CRC校验码可选8位或16位,也由硬件自动产生。前导码地址位标签IDCRC位表2-1 RFID通讯协议2.1.2 系统各模块的设计方案2.1.2.1 电子标签图2-1 电子标签组成 从上图2-1可以看出,标签部分由以下各模块组成:射频收发、存储器、微控制器和电源。考虑到标签一般面积都不会太大,这里选用带有8051内核的nRF24e1芯片作为发送端,外部存储器选用25LC640存储24e1的驱动程序,每次上电后24e1通过SPI接口从存储器中注入驱动程序,进入工作。2.1.2.2 读卡器图2-2 读卡器组成 如上图2-2,读卡器的设计包括有:射频收发、微控制器、存储器、通信接口和电源。读卡器通过射频收发模块接收到标签数据后,微控制器将数据通过串口传送到后方PC机中。考虑到与PC机有串口连接,同时又不像标签有大小限制,这里选用nRF2401作射频收发,AT89S52作微控制器,与PC机采用RS232的串口通讯协议,选用MAX232作电平转换。2.2主要元器件的选择2.2.1收发器nRF24e1/nRF2401 本设计使用了NORDIC公司所推出的nRF24e1/nRF2401来实现射频信号收发,它们都是功能强大的单片射频GFSK收发芯片,工作在2.42.5GHz ISM频率,其通讯频道可多达125个,满足多点通信和跳频通信需要,工作速率为01Mbps,最大发射功率0dBm,外围元件极少,内置硬件CRC(循环冗余校验)和点对多点通信地址控制。简单来说,nRF24e1可以看作是带有8051内核的nRF2401的收发芯片,故这里以nRF2401简单作下介绍,具体细节可参考相关资料。图2-1为nRF2401的功能模块图,如图2-3所示,nRF2401的收发前端配置了功率放大器和低噪声放大器,还有频率合成器以及GFSK滤波器。另外,nRF2401还内置解调器、时钟恢复数据限幅器、地址解码器、CRC编码解码器,以及先入先出堆栈区。图2-3 nRF2401的功能模块图nRF2401 的使用非常方便,可以工作在四种不同工作模式下,其控制也只需使用 PWR_UP、CE、CS 三个引脚,如下表2-2所示。其工作模式为:收发模式、配置模式、空闲模式和关断模式,各工作模式的具体情况可参考相关资料。表2-2 2401工作模式控制 2.2.1.1 ShockBurstTM收发模式nRF2401芯片有个很突出的特点,即拥有两种通信模式:直接模式(Direct Mode)和猝发模式(ShockBurstTM Mode)。直接模式的工作方式与传统射频收发器的工作方式一样,在发送时,收发器自动在地址码和数据的后面添加校验码。猝发模式利用芯片内部的先入先出堆栈区,使数据从低速微控制器送入,再以高速发射出去(最高可达1 Mbps),地址和校验码由硬件自动添加和去除,使用这种收发模式,不仅可使微控制器控制芯片更有效地工作;使射频信号以高速发射,抗干扰性强;还减小整个系统的平均电流。因此,本课题中选择ShockBurstTM Mode进行数据传输,提高了系统整体的性能和效率。 在ShockBurstTM收发模式下,nRF2401自动处理字头和CRC校验码。在接收数据时,自动把字头和CRC校验码移去。在发送数据时,自动加上字头和CRC校验码,当发送过程完成后,数据准备好引脚通知微处理器数据发射完毕。ShockBurstTM发射流程(接口引脚为CE,CLK1,DATA)A.当微控制器有数据要发送时,其把CE置高,使nRF2401工作;B.把接收机的地址和要发送的数据按时序送入nRF2401;C.微控制器把CE置低,激发nRF2401进行ShockBurstTM发射;D.nRF2401的ShockBurstTM发射给射频前端供电;射频数据打包(加字头、CRC校验码);高速发射数据包;发射完成,nRF2401进入空闲状态。ShockBurstTM接收流程(接口引脚CE、DR1、CLK1和DATA)A.配置本机地址和要接收的数据包大小;B.进入接收状态,把CE置高;C.200us后,nRF2401进入监视状态,等待数据包的到来;D.当接收到正确的数据包(正确的地址和CRC校验码),nRF2401自动把字头、地址和CRC校验位移去;E.nRF2401通过把DR1(这个引脚一般引起微控制器中断)置高通知微控制器;F.微控制器把数据从nRF2401移出;G.所有数据移完,nRF2401把DR1置低,此时,如果CE为高,则等待下一个数据包,如果CE为低,开始其它工作流程。2.2.1.2器件配置工作nRF2401的所有配置工作都是通过CS、CLK1和DATA三个引脚完成,把其配置为ShockBurstTM收发模式需要15字节的配置字,而如把其配置为直接收发模式只需要2字节的配置字。由上文对nRF2401工作模式的介绍,我们ShockBurstTM收发模式,这样系统的程序编制会更加简单,并且稳定性也会更高,故这里着重介绍把nRF2401配置为ShockBurstTM收发模式的器件配置方法。ShockBurstTM的配置字使nRF2401能够处理射频协议,在配置完成后,在nRF2401工作的过程中,只需改变其最低一个字节中的内容,以实现接收模式和发送模式之间切换。ShockBurstTM的配置字可以分为以下四个部分:数据宽度:声明射频数据包中数据占用的位数,这使得nRF2401能够区分接收数据包中的数据和CRC校验码;地址宽度:声明射频数据包中地址占用的位数,这使得nRF2401能够区分地址和数据;地址:接收数据的地址,有通道1的地址和通道2的地址;CRC:使nRF2401能够生成CRC校验码和解码。 当使用nRF2401片内的CRC技术时,要确保在配置字中CRC校验被使能,并且发送和接收使用相同的协议。nRF2401配置字的各个位的描述如下表2-3所示。表2-3 2401配置字 在配置模式下,注意保证PWR_UP引脚为高电平,CE引脚为低电平。配置字从最高位开始,依次送入nRF2401。在 CS引脚的下降沿,新送入的配置字开始工作。2.2.2主控制器AT89S52图2-4 AT89S52功能模块图AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。考虑到本设计中控制器要求不是很高,而且对于AT89系列也比较熟悉,所以这里我们选择AT89S52单片机作为控制器。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。2.2.3串口电平转换器MAX232 由于设计的读卡器是要与计算机连接,所以必须考虑到单片机的电平和计算机电平的转换,这里我们选择MAX232作接口电路设计。MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。内部结构基本可分三个部分:第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道;8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。第三部分是供电。15脚DNG、16脚VCC(+5v)。图2-5 MAX232引脚和功能模块图3、 有源式电子标签的设计3.1硬件部分电路原理图图3-1 电子标签电路图 标签部分采用nrf24e1,外围电路可参考Nordic公司的nAN24-01 nRF2401A RF Layout Application Notes绘制。其中DIO0DIO2和DIN0引脚作为SPI接口与外部存储器相接,上电后存储器中的程序通过SPI口进入nRF24e1,其引脚具体功能分配如下表3-1:引脚功能作用DIO0串行时钟引脚提供外部存储器时钟信号DIO1串行数据输出口SPI数据输出,与外部存储器输入相接DIO2片选CSGPIO口,控制外部存储器是否工作DIN0串行数据输入口SPI数据输入,与外部存储器输出相接表3-1 SPI引脚功能表3.2软件部分3.2.1发送流程图电子标签初始化启动定时器,并进入配置模式配置好进入发送模式,开始发送标签信息检验发送是否超时,到规定时间继续下一发送周期3.2.2配置字设定根据之前的介绍,nRF2401/24e1的ShockBurstTM模式的配置字如下配置:int8u RFConfig15 =0x80,/接收频道二有效数据长度0x80,/接收频道一有效数据长度0x00,0x00,0x00,0x00,0x00,/接收频道二地址0x00,0xaa,0xbb,0x12,0x34,/接收频道一地址0x82,/32位地址,16位CRC,不使能CRC /bit72:ADDR_W,最大40位 /bit1:CRC_L,(0:8 bit CRC;1: 16 bit CRC) /bit0:CRC_EN /Logic 0: On-chip CRC generation/checking disabled /Logic 1: On-chip CRC generation/checking enabled0x4f,/ShockBurst模式,250 kbps,16M晶振,0dBm最大功率 /Bit 15:RX2_EN /Logic 0:One channel receive /Logic 1:Two channels receive /Bit 14:Communication Mode /Logic 0:nRF2401 operates in direct mode. /Logic 1:nRF2401 operates in ShockBurst. mode /Bit 13:RF Data Rate(0:250 kbps;1:1 Mbps) /Bit 12-10:nRF2401 crystal frequency /D12 D11 D10 Crystal Frequency MHz / 0 0 0 4 / 0 0 1 8 / 0 1 0 12 / 0 1 1 16 / 1 0 0 20 /Bit 9-8:Sets nRF2401 RF output power in transmit mode /D9 D8 P dBm /0 0 -20 /01 -10 /1 0 -5 /1 1 00x04/2400+2*1=2402MHZ=2.402G,发送模式 /Bit 71:Sets the frequency channel the nRF2401 operates on /Channelrf = 2400MHZ + RF_CH# * 1.0MHz /Bit 0:Set active mode /Logic 0:transmit mode;Logic 1:receive mode;3.2.3具体实现 本节将具体描述电子标签驱动程序的几个主要基本函数:nRF24e1初始化函数Init( ),数据读写函数SpiReadWrite(b),发射模式设置函数SetTxMode( ),标签数据包发送函数 TransmitPacket(b),有了这几个函数,按照3.2.1流程图,电子标签驱动即可基本实现。Nrf24e1数据读写函数SpiReadWrite(b),nRF24e1初始化函数Init( ),发射模式设置函数SetTxMode( )虽然简单,但很关键,其代码如下:unsigned char SpiReadWrite(unsigned char b)EXIF &= 0x20; / 清 SPI 中断SPI_DATA = b; / 将字节数据送入 SPI 数据寄存器while(EXIF & 0x20) = 0x00) ; / 等待 SPI 数据收发完成return SPI_DATA; /返回收发的数据 当参数 b 为 0 时即为读取射频模块接收到的数据,否则为将字节数据送入 SPI 数据寄存器等待发送。void Init()int8u i;SPICLK = 0;SPI_CTRL = 0x02; /SPI设置CE = 0;CS = 1; /设为配置模式Delay100us(0);for(i=1;i15;i+) SpiReadWrite(RFConfigi); /发送15字节配置字,设为ShockBurst发送模式 CS = 0; /配置结束Delay100us(30); nRF24e1的初始化,这里我们将地址配置为32位,标签ID为16位,即最多可有216个标签,改变配置字相应位的数值可以增加标签总量。void SetTxMode(void)int8u ch;CS = 1; /设为配置模式Delay100us(10);ch = FRESELE 1; /频道选择SpiReadWrite(ch ); /配置为发送模式 CS = 0; 24e1初始化后,每次发送数据前都需要重新将24e1设置为发送模式才行。 配置成发送模式后,标签数据包发送函数 TransmitPacket(*pBuf,ID_Index)的代码如下:static void TransmitPacket(unsigned char *pBuf, unsigned char ID_Index)unsigned char i;SetTxMode(); /设置为发射模式CE = 1; /进入发送数据状态CS = 0;Delay100us(1); /延时 100usfor (i=0;iADDR_COUNT;i+)SpiReadWrite(rfAddressi); /首先写 4 个字节的地址SpiReadWrite(pBufID_Index); /发送第几个应答器 ID 数据CE = 0; /发送数据结束Delay100us(5); / 发送结束后延时500us由上述程序可见,发送数据前首先设置成发送模式,并同时置 CE 为 1 允许发送,接着先写地址,然后发送标签ID。4、 读卡器的设计4.1硬件部分电路原理图图4-1 读卡器电路图 读卡器部分主要实现接收功能,待nRF2401接收到正确的数据包后,由单片机控制从串口传送至后方PC机进行处理。使用的主要芯片包括:nRF2401、AT89S52、MAX232。4.1.1nRF2401 做射频接收模块使用,由MCU控制PWR_UP、CE和CS三个引脚的电平以确定其当前工作模式,而接收到的数据则通过DR1、CLK1和DATA这三个引脚传给MCU。图4-2 2401射频收发模块 4.1.2 AT89S52单片机 AT89S52作为主控制器,一方面控制射频接收模块的工作情况,并接收相关数据包;同时又将接收到的数据包从TXD引脚往串口传送。这里只使用了单片机的P1端口,与nRF2401相关引脚对应连接。注意单片机引脚9(RST)为复位功能,可采用软启动,即每次上电直接重新启动。 图4-3 AT89S52控制器模块4.1.3 MAX232 本设计使用的RS232 驱动/接收器为MAXIM公司的MAX232,左图为 MAX232 的功能实现电路图,如图所示,MAX232 拥有16个引脚,其中有两套通信引脚,在此只使用其中的一套:T2in,T2out,R2in,R2out。其中,T2in 用于读卡器向计算机输出数据,R2out 用于读卡器接收来自计算机的数据,T2out 用于计算机接收来自读卡器的数据,R2in 则用于计算机向读卡器输出数据。这里只做接收机用,故只有从读卡器向计算机单向数据传输。 图4-4 MAX232串口模块4.1.4电平转换nRF2401工作电压3.3V,AT89S52和MAX232工作电压为5V,为统一供电,需要加稳压芯片做电平转换。本电路中采用LM1117系列的稳压芯片,外加电容即可达到效果。 图4-5 电平转换模块4.2软件部分4.2.1接收流程图系统初始化后,进入接收模式,等待数据对接收到的数据进行判断,若为新数据,进行校验后送给MCU;若为重复数据,则直接丢弃 MCU将正确的数据包通过串口232传送给PC机4.2.2具体实现 由于nRF2401的ShockBurstTM模式的配置与nRF24e1一样,这里就不重复介绍。本节主要介绍读卡器接收程序的几个基本函数:串口初始化函数UartInit(void),串口发送函数SendCh(INT8U ch),2401初始化函数Init(),2401数据读字节函数SpiReadByte(INT8U dat),数据包接收函数ReceiveBytes(void),接收模式设置函数SetRxMode(void)。 先介绍有关RS232串口部分,包括初始化和串口发送函数,这里采用中断服务程序保证串口有效地向PC机发送数据,其相关代码如下:void UartInit(void)SCON = 0x50;/串口方式1,允许接收TMOD = 0x21;/定时器1工作方式2,定时器0工作方式1TH1 = TIMER1;TL1 = TIMER1;TR1 = 1;/启动定时器1void SendCh(INT8U ch)SBUF = ch;while(!TI);TI = 0;每当串口向外发送出一个字节,标识位TI自动置1。void Timer0ISR(void) interrupt 1 /中断服务程序EA = 0;TH0+=TIMER0H;TL0+=TIMER0L;timer0+;timer1+;EA = 1; 接着是有关nRF2401的部分,其初始化和24e1基本相同,不再重复说明,接收模式设置函数的代码如下:void SetRxMode(void) unsigned char ch; CS = 1; Delay100us(0); ch = FRESELE1; /频道选择 SpiWriteByte(ch | 0x01); /配置为接收模式 CS = 0; Delay100us(2);/延时200usnRF2401和nRF24e1一样的方便之处在于,接收模式和发送模式直接可以快速转换,只需改变配置字的最后一位即可。 但是要注意2401的数据读写字节函数和24e1有所区别,下面即是2401的数据读字节函数的代码:INT8U SpiReadByte(void)INT8U i,temp;temp = 0;MISO = 1; /SPI初始化,包括DR1,DATA和SCKMOSI = 1;SCK = 0;_nop_();_nop_();for(i=0; i8; i+) /连续由SPI读出8位,即一个字节的数据temp 1000) /2401处于接收模式,等待1s,确定是否有数据接收CE = 0;return 0;i = 0;while(DR1)RxBufi = SpiReadByte();/如果接收到正确数据包,将其存入缓冲区i+;if (i = 6)break;while(DR1)SpiReadByte();CE = 0;return 1; 2401进入接收模式等待,当接收到正确数据包后,DR1会自动置1,通知MCU接收有效数据,此时函数返回值为1;否则等待超时后返回0。 有了这几个基本函数,再加上定时器的相关函数,就可以实现读卡器的接收功能了。5、 调试结果及总结5.1系统调试及结果5.1.1发送部分图5-1 数据发送测试由图5-1可以看出,发送信号的频率在2.402GHz左右,与我们设置的频点一致。5.1.2接收部分5.1.2.1串口通讯为测试串口正常,我们向串口发送了一系列0xaa和0x55交错的字节,在示波器上查看串口数据的波形如下图5-2所示。图5-2 串口通讯测试分析上图,以最小跳变周期为一个单位,每二十个是一周期,由于串口每传送一个字节都会在前端和后端各加一bit,而传送的数据是0xaa和0x55,每2个字节为以周期,与得到的波形相符。,说明串口通讯正常。再在计算机的串口调试助手上有下图5-3所示:图5-3 串口调试助手上的接收数据5.1.2.2 接收标签ID 测试完串口后,即可开始测试接收模块,我们选用2组标签ID进行测试,将得到的波形与之比较,和发送标签一致,说明接收无误。(注意这里负电平为1,正电平为0)第一组:标签ID为0x55,0x00图5-3 标签测试数据1从发生跳变的开始的20位:0010101011 0000000001,每字节去头去尾各一bit后,得到的正好就是5500,和标签ID一致。第二组:标签ID为0x11,0x11图5-4 标签测试数据2和上一组分析一样,接收无误。5.1.3性能测试 读卡器系统一个比较重要的性能就是阅读距离,我们在主楼915室进行了测试,在实验室东西最长两端(约10几米)还是可以保持接收质量。5.2实验中的遇到的问题及注意事项5.2.1硬件设计原理图设计时,明确各模块功能,主要器件的引脚要参考有关资料,不用的引脚根据资料悬空或接地。电路设计时,电源滤波很重要,单片机在接入电源之前最好都要就近滤波,否则到实际调试阶段,开关电源产生的毛刺很有可能烧坏芯片。画原理图中,最好留出芯片的一两个I/O接口,接上LED或发光二极管,用来测试芯片是否正常工作。这次设计中因为没有很好的考虑到这点,给后面的调试带来了一定的麻烦,值得注意。将电路原理图导成PCB之前,记住将每个元器件加上正确的封装,对于一些库中没有的封装,需要自己画一个加进库中,画得时候必须严格参照元件资料尺寸,或买到实际元件的尺寸。在画PCB时,元器件布局要合理,尽量使整块PCB板上的元器件分布均与,同时尽量保证线交错的少些,方便布线;布线时最好采用手动布线,比一般走线粗些电源和地线要,布线尽量工整规范,避免有90拐弯;当某支点分出三条支线,最后敷成一块较大区域,避免小于90度角的出现。这里我们采用微带天线,天线尺寸直接影响到发送接收的效果,设计时可参考有关资料计算;值得注意的是,PCB板上有微带天线的区域,另一面不能敷成地线。电

温馨提示

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

评论

0/150

提交评论