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