《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于KEELOQ技術(shù)的遙控門禁系統(tǒng)的實(shí)現(xiàn)
基于KEELOQ技術(shù)的遙控門禁系統(tǒng)的實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2013年第2期
薛巨峰,喬 鵬
東北林業(yè)大學(xué) 機(jī)電工程學(xué)院,黑龍江 哈爾濱150040
摘要: 基于KEELOQ技術(shù)的解碼運(yùn)算,采用滾動(dòng)碼技術(shù),通過HCS301進(jìn)行跳碼編碼并對(duì)其進(jìn)行解碼,同時(shí)采用芯片PIC16F630,設(shè)計(jì)了一個(gè)遙控門禁系統(tǒng)。給出了系統(tǒng)流程圖和部分硬件原理圖,詳細(xì)描述了密鑰的產(chǎn)生和解碼的過程。本系統(tǒng)具有保密性高、使用方便、成本低的特點(diǎn)。
中圖分類號(hào): TN409
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2013)02-0045-03
Realization of remote access system based on the KEELOQ technology
Xue Jufeng,Qiao Peng
College of Machinery and Electricity Engineering,Northeast Forestry University,Harbin 150040,China
Abstract: A remote access system is designed by using rolling code technology,with the HCS301 for size coding and the decoding,and using the PIC16F630 chip,which are based on the operation of the KEELOQ technology decoding arithmetic. The system flow chart and part of the hardware principle diagram are given. And the key generation and decoding process are detailed. This system has characteristics of high confidentiality, easy to use and low cost.
Key words : HCS301;PIC16F630;rolling code;KEELOQ technology

    目前,大部分家庭門禁系統(tǒng)都是采用機(jī)械式開鎖,操作比較麻煩,給家里有老人的家庭帶來了諸多不便,且安全性也不能得到很高的保障。近年來RF遙控器件的價(jià)格越來越便宜,且電子式遙控開鎖更加方便、安全,從而使其市場(chǎng)有了更大的提升空間,利用其特點(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)行傳輸,跳碼包括識(shí)別碼、按鈕信息和徒步計(jì)數(shù)值。跳碼就是跳動(dòng)的代碼,在每次發(fā)送時(shí)都將產(chǎn)生變化,即便同一個(gè)按鈕被按下多次,它也會(huì)發(fā)生變化。因此,發(fā)送的編碼字在超過64 000次的傳輸中都不會(huì)重復(fù)。以每天執(zhí)行10次操作為例,跳碼可以保證在18年之內(nèi)編碼字不會(huì)重復(fù)。溢出信息可用來將唯一發(fā)送的次數(shù)提高超過192 000次。在發(fā)送代碼過程中,如果有按鈕被按下,則會(huì)產(chǎn)生復(fù)位的效果,并且當(dāng)前編碼字的傳輸將不會(huì)被完成。只要有按鈕處于按下狀態(tà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)用在車庫門遙控、秘密通信、被動(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)備;然后開始接收所傳輸?shù)馁Y料,利用Sync.Header 10 TE來改變接收的速率,會(huì)得到TE的時(shí)間。當(dāng)檢測(cè)到有上升沿上升時(shí),過一半TE時(shí)間后,開始進(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才有開鎖信號(hào);如果JP4跳到D端,則只有按遙控器D鍵,L1才有控制信號(hào)輸出。第二組控制信號(hào)由跳線端JP3控制:如果JP3跳到B端,則只有按遙控器B鍵,L2才有開鎖信號(hào);如果JP3跳到C端,則只有按遙控器C鍵,L2才有控制信號(hào)輸出。
4 KEELOQ技術(shù)的學(xué)習(xí)模式
    為使生產(chǎn)配對(duì)方便、管理簡單,KEELOQ系統(tǒng)要進(jìn)行學(xué)習(xí)。解碼器在沒工作時(shí),僅知道其制造商代碼,剩下的都不知道;解碼資訊存儲(chǔ)在EEPROM中,具體包括:序列號(hào)(Serial Number)、同步計(jì)數(shù)值(Current Sync.Counter Value)、識(shí)別碼(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í)失敗;如果解碼正確,則判斷識(shí)別碼與所接收的序列號(hào)中較低的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)模式中,解碼密碼是通過序列號(hào)、制造商代碼經(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)行解碼后,得到序列號(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的制造商代碼,以簡易編碼方式來記錄HCS301所送出的編碼作為解碼輸入。燒錄設(shè)定:序列號(hào)0001234,同步技術(shù)值0000,識(shí)別碼序號(hào)最低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].電子測(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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。