朱嶸濤, 徐愛鈞,葉傳濤
(1.長江大學工程技術學院 信息系,荊州 434020; 2.長江大學 電信學院;3.川慶測井公司)
?
STC15單片機和nRF2401的無線門禁系統設計
朱嶸濤1, 徐愛鈞2,葉傳濤3
(1.長江大學工程技術學院 信息系,荊州 434020; 2.長江大學 電信學院;3.川慶測井公司)
為了解決目前門禁系統存在的成本高、功耗高和安裝復雜等問題,本文提出一種基于STC15單片機和nRF2401的低功耗無線門禁系統,系統由門禁執行終端和門禁主控終端組成。經測試證明,該系統具有安裝簡單、維護方便、成本低等優勢。
STC15單片機;nRF2401;門禁執行終端;門禁主控終端
門禁系統是一種用來保護人民群眾財產安全和人身安全的現代化安防手段。隨著社會的發展和科學技術的進步,門禁系統從機械鎖具發展到電子門禁,從單獨的門禁系統發展到報警一體化,從單個門禁控制發展到網絡互連。目前市場上還是主要以有線門禁系統為主,但根據市場需求分析和前景預測, 無線門禁系統無疑更適用于要求日益提高的安防產業。相比有線門禁系統, 無線門禁系統具有安裝簡單、維護方便和成本低等特點[1]。
本文研究設計的基于STC15單片機和nRF2401的無線門禁系統,通過人臉識別上位機系統,能夠實時檢測和識別來訪者身份。若數據庫中包含來訪者信息,則門禁執行終端打開門鎖,并在LCD顯示來訪者信息; 否則,報警器報警。
系統結構主要由PC端軟件系統、門禁主控終端和門禁執行終端組成,系統整體結構如圖1所示。PC端上位機軟件主要負責識別來訪者身份信息,并將信息轉換成對應的數據幀格式,通過串口發送給門禁主控終端。門禁主控終端主要負責數據加密、射頻模塊的初始化和信息的發送。門禁執行終端主要負責數據解密,并根據解密出來的信息來執行相應的操作,從而達到控制門禁系統的作用。

圖1 門禁系統整體框圖
2.1 STC15L2K61S2簡介
STC15L2K61S2是STC公司生產的單時鐘/機器周期(1T)的單片機,是高速/高可靠/低功耗/超強干擾的新一代8051單片機,采用第8代加密技術,加密性強,并且指令代碼完全兼容傳統的8051單片機,但速度又比傳統的8051單片機快8~12倍。STC15系列單片機內部集成高精度R/C時鐘,可配置時鐘的范圍5~35 MHz,同時STC15系列單片機內部集成了高可靠復位電路,因此STC15L2K61S2最小系統不需要外部晶振和時鐘電路。
STC15L2K61S2具有3路CCP/PWM/PCA,8路10位高速A/D轉換器,內置2K大容量SRAM,2組超高速異步串行通信端口和1組高速同步串行通信端口SPI,并且對于STC15L2K61S2這款單片機來說,它的供電電壓只需要3.3 V,因此它的功耗相比傳統的8051單片機要低很多。
2.2 電源模塊
nRF2401的工作電壓是在1.9~3.6 V之間,單片機的供電電壓是3.3 V。為了讓nRF2401正常穩定工作,必須給nRF2401接一個直流電源模塊。經測試nRF2401在3.3 V時工作比較穩定,并且STC15L2K61S2單片機的供電電壓也為3.3 V。系統采用USB供電,電壓約為5 V,因此需要將5 V電壓轉換成3.3 V電壓。電源模塊選用線性穩壓電源LM317組成模擬電源,通過調節滑動變阻器,來使輸出電壓為3.3 V,3.3 V電源模塊原理圖如圖2所示。

圖2 3.3 V電源模塊
2.3 nRF2401射頻模塊接口電路設計[4-5]
nRF2401是由Nordic公司出品的單芯片無線收發芯片,工作于2.4~2.5 GHz的全球免申請(ISM)頻率。芯片內置地址解碼器、先入后出堆棧區、解調處理器、時鐘處理器、GFSK濾波器、低噪聲放大器、頻率合成器,功率放大器等功能模塊,需要很少的外圍元件,因此使用起來非常方便。
nRF2401工作模式有4種:收發模式、配置模式、空閑模式和關機模式。nRF2401的工作模式由PWR_UP 、CE、TX_EN三個引腳決定。nRF2401的收發模式有Enhanced ShockBurstTM收發模式、ShockBurstTM收發模式和直接收發模式三種。為了節能,本系統選擇使用Enhanced ShockBurstTM收發模式進行無線傳輸,nRF2401射頻模塊與STC15L2K61S2的連接電路如圖3所示。CSN為芯片的片選線,當CSN 為低電平時,芯片工作。SCK為芯片控制的時鐘線(SPI時鐘)。MISO與MOSI為芯片控制數據線。IRQ為中斷信號,無線通信過程中MCU主要是通過IRQ與nRF24L01進行通信。 CE為芯片的模式控制線。在CSN為低的情況下,CE 協同nRF24L01的CONFIG寄存器共同決定nRF24L01的狀態。

圖3 nRF2401射頻模塊與STC15L2K61S2的連接電路
2.4 LCD顯示模塊接口電路設計
Nokia5110是諾基亞公司生產的一款液晶顯示屏,既可以顯示字符也可以顯示圖形,采用低壓供電時,正常顯示的工作電流在200 μA之下,并且價格便宜。一塊帶有驅動芯片的Nokia5110模塊只要15元,而1602液晶顯示屏需要20元,12864液晶顯示屏則需要50~70元,并且Nokia5110的接口只有8個引腳包括背光,相比1602和12864來說引腳少了很多,在硬件設計上也更加方便。Nokia5110的8個引腳分別為RST、CE、D/C、SDIN、SCLK、VCC、BL和GND,其中RST為復位引腳,CE為芯片使能引腳,D/C為模式選擇引腳,SDIN為串行數據線,SCLK為串行時鐘,VCC為3.3 V工作電壓,BL為背光引腳,GND為電源地,Nokia5110接口電路如圖4所示。

圖4 Nokia5110接口電路
2.5 步進電機驅動電路設計
本文采用L298N構成電機驅動電路,L298N是ST公司生產的一種高電壓、大電流電機驅動芯片。該芯片采用15引腳封裝。主要特點是:工作電壓高,最高工作電壓可達46 V;輸出電流大,瞬間峰值電流可達3 A,持續工作電流為2 A;額定功率25 W。使用L298N芯片驅動電機,該芯片可以驅動一臺兩相步進電機或四相步進電機,正好滿足本系統的設計需要,步進電機驅動電路如圖5所示。

圖5 步進電機驅動電路
3.1 nRF2401軟件設計[6]
nRF24L01數據發送或接收主要通過SPI接口實現,采用STC15L2K61S2單片機I/O口模擬SPI接口的工作時序,SPI讀寫時序如圖6和圖7所示。

圖6 SPI讀時序

圖7 SPI寫時序
單片機I/O口模擬SPI時序讀取數據的函數如下:
uchar SPI_Read(uchar reg){
uchar reg_val;
CSN = 0;
//CSN置低電平,啟動SPI數據傳輸
SPI_RW(reg); //選擇要讀取的寄存器
reg_val = SPI_RW(0);
//讀取寄存器的數值寫入reg_val
CSN = 1; //CSN置高電平,結束此次SPI傳輸
return(reg_val); //返回寄存器的值
}
單片機I/O口模擬SPI時序寫入數據的函數如下:
uint SPI_RW_Reg(uchar reg, uchar value){
uint status;
CSN = 0;
//CSN置低電平,啟動SPI數據傳輸
status = SPI_RW(reg);
//選擇要讀取的寄存器
SPI_RW(value); //寫入數據
CSN = 1; //CSN置高電平,結束此次SPI傳輸
return(status); //返回狀態值
完成芯片基本功能后需要對芯片進行初始化,保證發送端和接收端的地址寬度,信道工作頻率,發射和接收速率以及功率一致,射頻初始化函數如下:
void init_NRF24L01(void){
inerDelay_us(100);
//延時100 μs
CE=0;
//選中射頻芯片
CSN=1; SCK=0;
//禁止SPI傳輸
SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);
//寫本地地址
SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH);
//寫接收端地址
SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);
//頻道0自動 ACK應答允許
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);
//允許接收地址只有頻道頻道0
SPI_RW_Reg(WRITE_REG + RF_CH, 0);
//設置信道工作為2.4 GHz,收發必須一致
SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH);
//設置接收數據長度,本次設置為32字節
SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);
//設置發射速率為1 MHz,發射功率為最大值0 dB
}
3.2 步進電機軟件設計[7]
四相步進電機按照通電順序的不同可分為單4拍、雙4拍、8拍三種工作方式。單4拍與雙4拍的步距角相等,但單4拍的轉動力矩小。8拍工作方式的步距角是單4拍與雙4拍的一半。因為8拍工作方式既可以保持較高的轉動力矩又可以提高控制精度,所以本文采用4相8拍的工作方式。
單4拍、雙4拍與8拍工作方式的電源通電時序與波形分別如圖8所示。
單片機控制步進電機的部分程序如下:
/***** P2.0=A ;P2.1=B ;P2.2=A' ; P2.3=B'**** /
code unsigned char run[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
//四相八拍工作方式
unsigned char s,i,j,k;
void delay(i){
//延時函數
for(j=0;j
for(k=0;k<250;k++);
}
main(){
unsigned char z,y;
y=8;//定義延時時間,時間越長電機轉速越慢,反之則越快
while(1){
for(z=0;z<8;z++){
//改變數組的長度值需改變數字8,8為數組的長度
P2=run[z];
delay(y);
}
}
}

圖8 步進電機波形圖

[1] 戴敏,謝椿.基于ZIGBEE的無線門禁系統的設計[J].嵌入式與SoC,2011,27(3).
[2] 張宏等.基于51單片機與nRF2401無線門禁控制系統的設計[J].江蘇科技大學學報:自然科學版,2013,27(1).
[3] 王旭,馬汝建,王洪斌. 基于nRF24E1的多點無線測溫報警系統設計[J].濟南大學學報:自然科學版,2013,27(4).
[4] 丁恩杰,蹤曉志.基于nRF2401和DS18B20無線測溫系統[J].儀表技術與傳感器,2012,15(11).
[5] 劉恒,馬建倉,張小兵.基于nRF2401的點到多點的無線測控系統的設計[J].微電子與計算機,2006,23(11).
[6] 李霞,鄭恩讓.基于nRF2401的無線測溫報警系統的設計[J].微計算機信息,2007,23(23).
[7] 高琴,劉淑聰,彭宏偉.步進電機控制系統的設計及應用[J].制造業自動化,2012,34(1).
朱嶸濤(講師),主要研究領域為單片機與嵌入式系統;徐愛鈞(教授),主要研究領域為模糊控制理論與應用、智能化儀器儀表;葉傳濤(工程師),主要從事測井現場數據采集和研發工作。

參考文獻
[1] 何科.基于GPRS網絡的GPS圖形導航儀[J].單片機與嵌入式系統應用,2006(10):59.
[2] 高陽.GPS天線技術及其發展[J].無線通信技術,2008(4):34-39.
[3] STMicroelectronics. LIS3DH: MEMS digital output motion sensor ultra low-power high performance 3-axis “nano” accelerometer, Application note, 2012.
[4] 李道忠.基于MEMS加速度計的強振動記錄黑匣子的設計[J].大地測量與地球動力學,2010(11).
[5] 李劍.基于MEMS加速度計的瞬態振動信號采集系統[J].電子測試,2011(8):88-91.
(責任編輯:高珍 收修改稿日期:2014-01-02)
Wireless Entrance Guard System Based on STC15 MCU and nRF2401
Zhu Rongtao1, Xu Aijun2, Ye Chuantao3
(1.Information Department,College of Technology&Enginerring, Yangtze University, Jingzhou 434020,China;2. School of Electronics and Information Engineering, Yangtze University;3.Chuanqing Logging Company)
This paper presents the hardware and software design of a low-power wireless door-guard control system based on STC15 MCU and nRF24L01, so as to solve the current door-guard system for high power, high cost and install complex problems.The system consists of entrance guard executive terminal and entrance guard control terminal.The test has proved that the system has advantages of simple installment, friendly maintenance and low cost.
STC15 MCU;nRF2401;entrance guard executive terminal; entrance guard control terminal
TP393
A
珍
2014-01-14)