您的当前位置:首页基于主动式RFID的考勤系统设计

基于主动式RFID的考勤系统设计

2024-02-28 来源:小侦探旅游网
维普资讯 http://www.cqvip.com 北京大学信息科学技术学院李楠段晓辉吴亚坤华实 基于主动式RFID的考勤系统设计 一 The Design of a Active RFI D System 摘要:本文介绍了一种全新的考勤系统。系统基于主动式RFID,实现了低功耗设计和反碰撞算法。本文重点介绍这种 新考勤系统的构思和硬件设计,并且简介软件设计流程和系统指标 -I广 卫 关键词:主动式RFID;低功耗;反碰撞 引言 随着射频技术的发展311RFID卡的 RFID系统读写装置的读写距离很短, 米,员工们可以一起进入办公大楼,一 一般在10cm以内,所以员工必须排队 起完成上班签到,无需排队等候,使得  推广和应用,大部分企业已经开始使 逐个打卡。排队问题造成员工等待时 考勤更加方便,工作效率进一步提高。用RFID卡考勤系统。员工只要将RFID 间的延长,降低了工作效率,尤其在上 卡在非接触读写装置的有效距离内出 班高峰时段,排队现象尤为严重。本来 示一下,即可自动完成整个考勤的操 员工分时段打卡等办法,但这些都是 系统描述 本考勤系统基于主动式RFID技 作过程。但目前的RFID卡考勤系统在 后期采取的补救办法,有一定的局限 术,系统分为主卡和从卡两部分。 实际使用中暴露出一个严重问题—— 性。本文设计了一套新的考勤系统,可 主卡是读写器,由外部电源供电。 排队问题:由于目前的考勤系统是基 以从根本上消除排队现象。新系统基 主卡和计算机相连,把识别的员工信 D技术,识别距离可达30 息传输给计算机。从卡由员工随身携 于被动式RFID技术的,这种被动式 于主动式RFI带,由电池供电。从卡平时处于低功耗 节电状态,只有当员工以按键或其它 方式从外部触发从卡时,从卡才发送 该员工信息给主卡,完成考勤签到。 要实现本系统必须解决两个难点 问题:低功耗设计和反碰撞算法。 1.低功耗设计:由于从卡由电池供 电,而电池的容量和使用时间是有限 的,所以必须对从卡进行低功耗设计, 从而尽可能节省功耗,延长电池使用 时间。 2.反碰撞算法:当多名员工进入大 厅并且同时触发从卡签到时,就会产 生碰撞问题,造成数据丢失,使签到失 一 ・2006.6 、II,1II,1II,.ecnchina.com 维普资讯 http://www.cqvip.com 8mA;ShockBurst模式 以通过外接电源供电,又可以使用电 败,同时也会带来额外的功耗。因此必 式功耗可低至0.须实现反碰撞算法,才能使本系统正 是它独特的低功耗设计,可以把功耗 池单独供电。主卡主要使用外接电源 常工作。  降得更低;它独特的DuoCeiver技术可 给系统供电。从卡通常使用电池供电,以同时接收两个RF频道的数据。 从而便于携带,因此必须考虑低功耗 硬件设计 本系统的控制模块选择TI公司的 设计。由于RFID卡的体积要求尽量小, 硬件系统框图如图1。硬件设计兼 单片机MSP430F123,主要也是从低功 容了主卡和从卡的设计需求,使同一 耗角度出发的。MSP430F123采用了TI 块PCB板既可以配置成主卡,又可以配 公司最新的低功耗技术,使其在众多 置成从卡。如下框图包括主卡和从卡 的单片机中独树一帜;它的工作电压 的设计,是兼容设计框图。主卡和从卡 1.8~3.6V;它内部带有Flash,这样的 的设计区别在于:主卡采用外部电源 单片机可以大大降低功耗;其高效率 供电,并且不需要外部触发;从卡采用 精简16位指令结构可以确保任务的快 电池供电,并且不需要串口。 速执行;它有正常工作模式(AM)和 主要器件选取 4种低功耗工作模式,在电压为3V时, 经过比较,本系统采用Nordic公司 各种模式的工作电流分别为AM: 的低功耗射频芯片nRF2401作为无线 300uA、LPM1:55uA、LPM2:17uA、 收发模块。因为它具有如下优势: LPM3:2uA、LPM4:0.1uA;唤醒时间 nRF2401是业界体积最小、功耗最少、 只需6us,使启动更加迅速,降低了电 外围元件最少的无线收发芯片;它工 池的功耗;单片机外部可接32kHz ̄频 作在全球开放的2.4GHz频段;工作电 率晶体。MSP430F123的超低功耗使其 压1.9~3.6V,满足低功耗设计需要;它 在电池供电、便携式设备的应用中表 采用低功耗设计,休眠模式功耗只有 现出非常优良的特性。 400nA,接收模式功耗18mA,发送模 电源模块采用兼容性设计,既可 所以只能采用纽扣电池供电,本系统 选用了容量最大的纽扣电池CR2477, 容量为950mAH。 主要工作原理 本系统的主要工作原理是通过单 片机MSP4 30F 1 2 3控制射频芯片 nRF2401进行收发,并且在不同的工作 状态进行相应的低功耗管理。单片机 通过PWR、CE、cs三个引脚对nRF2401 进行模式配置,通过设置这三个引脚 的高低电平,可以将nRF2401配置为工 作模式、待机模式或休眠模式。从卡初 始化以后,nRF240 1进入休眠模式, MSP430F123进入LPM4休眠模式,此 时功耗最低。当外部触发后,单片机被 P 2.2引脚的外部中断激活,并将 nRF2401配置为发送模式,单片机通过 SPI方式向nRF2401传送数据,nRF2401 以Shockburst方式向主卡发送高频信 号。当主卡的nRF2401收到正确的高频 信号后,会通过DR1引脚给单片机产生 中断,原本处于LPM4休眠模式的单片 机被中断激活。MSP430F123通过SPI 方式接收nRF2401传送的数据,并将数 据通过串VI芯片MAX3222传送给计算 机。 低功耗设计 对本系统进行低功耗设计时,主 要遵循如下几个重要原则:(1)低功耗 器件的选取是设计的重要一步,本系 统重要器件的选取都是从低功耗角度 出发的,在前面已经进行了详述。(2)电 、I,、I,、I,.ecnchina.corn麟2006.6・ _ I_.广 卫 ■一 一 维普资讯 http://www.cqvip.com 压宜低不宜高,本系统使用整个系统 图3、4。 TXData[2]=datal;//数据0 TXData[3]=data2;//数据1 TXData[4]=data3;//数据2 P1OUT=0x06;//将CE置高 Delay8us();//延时5us以上将地 正常工作的最低电压2V。(3)时钟宜慢 不宜快,单片机采用3 2kHZ晶振, 本系统的主卡和从卡分别按照各 自的程序进行工作。但是主卡和从卡 nRF2401采用4MHz晶振,都是芯片工 的程序都是由相同或相近的子程序组 作的最低晶振速率。(4)进行低功耗管 成的,包括发送、接收、休眠、定时、 理设计,本系统器件都具有休眠模式, 当不需要某个器件工作时,就将其设 一 为休眠模式,最大限度节省功耗,整个 系统休眠功耗只有0.5uA,功耗极低。 (5)低功耗电路设计也很关键,例如本 系统一率采用中断方式,而非查询方 式,可以让单片机工作于突发状态,更 省功耗;JTAG端口TMS、TCK和TDI 不要接地;CMOS输入端不能有浮空的 节点,将所有输入端接适当的电平,不 用的端口设置成输出端等等,所有能 产生功耗的细节问题都要考虑到。 软件设计 本文的反碰撞算法采用了目前比 较成熟的CSMA/CA算法。该算法是无 线局域网802.1 1协议使用的反碰撞算 法,非常适用于本考勤系统,所以直接 将此算法移植到本系统中使用。由于 CSMA/CA算法已经被广泛使用,业内 有很多关于它的介绍和实现方面的资 料,在此限于篇幅就不具体介绍了。 软件的实现上也要考虑低功耗设 计。在软件设计上主要注意节省程序 的开销,本系统不使用外部存储器,而 是使用寄存器变量;不使用查询方式, 而是及时响应中断;充分利用电源管 理,当系统不需要工作时都设定为休 眠模式;尽量缩短软件设计以及代码 的开销。 本系统主卡和从卡的软件按照不 同的流程分别设计,各自的流程图如 ・2006。6 www.ecnchina.corn 回退、中断等子程序。不同之处在于这 址和数据送到nRF2401的FIFO中 些子程序的调用顺序不同,主卡和从 for(i:0;i<5;i++)//单片机通过SPI 卡分别按照各自流程图中的顺序调用 向nRF2401传送数据 相应的子程序,参见上面的流程图。下 { 面列出这些主要子程序的代码和注释。 Spi_Read Write(TXData[i]); void TX_Packet()//发送子程序 } { P1OUT=0x04;//将CE置低后 unsigned char i; nRF2401开始高频发送,发送完成后进 TXData[0]=0xcc;//地址高字节 入待机模式 TXData[1]=0xcc;//地址低字节 } 维普资讯 http://www.cqvip.com void RXPacket(int r)//接收子程 { TACTL J=MCO;//启动定时器 序 { unsigned char i; P2IE=0x00;//关所有中断 drflag=l;//把数据就绪标志置1 BICSR——_BIS—SR(LPM3 bits);//单片机进 入待机模式 IRQ(LPM4_bits); for( 0;i<r;i++)//把nRF2401接收 //把单片机从休眠模式激活 到的数据通过SPI传给单片机 { RXData[i】=Spi Readwrite(0xff); } } unsigned char SpiReadWrite (unsigned char byte)//通过SPI实现 nRF2401和单片机的通信 { TXBUF0=byte;//将数据写入SPI 数据寄存器 while((UOTCTL&0x01)!=1);//等 待SPI发送完成 return RXBUF0;//返回从SPI读到 的数据 } #pragma vector=PORT2VECTOR //外部中断子程序 interrupt void PORT2(void) { if((P2IFG&0x04)一0x04)// 0断 中断是否为外部触发中断 { P2IE=0x00;//关所有中断 _BICSRIRQ(LPM4_bits);//把单 片机从休眠模式激活 P2IE=0x08;//开P2.3中断,可接收 DR1消息中断 P2IFG=0x00;//清中断标志位 } if((P21FG&0x08) ̄0x08)//判断中 断是否为DR1消息中断 P21FG=0x00;//清中断标志位 } } ≠i}P r a g m a vector=TIMERA0VECTOR//定时器 中断子程序 __interrupt void TIMER_A(void) { TACTL I=MC一0;//停止增计数模 式 _BIC—SRIRQ(LPM3 bits);//把 单片机从待机模式激活 } 休眠、定时和回退子程序包含在 main函数中: void main(void) { …… //休眠子程序 P1OUT=0x00;HnRF2401进入休 眠模式 BIS~SR(LPM4_bits);//单片机进 入低功耗休眠模式 //定时子程序 TACCTL0=CCIE;//开启定时器 中断 CCR0=time;//设置定时时间 T A C T L = TASSEL0+IDI+ID0+TACLR;//配置 定时器 //二进制指数随机回退程序 y=pow(2,(s・1));//随机数取值范 围,Y为2的s・1次方 srand(TAR);//将计数器的值作为 随机种子 k:rand()%y;//在[0,y】的范围内产 生随机数 ofr(x=0;x<k;x++)//根据产生的随 机数定时,实现回退 { NOP(); } } 结语 本文介绍了一种基于主动式RFID 技术设计的全新高效的考勤系统,解 决了目前RFID卡考勤系统中无法避免 的排队问题。在系统设计中解决了低 功耗设计和反碰撞算法两大难点,使 得RFID卡在不更换电池的情况下可以 长期使用,并且多名员工在同时打卡 时能全部被系统识别。■ 参考文献 1.李锦涛等, ‘射频识别(RFID) 技术及其应用’,信息技术快报,2004年 2.NoRDIC SEMIC0NDUCr0R, ‘Singlechip2.4GHzTransceivernRF2401A ‘,2004. 州I,、II,.ecnchina.tom 2006.6・ 卫 -I厂 ■I 一 

因篇幅问题不能全部显示,请点此查看更多更全内容