關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 加密IC卡保險(xiǎn)柜控制器的設(shè)計(jì)

加密IC卡保險(xiǎn)柜控制器的設(shè)計(jì)

作者: 時(shí)間:2004-12-07 來(lái)源:網(wǎng)絡(luò) 收藏
摘要:詳細(xì)闡述的原理、硬件和軟件等內(nèi)容;給出電路原理圖和主程序流程圖。

關(guān)鍵詞:卡 單片機(jī)

隨著社會(huì)的進(jìn)步和為民生活水平的提高,為們出差、旅游和度假的機(jī)會(huì)日益增加。在賓館、飯店等居住場(chǎng)所都需要一來(lái)保存貴重物品和易失物品,即便在家里,也往往需要有一個(gè)地方來(lái)保存一些單據(jù)等物品。傳統(tǒng)的手段已不能滿足人們對(duì)其安全性和靈活性要求,把應(yīng)用愈來(lái)愈廣泛的卡技術(shù)應(yīng)用到保險(xiǎn)柜上,可以充分滿足這方面的需求。例如,根據(jù)客戶要求,可以給每個(gè)房間配備一個(gè)帶有IC卡電子門鎖的保險(xiǎn)柜供他們存放物品;待客人走后,可以靈活地對(duì)保險(xiǎn)柜的密碼進(jìn)行重新設(shè)置,更換IC卡。下面對(duì)我們自行型IC卡保險(xiǎn)柜的核心部件--件一詳細(xì)的介紹。

一、的硬件設(shè)計(jì)

本系統(tǒng)的主要任務(wù)是完成對(duì)IC卡的識(shí)別和控制,因此,首先介紹一下所選用的IC卡。

1.SLE4442IC卡簡(jiǎn)介

目前市場(chǎng)上的IC卡種類較多,比較有代表性的有ATMEL公司的AT系列和SIEMENS公司的SLE系列。我們根據(jù)用戶的要求和市場(chǎng)的供給情況選用了SIEMENS公司設(shè)計(jì)的SLE4442卡。此卡的特點(diǎn)是:

(1)卡內(nèi)有2K位的存儲(chǔ)容量和完全獨(dú)立的可編程邏輯代碼存儲(chǔ)器(PSC);

(2)多存儲(chǔ)器結(jié)構(gòu),其中包括2568位EEPROM,321位PROM的48位EEPROM型存儲(chǔ)器;

(3)串行口滿足ISO7816同步傳遞協(xié)議;

(4)每一字節(jié)的擦除/寫入時(shí)間為2.5ms;

(5)存儲(chǔ)器可擦除1000次以上,數(shù)據(jù)可保存10年以上。

SLE4442型IC卡的觸點(diǎn)排列及功能如圖1所示。

SLE4442芯片的傳送協(xié)議包括4種模式。

(1)復(fù)位和復(fù)位響應(yīng)

復(fù)位可在操作期間任何時(shí)候進(jìn)行。在復(fù)位響應(yīng)期間,任何開始和停止條件均被禁止。復(fù)位與復(fù)位響應(yīng)時(shí)序如圖2所示。

(2)命令方式

每個(gè)命令由起始條件、1個(gè)3字節(jié)長(zhǎng)的命令和停止條件構(gòu)成。命令方式時(shí)序如圖3所示。

起始條件:CLK處于高狀態(tài)H期間,I/O的下降沿。

停止條件:CLK處于高狀態(tài)H期間,I/O的上升沿。

(3)輸出數(shù)據(jù)方式

在這種試上,IC卡發(fā)送數(shù)據(jù)至接口設(shè)備IFD。在CLK上第一個(gè)下降沿后,I/O上第一位有辯效,最后一個(gè)數(shù)據(jù)位之后,需要一個(gè)額外的時(shí)鐘脈沖,以設(shè)置I/O處于高狀態(tài),同時(shí)準(zhǔn)備IC卡接收新的命令。在這種方式下,任何開始和停止條件均被禁止。輸出數(shù)據(jù)方式時(shí)序如圖4所示。

(4)處理方式

在第一個(gè)CLK的下降沿,將I/O線從高狀態(tài)H切換至低狀態(tài)L并開始處理,直到低狀態(tài)L的I/O被設(shè)置成高狀態(tài)H結(jié)束。在這種方式下,任何開始和停止條件均被禁止。處理方式時(shí)序如圖5所示。

SLE4442卡共有7個(gè)命令,每個(gè)命令包括3個(gè)字節(jié),其命令格式及功能如表1所列。

表1 SLE4442命令

字節(jié)1控制字節(jié)字節(jié)2地址字節(jié)字節(jié)3數(shù)據(jù)字節(jié)操 作
B7 B6 B5 B4 B3 B2 B1 B0A7A0D7D0
0 0 1 1 0 0 0 0地址無(wú) 效讀/從給定的字節(jié)地址至用戶存儲(chǔ)器結(jié)束
0 0 1 1 1 0 0 0地址輸入數(shù)據(jù)編程輸入地址對(duì)應(yīng)的用戶存儲(chǔ)區(qū)
0 0 1 1 0 1 0 0無(wú)效無(wú) 效讀保護(hù)存儲(chǔ)器
0 0 1 1 1 1 0 0地址無(wú) 效寫保護(hù)存儲(chǔ)器中的保護(hù)位
0 0 1 1 0 0 0 1地址無(wú) 效讀保密存儲(chǔ)器
0 0 1 1 1 0 0 1地址輸入數(shù)據(jù)寫/編程輸入址對(duì)應(yīng)的保密存儲(chǔ)器
0 0 1 1 0 0 1 1地址輸入數(shù)據(jù)比較可編程密碼PSC字節(jié)

這里只介紹比較可編程密碼PSC命令的使用。比較過(guò)程由4個(gè)步驟組成:

①寫錯(cuò)誤計(jì)數(shù)器EC(至少1位)。地址0。密碼比較結(jié)果將在錯(cuò)誤計(jì)數(shù)器中反饋,3次密碼出錯(cuò)IC卡被阻塞。

②比較PSC字節(jié)1,地址1。寫完錯(cuò)誤計(jì)數(shù)器之后,以不同的命令格式送入3個(gè)密碼字節(jié)。密碼比較成功,將通過(guò)刷新錯(cuò)誤計(jì)數(shù)器來(lái)識(shí)別,然后施加上操作電壓,就可以對(duì)所有存儲(chǔ)器進(jìn)行讀寫操作了。

③比較PSC字節(jié)2,地址2。

④比較PSC字節(jié)3,地址3。

芯片在出廠時(shí)可根據(jù)用戶的專門要求將可編程加密代碼(PSC)存儲(chǔ)器中編入一個(gè)專用代碼。這樣在使用時(shí),就必須合法地得到這個(gè)代碼,從而防止非法竊用或偽造卡片。

2.系統(tǒng)組成及工作原理

本系統(tǒng)的硬件主要由單片機(jī)、串行EEPROM、電磁閥和IC卡讀/寫插座組成。具體電路如圖6所示。

電路中的單片機(jī)AT89C2051是89C51的簡(jiǎn)化體。20引腳為DIP封裝。片內(nèi)有2K字節(jié)閃爍存儲(chǔ)器,128字節(jié)RAM,15條I/O線,全雙工串行口。P1.0、P1.1分別作為片內(nèi)精確模擬電壓比較器的正、負(fù)輸入端;P1.2作為IC卡的復(fù)位端;P1.3、P1.4分別作為IC卡的時(shí)鐘線與數(shù)據(jù)線;P3.7作為IC卡工作指示燈的控制端;P1.5作為非法操作的聲音報(bào)警控制;P3.4作為電磁閥門SW1的控制端。圖中的U5是串行EEPROM--AT24C01,它的作用是用來(lái)隨機(jī)存儲(chǔ)每個(gè)IC卡的密碼等;U4為電壓比較器,用來(lái)監(jiān)測(cè)電源電壓:如果電源電壓下降至4.5V左右就會(huì)產(chǎn)生報(bào)警信號(hào)。為了使系統(tǒng)更可靠地工作,采用CD4060設(shè)計(jì)了單片機(jī)"看門狗"電路,由4060定時(shí)產(chǎn)生一個(gè)復(fù)位脈沖,對(duì)單片機(jī)進(jìn)行復(fù)位操作。整個(gè)電路設(shè)計(jì)中,充分考慮了能源的節(jié)約問題,所以在IC卡插入前整個(gè)電路的大部分芯片沒有供電,只有門電路U1工作;當(dāng)IC卡插入后,由于IC卡座的開關(guān)接通,促使門電路U1觸發(fā)翻轉(zhuǎn),由T1導(dǎo)通使其他芯片得到供電。如果在使用過(guò)程中客人忘記拔出IC卡,電路除了要產(chǎn)生報(bào)警信號(hào)外,還會(huì)在30s(秒)后自動(dòng)停止供電。

二、控制器的軟件設(shè)計(jì)

該軟件包括三部分:

(1)IC卡信息的讀取及AT24C01數(shù)據(jù)的讀??;

(2)比較校驗(yàn)數(shù)據(jù),修改存儲(chǔ)器數(shù)據(jù);

(3)各種控制功能的實(shí)現(xiàn),包括門鎖開啟,聲、光報(bào)警等操作。

限于篇幅,這里只給出了利用51匯編語(yǔ)言編寫的加密IC卡SLE4442的讀/寫程序,并給出了主程序的流程圖,如圖7所示。

讀子程序

READ:MOV R0,#30H ;設(shè)置存放IC卡讀入數(shù)據(jù)的首地址為30H

LCALL RESET ;調(diào)IC卡復(fù)位子程序

MOV R2,#10H ;讀IC卡數(shù)據(jù)的個(gè)數(shù)送R2

LCALL START ;調(diào)起始條件子程序

MOV R5,#00110000B ;發(fā)送讀的命令碼

LCALL SPOUT ;調(diào)發(fā)送一個(gè)字節(jié)子程序

MOV R5,#20H ;發(fā)送IC卡的起始地址

LCALL SPOUT

MOV R5,#00H ;將數(shù)據(jù)00H發(fā)送出去

LCALL SPUT

LCALL STOP ;調(diào)停止條件子程序

READ1:LCALL SPINC ;調(diào)數(shù)據(jù)采集子程序

MOV A,R6

MOV @R0,A

INC R0

DJNZ R2,READ1

LCALL PLUSE ;調(diào)發(fā)送脈沖子程序

RET ;讀IC卡數(shù)據(jù)子程序結(jié)束

寫子程序

WRT:LCALL RESET ;寫IC卡數(shù)據(jù)子程序開始,調(diào)IC卡復(fù)位子程序

MOV R2,#10H ;寫入IC卡的字節(jié)個(gè)數(shù)送R2

MOV R1,#40H ;將40H為首地址的內(nèi)容寫入IC卡

MOV R4,#30H ;R4中放的是寫到IC卡起始地址30H

WRT1:LCALL START ;調(diào)起始條件子程序

MOV R5,#00111000B ;發(fā)送寫的命令碼

LCALL SPOUT

MOV A,R4 ;發(fā)出要寫入的IC卡地址

MOV R5,A

LCALL SPOUT

MOV A,@R1 ;寫入IC卡數(shù)據(jù)

MOV R5,A

LCALL SPOUT

LCALL STOP ;調(diào)停止條件子程序

LCALL PROCE ;調(diào)一個(gè)編程過(guò)程子程序

INC R1 ;數(shù)據(jù)指針加1,直到數(shù)據(jù)寫完

INC R4

DJNZ R2,WRT1

RET ;寫子程序結(jié)束

PROCE:MOV R3,#0FFH ;一個(gè)編程過(guò)程子程序

PROC1:SETB P1.2

NOP

CLR P1.2

DJNZ E3,PROC1

RET

SPINC:MOV R3,#08H ;數(shù)據(jù)采集子程序

SPIN1:CLR P1.2

MOV C,P1.4

MOV A,R6

RLC A

MOV R6,A ;讀出的一字節(jié)內(nèi)容送R6

SETB P1.2

DJNZ R3,SPIN1

RET

SPOUT:MOV R3,#08H ;一字節(jié)發(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 ;復(fù)位IC卡子程序

NOP

CLR P1.3

NOP

RET

END

保險(xiǎn)柜的安全性能是本控制器系統(tǒng)設(shè)計(jì)的出發(fā)點(diǎn)之一,為此,在軟件上,將IC卡分為母卡和子卡,母卡由管理人員掌握,子卡由客人掌握。在每次客人走后,將母卡插入保險(xiǎn)柜,那么原來(lái)的開機(jī)子卡宣布作廢,這時(shí)可以插入一個(gè)新的卡形成一個(gè)新的子卡。母卡的功能是負(fù)責(zé)生成新的子卡,而不負(fù)責(zé)開門,從而確保了保險(xiǎn)柜的安全性能。

結(jié)束語(yǔ)

該IC卡保險(xiǎn)柜控制器具有結(jié)構(gòu)簡(jiǎn)單、功耗低、體積小、成本低等特點(diǎn),完全達(dá)到了用戶的要求,目前已投入了小批量的生產(chǎn)。如果將現(xiàn)有的產(chǎn)品稍作改動(dòng)和擴(kuò)展,就能實(shí)現(xiàn)其他的功能。例如,給它擴(kuò)展上一個(gè)語(yǔ)音芯片,即可進(jìn)行語(yǔ)音提示或報(bào)警;如果將本控制器應(yīng)用于防盜門就可制成IC卡防盜門,從而實(shí)現(xiàn)對(duì)傳統(tǒng)防盜門的更新?lián)Q代,具有廣闊的市場(chǎng)前景。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉