基于單總線的感應式IC卡門禁系統設計
文章出處:http://hz-huyue.com 作者:陳羲梅 人氣: 發表時間:2011年07月04日
門禁系統是對重要區域或通道的出入口進行管理與控制的系統,它是一種新型現代化安全管理系統,它集微機自動識別技術和現代安全管理措施為一體,涉及電子、機械、光學、計算機技術、通信技術、生物技術等諸多高新技術。
為了有效提高門禁系統的管理功能和實時性,所設計的基于VC 的門禁管理系統應具有對門戶出入控制、保安防盜、報警等多種功能,它主要方便內部員工或住戶出入,杜絕外來人員隨意進出,既方便了內部管理,又增強了內部的安全保障。
最近幾年隨著感應卡技術,生物識別技術的發展,門禁系統得到了飛躍式的發展,進入了成熟期,出現了感應卡式門禁系統,指紋門禁系統,虹膜門禁系統,面部識別門禁系統,亂序鍵盤門禁系統等各種技術的系統,它們在安全性,方便性,易管理性等方面都各有特長,門禁系統的應用領域也越來越廣。
1 總體設計
1.1 課題研究的主要內容
本文對門禁系統進行了簡要的概述。門禁系管理統的組成包含以下幾個部分:
(1) 門禁控制器。門禁系統的核心部分,相當于計算機的CPU,它負責整個系統輸入、輸出信息的處理和儲存,控制等等。
(2) 讀卡器(識別儀)。讀取卡片中數據(生物特征信息)的設備。
(3) 電控鎖。門禁系統中鎖門的執行部件。用戶應根據門的材料、出門要求等需求選取不同的鎖具。
(4) 卡片。開門的鑰匙。
(5) AS232。串口通信接口。
(6) 80C196KC。數據采集模塊。
(7) 電腦。運行門禁信息管理系統(DCIM)。
1.2 總體設計分析
為了提高門禁管理系統監控的實時性,采用 VB 語言開發門禁管理系統,完成了門禁管理系統操作界面、門禁控制器與上位機的通信以及門禁管理系統數據庫編程。現場應用表明,所設計門禁管理系統具有良好的實時監控性,確保門禁系統穩定、高效地工作,該系統具有實際應用價值。系統結構圖如圖1-1 所示??傮w設計需求:
(1)設計單總線接口電路驅動程序
(2)設計智能電子鎖監控程序
(3)設計門禁信息管理程序
1.2.1 系統硬件技術
本設計的硬件部分大致可分為:DS1990A; AT90S2313 ; CAN 遠程通信; AS232+PC。DS1990A 序列號iButton 是一種堅固的數據載體,可作為自動識別系統的電子注冊號。數據通過1-Wire 協議傳輸,只需要一條信號引線和一個地回路。每個DS1990A 內包含工廠刻入的唯一64 位注冊號[2]。
AT90S2313 是一款基于AVR RISC 的低功耗CMOS的8 位單片機通過在一個時鐘周期內執行一條指令AT90S2313 可以取得接近1MIPS/MHz 的性能從而使得設計人員可以在功耗和執行速度之間取得平衡AVR 核將32 個工作寄存器和豐富的指令集聯結在一起所有的工作寄存器都與ALU 算邏單元直接相連允許在一個時鐘周期內執行的單條指令同時訪問兩個獨立的寄存器這種結構提高了代碼效率使AVR 得到了比普通CISC 單片機高將近10 倍的性能。
CAN 的結構是總線型。CAN 總線協議是建立在國際標準組織的開放系統互連模型基礎上的,主要描述設備之間的信息傳遞。CAN 總線的模型結構只有3 層,選取了OSI 參考模型底層的物理層,數據鏈路層和應用層。數據鏈路層包括邏輯鏈路控制子層和介質訪問控制子層。邏輯鏈路控制子層(LLC)包括:驗收濾波,過載通知和恢復管理。介質訪問控制層(MAC)包括:數據包裝/解包;幀編碼(填充,消除填充);介質訪問管理;錯誤檢測;錯誤標定;應答;并行轉換成串行/串行轉換成并行。
CAN 總線不需要其它中間層,應用層數據直接取自數據鏈路層或直接向鏈路層寫數據。CAN 智能節點電路圖如圖1-2 所示
進行串行通訊時要滿足一定的條件,比如電腦的串口是 RS232 電平的,而單片機的串口是TTL 電平的,兩者之間必須有一個電平轉換電路,計算機串口與CAN 總線通信通過電平轉換芯片MAX232 實現TTL 電平到ELA 電平的轉換,單片機實現計算機與CAN 節點之間的數據交換。
1.2.2 門禁管理系統設計
門禁管理系統是門禁系統中的重要組成部分。它主要完成門禁系統的監控、管理、查詢等工作。通過門禁管理系統軟件的設計,監控人員可對出/入口的狀態、門禁控制器的工作狀態進行監控管理,并可擴展完成巡更、考勤、人員定位等功能。管理系統結構圖如圖1-3所示。
2 軟件設計
2.1 單片機與信息按鈕通信
單片機通過單總線和信息按鈕通信,主機呼叫從機時,從機才能應答,因此主機訪問單總線器件都必須嚴格遵循單總線命令序列,也就是初始化、ROM 命令、功能命令。如果出現序列混亂,單總線器件將不會響應主機(搜索ROM 命令、報警搜索命令除外) 。因此通信編寫要嚴格遵守單總線協議,否則就會出現錯誤。
我們在電子鎖上設置一個控制開關,其功能是:當開關撥至 1 處時,將鑰匙插入門鎖,單片機自動讀取iButton 的64 位ID 碼,并存人單片機的EEPROM 中,存入完畢時,系統會有綠燈閃爍。從而完成鎖對鑰匙的初始化。當開關撥至0 處時,為正常使用狀態。
2.2 單片機控制軟件設計
CAN 總線控制器PCA82C200,其初始化程序如下:
DI
LDB AX , # 03H ;接收中斷開放,復位請求位置“1”
STB AX ,CR
LDB AX , # 01H ;將節點1 標識符送ACR
STB AX ,ACR
LDB AX , # 00 ;置ACR 所對應的位都為相關位
STB AX ,AMR
LDB AX , # 01H ;傳輸波特率250Kbps (采用的是16M 晶振)
STB AX ,BTRO
LDB AX , # 1CH
STB AX ,BTR1
LDB AX , # 0AAH ;設置輸出方式
STB AX ,0CR
LDB AX , # 02H ;PCA82C200 開始正常工作
STB AX ,CR
EI
采用中斷方式通信的流程圖如圖2-1 所示。
2.3 單片機與 PC 機通信
函數聲明,變量定義
#include <reg.51.h>
#define COUNT10 //定義接收緩沖區大小
Unsigned char buffer[COUNT]; //定義接收緩沖區
Unsigned char point; //定義接收數據個數指示變量
Void UART_init(); //串口初始化函數
Void COM_send(void); //串口接收函數
Unsigned char CLU_checkdata(void); //計算機校驗函數
•Void UART_init(); 串口初始化函數
函數功能:在系統時鐘為 11.0592MHZ 時,設定串口數據傳輸率為9600bit/sVoid UART_init();
{ //初始化串口和數據傳輸率發生器
SCON=0x58; //選擇串口工作方式,打開接收允許
TMOD=0x21; //定時器1 工作在方式2,定時器0 工作在方式1
TH1=0xfd; //實現數據傳輸率9600bit/s(系統時鐘11.0592MHZ)
TR1=0; //啟動定時器1
ET1=0;
ES=1; //允許串行口中斷
PS=1; //設計允許串行口中斷優先級
EA=1; //單片機中斷允許
}
•Com_interrup()串口接收中斷處理函數
函數功能:接收包括起始位’S’在內的10bit 數據到緩沖區
Com_interrupt(void)interrupt 4 using 3{
Unsigned char RECEIVR_buffer;
If(RI) //處理接收中斷
{
RI=0; //清楚中斷標志位
RECEIVR_buffer=SBUF; //接收串口數據
If(point==0) //如果還沒有接收到起始位
{
If(RECEIVR_buffer==’S’) //判斷是否起始標志位
Point++; //是,準備接收下一位
Else
Point=0; //不是,繼續等待起始位
}
Else if(point>0&&point<10) //判斷是否接收夠10bit 數據
Buffer[point++]=RECEIVR_buffer; //不夠,把接收到的數據放入接收緩存區
Else point=0; //緩沖區已滿,清除緩存區內數據重新接收
}
If(TI); //處理發送中斷
{
TI=0;
}
}
•COM_send()串口發送函數
函數功能:把數據緩沖區的 10bit 數據發送出去
Void COM_send(){
For(point=0;point<=10,TI=1;point++) //連續發送10bit 數據
//把緩存區的數據都發送到串口
{
SUBF=buffer[point];
TI=0;
}
}
•CLU_checkdata()計算機校驗位函數
輸入變量:無
輸出變量:checkdata,包括起始位在內的前九位數據的校驗和
函數功能:計算校驗和
Unsigned char CLU_checkdata(void){ //計算校驗位
Unsigned char checkdata=0;
For(point=0;point<9,TI=1;point++)
{
Checkdata=checkdata︱buffer[point]
}
Return(checkdata);
}
•主函數
函數功能:調度子函數,完成通信過程
Void main(void){
Unsigned char checkdata;
Do
{
UART_init(); //初始化串口
If(point==10) //判斷數據是否接收完成
Checkdata=CLU_checkdata; //調用求校驗和函數
If(checkdata==buffer[9]) //判斷校驗和是否正確
COM_send(); //正確則調用發送程序
Point=0;
}
While(1);
}
2.4 計算機管理界面設計
登陸之后,進入管理軟件的界面。
員工主要信息包括員工的聯系電話、年齡、所在部門、員工住址等。對員工信息的查詢如圖所示,在操作界面中可以根據不同的查詢條件進行查找。
在門禁管理中,包括對電子鎖的管理。其中ID 號取的是門鎖對應的鑰匙的ID 號(每把鑰匙有自己固定的ID 號),一把鎖可以配對多把鑰匙。
在實時監控中,可以對房間的一些狀態進行監控,諸如門鎖打開的狀態、濕度、溫度、有無煙霧等。第一張圖是對某一個房間狀態進行監控,第二張圖則顯示的是對所有房間進行的監控。
在門禁管理選項中,管理員還可以對門進行強制關門開門操作。在系統維護中,可以對串口進行設置,對管理員密碼進行修改,對實時數據備份等等。這里不再進行贅述。
3 結論
門禁管理系統設計涉及的主要技術有單總線技術、串口通信技術、CAN 總線等,整個系實現了門禁管理操作界面、完成門禁系統的監控、管理、查詢等工作。通過門禁管理系統軟件的設計,監控人員可對出/入口的狀態、門禁控制器的工作狀態進行監控管理。