文獻標(biāo)識碼: B
文章編號: 0258-7998(2013)02-0045-03
目前,大部分家庭門禁系統(tǒng)都是采用機械式開鎖,,操作比較麻煩,,給家里有老人的家庭帶來了諸多不便,且安全性也不能得到很高的保障,。近年來RF遙控器件的價格越來越便宜,,且電子式遙控開鎖更加方便、安全,從而使其市場有了更大的提升空間,,利用其特點已開發(fā)出了一些重要的應(yīng)用,,遙控門禁就是其中之一。機械式開鎖的最大缺點就是不安全,,采用滾動碼技術(shù)的遙控門禁系統(tǒng)則大大改變了這一現(xiàn)狀,,因為其每次發(fā)出的編碼信息不同、不規(guī)則,,而且重復(fù)出現(xiàn)同一編碼信息被視為無效,,傳輸代碼采用了非線性位加密技術(shù),使其產(chǎn)生了具有很高保密性的滾動碼,,使得一些非法的裝置不能在一定的時間內(nèi)破解其密碼。本文主要介紹KEELOQ技術(shù)在遙控門禁系統(tǒng)中的應(yīng)用,,并且利用PIC16F630進行控鎖和軟件解碼。
1 編碼器的工作原理
本設(shè)計的遙控門禁系統(tǒng)[1]通過按鍵遙控器就能開關(guān)家門,,其工作流程如圖1所示,。當(dāng)系統(tǒng)按鈕被按下時,HCS301將開始準(zhǔn)備工作,,為使按鈕抖動平息,,大約要延遲10 ms。信息將以跳碼的形式進行傳輸,,跳碼包括識別碼,、按鈕信息和徒步計數(shù)值。跳碼就是跳動的代碼,,在每次發(fā)送時都將產(chǎn)生變化,,即便同一個按鈕被按下多次,它也會發(fā)生變化,。因此,,發(fā)送的編碼字在超過64 000次的傳輸中都不會重復(fù)。以每天執(zhí)行10次操作為例,,跳碼可以保證在18年之內(nèi)編碼字不會重復(fù),。溢出信息可用來將唯一發(fā)送的次數(shù)提高超過192 000次。在發(fā)送代碼過程中,,如果有按鈕被按下,,則會產(chǎn)生復(fù)位的效果,并且當(dāng)前編碼字的傳輸將不會被完成,。只要有按鈕處于按下狀態(tài),,松開按鈕就不會對編碼字產(chǎn)生任何影響。在這樣正常的情況下,,編碼字將完成并在隨后斷電[2],。
2 KEELOQ技術(shù)介紹
KEELOQ技術(shù)[3]實際上是一個關(guān)于“ASIC”的特別設(shè)計,它包括解碼技術(shù)和加密技術(shù),,并提出了一種實用可靠的KEELOQ算法,,適用于遙控或命令辨別的場合。它的加密,、解密技術(shù)安全,,具有變化多、不容易被截獲的特點,,KEELOQ技術(shù)可應(yīng)用在車庫門遙控,、秘密通信,、被動式感應(yīng)控制、停車場管制,、安全鎖等場合,,用途廣泛。KEELOQ的傳送可經(jīng)由公共頻道,,內(nèi)含一組64 bit的編碼密碼,,編碼器將把該編碼密碼傳輸?shù)浇獯a器,其中有32 bit的編碼密碼是不知道的,,從而可保證該技術(shù)的保密性,,并且傳送資料不唯一和不重復(fù)。KEELOQ技術(shù)的重點在于它獨特的演算法(即數(shù)學(xué)推算公式),,當(dāng)資料進入這演算法并進行運算時,,其輸入與輸出是一一對應(yīng)的,不存在重復(fù),。
2.1 KEELOQ技術(shù)的密碼編碼和存儲[4]
密鑰的產(chǎn)生是由64 bit廠家代碼和28 bit發(fā)送序列號在密鑰生成算法中實現(xiàn),,并把其生成的密鑰存儲在HCS301中的EEPROM中,如圖2所示,。
2.3 PWM的接收
發(fā)送的信息包括32 bit跳碼和34 bit固定碼,,由圖3可知,該固定碼包括識別碼,、功能鍵和溢出指示位,。首先進入前導(dǎo)資料并進行準(zhǔn)備;然后開始接收所傳輸?shù)馁Y料,,利用Sync.Header 10 TE來改變接收的速率,,會得到TE的時間。當(dāng)檢測到有上升沿上升時,,過一半TE時間后,,開始進行取樣并檢測其結(jié)果。如果為1,,則接收成功,;如果為0,則接收失敗,,需要等待1 TE時間,,然后立即取樣,并把采樣結(jié)果作為資料位元再重復(fù)以上動作,,重新采樣并進行測試,;如果重測結(jié)果為1則失敗。當(dāng)下一個上升沿出現(xiàn)時,,如果等待時間大于1 TE,,則可以斷定其結(jié)果為失敗,。重復(fù)以上步驟,直到把這66 bit編碼密碼接收完成[5],,如圖4所示,。
3 PIC16F630的軟解和控鎖
跳碼編碼可用專用芯片進行硬件解碼。由于專用芯片的價格很貴,,因此本設(shè)計采用PIC系列的單片機芯片PIC16F630進行軟件解碼[6],。當(dāng)接收器接收到信號時,把信號傳輸?shù)絾纹瑱C中,,然后PIC16F630進行軟件解碼,產(chǎn)生控制信號D0,、D1,、D2、D3,。其原理圖如圖5所示,。
主機接DC12 V變壓器,+12 V為正極輸入端,,GND為負(fù)極輸入端,,JP1~JP5為短路帽,第一組控制信號由跳線端JP4控制:如果JP4跳到A端,,則只有按遙控器A鍵,,L1才有開鎖信號;如果JP4跳到D端,,則只有按遙控器D鍵,,L1才有控制信號輸出。第二組控制信號由跳線端JP3控制:如果JP3跳到B端,,則只有按遙控器B鍵,,L2才有開鎖信號;如果JP3跳到C端,,則只有按遙控器C鍵,,L2才有控制信號輸出。
4 KEELOQ技術(shù)的學(xué)習(xí)模式
為使生產(chǎn)配對方便,、管理簡單,,KEELOQ系統(tǒng)要進行學(xué)習(xí)。解碼器在沒工作時,,僅知道其制造商代碼,,剩下的都不知道;解碼資訊存儲在EEPROM中,,具體包括:序列號(Serial Number),、同步計數(shù)值(Current Sync.Counter Value),、識別碼(Discrimination Value)、編碼密碼(Encrypion Key)[7],。
4.1 簡易學(xué)習(xí)模式
如果使用簡易學(xué)習(xí)模式,,則編碼密碼就是制造商代碼。此模式的特點是簡單和容易明白,,不足之處是假如制造商代碼被知道,,則當(dāng)有兩個使用相同制造商代碼的系統(tǒng)時,這個系統(tǒng)的編碼密碼就很容易被知道,,因此安全性被降低,。在簡易學(xué)習(xí)模式下,接收到資料,,然后進行解碼,,判斷是否與制造商代碼一致。如果超過時間,,則學(xué)習(xí)失?。蝗绻獯a正確,,則判斷識別碼與所接收的序列號中較低的10位元是否相等以及功能鍵與所接收資料中的固定碼按鍵值是否相等,,如果不相等,則學(xué)習(xí)失敗,,如果相等則把學(xué)習(xí)到的3種資料記錄在EEPROM中,,作為解碼資料庫用。
4.2 標(biāo)準(zhǔn)學(xué)習(xí)模式
標(biāo)準(zhǔn)學(xué)習(xí)模式與簡易學(xué)習(xí)模式的解碼方式其實是一樣的,,只是使用不同的解碼密碼(Encrypion Key),。在標(biāo)準(zhǔn)模式中,解碼密碼是通過序列號,、制造商代碼經(jīng)過運算后得到的,,前后共經(jīng)過兩次,并得到64 bit的編碼密碼,。第一次運算,,先取得32 bit(LSB),第二次運算,,再取得32 bit(MSB),。進入標(biāo)準(zhǔn)學(xué)習(xí)模式下,將第一次接收的資料進行解碼后,,得到序列號,、識別碼、同步技術(shù)值,,并判斷識別碼是否與序列號相等,;將第二次接收的資料進行解碼后,,判斷識別碼與序列號是否相等,并檢查同步技術(shù)值是否加1,,如果都正確,,則存儲學(xué)習(xí)結(jié)果到EERPROM中。
4.3 安全學(xué)習(xí)模式
安全學(xué)習(xí)模式與標(biāo)準(zhǔn)學(xué)習(xí)模式的解碼方式其實是一樣的,,只是解碼密碼產(chǎn)生的方式不同,。在安全學(xué)習(xí)模式中,制造商代碼與SEED運算取得解碼密碼,,并得到32 bit(LSB),;然后此密碼又與序列號進行運算,運算后所取得的密碼為32 bit(MSB),,即形成了64 bit的解碼密碼,。當(dāng)安全學(xué)習(xí)模式啟動時,將準(zhǔn)備接收跳碼,,并檢查新,、舊序號是否一樣,,利用新的解碼密碼與跳碼進行解碼后會得到識別碼和同步技術(shù)值,,然后存儲解碼資源中的4種信息到EEPROM中。
5 KEELOQ紙上解碼
以HCS301為例,,其跳碼(Hopping Code)使用0~F的制造商代碼,,以簡易編碼方式來記錄HCS301所送出的編碼作為解碼輸入。燒錄設(shè)定:序列號0001234,,同步技術(shù)值0000,,識別碼序號最低10 bit。把燒錄的HCS301作為編碼器,,制造商代碼為0123456789ABCDEF,,使用簡易編碼解碼方式將所收到的Hopping碼填入“KEELOQ Decoding Tool”中的解碼資料欄中來解碼,所得到的結(jié)果如表1所示,。
本文運用了單片機技術(shù),、無線傳輸技術(shù)、KEELOQ技術(shù),,采用DXP2004軟件繪制原理圖,,設(shè)計出了一種方便、成本低,、保密性高的防盜門禁系統(tǒng),。在實際使用時還可以適當(dāng)?shù)丶釉O(shè)硬件(例如報警器、LED燈等)來實現(xiàn)更大的作用,。
參考文獻
[1] Microchip Crop.AN661-Code hopping decoder using a PIC16C56[Z].2011.
[2] 孔慧芳,,丘宇寧.PKE智能鑰匙系統(tǒng)設(shè)計[J].微型機與應(yīng)用,,2010,29(20):103-106.
[3] 何此昂,,周渡海.遠(yuǎn)程無鑰匙進入系統(tǒng)的方案設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,,2006,29(12):33-35.
[4] 王文虎,,李建奇,,陶曾杰.KEELOQ滾動加密技術(shù)在汽車防盜系統(tǒng)中的應(yīng)用[J].電子測量技術(shù),2007,,30(10):197-199.
[5] 陳元.基于轎車車身控制網(wǎng)絡(luò)的研究和仿真[D].武漢:武漢理工大學(xué),,2008.
[6] 丁明勇.KEELOQ技術(shù)的文件加密設(shè)計與實現(xiàn)[J].遼寧工程技術(shù)大學(xué)學(xué)報,2005,,24(5):727-729.
[7] 石幸利.基于滾動碼技術(shù)的汽車防盜系統(tǒng)研究[D].重慶:重慶大學(xué),,2007.