《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于KEELOQ技術(shù)的遙控門禁系統(tǒng)的實現(xiàn)
基于KEELOQ技術(shù)的遙控門禁系統(tǒng)的實現(xiàn)
來源:電子技術(shù)應(yīng)用2013年第2期
薛巨峰,喬 鵬
東北林業(yè)大學(xué) 機電工程學(xué)院,黑龍江 哈爾濱150040
摘要: 基于KEELOQ技術(shù)的解碼運算,采用滾動碼技術(shù),通過HCS301進行跳碼編碼并對其進行解碼,同時采用芯片PIC16F630,設(shè)計了一個遙控門禁系統(tǒng)。給出了系統(tǒng)流程圖和部分硬件原理圖,詳細描述了密鑰的產(chǎn)生和解碼的過程。本系統(tǒng)具有保密性高、使用方便、成本低的特點。
中圖分類號: TN409
文獻標識碼: B
文章編號: 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)都是采用機械式開鎖,操作比較麻煩,給家里有老人的家庭帶來了諸多不便,且安全性也不能得到很高的保障。近年來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將開始準備工作,為使按鈕抖動平息,大約要延遲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)資料并進行準備;然后開始接收所傳輸?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為負極輸入端,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í)失??;如果解碼正確,則判斷識別碼與所接收的序列號中較低的10位元是否相等以及功能鍵與所接收資料中的固定碼按鍵值是否相等,如果不相等,則學(xué)習(xí)失敗,如果相等則把學(xué)習(xí)到的3種資料記錄在EEPROM中,作為解碼資料庫用。
4.2 標準學(xué)習(xí)模式
    標準學(xué)習(xí)模式與簡易學(xué)習(xí)模式的解碼方式其實是一樣的,只是使用不同的解碼密碼(Encrypion Key)。在標準模式中,解碼密碼是通過序列號、制造商代碼經(jīng)過運算后得到的,前后共經(jīng)過兩次,并得到64 bit的編碼密碼。第一次運算,先取得32 bit(LSB),第二次運算,再取得32 bit(MSB)。進入標準學(xué)習(xí)模式下,將第一次接收的資料進行解碼后,得到序列號、識別碼、同步技術(shù)值,并判斷識別碼是否與序列號相等;將第二次接收的資料進行解碼后,判斷識別碼與序列號是否相等,并檢查同步技術(shù)值是否加1,如果都正確,則存儲學(xué)習(xí)結(jié)果到EERPROM中。
4.3 安全學(xué)習(xí)模式
    安全學(xué)習(xí)模式與標準學(xué)習(xí)模式的解碼方式其實是一樣的,只是解碼密碼產(chǎn)生的方式不同。在安全學(xué)習(xí)模式中,制造商代碼與SEED運算取得解碼密碼,并得到32 bit(LSB);然后此密碼又與序列號進行運算,運算后所取得的密碼為32 bit(MSB),即形成了64 bit的解碼密碼。當(dāng)安全學(xué)習(xí)模式啟動時,將準備接收跳碼,并檢查新、舊序號是否一樣,利用新的解碼密碼與跳碼進行解碼后會得到識別碼和同步技術(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] 何此昂,周渡海.遠程無鑰匙進入系統(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.

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