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