基于51单片机与nRF24L01无线门禁控制系统设计

2013-11-19 08:21张永宏王丽华
关键词:门禁系统接收端励磁

张永宏, 曹 健, 王丽华

(南京信息工程大学 信息与控制学院, 江苏 南京, 210044)

门禁系统是一种以预防损失、预防犯罪为主要目的,用来保护人员和财产安全的现代化安防手段[1].随着科技的进步,门禁系统从机械锁具发展到电子门禁,从单独的门禁系统发展到报警一体化,从单个门禁控制发展到网络互连[2].目前市场上流行的门禁系统一般为有线传输方式,其扩展性和经济性不高,根据市场前景预测和需求分析,无线门禁系统无疑更适用于要求日益提高的安防产业.相比于有线门禁系统,无线门禁系统有以下几个特点[3]:① 安装、操作和维护简单方便;② 无线网络具有可移动性,能满足在布线困难情况下门禁控制的需要;③ 无线门禁设备的花费更少;④ 无线系统成本较低,价格低,市场范围也相应较广;⑤ 系统采用分布式控制方式,区域控制器具有存储和独立工作的能力,管理系统的故障不会影响每个独立工作区域的正常运行;⑥ 无线门禁需求可随时间及功能需求改变而升级.

文中基于51单片机和无线数据收发芯片nRF24L01,设计了一种无线门禁控制系统,该系统成本低,方案简单,扩展性好.通过人脸识别上位机系统,能够实时检测和识别来访者身份.如果数据库中包含来访者信息,则步进电机打开门锁,LCD显示来访者信息;否则,步进电机不转动,报警器报警,LCD显示报警信息.

1 系统硬件设计

1.1 系统结构和功能

系统结构主要由PC端软件系统,发送端,无线数据传送模块和接收端组成,系统整体结构如图1.

图1 系统结构Fig.1 System block diagram

PC端软件主要是检测和识别来访者身份信息,并将信息转换成数据帧形式,通过RS232串口传送给发送端.发送端完成数据帧的加密、无线模块初始化和数据帧的发送.接收端完成数据帧的接收、解密和数据帧的命令响应,并且控制门禁系统.

1.2 发送端和接收端硬件设计

发送端和接收端采用的控制芯片是STC公司生产的89C52RC单片机,这是新一代高速,低功耗,超强干扰的单片机,指令代码完全兼容传统8051单片机,12时钟周期,采用11.059 2 MHz外部晶振起振,工作电压为3.8V~5.5V,DIP40封装,内部集成EEPROM,用户应用程序空间为8K,支持ISP下载程序[4].

除了上述主控芯片外,还要预留必要的功能模块驱动接口,主要包括:nRF24L01无线射频芯片接口,步进电机接口,LCD液晶接口和其他的外部扩展接口.

nRF24L01无线射频芯片接口共有8个引脚,分别为GND,VCC,CE,CSN,SCK,MOSI,MISO和IRQ[5],其中GND为电源地,VCC为3.3V工作电压,IRQ为外部中断引脚,其余为芯片的控制引脚和数据引脚.采用USB供电,电压约为5V,所以需要将5V电压转换成3.3V电压.电源转换电路主要采用AMS1117-3.3芯片,它是一个正向低压降稳压器,具有1%的有效精度,电路设计如图2[6].

图2 电源转换电路设计Fig.2 Design of the power conversion circuit

图2中AMS1117-3.3芯片VIN引脚接5V电压,VOUT输出3.3V电压.加入CJ3极性电容,用于去除稳压前后电路中的纹波.

nRF24L01无线射频芯片的接口电路设计如图3.

图3 nRF24L01接口设计Fig.3 Design of nRF24L01 interface

图3中nRF24L01射频模块的CE,SCK,MISO,MOSI,CSN外接1K电阻与单片机P2口连接,IRQ外接1K电阻与单片机外部中断引脚连接,每发送或接收一帧数据后都会触发单片机外部中断.

步进电机接口为6引脚,其中VDD为5V电压,GND为电源地,其余为步进电机励磁引脚,分别与单片机P1口连接,由P1口提供励磁脉冲.

液晶屏采用LCD12864,其供电电压为4.5V~5V,工作电流为3mA,内部集成字库.2,3引脚外接2K电位器,用于调节屏幕背光亮度,其余为数据和控制引脚.电路设计如图4.

图4 LCD12864接口设计Fig.4 Design of LCD12864 interface

采用AltiumDesigner设计的发射端和接收端PCB如图5所示.图5中PCB设计时扩展出主要的IO口和电源口,便于在本文基础上做进一步开发.

图5 PCB设计Fig.5 PCB design

1.3 nRF24L01硬件设计

nRF24L01是一款工作在2.4~2.5GHz世界通用ISM频段的单片无线收发器芯片.无线收发器包括:频率发生器、增强型SchockBurstTM[7-8]模式控制器、功率放大器、晶体振荡器、调制器、解调器.输出功率、频道选择和协议设置可以通过SPI接口设置.发射模式下功率-6dBm时电流为9mA,接收模式时为12.3mA,掉电模式和待机模式下电流消耗更低.电路设计如图6.

图6 nRF24L01外部电路设计Fig.6 Design of nRF24L01 peripherals circuit

文中nRF24L01无线收发模块采用PCB内置天线,最大传输距离30 m,支持多频点和多信道通信[9-10].

1.4 步进电机驱动电路设计

步进电机为28BYJ-48型五线四项八拍型,工作电压为直流5V~12V,正常工作需要一系列连续不断的激励脉冲.由于单片机IO口提供的脉冲信号不够大,需要外加ULN2003信号放大电路,电路设计如图7.图中JP2连接步进电机IO口,JP3连接到单片机IO口.

图7 步进电机驱动电路设计Fig.7 Design of stepper motor driver circuit

2 系统软件设计

2.1 nRF24L01软件设计

nRF24L01芯片通过设置配置寄存器中PWR-UP位和PRIM-RX位以及CE引脚的电平来控制其工作模式,具体如表1.

表1 nRF24L01主要的工作模式Table 1 Main operation mode of nRF24L01

文中主要利用前3种工作模式,发送端或接收端检测到各自数据缓冲区中有数据时,由待机模式进入发送或接收模式,数据处理完毕将状态寄存器TX-DS或RX-DR位置高,IRQ引脚产生中断,此时由发送或接收模式进入待机模式,等待数据进入数据缓冲区,IRQ中断后要通过单片机写状态寄存器来复位.

nRF24L01数据发送或接收主要通过SPI接口实现,采用STC89C52RC单片机IO口模拟出SPI接口的工作时序,SPI读写时序如图8,9.

图8 SPI读时序Fig.8 SPI read timing

图9 SPI写时序Fig.9 SPI write timing

SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO.SPI主要特点:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突和总线竞争保护等.每一个时钟周期通过检测上升沿和下降沿完成两个寄存器8位数据交换,遵循上升沿发送、下降沿接收、高位先发送的原则.

完成芯片基本功能后需要对芯片进行初始化,保证发送端和接收端的地址宽度,信道工作频率,发射和接收速率以及功率一致.文中对nRF24L01芯片初始化过程如表2.

表2 nRF24L01初始化Table 2 Initialization of nRF24L01

数据通道0有40位可配地址,当从一个数据通道中接收到数据,并且此数据通道设置为应答方式的话,则nRF24L01在收到数据后产生应答信号,此应答信号的目标地址为接收通道地址.数据通道0地址设置如图10.

图10 通道0设置Fig.10 Channel 0 set

系统有一个发射端和多个接收端,所以采用的通信协议要简单可靠,在SchockBurstTM协议[10]的基础上将文中通信协议设置成:

前导码地址(5Byte)有效数据CRC校验

前导码用来检测0和1,芯片在接收模式下去除前导码,发送模式下加入前导码.地址5字节,内容为接收地址,可以对发送信道和接收信道分别进行设置,接收端从接收的数据包中自动去除地址,所有地址在门禁系统中都是唯一的.有效发送数据最大为15字节.CRC校验位16bit.所有接收端都将接收带地址码的数据帧,并将接收地址与本地地址进行比较,如相同则再分别验证前导码和CRC校验码,如还相同则将有效数据送入数据缓冲区中再进行处理.

2.2 步进电机软件设计

步进电机有三线式、五线式和六线式,但其控制方式均相同,都要以脉冲信号电流来驱动.

步进电机的励磁方式分为全步励磁和半步励磁.其中全步励磁又分为一相励磁和二相励磁,半步励磁又称一二相励磁.文中步进电机为五线四项八拍电机,考虑到门禁系统的对实时性和快速性的要求,因此,采用二相励磁方式,其主要特点是:输出转矩大,振动小.励磁顺序如表3.

表3 步进电机励磁顺序表Table 3 Excitation sequence table of stepper motor

表3中励磁顺序为1→2→3→4→1循环励磁,其中A,B,C,D分别对应于步进电机的励磁引脚.

单片机控制步进电机的部分程序如下:

unsigned char code table1[]={0x09,0x0c,0x06,0x03};

void Step-driver()

{

uchar i,j;

uchar maichong=2;

for(j=0;j<4;j++)

{

P1=table1[j];

for(i=0;i

{

delay-us(150);

}

}

}

根据实验结果,如果采用上述励磁规则,每个励磁周期能使步进电机旋转2°,打开门锁需要旋转3周左右,大约需要500个脉冲.文中STC89C52RC单片机外部晶振为11.059 2MHz,其指令周期约为2us,加入时间控制函数如下:

void time-control()

{

uchar k;

for(k=0;k<500;k++)

Step-driver();

}

2.3 数据帧结构和加密

发送和接收的数据帧包含了识别信息和门禁控制信息,考虑到门禁系统的安全性,需要进行数据帧加密和解密[11].数据帧的结构设计如下:

姓名(6Byte)身份(6Byte)门禁控制(1Byte)停止位(1Byte)

数据帧总长度为14字节,前6个字节为来访者姓名,7~12字节为来访者身份信息,前12字节以汉字形式最终显示在12 864液晶屏上,每个汉字占用2字节.门禁控制包括步进电机控制、报警控制和显示控制,占用一个字节空间.最后包含一个字节的停止位,主要作用是标记RS232数据传送截止.

数据加密过程由于是在单片机端完成,考虑到本文单片机晶振只有11.059 2 HMz,所以加密过程要简单有效.综合考虑,采用12字节密钥对数据进行异或加密和解密.对数据帧中除停止位外,采用12字节十六进制数进行按位异或运算.加密密钥和解密密钥同时并存于发送端和接收端单片机的程序存储区内.数据帧在发送端经过12字节密钥加密后发送,在收端接利用12字节密钥再对数据进行按位异或解密,对解密后的数据由单片机进行命令响应,由此来控制整个门禁系统.

3 实验结果

通过对整个门禁控制系统的软硬件进行设计,做出测试样品,并且经过10组,每组30次测试,证明该门禁系统具有较好的控制能力.在有障碍物(如墙壁等)遮挡的情况下,10 m距离以内,数据帧从发送到门禁控制系统响应平均用时1.4~2.5 s,数据帧传送错误率平均在1.67%,即有5组测试中出现了一次数据帧传送错误.门禁控制系统设计如图11.

图11 门禁控制系统设计Fig.11 Design of door-guard control system

4 结论

通过多次大量分组实验,证明文中设计的无线门禁系统有较好的实时性和准确性,在有障碍物条件下,数据传输也能满足实用性要求,达到了预期的设计目标.

参考文献(References)

[1] 向雅琴.无线门禁系统的设计与研究[D].武汉:华中科技大学,2010:1-85..

[2] 刘景鹏, 惠玮.基于MSP430的无线门禁控制系统设计[J].应用天地,2011,11(6):52-55.

Liu Jingpeng, Hui Wei.Wireless door control system based on MSP430[J].ApplicationNotes, 2011,11(6):52-55.(in Chinese)

[3] 许仁德.基于ZigBee技术的无线可视门禁系统的研究与设计[D].南京:南京理工大学, 2011:1-80.

[4] 宏晶科技.STC89C51RC/RD+系列单片机中文指南[G].深圳:宏晶科技,2005:1-10.

[5] 郑小芹,洪健,李钟慎.基于nRF905的无线门禁系统设计[J].过程控制科学技术与应用,2010,7(5):378-382.

Zheng Xiaoqin, Hong Jian, Li Zhongshen.Design of wireless door-guard system based on nRF905[J].ProcessControlScienceTechnologyandApplications, 2010, 7(5):378-382.(in Chinese)

[6] 刘希若.无线门禁系统的设计与实现[J].科技广场, 2007,7(7):198-201.

Liu Xiruo.Wireless door-guard system design [J].ScienceMosaic, 2007, 7(7):198-201.(in Chinese)

[7] Single chip 2.4 GHz Transceiver nRF24L01[R].Europe:Nordic Semiconductor ASA,2005:15-19.

[8] Hee Sank John, Hakchul Jang, Jangwooh Jeon.2.4-GHz ISM band transceiver[J].MicrowaveEngineeringEurope,2008.5(1):2-5.

[9] 赵轩,马健,曹仁磊,等.基于nRF24L01的无线式模型车运动状态监控系统[J].科技导报,2010,28(2):63-66.

Zhao Xuan, Ma Jian, Cao Renlei, et al.Monitoring system of the wireless model car’s motion state[J].Science&TechnologyReview, 2010, 28(2):63-66.(in Chinese)

[10] 季行建,郑青.基于nRF24L01的无线监控系统的应用与实现[J].自动化仪表,2007,5(9):112-116.

Ji Xingjian, Zheng Qing.The application and implementation of Wireless monitoring system based on nRF24L01[J].ProcessAutomationInstrumentation, 2007, 5(9):112-116.(in Chinese)

[11] 邢文生, 李希臣.一种安全的无线门禁系统及其Keil C语言实现[J].微计算机与信息, 2007, 8(23): 288-293.

Xing Wensheng, Li Xichen.A safe Wireless door access system and the implementation with Keil C program[J].Control&Automation, 2007, 8(23): 288-293.(in Chinese)

猜你喜欢
门禁系统接收端励磁
同步调相机励磁前馈式强励控制方法研究
基于多种生物特征识别的RFID门禁系统设计
基于扰动观察法的光通信接收端优化策略
发变组过励磁保护误动原因分析及处理措施
励磁变压器励磁涌流引起的调相机跳闸分析
顶管接收端脱壳及混凝土浇筑关键技术
基于多接收线圈的无线电能传输系统优化研究
手机无线充电收发设计
基于AI智慧人脸门禁系统的硬件系统设计
基于单片机的安全门禁系统研究设计