文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2013)02-0045-03
目前,大部分家庭門(mén)禁系統(tǒng)都是采用機(jī)械式開(kāi)鎖,操作比較麻煩,給家里有老人的家庭帶來(lái)了諸多不便,且安全性也不能得到很高的保障。近年來(lái)RF遙控器件的價(jià)格越來(lái)越便宜,且電子式遙控開(kāi)鎖更加方便、安全,從而使其市場(chǎng)有了更大的提升空間,利用其特點(diǎn)已開(kāi)發(fā)出了一些重要的應(yīng)用,遙控門(mén)禁就是其中之一。機(jī)械式開(kāi)鎖的最大缺點(diǎn)就是不安全,采用滾動(dòng)碼技術(shù)的遙控門(mén)禁系統(tǒng)則大大改變了這一現(xiàn)狀,因?yàn)槠涿看伟l(fā)出的編碼信息不同、不規(guī)則,而且重復(fù)出現(xiàn)同一編碼信息被視為無(wú)效,傳輸代碼采用了非線性位加密技術(shù),使其產(chǎn)生了具有很高保密性的滾動(dòng)碼,使得一些非法的裝置不能在一定的時(shí)間內(nèi)破解其密碼。本文主要介紹KEELOQ技術(shù)在遙控門(mén)禁系統(tǒng)中的應(yīng)用,并且利用PIC16F630進(jìn)行控鎖和軟件解碼。
1 編碼器的工作原理
本設(shè)計(jì)的遙控門(mén)禁系統(tǒng)[1]通過(guò)按鍵遙控器就能開(kāi)關(guān)家門(mén),其工作流程如圖1所示。當(dāng)系統(tǒng)按鈕被按下時(shí),HCS301將開(kāi)始準(zhǔn)備工作,為使按鈕抖動(dòng)平息,大約要延遲10 ms。信息將以跳碼的形式進(jìn)行傳輸,跳碼包括識(shí)別碼、按鈕信息和徒步計(jì)數(shù)值。跳碼就是跳動(dòng)的代碼,在每次發(fā)送時(shí)都將產(chǎn)生變化,即便同一個(gè)按鈕被按下多次,它也會(huì)發(fā)生變化。因此,發(fā)送的編碼字在超過(guò)64 000次的傳輸中都不會(huì)重復(fù)。以每天執(zhí)行10次操作為例,跳碼可以保證在18年之內(nèi)編碼字不會(huì)重復(fù)。溢出信息可用來(lái)將唯一發(fā)送的次數(shù)提高超過(guò)192 000次。在發(fā)送代碼過(guò)程中,如果有按鈕被按下,則會(huì)產(chǎn)生復(fù)位的效果,并且當(dāng)前編碼字的傳輸將不會(huì)被完成。只要有按鈕處于按下?tīng)顟B(tài),松開(kāi)按鈕就不會(huì)對(duì)編碼字產(chǎn)生任何影響。在這樣正常的情況下,編碼字將完成并在隨后斷電[2]。
2 KEELOQ技術(shù)介紹
KEELOQ技術(shù)[3]實(shí)際上是一個(gè)關(guān)于“ASIC”的特別設(shè)計(jì),它包括解碼技術(shù)和加密技術(shù),并提出了一種實(shí)用可靠的KEELOQ算法,適用于遙控或命令辨別的場(chǎng)合。它的加密、解密技術(shù)安全,具有變化多、不容易被截獲的特點(diǎn),KEELOQ技術(shù)可應(yīng)用在車庫(kù)門(mén)遙控、秘密通信、被動(dòng)式感應(yīng)控制、停車場(chǎng)管制、安全鎖等場(chǎ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í),其輸入與輸出是一一對(duì)應(yīng)的,不存在重復(fù)。
2.1 KEELOQ技術(shù)的密碼編碼和存儲(chǔ)[4]
密鑰的產(chǎn)生是由64 bit廠家代碼和28 bit發(fā)送序列號(hào)在密鑰生成算法中實(shí)現(xiàn),并把其生成的密鑰存儲(chǔ)在HCS301中的EEPROM中,如圖2所示。
2.3 PWM的接收
發(fā)送的信息包括32 bit跳碼和34 bit固定碼,由圖3可知,該固定碼包括識(shí)別碼、功能鍵和溢出指示位。首先進(jìn)入前導(dǎo)資料并進(jìn)行準(zhǔn)備;然后開(kāi)始接收所傳輸?shù)馁Y料,利用Sync.Header 10 TE來(lái)改變接收的速率,會(huì)得到TE的時(shí)間。當(dāng)檢測(cè)到有上升沿上升時(shí),過(guò)一半TE時(shí)間后,開(kāi)始進(jìn)行取樣并檢測(cè)其結(jié)果。如果為1,則接收成功;如果為0,則接收失敗,需要等待1 TE時(shí)間,然后立即取樣,并把采樣結(jié)果作為資料位元再重復(fù)以上動(dòng)作,重新采樣并進(jìn)行測(cè)試;如果重測(cè)結(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)接收器接收到信號(hào)時(shí),把信號(hào)傳輸?shù)絾纹瑱C(jī)中,然后PIC16F630進(jìn)行軟件解碼,產(chǎn)生控制信號(hào)D0、D1、D2、D3。其原理圖如圖5所示。
主機(jī)接DC12 V變壓器,+12 V為正極輸入端,GND為負(fù)極輸入端,JP1~JP5為短路帽,第一組控制信號(hào)由跳線端JP4控制:如果JP4跳到A端,則只有按遙控器A鍵,L1才有開(kāi)鎖信號(hào);如果JP4跳到D端,則只有按遙控器D鍵,L1才有控制信號(hào)輸出。第二組控制信號(hào)由跳線端JP3控制:如果JP3跳到B端,則只有按遙控器B鍵,L2才有開(kāi)鎖信號(hào);如果JP3跳到C端,則只有按遙控器C鍵,L2才有控制信號(hào)輸出。
4 KEELOQ技術(shù)的學(xué)習(xí)模式
為使生產(chǎn)配對(duì)方便、管理簡(jiǎn)單,KEELOQ系統(tǒng)要進(jìn)行學(xué)習(xí)。解碼器在沒(méi)工作時(shí),僅知道其制造商代碼,剩下的都不知道;解碼資訊存儲(chǔ)在EEPROM中,具體包括:序列號(hào)(Serial Number)、同步計(jì)數(shù)值(Current Sync.Counter Value)、識(shí)別碼(Discrimination Value)、編碼密碼(Encrypion Key)[7]。
4.1 簡(jiǎn)易學(xué)習(xí)模式
如果使用簡(jiǎn)易學(xué)習(xí)模式,則編碼密碼就是制造商代碼。此模式的特點(diǎn)是簡(jiǎn)單和容易明白,不足之處是假如制造商代碼被知道,則當(dāng)有兩個(gè)使用相同制造商代碼的系統(tǒng)時(shí),這個(gè)系統(tǒng)的編碼密碼就很容易被知道,因此安全性被降低。在簡(jiǎn)易學(xué)習(xí)模式下,接收到資料,然后進(jìn)行解碼,判斷是否與制造商代碼一致。如果超過(guò)時(shí)間,則學(xué)習(xí)失??;如果解碼正確,則判斷識(shí)別碼與所接收的序列號(hào)中較低的10位元是否相等以及功能鍵與所接收資料中的固定碼按鍵值是否相等,如果不相等,則學(xué)習(xí)失敗,如果相等則把學(xué)習(xí)到的3種資料記錄在EEPROM中,作為解碼資料庫(kù)用。
4.2 標(biāo)準(zhǔn)學(xué)習(xí)模式
標(biāo)準(zhǔn)學(xué)習(xí)模式與簡(jiǎn)易學(xué)習(xí)模式的解碼方式其實(shí)是一樣的,只是使用不同的解碼密碼(Encrypion Key)。在標(biāo)準(zhǔn)模式中,解碼密碼是通過(guò)序列號(hào)、制造商代碼經(jīng)過(guò)運(yùn)算后得到的,前后共經(jīng)過(guò)兩次,并得到64 bit的編碼密碼。第一次運(yùn)算,先取得32 bit(LSB),第二次運(yùn)算,再取得32 bit(MSB)。進(jìn)入標(biāo)準(zhǔn)學(xué)習(xí)模式下,將第一次接收的資料進(jìn)行解碼后,得到序列號(hào)、識(shí)別碼、同步技術(shù)值,并判斷識(shí)別碼是否與序列號(hào)相等;將第二次接收的資料進(jìn)行解碼后,判斷識(shí)別碼與序列號(hào)是否相等,并檢查同步技術(shù)值是否加1,如果都正確,則存儲(chǔ)學(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);然后此密碼又與序列號(hào)進(jìn)行運(yùn)算,運(yùn)算后所取得的密碼為32 bit(MSB),即形成了64 bit的解碼密碼。當(dāng)安全學(xué)習(xí)模式啟動(dòng)時(shí),將準(zhǔn)備接收跳碼,并檢查新、舊序號(hào)是否一樣,利用新的解碼密碼與跳碼進(jìn)行解碼后會(huì)得到識(shí)別碼和同步技術(shù)值,然后存儲(chǔ)解碼資源中的4種信息到EEPROM中。
5 KEELOQ紙上解碼
以HCS301為例,其跳碼(Hopping Code)使用0~F的制造商代碼,以簡(jiǎn)易編碼方式來(lái)記錄HCS301所送出的編碼作為解碼輸入。燒錄設(shè)定:序列號(hào)0001234,同步技術(shù)值0000,識(shí)別碼序號(hào)最低10 bit。把燒錄的HCS301作為編碼器,制造商代碼為0123456789ABCDEF,使用簡(jiǎn)易編碼解碼方式將所收到的Hopping碼填入“KEELOQ Decoding Tool”中的解碼資料欄中來(lái)解碼,所得到的結(jié)果如表1所示。
本文運(yùn)用了單片機(jī)技術(shù)、無(wú)線傳輸技術(shù)、KEELOQ技術(shù),采用DXP2004軟件繪制原理圖,設(shè)計(jì)出了一種方便、成本低、保密性高的防盜門(mén)禁系統(tǒng)。在實(shí)際使用時(shí)還可以適當(dāng)?shù)丶釉O(shè)硬件(例如報(bào)警器、LED燈等)來(lái)實(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)程無(wú)鑰匙進(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].電子測(cè)量技術(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.