本文基于51單片機(jī)和無線數(shù)據(jù)收發(fā)芯片nRF24L01,設(shè)計了一種無線門禁控制系統(tǒng),該系統(tǒng)成本低,方案簡單,擴(kuò)展性好.通過人臉識別上位機(jī)系統(tǒng),能夠?qū)崟r檢測和識別來訪者身份.如果數(shù)據(jù)庫中包含來訪者信息,則步進(jìn)電機(jī)打開門鎖,LCD顯示來訪者信息;否則,步進(jìn)電機(jī)不轉(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ù)幀的命令響應(yīng),并且控制門禁系統(tǒng).
1.2、發(fā)送端和接收端硬件設(shè)計
發(fā)送端和接收端采用的控制芯片是STC公司生產(chǎn)的89C52RC單片機(jī),這是新一代高速,低功耗,超強(qiáng)干擾的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),12時鐘周期,采用11.0592MHz外部晶振起振,工作電壓為3.8V~5.5V,DIP40封裝,內(nèi)部集成EEPROM,用戶應(yīng)用程序空間為8K,支持ISP下載程序.
除了上述主控芯片外,還要預(yù)留必要的功能模塊驅(qū)動接口,主要包括:nRF24L01無線射頻芯片接口,步進(jìn)電機(jī)接口,LCD液晶接口和其他的外部擴(kuò)展接口.
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電阻與單片機(jī)P2口連接,IRQ外接1K電阻與單片機(jī)外部中斷引腳連接,每發(fā)送或接收一幀數(shù)據(jù)后都會觸發(fā)單片機(jī)外部中斷.
步進(jìn)電機(jī)接口為6引腳,其中VDD為5V電壓,GND為電源地,其余為步進(jìn)電機(jī)勵磁引腳,分別與單片機(jī)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ā)生器、增強(qiáng)型SchockBurstTM[7-8]模式控制器、功率放大器、晶體振蕩器、調(diào)制器、解調(diào)器.輸出功率、頻道選擇和協(xié)議設(shè)置可以通過SPI接口設(shè)置.發(fā)射模式下功率-6dBm時電流為9mA,接收模式時為12.3mA,掉電模式和待機(jī)模式下電流消耗更低.電路設(shè)計如圖6.
圖6 ? ? nRF24L01外部電路設(shè)計
1.4步進(jìn)電機(jī)驅(qū)動電路設(shè)計
步進(jìn)電機(jī)為28BYJ-48型五線四項八拍型,工作電壓為直流5V~12V,正常工作需要一系列連續(xù)不斷的激勵脈沖.由于單片機(jī)IO口提供的脈沖信號不夠大,需要外加ULN2003信號放大電路,電路設(shè)計如圖7.圖中JP2連接步進(jìn)電機(jī)IO口,JP3連接到單片機(jī)IO口.
2、系統(tǒng)軟件設(shè)計
2.1、nRF24L01軟件設(shè)計
nRF24L01芯片通過設(shè)置配置寄存器中PWR-UP位和PRIM-RX位以及CE引腳的電平來控制其工作模式,具體如表1.
文中主要利用前3種工作模式,發(fā)送端或接收端檢測到各自數(shù)據(jù)緩沖區(qū)中有數(shù)據(jù)時,由待機(jī)模式進(jìn)入發(fā)送或接收模式,數(shù)據(jù)處理完畢將狀態(tài)寄存器TX-DS或RX-DR位置高,IRQ引腳產(chǎn)生中斷,此時由發(fā)送或接收模式進(jìn)入待機(jī)模式,等待數(shù)據(jù)進(jìn)入數(shù)據(jù)緩沖區(qū),IRQ中斷后要通過單片機(jī)寫狀態(tài)寄存器來復(fù)位.
nRF24L01數(shù)據(jù)發(fā)送或接收主要通過SPI接口實(shí)現(xiàn),采用STC89C52RC單片機(jī)IO口模擬出SPI接口的工作時序,SPI讀寫時序如圖8,9.
完成芯片基本功能后需要對芯片進(jìn)行初始化,保證發(fā)送端和接收端的地址寬度,信道工作頻率,發(fā)射和接收速率以及功率一致.文中對nRF24L01芯片初始化過程如表2.
數(shù)據(jù)通道0有40位可配地址,當(dāng)從一個數(shù)據(jù)通道中接收到數(shù)據(jù),并且此數(shù)據(jù)通道設(shè)置為應(yīng)答方式的話,則nRF24L01在收到數(shù)據(jù)后產(chǎn)生應(yīng)答信號,此應(yīng)答信號的目標(biāo)地址為接收通道地址.?dāng)?shù)據(jù)通道0地址設(shè)置如圖10.
系統(tǒng)有一個發(fā)射端和多個接收端,所以采用的通信協(xié)議要簡單可靠,在SchockBurstTM協(xié)議的基礎(chǔ)上將文中通信協(xié)議設(shè)置成:
前導(dǎo)碼地址(5Byte)有效數(shù)據(jù) ? CRC校驗
前導(dǎo)碼用來檢測0和1,芯片在接收模式下去除前導(dǎo)碼,發(fā)送模式下加入前導(dǎo)碼.地址5字節(jié),內(nèi)容為接收地址,可以對發(fā)送信道和接收信道分別進(jìn)行設(shè)置,接收端從接收的數(shù)據(jù)包中自動去除地址,所有地址在門禁系統(tǒng)中都是唯一的.有效發(fā)送數(shù)據(jù)最大為15字節(jié).CRC校驗位16bit.所有接收端都將接收帶地址碼的數(shù)據(jù)幀,并將接收地址與本地地址進(jìn)行比較,如相同則再分別驗證前導(dǎo)碼和CRC校驗碼,如還相同則將有效數(shù)據(jù)送入數(shù)據(jù)緩沖區(qū)中再進(jìn)行處理.
2.2、步進(jìn)電機(jī)軟件設(shè)計
步進(jìn)電機(jī)有三線式、五線式和六線式,但其控制方式均相同,都要以脈沖信號電流來驅(qū)動.
步進(jìn)電機(jī)的勵磁方式分為全步勵磁和半步勵磁.其中全步勵磁又分為一相勵磁和二相勵磁,半步勵磁又稱一二相勵磁.文中步進(jìn)電機(jī)為五線四項八拍電機(jī),考慮到門禁系統(tǒng)的對實(shí)時性和快速性的要求,因此,采用二相勵磁方式,其主要特點(diǎn)是:輸出轉(zhuǎn)矩大,振動?。畡畲彭樞蛉绫?.
3、實(shí)驗結(jié)果
通過對整個門禁控制系統(tǒng)的軟硬件進(jìn)行設(shè)計,做出測試樣品,并且經(jīng)過10組,每組30次測試,證明該門禁系統(tǒng)具有較好的控制能力.在有障礙物(如墻壁等)遮擋的情況下,10m距離以內(nèi),數(shù)據(jù)幀從發(fā)送到門禁控制系統(tǒng)響應(yīng)平均用時1.4~2.5s,數(shù)據(jù)幀傳送錯誤率平均在1.67%,即有5組測試中出現(xiàn)了一次數(shù)據(jù)幀傳送錯誤.門禁控制系統(tǒng)設(shè)計如圖11.
4、結(jié)論
通過多次大量分組實(shí)驗,證明文中設(shè)計的無線門禁系統(tǒng)有較好的實(shí)時性和準(zhǔn)確性,在有障礙物條件下,數(shù)據(jù)傳輸也能滿足實(shí)用性要求,達(dá)到了預(yù)期的設(shè)計目標(biāo).
評論