加密IC卡保險柜控制器的設計
隨著(zhù)社會(huì )的進(jìn)步和為民生活水平的提高,為們出差、旅游和度假的機會(huì )日益增加。在賓館、飯店等居住場(chǎng)所都需要一保險柜來(lái)保存貴重物品和易失物品,即便在家里,也往往需要有一個(gè)地方來(lái)保存一些單據等物品。傳統的手段已不能滿(mǎn)足人們對其安全性和靈活性要求,把應用愈來(lái)愈廣泛的IC卡技術(shù)應用到保險柜上,可以充分滿(mǎn)足這方面的需求。例如,根據客戶(hù)要求,可以給每個(gè)房間配備一個(gè)帶有IC卡電子門(mén)鎖的保險柜供他們存放物品;待客人走后,可以靈活地對保險柜的密碼進(jìn)行重新設置,更換IC卡。下面對我們自行設計的加密型IC卡保險柜的核心部件--控制器件一詳細的介紹。
一、控制器的硬件設計
本系統的主要任務(wù)是完成對IC卡的識別和控制,因此,首先介紹一下所選用的IC卡。
1.SLE4442加密IC卡簡(jiǎn)介
目前市場(chǎng)上的IC卡種類(lèi)較多,比較有代表性的有ATMEL公司的AT系列和SIEMENS公司的SLE系列。我們根據用戶(hù)的要求和市場(chǎng)的供給情況選用了SIEMENS公司設計的SLE4442卡。此卡的特點(diǎn)是:
(1)卡內有2K位的存儲容量和完全獨立的可編程邏輯代碼存儲器(PSC);
(2)多存儲器結構,其中包括2568位EEPROM,321位PROM的48位EEPROM型加密存儲器;
(3)串行口滿(mǎn)足ISO7816同步傳遞協(xié)議;
(4)每一字節的擦除/寫(xiě)入時(shí)間為2.5ms;
(5)存儲器可擦除1000次以上,數據可保存10年以上。
SLE4442型IC卡的觸點(diǎn)排列及功能如圖1所示。
SLE4442芯片的傳送協(xié)議包括4種模式。
(1)復位和復位響應
復位可在操作期間任何時(shí)候進(jìn)行。在復位響應期間,任何開(kāi)始和停止條件均被禁止。復位與復位響應時(shí)序如圖2所示。
(2)命令方式
每個(gè)命令由起始條件、1個(gè)3字節長(cháng)的命令和停止條件構成。命令方式時(shí)序如圖3所示。
起始條件:CLK處于高狀態(tài)H期間,I/O的下降沿。
停止條件:CLK處于高狀態(tài)H期間,I/O的上升沿。
(3)輸出數據方式
(4)處理方式
在第一個(gè)CLK的下降沿,將I/O線(xiàn)從高狀態(tài)H切換至低狀態(tài)L并開(kāi)始處理,直到低狀態(tài)L的I/O被設置成高狀態(tài)H結束。在這種方式下,任何開(kāi)始和停止條件均被禁止。處理方式時(shí)序如圖5所示。
SLE4442卡共有7個(gè)命令,每個(gè)命令包括3個(gè)字節,其命令格式及功能如表1所列。
表1 SLE4442命令
字節1控制字節 | 字節2地址字節 | 字節3數據字節 | 操 作 |
B7 B6 B5 B4 B3 B2 B1 B0 | A7A0 | D7D0 | |
0 0 1 1 0 0 0 0 | 地址 | 無(wú) 效 | 讀/從給定的字節地址至用戶(hù)存儲器結束 |
0 0 1 1 1 0 0 0 | 地址 | 輸入數據 | 編程輸入地址對應的用戶(hù)存儲區 |
0 0 1 1 0 1 0 0 | 無(wú)效 | 無(wú) 效 | 讀保護存儲器 |
0 0 1 1 1 1 0 0 | 地址 | 無(wú) 效 | 寫(xiě)保護存儲器中的保護位 |
0 0 1 1 0 0 0 1 | 地址 | 無(wú) 效 | 讀保密存儲器 |
0 0 1 1 1 0 0 1 | 地址 | 輸入數據 | 寫(xiě)/編程輸入址對應的保密存儲器 |
0 0 1 1 0 0 1 1 | 地址 | 輸入數據 | 比較可編程密碼PSC字節 |
這里只介紹比較可編程密碼PSC命令的使用。比較過(guò)程由4個(gè)步驟組成:
①寫(xiě)錯誤計數器EC(至少1位)。地址0。密碼比較結果將在錯誤計數器中反饋,3次密碼出錯IC卡被阻塞。
②比較PSC字節1,地址1。寫(xiě)完錯誤計數器之后,以不同的命令格式送入3個(gè)密碼字節。密碼比較成功,將通過(guò)刷新錯誤計數器來(lái)識別,然后施加上操作電壓,就可以對所有存儲器進(jìn)行讀寫(xiě)操作了。
③比較PSC字節2,地址2。
④比較PSC字節3,地址3。
2.系統組成及工作原理
本系統的硬件主要由單片機、串行EEPROM、電磁閥和IC卡讀/寫(xiě)插座組成。具體電路如圖6所示。
電路中的單片機AT89C2051是89C51的簡(jiǎn)化體。20引腳為DIP封裝。片內有2K字節閃爍存儲器,128字節RAM,15條I/O線(xiàn),全雙工串行口。P1.0、P1.1分別作為片內精確模擬電壓比較器的正、負輸入端;P1.2作為IC卡的復位端;P1.3、P1.4分別作為IC卡的時(shí)鐘線(xiàn)與數據線(xiàn);P3.7作為IC卡工作指示燈的控制端;P1.5作為非法操作的聲音報警控制;P3.4作為電磁閥門(mén)SW1的控制端。圖中的U5是串行EEPROM--AT24C01,它的作用是用來(lái)隨機存儲每個(gè)IC卡的密碼等;U4為電壓比較器,用來(lái)監測電源電壓:如果電源電壓下降至4.5V左右就會(huì )產(chǎn)生報警信號。為了使系統更可靠地工作,采用CD4060設計了單片機"看門(mén)狗"電路,由4060定時(shí)產(chǎn)生一個(gè)復位脈沖,對單片機進(jìn)行復位操作。整個(gè)電路設計中,充分考慮了能源的節約問(wèn)題,所以在IC卡插入前整個(gè)電路的大部分芯片沒(méi)有供電,只有門(mén)電路U1工作;當IC卡插入后,由于IC卡座的開(kāi)關(guān)接通,促使門(mén)電路U1觸發(fā)翻轉,由T1導通使其他芯片得到供電。如果在使用過(guò)程中客人忘記拔出IC卡,電路除了要產(chǎn)生報警信號外,還會(huì )在30s(秒)后自動(dòng)停止供電。
二、控制器的軟件設計
該軟件包括三部分:
(1)IC卡信息的讀取及AT24C01數據的讀??;
(2)比較校驗數據,修改存儲器數據;
(3)各種控制功能的實(shí)現,包括門(mén)鎖開(kāi)啟,聲、光報警等操作。
限于篇幅,這里只給出了利用51匯編語(yǔ)言編寫(xiě)的加密IC卡SLE4442的讀/寫(xiě)程序,并給出了主程序的流程圖,如圖7所示。
READ:MOV R0,#30H ;設置存放IC卡讀入數據的首地址為30H
LCALL RESET ;調IC卡復位子程序
MOV R2,#10H ;讀IC卡數據的個(gè)數送R2
LCALL START ;調起始條件子程序
MOV R5,#00110000B ;發(fā)送讀的命令碼
LCALL SPOUT ;調發(fā)送一個(gè)字節子程序
MOV R5,#20H ;發(fā)送IC卡的起始地址
LCALL SPOUT
MOV R5,#00H ;將數據00H發(fā)送出去
LCALL SPUT
LCALL STOP ;調停止條件子程序
READ1:LCALL SPINC ;調數據采集子程序
MOV A,R6
MOV @R0,A
INC R0
DJNZ R2,READ1
LCALL PLUSE ;調發(fā)送脈沖子程序
RET ;讀IC卡數據子程序結束
寫(xiě)子程序
WRT:LCALL RESET ;寫(xiě)IC卡數據子程序開(kāi)始,調IC卡復位子程序
MOV R2,#10H ;寫(xiě)入IC卡的字節個(gè)數送R2
MOV R1,#40H ;將40H為首地址的內容寫(xiě)入IC卡
MOV R4,#30H ;R4中放的是寫(xiě)到IC卡起始地址30H
WRT1:LCALL START ;調起始條件子程序
MOV R5,#00111000B ;發(fā)送寫(xiě)的命令碼
LCALL SPOUT
MOV A,R4 ;發(fā)出要寫(xiě)入的IC卡地址
MOV R5,A
LCALL SPOUT
MOV A,@R1 ;寫(xiě)入IC卡數據
MOV R5,A
LCALL SPOUT
LCALL STOP ;調停止條件子程序
LCALL PROCE ;調一個(gè)編程過(guò)程子程序
INC R1 ;數據指針加1,直到數據寫(xiě)完
INC R4
DJNZ R2,WRT1
RET ;寫(xiě)子程序結束
PROCE:MOV R3,#0FFH ;一個(gè)編程過(guò)程子程序
PROC1:SETB P1.2
NOP
CLR P1.2
DJNZ E3,PROC1
RET
SPINC:MOV R3,#08H ;數據采集子程序
SPIN1:CLR P1.2
MOV C,P1.4
MOV A,R6
RLC A
MOV R6,A ;讀出的一字節內容送R6
SETB P1.2
DJNZ R3,SPIN1
RET
SPOUT:MOV R3,#08H ;一字節發(fā)送子程序
MOV A,R5
SPTC1:CLR P1.2
RLC A
MOV P1.4,C
NOP
SETB P1.2
DJNZ R3,SPTC1
RET
START:SETB P1.2 ;起始條件子程序
NOP
CLR P1.4
NOP
RET
STOP:CLR P1.2 ;停止條件子程序
NOP
CLR P1.4
NOP
SETB P1.2
CLR C
NOP
SETB P1.2
NOP
CLR P1.2
RET
RESET:SETB P1.3 ;復位IC卡子程序
NOP
CLR P1.3
NOP
RET
END
保險柜的安全性能是本控制器系統設計的出發(fā)點(diǎn)之一,為此,在軟件上,將IC卡分為母卡和子卡,母卡由管理人員掌握,子卡由客人掌握。在每次客人走后,將母卡插入保險柜,那么原來(lái)的開(kāi)機子卡宣布作廢,這時(shí)可以插入一個(gè)新的卡形成一個(gè)新的子卡。母卡的功能是負責生成新的子卡,而不負責開(kāi)門(mén),從而確保了保險柜的安全性能。
結束語(yǔ)
該IC卡保險柜控制器具有結構簡(jiǎn)單、功耗低、體積小、成本低等特點(diǎn),完全達到了用戶(hù)的要求,目前已投入了小批量的生產(chǎn)。如果將現有的產(chǎn)品稍作改動(dòng)和擴展,就能實(shí)現其他的功能。例如,給它擴展上一個(gè)語(yǔ)音芯片,即可進(jìn)行語(yǔ)音提示或報警;如果將本控制器應用于防盜門(mén)就可制成IC卡防盜門(mén),從而實(shí)現對傳統防盜門(mén)的更新?lián)Q代,具有廣闊的市場(chǎng)前景。
評論