文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.01.036
中文引用格式: 黃鶴松,劉容良,郭恒蘭,等. 一種基于CPU卡的門禁系統的設計[J].電子技術應用,2017,43(1):137-140,144.
英文引用格式: Huang Hesong,Liu Rongliang,Guo Henglan,et al. The design of access control system on CPU card[J].Application of Electronic Technique,2017,43(1):137-140,144.
0 引言
隨著計算機技術和通信技術的不斷發展,門禁系統已經成為企業、學校、公寓出入口管理不可或缺的一部分。目前市場上大部分的射頻卡門禁系統多采用普通IC卡開門,自從2008年德國研究員亨里克·普洛茨和美國弗吉尼亞大學計算機科學在讀博士卡爾斯滕·諾爾破解了恩智浦半導體的Mifare經典芯片的安全算法起,傳統射頻卡門禁系統在安全性上便具有了巨大的安全隱患[1]。本文設計了一種具有更高安全性的基于CPU卡的門禁系統。
1 系統的功能與結構
設計的門禁系統包含門禁終端、發卡器和上位機三部分。門禁系統與上位機通過GPRS網絡或串口通信實現門禁終端以及發卡器的用戶信息同步。在硬件上,門禁系統發卡器采用了與門禁終端射頻讀卡電路類似的設計,本文只介紹門禁終端硬件設計。門禁終端主要由以下幾個部分組成:射頻讀卡模塊、GPRS通信模塊、鍵盤顯示模塊、存儲模塊以及功放模塊。門禁終端的結構如圖1所示。
當住戶需要進出時,可以從鍵盤直接輸入住戶號以及密碼開門或者刷CPU卡開門。當用戶通過鍵盤輸入住戶號及密碼或通過刷CPU卡時,微控制器從鍵盤或射頻讀卡模塊讀取用戶的信息,并與存儲器內的用戶信息進行比對,如信息驗證成功則打開電磁鎖,否則門禁終端通過功放模塊進行語音提示。若是來訪人員則僅需要通過門禁終端直接撥打住戶的電話,住戶可以用手機遠程操控門禁開門。對于管理人員,可通過上位機或者手機短信將用戶的信息從門禁終端存儲器寫入或擦除來實現門禁系統的管理。
2 硬件設計
門禁終端的硬件部分主要為射頻讀卡電路、微控制器電路、GPRS通信電路以及鍵盤顯示電路等。
2.1 射頻讀卡電路設計
MFRC530是一款由NXP公司生產、工作在13.56 MHz頻率且支持ISO14443A協議的射頻芯片,其有效識別距離能達到10 cm[2]。該芯片可以兼容SPI接口,可以有效節省微控制器的GPIO資源。在與CPU卡的通信過程中,芯片支持的CRC校驗和奇偶校驗能有效增加通信的準確性。采用了三電源設計,對于芯片的數字部分、模擬部分和驅動部分用不同的電源供電。具體硬件電路如圖2所示。
TX1OUT、TX2OUT以及RXANT為芯片連接天線的接口。芯片通過天線向外發射13.56 MHz的能量載波,如果CPU卡產生應答信號,其信息會附加到能量載波上,經過拾取電路傳到RX引腳上。MFRC530內部將得到的信息進行處理,以A2、A0、ALE、D0 4個引腳作為SPI接口與單片機進行通信。
2.2 FM1208-10 CPU卡
由復旦微電子公司開發的FM1208-10 CPU卡是一款具有多種應用和很高安全性的CPU卡。其工作原理類似于一臺微型計算機,在其內部安裝了復旦微電子公司開發的CPU卡操作系統FMCOS。整個CPU卡支持DES、3DES加密算法、線路加密保護等功能。一張CPU卡上可以建立三級目錄,在本門禁系統所使用的CPU卡中,只建立了二級目錄。其文件體系如圖3所示。
CPU卡的高安全性主要體現在CPU卡的安全體系上,其安全體系主要分三大部分:安全狀態、安全屬性和安全機制。安全狀態指的是CPU卡當前所處的安全級別。安全屬性指的是對文件執行某個操作時所必須要滿足的條件。安全機制就是從某種安全狀態到另一種狀態要采取的方法[3]。簡言之,當門禁終端或發卡器要讀取CPU卡的某個文件時,CPU卡會判斷當前安全狀態寄存器的值是否達到了文件的操作權限,如果達到了就繼續操作,否則需要門禁系統發送外部驗證來重設安全狀態寄存器的值。
2.3 微控制器選擇
本文設計的門禁系統采用新華龍C8051F340作為微控制器,其具有64 KB 片內Flash和4 352 B的片內RAM[4],能滿足整個門禁系統程序運行的需要,另外該微控制器具有2個UART、1個SPI接口和足夠多的GPIO口,滿足了門禁系統的硬件設計需要。該芯片本身內部集成的Silicon Labs二線開發接口可以支持芯片在線調試,這在門禁系統的開發過程中提供了很大的便利。C8051F340具有可編程數字IO和交叉開關,可將內部資源隨意鎖定在相應IO口上,可以使PCB整體布局更加合理整潔。在這里門禁系統的微控制器采用了典型的外圍電路,具體可以參照技術手冊[4]。
2.4 GPRS通信模塊及音頻解碼電路選擇
為方便管理人員以及用戶遠程操控門禁終端,選擇SIMCOM公司的SIM900A 作為遠程GPRS通信模塊。SIM900A使用簡單,設計人員只需要通過AT指令即可完成對其的操作;且具有較低的功耗,當模塊工作在待機模式時,系統的電流僅1 mA。在本系統中主要應用了SIM900A的串口、音頻接口、天線接口以及電源接口等。在SIM900A音頻接口處門禁終端還添加了以MT8870為主體的雙音頻解碼電路。圖4為雙音頻解碼電路[5],這個電路可以接收DTMF(雙音多頻)信號,是一個完整的DTMF接收器。在接收了DTMF信號后,內部將信號分成高頻帶和低頻帶,并將此信號送至數字譯碼器,通過數字譯碼器解出鍵值。當來訪人員通過門禁終端與住戶進行語音通話時,用戶如果允許其進入樓宇,可以通過手機的相關按鍵向門禁終端發送開門指令。
2.5 鍵盤及顯示驅動芯片選擇
為了節省微處理器的GPIO資源和CPU運行程序時的負擔,本設計選擇具有串行接口的數碼管和鍵盤智能控制芯片HD7279。該芯片可控制最多64個鍵盤和8位共陰式數碼管,LED數碼管可無需外圍原件直接驅動,內含鍵盤去抖電路,增加了鍵盤按鍵的可靠性[6]。在本系統中,共設計了13個按鍵和8位LED數碼管作為用戶操作面板。
用戶從鍵盤輸入住戶號和密碼時,其信息會在數碼管上顯示。當信息輸入完畢時,按下“#”鍵,單片機會把從HD7279得到的數據進行處理。當住戶號和密碼正確時,門禁終端會打開樓宇門。來訪人員需要輸入住戶號和住戶電話號碼,門禁終端會從存儲器中比對信息,防止騷擾電話,當住戶號和電話號碼正確時,系統會向住戶撥打電話,住戶可以使用電話按鍵遠程操控門禁終端。
2.6 其他電路
整個門禁終端除了包含以上模塊外,還包含了電源模塊、Flash存儲模塊和語音存儲模塊等。
在電源模塊上采用了開關電源芯片LM2576-5.0將12 V電源轉換為5 V,為射頻芯片MFRC530提供電源;采用可調電壓芯片MIC29302將5 V轉換到4.2 V,供給SIM900A模塊;采用低壓差穩壓芯片AMS1117-3.3實現5 V到3.3 V的轉換,為單片機以及存儲器等器件供電[7]。
用戶在刷卡開門或按鍵開門時,系統都需要進行信息比對,判斷能否開門。為了記錄用戶信息,需要采用掉電保存的大容量Flash存儲芯片。設計中選擇了AT45DB041D作為存儲模塊的主芯片。該存儲器具有4 MB內存,分為2 048頁,每頁264 B。除主內存之外,AT45-DB041D還有2個264 B的SRAM數據緩存,每個緩存使得主內存的一頁正在編程的同時可以接收數據。
在用戶從鍵盤輸入信息時,需要有語音提示來指示輸入信息正確與否。本設計采用一次性編程語音芯片AP89170來存儲語音提示。AP89170采用標準的CMOS工藝制作而成,存儲空間4 MB。在6 KB采樣率下存儲語音時長達170 s,滿足了系統語音提示的需要。
3 程序設計
整個門禁系統的程序設計包含三大部分:門禁終端程序、發卡器程序和上位機程序。這里只介紹與硬件設計相關的門禁終端程序以及發卡器程序。
3.1 門禁終端程序設計
門禁終端主程序設計思想是: 當有CPU卡進入到射頻讀卡模塊的工作范圍內以后,門禁處主機通過射頻讀卡模塊獲得該卡的卡號信息,并對存儲器進行讀操作,檢查該卡號信息在系統中是否存在,如果存在,則打開電磁鎖。如果鍵盤有按鍵按下,則語音提示“請輸入房間號碼”,對存儲器進行讀操作,判斷該房間號是否正確,如果正確則語音提示“請輸入密碼”,密碼正確則撥打該住戶綁定的電話號碼,若系統檢測到住戶按下電話上的“*”鍵作為回復,系統自動打開樓宇門。門禁終端主程序包括系統的初始化、系統的自檢、讀卡程序、中斷服務程序等。圖5為門禁終端主程序的流程圖。
門禁終端在識別CPU卡時,首先門禁終端會通過MF RC530發出請求命令REQA,如果尋卡區域內有卡片,則會返回請求應答ATQA,成功后刷卡模塊進入防沖突環,從多張卡片選出一張卡片并發送選擇命令RATS。卡片會返回選擇應答請求ATS,ATS中包含了生產廠家、COS版本以及卡號等信息。射頻模塊得到卡號后,會發送選擇文件指令和取隨機數指令,從而完成外部驗證。若外部驗證成功,則讀取二進制文件,并判斷文件內容。若所有指令均執行成功,將獲得的卡號與Flash存儲器的內容比對,若比對成功即打開樓宇門。
3.2 門禁系統發卡程序設計
作為門禁系統設計,除了門禁終端外,CPU卡發卡器設計也十分重要。當一張FM1208-10的CPU卡出廠時,其內部已經加載了FMCOS系統。默認的FMCOS系統會在卡片存儲器內建立主文件MF和16 B 0xFF的主文件密鑰。為了將CPU卡作為用戶的驗證卡片在門禁系統中使用,發卡器需要將原來的文件系統清洗掉并建立自己的文件系統。圖6為發卡器主程序流程圖。
圖7為發卡器在發卡時的指令流程,發卡器在向CPU卡發送指令時,每條指令執行后都會有相應的信息傳回到發卡器上,這些信息包含了指令執行情況的狀態字和數據。如果在執行發卡命令時,向CPU卡發送的任意一條指令失敗,就認為CPU卡發卡失敗,不再執行后續的指令。
4 結論
本文設計的基于CPU卡的門禁系統有效地減少了門禁卡片復制的可能性,在安全性上有了極大的提高。同時用戶和管理人員在操作門禁系統的便利性上也有了極大的改善,目前該門禁系統已投入生產并得到使用。
參考文獻
[1] 張建軍,包國峰,馬一兵.FM1208非接觸CPU卡讀寫系統的研制[J].單片機與嵌入式系統應用,2009(12):56-59.
[2] 程偉,何俊華.基于MFRC530的非接觸式IC讀卡系統設計[C].微計算機信息,2009(7):1013-1017.
[3] 復旦微電子股份有限公司.新版FMCOS2.0設計手冊 [EB/OL].(2008-05)[2016-04].http://www.fmsh.com/index.shtml.
[4] 新華龍電子有限公司.C8051F340/1/2/3/4/5/6/7全速USB FLASH型微控制器數據手冊[EB/OL].(2016-01)[2016-04].http://www.xhl.com.cn.
[5] 隋紹勇,孫義卓,莊克良.基于CPLD和MT8880的遠程控制及播音系統設計[J].電子元器件應用,2011,13(1):14-16.
[6] 凌志比高科技有限公司.HD7279A串行接口8位LED數碼管及64鍵鍵盤智能控制芯片數據手冊[EB/OL].(2001-12)[2016-04].http://www.bitcode.com.cn.
[7] 薛琳,魏蘭磊,朱述川,等.基于GPRS和RFID技術的門禁控制系統[J].電子技術應用,2012,38(6):145-148.
作者信息:
黃鶴松,劉容良,郭恒蘭,魏國招
(山東科技大學 電氣與自動化工程學院,山東 青島266590)