本文基于51單片機和無線數(shù)據(jù)收發(fā)芯片nRF24L01,設(shè)計了一種無線門禁控制系統(tǒng),該系統(tǒng)成本低,方案簡單,擴展性好.通過人臉識別上位機系統(tǒng),能夠?qū)崟r檢測和識別來訪者身份.如果數(shù)據(jù)庫中包含來訪者信息,則步進電機打開門鎖,LCD顯示來訪者信息;否則,步進電機不轉(zhuǎn)動,報警器報警,LCD顯示報警信息.
1、系統(tǒng)硬件設(shè)計
1.1、系統(tǒng)結(jié)構(gòu)和功能
系統(tǒng)結(jié)構(gòu)主要由PC端軟件系統(tǒng),發(fā)送端,無線數(shù)據(jù)傳送模塊和接收端組成,系統(tǒng)整體結(jié)構(gòu)如圖1.

PC端軟件主要是檢測和識別來訪者身份信息,并將信息轉(zhuǎn)換成數(shù)據(jù)幀形式,通過RS232串口傳送給發(fā)送端.發(fā)送端完成數(shù)據(jù)幀的加密、無線模塊初始化和數(shù)據(jù)幀的發(fā)送.接收端完成數(shù)據(jù)幀的接收、解密和數(shù)據(jù)幀的命令響應,并且控制門禁系統(tǒng).
1.2、發(fā)送端和接收端硬件設(shè)計
發(fā)送端和接收端采用的控制芯片是STC公司生產(chǎn)的89C52RC單片機,這是新一代高速,低功耗,超強干擾的單片機,指令代碼完全兼容傳統(tǒng)8051單片機,12時鐘周期,采用11.0592MHz外部晶振起振,工作電壓為3.8V~5.5V,DIP40封裝,內(nèi)部集成EEPROM,用戶應用程序空間為8K,支持ISP下載程序.
除了上述主控芯片外,還要預留必要的功能模塊驅(qū)動接口,主要包括:nRF24L01無線射頻芯片接口,步進電機接口,LCD液晶接口和其他的外部擴展接口.
nRF24L01無線射頻芯片接口共有8個引腳,分別為GND,VCC,CE,CSN,SCK,MOSI,MISO和IRQ,其中GND為電源地,VCC為3.3V工作電壓,IRQ為外部中斷引腳,其余為芯片的控制引腳和數(shù)據(jù)引腳.采用USB供電,電壓約為5V,所以需要將5V電壓轉(zhuǎn)換成3.3V電壓.電源轉(zhuǎn)換電路主要采用AMS1117-3.3芯片,它是一個正向低壓降穩(wěn)壓器,具有1%的有效精度,電路設(shè)計如圖2.

圖2中AMS1117-3.3芯片VIN引腳接5V電壓,VOUT輸出3.3V電壓.加入CJ3極性電容,用于去除穩(wěn)壓前后電路中的紋波.
nRF24L01無線射頻芯片的接口電路設(shè)計如圖3.

圖3中nRF24L01射頻模塊的CE,SCK,MISO,MOSI,CSN外接1K電阻與單片機P2口連接,IRQ外接1K電阻與單片機外部中斷引腳連接,每發(fā)送或接收一幀數(shù)據(jù)后都會觸發(fā)單片機外部中斷.
步進電機接口為6引腳,其中VDD為5V電壓,GND為電源地,其余為步進電機勵磁引腳,分別與單片機P1口連接,由P1口提供勵磁脈沖.
液晶屏采用LCD12864,其供電電壓為4.5V~5V,工作電流為3mA,內(nèi)部集成字庫.2,3引腳外接2K電位器,用于調(diào)節(jié)屏幕背光亮度,其余為數(shù)據(jù)和控制引腳.電路設(shè)計如圖4.

1.3、nRF24L01硬件設(shè)計
nRF24L01是一款工作在2.4~2.5GHz世界通用ISM頻段的單片無線收發(fā)器芯片.無線收發(fā)器包括:頻率發(fā)生器、增強型SchockBurstTM[7-8]模式控制器、功率放大器、晶體振蕩器、調(diào)制器、解調(diào)器.輸出功率、頻道選擇和協(xié)議設(shè)置可以通過SPI接口設(shè)置.發(fā)射模式下功率-6dBm時電流為9mA,接收模式時為12.3mA,掉電模式和待機模式下電流消耗更低.電路設(shè)計如圖6.

圖6 ? ? nRF24L01外部電路設(shè)計
1.4步進電機驅(qū)動電路設(shè)計
步進電機為28BYJ-48型五線四項八拍型,工作電壓為直流5V~12V,正常工作需要一系列連續(xù)不斷的激勵脈沖.由于單片機IO口提供的脈沖信號不夠大,需要外加ULN2003信號放大電路,電路設(shè)計如圖7.圖中JP2連接步進電機IO口,JP3連接到單片機IO口.

2、系統(tǒng)軟件設(shè)計
2.1、nRF24L01軟件設(shè)計
nRF24L01芯片通過設(shè)置配置寄存器中PWR-UP位和PRIM-RX位以及CE引腳的電平來控制其工作模式,具體如表1.

文中主要利用前3種工作模式,發(fā)送端或接收端檢測到各自數(shù)據(jù)緩沖區(qū)中有數(shù)據(jù)時,由待機模式進入發(fā)送或接收模式,數(shù)據(jù)處理完畢將狀態(tài)寄存器TX-DS或RX-DR位置高,IRQ引腳產(chǎn)生中斷,此時由發(fā)送或接收模式進入待機模式,等待數(shù)據(jù)進入數(shù)據(jù)緩沖區(qū),IRQ中斷后要通過單片機寫狀態(tài)寄存器來復位.
nRF24L01數(shù)據(jù)發(fā)送或接收主要通過SPI接口實現(xiàn),采用STC89C52RC單片機IO口模擬出SPI接口的工作時序,SPI讀寫時序如圖8,9.

完成芯片基本功能后需要對芯片進行初始化,保證發(fā)送端和接收端的地址寬度,信道工作頻率,發(fā)射和接收速率以及功率一致.文中對nRF24L01芯片初始化過程如表2.

數(shù)據(jù)通道0有40位可配地址,當從一個數(shù)據(jù)通道中接收到數(shù)據(jù),并且此數(shù)據(jù)通道設(shè)置為應答方式的話,則nRF24L01在收到數(shù)據(jù)后產(chǎn)生應答信號,此應答信號的目標地址為接收通道地址.數(shù)據(jù)通道0地址設(shè)置如圖10.

系統(tǒng)有一個發(fā)射端和多個接收端,所以采用的通信協(xié)議要簡單可靠,在SchockBurstTM協(xié)議的基礎(chǔ)上將文中通信協(xié)議設(shè)置成:
前導碼地址(5Byte)有效數(shù)據(jù) ? CRC校驗
前導碼用來檢測0和1,芯片在接收模式下去除前導碼,發(fā)送模式下加入前導碼.地址5字節(jié),內(nèi)容為接收地址,可以對發(fā)送信道和接收信道分別進行設(shè)置,接收端從接收的數(shù)據(jù)包中自動去除地址,所有地址在門禁系統(tǒng)中都是唯一的.有效發(fā)送數(shù)據(jù)最大為15字節(jié).CRC校驗位16bit.所有接收端都將接收帶地址碼的數(shù)據(jù)幀,并將接收地址與本地地址進行比較,如相同則再分別驗證前導碼和CRC校驗碼,如還相同則將有效數(shù)據(jù)送入數(shù)據(jù)緩沖區(qū)中再進行處理.
2.2、步進電機軟件設(shè)計
步進電機有三線式、五線式和六線式,但其控制方式均相同,都要以脈沖信號電流來驅(qū)動.
步進電機的勵磁方式分為全步勵磁和半步勵磁.其中全步勵磁又分為一相勵磁和二相勵磁,半步勵磁又稱一二相勵磁.文中步進電機為五線四項八拍電機,考慮到門禁系統(tǒng)的對實時性和快速性的要求,因此,采用二相勵磁方式,其主要特點是:輸出轉(zhuǎn)矩大,振動?。畡畲彭樞蛉绫?.

3、實驗結(jié)果
通過對整個門禁控制系統(tǒng)的軟硬件進行設(shè)計,做出測試樣品,并且經(jīng)過10組,每組30次測試,證明該門禁系統(tǒng)具有較好的控制能力.在有障礙物(如墻壁等)遮擋的情況下,10m距離以內(nèi),數(shù)據(jù)幀從發(fā)送到門禁控制系統(tǒng)響應平均用時1.4~2.5s,數(shù)據(jù)幀傳送錯誤率平均在1.67%,即有5組測試中出現(xiàn)了一次數(shù)據(jù)幀傳送錯誤.門禁控制系統(tǒng)設(shè)計如圖11.
4、結(jié)論
通過多次大量分組實驗,證明文中設(shè)計的無線門禁系統(tǒng)有較好的實時性和準確性,在有障礙物條件下,數(shù)據(jù)傳輸也能滿足實用性要求,達到了預期的設(shè)計目標.
電子發(fā)燒友App
















評論