□梁劍平
(玉林師范學院 計算機科學與工程學院,廣西 玉林 537000)
基于STM32單片機的汽車防盜系統(tǒng)設(shè)計與實現(xiàn)
□梁劍平
(玉林師范學院 計算機科學與工程學院,廣西 玉林 537000)
本系統(tǒng)使用STM32單片機作為控制器.中央模塊控制器產(chǎn)生隨機碼作為密碼地址,通過無線方式發(fā)送到鑰匙模塊,鑰匙模塊根據(jù)地址發(fā)回加密信息,中央模塊對加密信息進行解密并校驗,返回校驗結(jié)果,同時根據(jù)校驗結(jié)果判斷是否要進行聲光報警;在解鎖后中央模塊可以更改加密方法和密碼;隨機密碼用EEPROM儲存,系統(tǒng)掉電時密碼信息不丟失,密碼信息也不能通過無線遙控方式進行更改或泄露,提高了汽車防盜系統(tǒng)的安全性.本系統(tǒng)經(jīng)過多次試驗,性能穩(wěn)定,取得很好的效果,在汽車防盜方面有重要的研究意義.
汽車防盜;加密;無線通信;報警
隨著人們生活水平的不斷提高,汽車越來越成為人們生活中不可缺少的一部分.汽車數(shù)量增多,車輛被盜的數(shù)量也逐年上升,這給社會帶來極大的不安定因素,汽車的安全是汽車駕駛?cè)藛T最關(guān)心的一個問題[1].目前的防盜系統(tǒng)只實現(xiàn)了單向的通信,并且加密方法簡單,容易被截獲破解.本設(shè)計利用雙向通信和隨機加密方法實現(xiàn)的汽車防盜系統(tǒng),不但加密方法復雜,而且可以在需要時更改加密方法和密碼,提高了汽車防盜系統(tǒng)的安全性,具有非常重要的意義.
本系統(tǒng)總體框架由中央模塊和鑰匙模塊組成(如圖1所示),中央模塊安裝在車上,鑰匙模塊手持.兩個模塊間通過無線雙向通信,中央模塊實現(xiàn)解密、驗證和修改功能,鑰匙模塊實現(xiàn)開鎖和關(guān)鎖功能.
圖1 汽車防盜系統(tǒng)總體結(jié)構(gòu)示意圖
電路開始工作后,兩個模塊都處于等待接收信號狀態(tài),中央模塊等待開鎖關(guān)鎖,鑰匙模塊等待中央模塊隨時發(fā)送回來車況信息.兩個電路模塊設(shè)置好一樣的密碼,每個密碼都有不同的地址,主要鑰匙模塊向中央模塊詢問是否可以開始解鎖,中央模塊便開始發(fā)送8個密碼的隨機地址,鑰匙模塊根據(jù)接收的地址查到相應的密碼,加密后再發(fā)回,中央模塊進行密碼的校驗,再根據(jù)校驗的結(jié)果進行相應的動作.
本系統(tǒng)硬件電路主要由STM32單片機[2]最小系統(tǒng),電源模塊,無線通信電路模塊,儲存芯片電路,液晶顯示電路組成.STM32單片機作為一個主控制器,把不同電路模塊組合起來形成一個完整的電路系統(tǒng),電路整體性能穩(wěn)定(硬件電路框圖如圖2所示).下面將對各個模塊電路的硬件原理進行分析說明.
圖2 汽車防盜系統(tǒng)硬件電路框圖
3.1 STM32單片機最小系統(tǒng)電路
本系統(tǒng)用STM32F103VET6作為主控制器,STM32F103VET6是STM公司基于ARM Cortex-M3內(nèi)核的32位單片機,工作頻率可高達72M,比8/16位單片機處理速度更高效[3-4].STM32F103VET6有豐富的外設(shè),512KB內(nèi)部可編程Flash,64KB內(nèi)部RAM,3個SPI接口,5個UART接口,多達80可編程GPIO,完全滿足主控功能需求.
圖3 無線通信模塊電路原理圖
3.2 穩(wěn)壓電源電路
STM32單片機的工作電壓為5V,平時電池等電源沒有5V.在本設(shè)計中設(shè)計了一個穩(wěn)壓電源電路,用的是常見的線性電源芯片L7805.
L7805的輸入電壓范圍是6~21V,在L7805的輸入輸出端接兩個電容,進行慮波,減少紋波的影響.由于無線通信芯片工作電壓是3.3V,在L7805后面再進行3.3V穩(wěn)壓,使用的是ASM1117-3.3V穩(wěn)壓芯片,它的外圍電路和L7805是一樣的.L7805是線性電源,發(fā)熱量比較大,要加散熱片[5-6].
3.3 無線通信芯片電路
CC1101[7]是一款無線收發(fā)芯片,本設(shè)計設(shè)置它的工作頻率為433M,它與STM32單片機通過SPI通信方式連接,只需要4根線,CC1101配置時要另接兩根線,如圖3中的GDO0和GDO2.
3.4 報警電路
電路系統(tǒng)中報警主要是聲和光. LED用倒灌式,單片機輸出高電平時,LED不亮,輸出低電平時亮.聲音的產(chǎn)生用脈沖驅(qū)動,通過一只NPN三極管控制開和關(guān).只要通過單片機給三極管的基極一個高電平,它就導通,給低電平就關(guān),一開一關(guān)喇叭振動就能出聲音,通過控制脈沖的頻率就能發(fā)出不同的聲音,達到報警的目的.
3.5 儲存芯片電路
Atmel公司的AT24C02是256字節(jié)的EEPROM,單片機通過I2C方式通信控制AT24C02,只要兩根線SDA和SCK,分別是時鐘線和數(shù)據(jù)線.I2C總線可以同時掛多個器件,器件間是線與關(guān)系,需要外加4.7K的上拉電阻.
3.6 液晶顯示電路
LCD1602與單片機是并口通信,它共有16個端口,與STM32單片機的連接方式如圖4所示.
圖4 液晶顯示電路原理圖
4.1 軟件設(shè)計的總體結(jié)構(gòu)框圖
圖5 系統(tǒng)軟件總體結(jié)構(gòu)框圖
系統(tǒng)軟件設(shè)計中中央模塊用定時器產(chǎn)生隨機碼,通過無線方式發(fā)到鑰匙模塊,這個隨機碼是密碼的地址,而鑰匙模塊接收到地址后根據(jù)地址從EEPROM查到密碼,加密后發(fā)回中央模塊.如果有不法分子在附近竊聽到信號,其竊聽到的是地址和加密后的密碼,每次地址都不同,密碼和加密方法不公開的話是無法通過校驗的,因為在本系統(tǒng)中只有約定好的密碼和加密方法才能通過密碼的核驗.
修改密碼時為了保證兩個模塊密碼一致,每次中央模塊發(fā)出新的密碼鑰匙模塊都返回一個校驗碼,保證中央模塊和鑰匙模塊的密碼是一致.
4.2 主程序的設(shè)計
STM32單片機作為主控制器,把各個功能模塊連接起來,實現(xiàn)各種功能,兩個模塊的程序流程分別如圖6和圖7所示.
圖6 中央模塊電路的主程序流程圖
圖7 鑰匙模塊電路的主程序流程圖
4.3 隨機碼產(chǎn)生程序設(shè)計
中央模塊電路產(chǎn)生的隨機碼是EEPROM的地址,由于設(shè)計中的EEPROM是256字節(jié)的,地址范圍是0~255,共256個儲存單元,所以,把定時器0設(shè)置成方式2,計數(shù)初值設(shè)置為0,即計數(shù)范圍也為0~255,正好與EEPROM的地址一致.在系統(tǒng)程序開始,就設(shè)置好定時器0,并開始計時,定時器就不斷地在0~255這個范圍內(nèi)循環(huán),收到鑰匙模塊發(fā)過來信號就隨機取出當前值,取一個后延時一段時間再取一個,連續(xù)取8個.而這這個延時與取到的當前值有關(guān).程序流程如圖8所示.
圖8 隨機碼產(chǎn)生流程圖
4.4 雙向無線通信程序設(shè)計
無線通信芯片CC1100E與STM32單片機通過SPI方式通信,正確配置好CC1100E后,在一個接收的子程序 INT8U halRfReceivePacket(INT8U *rxBuffer, INT8U *length)中,如果接收到信號,它會返回一個‘1’,如果沒有接收到信號,它返回一個‘0’.通過返回值的不同就可以判斷是否接收到信號,接收到信號就可以讀取數(shù)據(jù).
如果接收到信號后,調(diào)用halRfReceivePacket()后它返回一個‘1’,接著在RxBUF[]數(shù)組里就可以讀到接收到的數(shù)據(jù).
中央模塊電路發(fā)出信號時鑰匙模塊一定要在等待接收信號,否則信號一發(fā)完就消失了.同樣,鑰匙模塊發(fā)送信號時中央模塊要等待接收.
4.5 密碼修改和校驗程序設(shè)計
在開鎖后才可以修改密碼,修改密碼時要通過無線通信方式使兩個模塊密碼一致,在程序設(shè)計中是這樣實現(xiàn)的:開鎖后,只能從中央模塊修改密碼,而不能通過遙控端修改,保證密碼的安全.修改密碼時需要從鑰匙模塊確認,主機收到鑰匙模塊的確認信號才開始修改密碼.這樣可以防止有不法分子在附近竊聽新的密碼.
鑰匙模塊確認后開始產(chǎn)生隨機密碼,產(chǎn)生的方法和前面的3.3小節(jié)一樣,從定時器中不斷地抽取計數(shù)值TL0.抽取512個,分別儲存到兩片AT24C02中.
中央模塊寫完后開始向鑰匙模塊同步密碼,512個密碼分64次發(fā)送,每次發(fā)8個,鑰匙每接收8個密碼就向中央模塊原樣發(fā)回接收數(shù)據(jù),作為中央模塊發(fā)送下一次的開始.程序流程如圖9所示.
圖9 中央模塊與鑰匙模塊同步密碼流程圖
鑰匙模塊接收密碼時要與中央模塊在時間上配合好,中央模塊發(fā)送時,鑰匙模塊等待接收,鑰匙模塊發(fā)送時,中央模塊等待接收.程序流程圖如圖10所示.
圖10 鑰匙模塊接收密碼程序流程圖
經(jīng)多次調(diào)試和修改,電路系統(tǒng)實現(xiàn)了無線模塊的雙向通信,中央模塊電路實現(xiàn)了解密和校驗,開啟車輛,修改密碼功能.鑰匙模塊實現(xiàn)了開鎖和關(guān)鎖功能.下面兩個表是對系統(tǒng)進行開鎖和關(guān)鎖實驗測試的結(jié)果.
表11 開鎖測試統(tǒng)計
表12 關(guān)鎖測試統(tǒng)計
從上面測試結(jié)果可以看出,本系統(tǒng)的關(guān)鎖和解鎖成功率較高,性能穩(wěn)定,具有一定的實用性.但偶爾還是會有一兩次失誤,原因是無線模塊通信時受到環(huán)境的電磁干擾,導致通信失敗,不過在本系統(tǒng)中可以通過轉(zhuǎn)換一下遙控的方向來改觀通信質(zhì)量.
本系統(tǒng)用STM32單片機通過無線通信的方式實現(xiàn)了汽車的鑰匙模塊和中央模塊的雙向通信.綜上,本系統(tǒng)有以下這些特點:中央模塊對鑰匙模塊發(fā)過來的加密信息進行校驗,并返回校驗結(jié)果,中央模塊根據(jù)校驗結(jié)果進行相應動作;中央模塊在解鎖后可以更改密碼和改加密方法,中央模塊修改密碼和加密方法后可以通過無線通信方式使兩個模塊的密碼和加密方法一致;隨機密碼用EEPROM儲存,系統(tǒng)掉電時密碼信息不丟失,密碼信息也不能通過無線遙控更改或泄露出去,提高了汽車的安全性.本系統(tǒng)經(jīng)過多次試驗,性能良好.之后的進一步研究是如何改進系統(tǒng)的加密方法及如何減少系統(tǒng)的電磁干擾. ■
[1]唐輝勝,劉舒.關(guān)于當前汽車盜竊產(chǎn)業(yè)鏈實證研究報告[J].安防科技,2010,(10):60-64.
[2]STM32F103xC, STM32F103xD, STM32F103xE Data Sheet[Z]. STMicroelectronics.
[3]劉火良,楊森.STM32庫開發(fā)實戰(zhàn)指南[M].北京:機械工業(yè)出版社,2013.
[4]喻金錢,喻 斌.STM32F系列ARM Cortex M3核微控制器開發(fā)與應用[M].北京:清華大學出版社,2011.
[5]徐愛軍.單片機原理實用教程基于Proteus虛擬仿真[M].北京:電子工業(yè)出版社,2012.
[6]劉德全.Proteus8 電子線路設(shè)計與仿真[M].北京:清華大學出版社,2014.
[7]CC1101Low-Cost Low-Power Sub-1GHz RF Transceiver (Enhanced CC1100) Data Sheet [Z]. Texas Instruments.
【責任編輯 謝明俊】
Design and Implementation of Automobile Alarm system Based on STM32 Microcontroller
LIANG Jian-ping
(Computer Science Department, Yulin Normal University, Yulin, Guangxi 537000)
This system use STM32 MCU as the controller. The random code generated by the central module controller is used as the password address, which is sent to the key module through wireless means, and the key module send the encrypted information according to the address. The central module decodes and verifies the encrypted information, send back the verification result and determine whether to conduct the acousto-optic alarm according to the calibration results. After the decoding, central module can change the decoding method and password; Random password can be stored in EEPROM so that the password information will lose when there is power failure. Password information cannot be changed or leaked through wireless remote control, greatly improve the auto security system. Through many experiments, the system shows stable performance and achieves good effect, so this system has important research meaning in auto security.
auto security; encryption; wireless communication; alarm
TP277
A
1004-4671(2015)05-0128-07
2015-06-02
廣西高校科學技術(shù)研究項目(201204LX339);廣西高??茖W技術(shù)研究項目(YB2014321)。
梁劍平(1987~),女,廣西玉林人,玉林師范學院計算機科學與工程學院教師。研究方向:自動控制、嵌入式。