趙國樹,周黎英,翟力欣
(1.金陵科技學院智能科學與控制工程學院,南京211169;2.金陵科技學院機電工程學院)
基于MT3108跳碼芯片的無鑰匙門禁系統(tǒng)設計*
趙國樹1,周黎英2,翟力欣1
(1.金陵科技學院智能科學與控制工程學院,南京211169;2.金陵科技學院機電工程學院)
本文介紹了基于MicroTiVo公司的MT3108芯片和Microchip公司PIC18F4520單片機的無鑰匙智能門禁系統(tǒng)。MT3108跳碼編碼芯片采用了橢圓曲線密碼(ECC)算法,使門禁系統(tǒng)安全性更強。闡述了系統(tǒng)流程圖、各電路的工作原理及加密解密的過程,測試結(jié)果顯示,該設計滿足了實際應用的需求。
MT3108;PIC18F4520;跳碼;門禁系統(tǒng)
隨著汽車電子技術(shù)的不斷發(fā)展和加密技術(shù)的日新月異,既滿足使用的方便性,又具有防盜竊的可靠性的技術(shù)在不斷地推陳出新。傳統(tǒng)的固定碼方案防盜能力差,目前幾乎完全被淘汰。分組滾動碼方案(KeeLoq),采用了16位計數(shù)器,最快可在幾秒內(nèi)被破解,原因在于其編碼規(guī)律容易被專用解碼器獲知,存在安全漏洞。
本文將跳碼技術(shù)應用在遙控門禁系統(tǒng)中,將跳碼芯片MT3108作為編碼器,系統(tǒng)由電子鑰匙(E-Key)、門控終端、中央控制器(簡稱中控器)組成,并采用PIC18F4520單片機完成軟件解碼和鎖具的控制。軟件編程采用MPLAB作為開發(fā)環(huán)境,使用C語言編程,提高了可移植性。
本設計分為鑰匙終端和車載電路兩部分。車載電路周期性地主動發(fā)送LF編碼信號,尋找在1~2 m的距離內(nèi)是否有合法的鑰匙。LF信號周期一般為幾百ms,頻率為125 kHz。一旦鑰匙處于1~2 m內(nèi),便可接收到低頻編碼信號,對數(shù)據(jù)進行判斷以檢驗其合法性。如果編碼是有效的,則跳碼芯片MT3108對當前指令或默認指令進行加密,加密后的指令通過315 MHz的射頻調(diào)制信號發(fā)射出去。車載射頻接收電路對接收到的315 MHz的調(diào)制信號進行解調(diào),PIC18F4520單片機負責對解調(diào)后的數(shù)據(jù)進行軟件解碼,得出具體的指令,從而對鎖具進行控制。系統(tǒng)結(jié)構(gòu)原理圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)原理圖
智能鑰匙的硬件主要用來接收LF信號,并把輸入的指令加密后通過高頻載波發(fā)射出去,下面詳細介紹硬件原理。
2.1 智能鑰匙模塊
智能鑰匙模塊由125 kHz低頻接收電路、MT3108跳碼編碼電路及315 MHz發(fā)射電路組成。
(1)125 kHz低頻接收電路
圖2中L1、L2、L3正交放置,均由7.2 mH電感、220 pF的電容及100 kΩ的電阻構(gòu)成頻率為125 kHz的RLC諧振選頻電路。
導納:
圖2 125 kHz低頻接收電路
在沒有接收到125 kHz低頻信號時,電感相當于短路,流過1 kΩ電阻的電流約為0.93 μA,X+與X-壓差<1 mV,而當攜帶鑰匙接近1~2 m時,電路發(fā)生諧振,阻抗為100 kΩ,此時X+與X-壓差約100 mV,Y+、Y-及Z+、Z-亦是如此。如圖2所示。
電壓比較單元采用了低功耗單電源比較器MAX9075、MAX9077,耗電僅3 μA,其失調(diào)電壓為1 mV,即輸入電壓的切換點為1 mV,因此互為正交的三個線圈中任何一個接收到低頻信號后,XO、YO及ZO中至少有一個將跳變?yōu)楦唠娖?,從而使得Q4~Q6中至少有一個導通,LF_DAT跳變?yōu)楦唠娖剑缤存I被按下一樣,實現(xiàn)自動觸發(fā)按鍵。如圖2所示。
(2)編碼及射頻發(fā)射電路
MT3108芯片通過3 V紐扣電池供電。如圖3所示,跳碼芯片MT3108提供了內(nèi)置的按鍵接口S0~S3,內(nèi)部為每個引腳配置了下拉電阻。無鍵按下或者不在125 kHz接收范圍內(nèi)時,MT3108失電,以降低功耗。當用戶按鍵或近距離低頻諧振自動觸發(fā)按鍵時,S3為高電平,NMOS管Q3導通,使得PMOS管Q1導通,MT3108的VDD得電,觸發(fā)芯片發(fā)送相應按鍵所要表述的鍵值的PWM波,通過315 MHz發(fā)送電路發(fā)送出去。
2.2 車載電路設計
車載模塊分為低頻發(fā)送電路、射頻接收電路及中央控制電路。為查詢鑰匙是否在1~2 m范圍內(nèi),車載模塊總是每隔幾百ms發(fā)送頻率為125 kHz的低頻編碼信號,并接收射頻信號,將解調(diào)后的編碼送給中控單片機驗證,再控制門鎖。
(1)低頻發(fā)射電路
低頻發(fā)射電路由TN8118驅(qū)動芯片和串聯(lián)LC諧振電路構(gòu)成。該芯片輸出阻抗只有7 Ω,使得輸出回路的品質(zhì)因素大大提高。TN8118放大來自單片機的125 kHz的低頻信號的功率,當LC串聯(lián)諧振電路頻率與PWM頻率一致時,通過電感的電流最大,發(fā)送的信號最強。低頻發(fā)射電路如圖4所示。
(2)射頻接收模塊
315 MHz接收模塊采用超高頻、低噪聲無線數(shù)據(jù)傳輸模塊GW-R5C1,體積小,一致性好,傳輸速率最高為20 kbps。引腳2接PIC單片機引腳RA5。射頻接收電路如圖5所示。
(3)中控單元
門控終端用于接收電子鑰匙發(fā)來的跳碼信息,然后進行解密,并發(fā)送至中控器請求驗證。中控器包括微處理器PIC18F4520、矩陣鍵盤、存儲器、門鎖驅(qū)動等。它接收門控終端發(fā)來的請求驗證消息,進行驗證、記錄開門信息、更新門狀態(tài),并根據(jù)驗證結(jié)果發(fā)送開門信號給相應的開鎖機構(gòu)。中央控制電路如圖6所示。
圖3 跳碼芯片及315 MHz發(fā)射電路
圖4 低頻發(fā)射電路
3.1 跳碼芯片對數(shù)據(jù)的加密
MT3108使用前必須對芯片內(nèi)部64字節(jié)的EEPROM進行編程,在其中保存所有配置信息和加密參數(shù)。
若遙控有鍵按下,則MT3108上電并被喚醒,延時消抖后獲取按鍵信息。若所有鍵被按下,則進入學習模式;否則,取得按鍵信息,并加密同步計數(shù)值、識別碼和按鍵信息形成跳碼。無按鍵但距離接近1~2 m時,LF電路發(fā)來的串行數(shù)據(jù)也可以觸發(fā)加密電路形成跳碼。
圖5 射頻接收電路
即使連續(xù)兩次按鍵一樣,發(fā)送的跳碼信息也會不同。一次發(fā)送完成后,如該按鍵還處于按下狀態(tài),則發(fā)送數(shù)據(jù)結(jié)構(gòu)中的RPT位置1。傳輸?shù)木幋a數(shù)據(jù)共86位,第一部分44位未加密信息包括RPT位(1位)、VLOW位(1位)、按鍵信息(4位)和用戶序列號(16位)順序組合得到。第二部分16位隨機數(shù)信息是由均是16位的隨機數(shù)和系統(tǒng)序列號按位異或后得到的。第三部分是經(jīng)過加密運算后得到的48位跳碼信息。加密前的48位數(shù)據(jù)由2部分組成:第1部分由均是16位的隨機數(shù)和系統(tǒng)序列號按位異或后得到;第兩部分由相同的32位隨機數(shù)和32位同步計數(shù)器值按位異或后生成。編碼數(shù)據(jù)格式如表1所列。
表1 編碼數(shù)據(jù)格式
圖6 中央控制電路
PWM數(shù)據(jù)傳輸?shù)母袷剑洪_頭為由EEPROM確定數(shù)量(設為n)的引導碼,占空比為1/6,共6n×TE寬度;接著是長度為10TE寬度的低電平數(shù)據(jù)頭;然后是實際編碼信息,每位長度為3TE,格式為1X0,X=0表示高電平,X=1表示低電平,總長度為3TE×86=258 TE;最后是30 TE的低電平警戒位。
PWM數(shù)據(jù)傳輸格式如圖7所示。
圖7 PWM數(shù)據(jù)傳輸格式
3.2 軟件解碼
根據(jù)PWM數(shù)據(jù)格式,首先判斷接收引導碼。若低電平寬度大于5Te_max、高電平寬度>Te_max,則認為是非數(shù)據(jù)信號,合格的引導碼高低電平比例為1:5,由于傳輸過程中存在變形,可將門限提高至1:2~1:7。
if((rec_l_cnt>(2* rec_h_cnt))&&(rec_l_cnt<(7* rec_ h_cnt)))
receiver_flg=1; //接收到引導碼
由于引導碼有多個,則找到引導碼后需跳過其余的引導碼,并等待寬度為10TE的低電平數(shù)據(jù)頭,然后再接收實際數(shù)據(jù)信息(86位)。
接收86位數(shù)據(jù)信息時,為接收方便,可先收取前80位的數(shù)據(jù),最后6位的數(shù)據(jù)單獨接收。接收時,分別獲取高電平時間rec_h_cnt和低電平時間rec_l_cnt。若rec_h_ cnt<rec_l_cnt,則接收的數(shù)據(jù)為1,否則為0,逐次移位存在數(shù)組receive_dat[0]~receive_dat[10]中,receive_dat [10]存放的是最后6位,需要右移2位右對齊。
對接收到的數(shù)據(jù)進行解密:由于接收到的PWM波跳碼數(shù)據(jù)高地位與解碼庫內(nèi)部解碼所需數(shù)據(jù)相反,因此需要交換receive_dat[0-3]數(shù)據(jù)位置。
for(i=0;i<3;i++){
data_buf=receive_dat[i];
receive_dat[i]=receive_dat[5-i];
receive_dat[5-i]=data_buf;
}
將receive_dat[8]、receive_dat[9]的數(shù)據(jù)位置互換,然后提取PWM波中的USN數(shù)據(jù),即可用于解密。調(diào)用解密庫函數(shù)decrypt()進行解碼,解碼流程如圖8所示。
decrypt((uchar*)(&receive_dat[8]),(uchar*)receive_dat);
解碼后的CNT可用于數(shù)據(jù)驗證以提高安全性,根據(jù)用戶序列號正確性進行開門操作。
本文分析了基于MicroTiVo公司的MT3108芯片和微芯公司的PIC18F4520單片機的無鑰匙智能汽車門禁系統(tǒng)的硬件和軟件設計,針對門禁系統(tǒng)的安全性設計,開發(fā)了一款門禁系統(tǒng)。主要特點:
①交互通信的125 kHz低頻感應距離為1.5 m,高頻通信距離為70~80 m。
② 鑰匙體積小,功耗低。靜態(tài)功耗約3.2 μA,動態(tài)功耗約4 mA。
圖8 解碼流程
③跳碼芯片采用了公匙跳碼算法,提高了安全性。
本設計確保了每次密碼的唯一性,密碼不易被盜取,可廣泛應用于車輛、廠房、辦公等安防領(lǐng)域。
[1]孫楓舒,單武,陳勇,等.新型汽車防盜鑰匙系統(tǒng)設計[J].研究與開發(fā),2011(12):90-92.
[2]倪龍,和軍平,林廖軍.交互式無線汽車智能鑰匙系統(tǒng)設計[J].計算機測量與控制,2010,18(5):1136-1138.
[3]薛巨峰,喬鵬.基于KEELOQ技術(shù)的遙控門禁系統(tǒng)的實現(xiàn)[J].集成電路應用,2013,39(2):45-47.
Keyless Access Control System Based on Hopping Code Chip MT3108
Zhao Guoshu1,Zhou Liying2,Zhai Lixin1
(1.School of Intelligent Science and Control Engineering,Jinling Institute of Technology,Nanjing 211169,China;2.School of Mechanical and Electrical Engineering,Jinling Institute of Technology)
This paper introduces the design of a keyless access control system based on MT3108 of MicroTiVo company and the microcontroller PIC18F4520 of Microchip company.The hopping code chip MT3108 uses elliptic curve cryptography(ECC)algorithm which strengthens the security of access control system.This paper elaborates flow chart of the system,working principle of the hardware and the process of encryption and decryption.The result shows that the design meets the demand of practical application.
MT3108;PIC18F4520;hopping code;access control system
TN92
A
楊迪娜
2014-11-11)
本課題收到江蘇高校自然科學基金12KJB580003資助。