郭晶
摘 要: 主要完成了一種汽車遠(yuǎn)程防盜報(bào)警系統(tǒng)裝置總體設(shè)計(jì)方案的構(gòu)建,詳細(xì)闡述了系統(tǒng)的硬件構(gòu)成及軟件實(shí)現(xiàn)路徑,該系統(tǒng)的核心控制器采用了STM32F103單片機(jī),汽車防盜報(bào)警功能主要通過(guò)中央模塊控制器和鑰匙模塊實(shí)現(xiàn),中央模塊控制器通過(guò)無(wú)線方式將生成的密碼地址(一種隨機(jī)碼)發(fā)送給鑰匙模塊,然后中央模塊會(huì)對(duì)接收到的由鑰匙模塊發(fā)回的加密信息進(jìn)行解密和校驗(yàn),并返回校驗(yàn)結(jié)果,系統(tǒng)據(jù)此判斷是否發(fā)出聲光報(bào)警,通過(guò)無(wú)線遙控方式不能更改或泄露密碼信息。
關(guān)鍵詞: 汽車防盜報(bào)警系統(tǒng); STM32F103; 中央模塊; 鑰匙模塊; 無(wú)線通信
中圖分類號(hào): TP 393 ? ? ?文獻(xiàn)標(biāo)志碼: A
Abstract: This paper mainly completes the construction of a general design scheme for a car remote anti-theft alarm system device, and details the systems hardware composition and software implementation path. The core controller of the system uses the STM32F103 single-chip microcomputer. The module controller and the key module are disigned. The central module controller wirelessly sends the generated password address (a random code) to the key module, and then the central module decrypts the encrypted information sent back by the key module, and verifies and returns the verification result. Based on this, the system judges whether an audible and visual alarm is issued. The password information cannot be changed or leaked through wireless remote control.
Key words: car anti-theft alarm system; STM32F103; central module; key module; wireless communication
0 引言
快速發(fā)展的社會(huì)經(jīng)濟(jì)及科學(xué)技術(shù)促使汽車成為一項(xiàng)不可或缺的交通工具,隨著汽車擁有量的不斷增加在人們出現(xiàn)帶來(lái)極大便利的同時(shí),汽車被盜的案件越來(lái)越普遍,汽車失竊案件也不斷發(fā)生,帶來(lái)不同程度的經(jīng)濟(jì)損失。通過(guò)在汽車上安裝有效的防盜設(shè)備成為解決上述問(wèn)題的重要手段,汽車防盜技術(shù)主要經(jīng)歷了機(jī)械式、電子式、芯片式、和網(wǎng)絡(luò)式防盜技術(shù)幾種發(fā)展階段,目前國(guó)內(nèi)以電子式防盜技術(shù)應(yīng)用較為普遍,為滿足市場(chǎng)需求現(xiàn)階段的汽車大多安裝了相應(yīng)的防盜設(shè)備,犯罪分子的但面對(duì)作案手段多樣化,傳統(tǒng)的汽車防盜系統(tǒng)已難以滿足現(xiàn)代汽車防盜的需求,普遍存在遠(yuǎn)程防盜報(bào)警效果不佳、防盜報(bào)錯(cuò)率高、缺少車輛定位功能等問(wèn)題和不足[1]。針對(duì)目前汽車防盜報(bào)警系統(tǒng)存在的這些問(wèn)題,本文設(shè)計(jì)了一種基于單片機(jī)的防盜報(bào)警系統(tǒng)。
1 汽車防盜報(bào)警系統(tǒng)總體設(shè)計(jì)方案
隨著汽車應(yīng)用的不斷普及車輛被盜問(wèn)題日益突出,給人們的財(cái)產(chǎn)安全帶來(lái)較大的危害,并增加了社會(huì)不安和不和諧因素。汽車的安全是市場(chǎng)用戶的一項(xiàng)關(guān)注重點(diǎn),目前市場(chǎng)上已有多種汽車防盜產(chǎn)品投入到了實(shí)際應(yīng)用,但仍然普遍存在防盜效果不佳、報(bào)警誤報(bào)率較高等問(wèn)題。汽車防盜報(bào)警系統(tǒng)大多僅實(shí)現(xiàn)了單向通信,因加密方法較為簡(jiǎn)單而極易被破解。為此本文完成了一種汽車防盜報(bào)警系統(tǒng)的設(shè)計(jì),該系統(tǒng)采用隨機(jī)加密方法實(shí)現(xiàn)了雙向通信過(guò)程,提高了加密方法的復(fù)雜程度,并且可根據(jù)實(shí)際需要對(duì)密碼和加密方法進(jìn)行更改,從而使汽車防盜報(bào)警性能及車輛安全性得到顯著提升,具有一定的實(shí)際應(yīng)用價(jià)值。
本文在設(shè)計(jì)汽車防盜報(bào)警系統(tǒng)時(shí)選用了具有功能強(qiáng)大、實(shí)時(shí)性好等優(yōu)勢(shì)的STM32F103單片機(jī)(ST公司)作為控制器,并結(jié)合運(yùn)用現(xiàn)代無(wú)線通信技術(shù)在不受距離約束的前提下實(shí)現(xiàn)了雙向通信功能,能夠直接向車主手機(jī)發(fā)送汽車狀態(tài)信息,實(shí)現(xiàn)一對(duì)一防盜報(bào)警功能,所構(gòu)建的防盜報(bào)警系統(tǒng)的結(jié)構(gòu)示意圖,如圖1所示。
主要由人體感應(yīng)、振動(dòng)等傳感器構(gòu)成的信息采集模塊負(fù)責(zé)完成對(duì)汽車警情相關(guān)信息的采集,具體由傳感器向單片機(jī)微處理器傳送所采集到的警情信息并由其進(jìn)行處理后,根據(jù)處理結(jié)果執(zhí)行相應(yīng)的報(bào)警程序,向車主手機(jī)發(fā)送短信報(bào)警信息,報(bào)警器發(fā)出語(yǔ)音警告(以不同警情為依據(jù))。車主想要查詢車輛狀態(tài)時(shí)可隨時(shí)向系統(tǒng)發(fā)送指令。設(shè)防和撤防通過(guò)無(wú)線遙控器控制。此外,系統(tǒng)在防盜器處于設(shè)防狀態(tài)下會(huì)控制后視鏡折疊,撤防狀態(tài)下則展開后視鏡,對(duì)后視鏡的控制通過(guò)使用一個(gè)步進(jìn)電機(jī)(負(fù)責(zé)轉(zhuǎn)動(dòng)后視鏡)和兩個(gè)按鍵(負(fù)責(zé)增加或減小角度)完成,駕駛員可根據(jù)需要通過(guò)按鍵對(duì)后視鏡角度減小設(shè)定,設(shè)定的角度值顯示于液晶顯示屏幕上[1]。
(1) 信息采集模塊,主要由后視鏡角度采集電路及相應(yīng)傳感器(人體感應(yīng)、振動(dòng)等傳感器)構(gòu)成,負(fù)責(zé)檢測(cè)包括汽車被撞、被砸、被晃動(dòng)、被牽動(dòng)、是否有人進(jìn)入車內(nèi)等的不安全因素,STM32F103的PC10引腳連接數(shù)據(jù)輸出端。由STM32F103 的PB0引腳對(duì)振動(dòng)傳感器檢測(cè)到的相關(guān)信息進(jìn)行處理。防盜報(bào)警系統(tǒng)中左右兩個(gè)角度傳感器同STM32F103 的PC4、PC5引腳相連完成相關(guān)角度數(shù)據(jù)的輸入,再將模擬電壓量通過(guò)兩個(gè)引腳的A/D轉(zhuǎn)換功能完成到數(shù)字量的轉(zhuǎn)換后顯示于LCD1602屏幕上[2]。
(2) GSM模塊選用了支持串行接口的EM310GSM(華為公司),包含標(biāo)準(zhǔn)的SIM卡接口,同單片機(jī)的RXD0和TXD0引腳相連,其同外界的串行通信過(guò)程通過(guò)支持?jǐn)?shù)據(jù)寬度、數(shù)據(jù)停止位、奇偶校驗(yàn)或無(wú)校驗(yàn)(可編程)的UART(支持波特率掉電保存)接口實(shí)現(xiàn),同單片機(jī)間的通信使用AT指令進(jìn)行控制。
(3) 錄音時(shí)間長(zhǎng)達(dá)790s的WT588D語(yǔ)音模塊,供電電壓為2.8~3.6V,包含8kHz采樣時(shí)、32Mb存儲(chǔ)器,可使系統(tǒng)的語(yǔ)音提醒需求得到有效滿足,報(bào)警系統(tǒng)語(yǔ)音提醒的分貝較高,選用性價(jià)比較高的TDA2030作為功率放大器(額定功率達(dá)14W),語(yǔ)音模塊電路的R1和C1并聯(lián)到地接功放,采用DAC接功放的輸出形式實(shí)現(xiàn)對(duì)大功率揚(yáng)聲器的有效驅(qū)動(dòng),采用3線串口模式控制語(yǔ)音模塊同STM32F103間的連接,P01、P02、P03分別對(duì)應(yīng)DATA數(shù)據(jù)接口、片選CS和CLK時(shí)鐘,并分別連接STM32F103的PC7、PC/8、PC6,WT588D只負(fù)責(zé)接收STM32F103發(fā)送的信息(包括數(shù)據(jù)、指令和時(shí)鐘信號(hào)等)無(wú)需發(fā)送數(shù)據(jù)。BUSY代表忙信號(hào)輸出端,發(fā)光二極管在輸出低電平時(shí)發(fā)光對(duì)應(yīng)放音狀態(tài)[3]。
(4) 控制模塊設(shè)計(jì),除了油路控制電路和后視鏡控制電路外,本系統(tǒng)控制模塊的關(guān)鍵在于安裝在車上的中央模塊(主要負(fù)責(zé)實(shí)現(xiàn)解密、驗(yàn)證和修改功能)和手持的鑰匙模塊(主要負(fù)責(zé)實(shí)現(xiàn)開鎖和關(guān)鎖功能),兩個(gè)模塊的通信過(guò)程,如圖2所示。
中央模塊和鑰匙模塊采用無(wú)線雙向通信模式,兩個(gè)電路模塊設(shè)置相同的密碼,不同密碼對(duì)應(yīng)不同的地址,在系統(tǒng)開始工作后,中央模塊等待開鎖關(guān)鎖,鑰匙模塊等待車況信息(由中央模塊發(fā)送),鑰匙模塊詢問(wèn)中央模塊是否開始解鎖,鑰匙模塊根據(jù)接收的隨機(jī)地址(包含8個(gè)密碼,由中央模塊發(fā)送)對(duì)相應(yīng)的密碼進(jìn)行查看和加密后,再發(fā)送到中央模塊由其校驗(yàn)密碼并據(jù)此執(zhí)行相應(yīng)的動(dòng)作,為避免系統(tǒng)掉電時(shí)丟失密碼信息,中央模塊產(chǎn)生的隨機(jī)密碼用EEPROM儲(chǔ)存,并且在解鎖后能夠?qū)γ艽a及加密方法進(jìn)行更改,使汽車防盜系統(tǒng)的穩(wěn)定性和安全性得到顯著提高。經(jīng)過(guò)多次試驗(yàn)測(cè)試后驗(yàn)證了本文所構(gòu)建系統(tǒng)的有效性,基本達(dá)到了預(yù)期的要求,取得了良好的防盜報(bào)警效果,為優(yōu)化和完善汽車防盜功能提供參考[3]。
2 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)的硬件主要包括電源模塊、液晶顯示模塊、STM32F103最小系統(tǒng)、無(wú)線通信模塊、儲(chǔ)存芯片等,為確保電路整體性能的穩(wěn)定,STM32F103作為系統(tǒng)主控制器主要負(fù)責(zé)連接和組合不同模塊從而形成一個(gè)完整的電路系統(tǒng),系統(tǒng)硬件電路框圖,如圖3所示。
各模塊電路的硬件原理為:(1) STM32F103最小系統(tǒng)電路,主控制器選用32位的基于ARM Cortex內(nèi)核的單片機(jī)STM32F103(STM公司),其工作頻率高達(dá)72M,處理速度較快,包含豐富的外設(shè)、5個(gè)UART接口、RAM(64KB)、Flash(512KB,可編程)、SPI接口3個(gè)、可編程GPIO,可使防盜報(bào)警系統(tǒng)的主控功能需求得到有效滿足。(2) 穩(wěn)壓電源電路,為滿足單片機(jī)工作對(duì)5V電壓的使用需求采用線性電源芯片L7805(輸入電壓在6~21 V之間,發(fā)熱量較大,要加散熱片)設(shè)計(jì)了一個(gè)穩(wěn)壓電源電路,輸入輸出端接兩個(gè)電容的L7805可通過(guò)慮波減少紋波的影響,因無(wú)線通信芯片使用3.3 V電壓,需在L7805的基礎(chǔ)上使用外圍電路相同的穩(wěn)壓芯片ASM1117-3.3 V[4]。(3) 無(wú)線通信芯片電路,通過(guò)SPI通信方式只需要4根線即可同STM32F103相連,具體選用了無(wú)線收發(fā)芯片CC1101,另接GDO0和GDO2兩根線,設(shè)置其工作頻率為433M。(4) 報(bào)警電路,本文系統(tǒng)主要采用光和聲兩種報(bào)警方式,采用倒灌式的LED在單片機(jī)輸出高電平時(shí)不亮、在低電平時(shí)亮。通過(guò)脈沖驅(qū)動(dòng)產(chǎn)生聲音,開關(guān)狀態(tài)的控制過(guò)程采用一只NPN三極管完成,給三極管基極一個(gè)高電平(通過(guò)單片機(jī))導(dǎo)通、給低電平關(guān)閉,從而使喇叭振動(dòng)發(fā)出不同的聲音(通過(guò)控制脈沖的頻率),發(fā)出報(bào)警提示。(5) 儲(chǔ)存芯片電路,選用了AT24C02(Atmel公司,一種EEPROM),I2C總線可同時(shí)掛多個(gè)器件(器件間需外加4.7 K的上拉電阻),由單片機(jī)通過(guò)I2C通信方式(具體使用SDA和SCK即時(shí)鐘線和數(shù)據(jù)線)對(duì)其進(jìn)行控制。(6) 液晶顯示模塊采用了包含16個(gè)端口的LCD1602,采用并口通信方式連接單片機(jī)[5]。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 總體程序流程
本文采用C語(yǔ)言編寫完系統(tǒng)程序后將其寫入單片機(jī),采用MDK編譯環(huán)境完成單片機(jī)源程序的編寫,編譯后產(chǎn)生的程序代碼為.heX,然后在目標(biāo)單片機(jī)的flash中下載.heX文件(通過(guò)JTAG下載線完成)。系統(tǒng)總程序流程,如圖4所示。
系統(tǒng)初始化STM32F103后檢測(cè)車輛是否為設(shè)防狀態(tài),采用無(wú)需軟件編碼的遙控器PT2262只需對(duì)接收模塊的設(shè)防控制接收情況進(jìn)行檢測(cè),在不設(shè)防狀態(tài)下執(zhí)行遙控接口掃描及后視鏡控制循環(huán)操作,在設(shè)防狀態(tài)控制后視鏡閉合折疊,同時(shí)啟動(dòng)人體感應(yīng)模塊、振動(dòng)模塊完成對(duì)警情信息的隨時(shí)采集和上傳,系統(tǒng)調(diào)用GSM通信程序在車主查詢各接口狀態(tài)時(shí)(通過(guò)短信)發(fā)送相應(yīng)狀態(tài)信息。系統(tǒng)在發(fā)生警情時(shí)通過(guò)檢測(cè)單片機(jī)接口判斷具體情況(振動(dòng)或有人非法入侵),并據(jù)此調(diào)用相應(yīng)子程序(人體感應(yīng)或振動(dòng)報(bào)警)完成相應(yīng)處理后,再由單片機(jī)控制遙控器決定設(shè)防或撤防,后視鏡在撤防后會(huì)展開到設(shè)定角度[6]。
3.2 軟件主程序設(shè)計(jì)
系統(tǒng)由STM32單片機(jī)連接各功能模塊實(shí)現(xiàn)各種功能,系統(tǒng)軟件總體結(jié)構(gòu)示意圖如圖5所示。
中央模塊通過(guò)無(wú)線方式將對(duì)應(yīng)密碼地址的隨機(jī)碼(由定時(shí)器產(chǎn)生)發(fā)送至鑰匙模塊,由鑰匙模塊在EEPROM根據(jù)地址(每次地址都不同)查找密碼并加密后返回信息,即使能夠竊聽到信號(hào)也是地址和加密后的密碼,不知道約定好的密碼和加密方法的情況下無(wú)法通過(guò)校驗(yàn)。修改密碼時(shí),鑰匙模塊在中央模塊每發(fā)出一個(gè)新密碼時(shí)均會(huì)返回一個(gè)校驗(yàn)碼,以確保兩個(gè)模塊密碼一致。中央模塊主程序流程(鑰匙模塊在系統(tǒng)初始化后需判斷信號(hào)的發(fā)送情況,其余流程同中央模塊相同)[7],如圖6所示。
3.3 隨機(jī)碼產(chǎn)生程序及雙向無(wú)線通信程序設(shè)計(jì)
對(duì)應(yīng)EEPROM地址(256字節(jié),地址范圍在0~255間)的隨機(jī)碼由中央模塊產(chǎn)生,EEPROM共包含256個(gè)儲(chǔ)存單元,為使計(jì)數(shù)范圍也為0~255,設(shè)置定時(shí)器0為方式2、計(jì)數(shù)初值為0,系統(tǒng)開始運(yùn)行后設(shè)置定時(shí)器0并開始計(jì)時(shí),在0~255范圍內(nèi)持續(xù)循環(huán)的定時(shí)器接收到信號(hào)后(由鑰匙模塊發(fā)送)隨機(jī)取出當(dāng)前值,間隔一段時(shí)間再取一個(gè),連續(xù)取8個(gè)。CC1100E無(wú)線通信芯片通過(guò)SPI同單片機(jī)通信,通過(guò)接收子程序INT8U halRfReceivePacket(rxBuffer,length)的返回值判斷是否接收到信號(hào),接收到信號(hào)時(shí)返回一個(gè)1、未接收到則返回一個(gè)0,接收到信號(hào)后調(diào)用halRfReceivePacket()后返回一個(gè)1即可讀取接收到的數(shù)據(jù)(在RxBUF[]數(shù)組里讀?。?。鑰匙模塊在中央模塊發(fā)出信號(hào)后需處于等待接收信號(hào)狀態(tài)[8]。
3.4 密碼修改和校驗(yàn)程序設(shè)計(jì)
開鎖后僅可在中央模塊中修改密碼,以保證密碼安全。且修改密碼時(shí)需在主機(jī)收到確認(rèn)信號(hào)(由鑰匙模塊發(fā)送)后方可進(jìn)行,以避免新的密碼被竊聽。鑰匙模塊確認(rèn)后的隨機(jī)密碼產(chǎn)生方法同上文所述相同,從定時(shí)器中抽取512個(gè)計(jì)數(shù)值TL0并在AT24C02中存儲(chǔ),修改完后向鑰匙模塊同步密碼,分64次發(fā)送512個(gè)密碼,鑰匙每接收一次密碼即原樣返回接收數(shù)據(jù),中央模塊據(jù)此發(fā)送下一次。
3.5 系統(tǒng)性能測(cè)試
為檢測(cè)本文所設(shè)計(jì)相同的有效性進(jìn)行了實(shí)驗(yàn)測(cè)試,經(jīng)多次調(diào)試和修改后有效的實(shí)現(xiàn)了無(wú)線雙向通信、修改密碼及報(bào)警功能,中央模塊完成了準(zhǔn)確的解密和校驗(yàn)過(guò)程并開啟了車輛,鑰匙模塊完成了相應(yīng)的開關(guān)鎖功能,實(shí)驗(yàn)測(cè)試結(jié)果如表1所示。
本系統(tǒng)具有較高的關(guān)、解鎖成功率,具有一定的實(shí)用性。發(fā)生的失誤主要由無(wú)線通信受環(huán)境電磁干擾導(dǎo)致,可通過(guò)轉(zhuǎn)換遙控方向提高通信質(zhì)量。
4 總結(jié)
本文采用STM32單片機(jī)構(gòu)建的汽車防盜報(bào)警系統(tǒng)的功能主要通過(guò)所設(shè)計(jì)的中央模塊和鑰匙模塊實(shí)現(xiàn),通過(guò)無(wú)線通信方式實(shí)現(xiàn)了遠(yuǎn)程雙向通信功能,通過(guò)無(wú)線遙控不能更改、泄露密碼信息,該系統(tǒng)由中央模塊負(fù)責(zé)完成對(duì)加密信息(由鑰匙模塊發(fā)送)的校驗(yàn)過(guò)程,并根據(jù)校驗(yàn)結(jié)果執(zhí)行相應(yīng)動(dòng)作,解鎖后可更改密碼和加密方法(根據(jù)實(shí)際需要通過(guò)中央模塊完成),修改后通過(guò)無(wú)線通信方式確保同鑰匙模塊的加密方法相同,采用EEPROM儲(chǔ)存隨機(jī)密碼避免了密碼信息的丟失,顯著提高了汽車的安全性。
參考文獻(xiàn)
[1] 牟如,強(qiáng)李樂(lè).基于PLC的太陽(yáng)能自防盜汽車防護(hù)裝置設(shè)計(jì)[J].機(jī)械設(shè)計(jì)與研究,2019(2):12-15.
[2] 鐘濱,王亞星.多功能汽車移動(dòng)視頻監(jiān)控防盜報(bào)警系統(tǒng)[J].現(xiàn)代工業(yè)經(jīng)濟(jì)和信息化,2019(12):46-47.
[3] 孫嘉興,朱寶全,王飛奇,等.基于Arduino控制的汽車進(jìn)入與防盜報(bào)警系統(tǒng)[J].中小企業(yè)管理與科技(上旬刊),2019(3):153-155.
[4] 方澤強(qiáng),黃劍鋒. 一種機(jī)動(dòng)車可定位自動(dòng)報(bào)警智能防盜系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2017(1):102-104.
[5] 李政清,關(guān)曉磊. 基于北斗RDSS的遠(yuǎn)程環(huán)境監(jiān)測(cè)預(yù)警系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2016(6):40-42.
[6] 袁姜紅,陳二陽(yáng),蔣毅.基于嵌入式的車載視頻監(jiān)控防盜系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].安陽(yáng)師范學(xué)院學(xué)報(bào),2019(5):50-52.
[7] 宮喚春.基于單片機(jī)的汽車防盜報(bào)警系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].汽車工程師,2018(5):28-30.
[8] 鄭乾,李馥安,武超,等. 基于STC89C51單片機(jī)和GSM的汽車防盜系統(tǒng)設(shè)計(jì)[J].河北北方學(xué)院學(xué)報(bào)(自然科學(xué)版), 2019(5):36-41.
(收稿日期: 2020.03.12)