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