劉剛鑫 古麗米拉·克孜爾別克* 侯正清 白新月 毛一新 陳飛陽(yáng)
(新疆農(nóng)業(yè)大學(xué)計(jì)算機(jī)與信息工程學(xué)院,新疆 烏魯木齊830000)
全國(guó)每年被盜自行車車輛數(shù)量多,不僅給國(guó)家和社會(huì)造成不小的經(jīng)濟(jì)損失,而且還對(duì)廣大的自行車車主造成了不便,且自行車被盜后很難追回,因此將現(xiàn)代電子信息技術(shù)運(yùn)用到自行車防盜和保障騎行者中具有重要意義,借此設(shè)計(jì)希望能有效的減少,自行車被盜案和自行車交通事故的發(fā)生,挽回一些不可必要的財(cái)產(chǎn)損失和人員傷亡。
本文所設(shè)計(jì)的自行車防盜鎖由主控芯片、震動(dòng)傳感器模塊、GSM模塊、GPS模塊、液晶顯示模塊及超聲波測(cè)速模塊組成。系統(tǒng)框圖如圖1。單片機(jī)作為系統(tǒng)的控制核心,控制著系統(tǒng)的執(zhí)行動(dòng)作。通過(guò)串口1、串口2分別實(shí)現(xiàn)與GPS模塊和GSM模塊的通信。首先,系統(tǒng)通過(guò)GPS模塊來(lái)獲取到單車所在的地理位置信息。其次,單片機(jī)通過(guò)I/O口直接與震動(dòng)傳感器模塊的輸出引腳連接以判斷是否有異常震動(dòng)存在。若存在異常震動(dòng),單片機(jī)將給GSM模塊發(fā)送發(fā)短信的相關(guān)AT命令,GSM模塊將向在程序中已經(jīng)設(shè)定好的電話號(hào)碼發(fā)送短信,短信內(nèi)容包括地理位置信息和相關(guān)報(bào)警信息,以達(dá)到報(bào)警的目的,提示自行車主采取措施。超聲波測(cè)試傳感器的TRIG和ECHO引腳與單片機(jī)的I/O口相連,把測(cè)出的距離顯示在顯示器上,當(dāng)測(cè)出的距離過(guò)于近時(shí),便觸動(dòng)警示電路,以警示后方來(lái)車。基于此,系統(tǒng)既實(shí)現(xiàn)了防盜功能也實(shí)現(xiàn)了保護(hù)騎行者安全的功能。

圖1 系統(tǒng)設(shè)計(jì)框圖
系統(tǒng)接口設(shè)計(jì)如圖2所示。

圖2 系統(tǒng)接口設(shè)計(jì)圖
主控單元芯片采用的是增強(qiáng)型51單片機(jī),宏晶公司的STC89C52RC單片機(jī),此款MCU具有低功耗、高性能等特點(diǎn)。但是功能比傳統(tǒng)51單片機(jī)更強(qiáng)大[1]。
GSM模塊采用的是SIM800C模塊,SIM800C的TXD口與單片機(jī)的串口2相連,通過(guò)向SIM800C模塊發(fā)送AT指令來(lái)控制該模塊發(fā)送短信。本設(shè)計(jì)主要用到的是短消息發(fā)送命令:AT+CMGC,該命令主要用于短信息的發(fā)送。如圖3所示,因?yàn)閱纹瑱C(jī)只有兩個(gè)串口,其中一個(gè)串口已經(jīng)被GPS模塊占用,所以SIM800C的RXD引腳與單片的串口2相連,只能接受單片機(jī)發(fā)送的AT指令,而不能向單片機(jī)發(fā)送指令[2]。

圖3 SIM800C模塊接口原理圖
采用常開(kāi)高靈敏震動(dòng)開(kāi)關(guān)SW-18010P。開(kāi)關(guān)靜止時(shí)處于斷開(kāi)OFF的狀態(tài)。當(dāng)移動(dòng)速度過(guò)快時(shí),或者感受到外界異常震動(dòng)過(guò)大時(shí),導(dǎo)電接腳會(huì)瞬間處于(ON)狀態(tài)。而當(dāng)外界震動(dòng)震動(dòng)消失或者處于靜止時(shí)會(huì)恢復(fù)到OFF的狀態(tài)。當(dāng)此模塊感受到盜竊者所帶來(lái)的異常震動(dòng)時(shí),與其相連的單片機(jī)引腳會(huì)立即導(dǎo)通變成低電平,主控芯片檢測(cè)到引腳的電平為低,便會(huì)控制報(bào)警電路,觸發(fā)報(bào)警裝置,以此來(lái)恐嚇入侵者。
此模塊采用的是vk2828u7g5Llf,它采用的是內(nèi)置天線,將GPS模塊和天線嵌入到一個(gè)小尺寸的模塊中,其與單片機(jī)的串口1相連,只能發(fā)送數(shù)據(jù),而不能接受數(shù)據(jù)。模塊接到定位衛(wèi)星傳來(lái)的NEMA數(shù)據(jù),不能直接在LCD12864顯示屏上顯示。只有將數(shù)據(jù)通過(guò)算法轉(zhuǎn)換成單片機(jī)可識(shí)別的數(shù)據(jù),然后顯示在LCD12864液晶屏上。GPS模塊接口原理圖如圖4所示。

圖4 GPS模塊接口原理圖
液晶顯示模塊用的是LCD12864,帶中英文字庫(kù),可顯示中英文,也可顯示圖形,有4位/8位并行、2線或3線串行多種接口方式。該模塊操作簡(jiǎn)單,接口方式自由靈活,且價(jià)格便宜。可構(gòu)成簡(jiǎn)易實(shí)用的人機(jī)交互圖形界面。其1,20號(hào)引腳接電源地,2,19引腳接電源正極,第3,18號(hào)引腳接10k電位器5號(hào)引腳可不接,其余引腳接單片機(jī)I/O口[3]。圖5是接線原理圖。

圖5 LCD12864接線原理圖
采用HC-SR04模塊,此模塊有四個(gè)引腳,分別為VCC、GND、TRIG、ECHO。其中VCC接電源正極,GND接電源負(fù)極。TRIG端連接單片機(jī)的P1.0 口,ECHO端連接的是單片機(jī)P2.0 口。其工作原理:采用IO觸發(fā)測(cè)距的方式,主控芯片向TRIG端(觸發(fā)信號(hào)輸入端)輸入一個(gè)10微秒以上的高電平信號(hào),超聲波ECHO端收到信號(hào)將自動(dòng)發(fā)送8個(gè)40Hz方波,于此同時(shí)啟動(dòng)定時(shí)器,待模塊接收到回波則立即停止計(jì)時(shí)并通過(guò)I/O口輸出高電平,該高電平持續(xù)的時(shí)間就超聲波在空氣中傳播的時(shí)間,通過(guò)公式:距離=(高電平時(shí)間*聲速)/2,這樣就實(shí)現(xiàn)了用超聲波測(cè)距的功能[4]。
開(kāi)發(fā)環(huán)境采用美國(guó)Keil Software公司推出的51系列兼容單片機(jī)C51語(yǔ)言軟件開(kāi)發(fā)系統(tǒng)[5]。作為一款常見(jiàn)的單片機(jī)開(kāi)發(fā)軟件,與傳統(tǒng)的匯編相比,C51語(yǔ)言具有功能強(qiáng)大、結(jié)構(gòu)性好、可讀性強(qiáng)、容易維護(hù)等特點(diǎn)。Keil提供了包括C編譯器、宏匯編、鏈接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(μVision)將這些部分組合在一起。其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具讓開(kāi)發(fā)過(guò)程事半功倍[6]。
系統(tǒng)軟件主要采用模塊化設(shè)計(jì),主要有LCD顯示屏初始化程序、GPS數(shù)據(jù)處理程序、GPS數(shù)據(jù)顯示程序、超聲波測(cè)距程序、短信報(bào)警程序等組成。
3.3.1 GPS數(shù)據(jù)處理程序
GPS接收數(shù)據(jù)為GPRMC模式的,其數(shù)據(jù)說(shuō)明如下:
SGPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh
S:代表的是幀首標(biāo)志符
<1>:UTC當(dāng)?shù)貢r(shí)間,采用時(shí)分秒格式
<2>:表示衛(wèi)星的定位狀態(tài),A=數(shù)據(jù)可用;V=不可用
<3>:代表所處地理位置的緯度,采用度度分分.分分分 格式
<4>:所處位置是南半球還是北半球,N代表北半球,S代表南半球
<5>:代表所處地理位置的經(jīng)度,采用度度分分.分分分 格式
<6>:所處位置是南半球還是北半球,E代表東半球,W代表西半球
<7>:對(duì)地速度,000.0 ~999.9 節(jié)
<8>:代表對(duì)地航向,000.0 ?~359.9 ?
<9>:當(dāng)?shù)厝掌冢杖赵略履昴旮袷?/p>
<10>:代表的是磁極變量,000.0 -180.0 度
<11>:表示磁變方向,E&W
<12>:工作模式,A=自主,D=差分,E=評(píng)估,N=數(shù)據(jù)無(wú)效*:校驗(yàn)和隔離符號(hào)hh:校檢符
3.3.2 程序設(shè)計(jì)思路如果單片機(jī)接收到的字符是“ S”,將之后5個(gè)字符存儲(chǔ)到數(shù)組中,其次判斷接收語(yǔ)句是否為GPRMC格式,如果是,則開(kāi)始接收。可以通過(guò)對(duì)“,”計(jì)數(shù),通過(guò)判斷“,”的序數(shù),把每個(gè)“,”后的數(shù)據(jù)都存入到不同的數(shù)組中。當(dāng)接收“*”時(shí),則表示數(shù)據(jù)已經(jīng)發(fā)送結(jié)束,則停止接收[7]。
3.3.3 LCD12864顯示程序設(shè)計(jì)
主要通過(guò)對(duì)LCD12864進(jìn)行寫(xiě)指令和讀數(shù)據(jù)來(lái)控制LCD12864,常用的指令如下[8]。

圖6 主程序流程圖
3.3.4 超聲波測(cè)速程序設(shè)計(jì)

圖7 LCD12864常見(jiàn)指令

圖8 超聲波測(cè)速流程圖
單片機(jī)向超聲波測(cè)速模塊的Trig引腳發(fā)出10μs的高電平信號(hào)用以觸發(fā)傳感器測(cè)距。模塊自動(dòng)發(fā)送8個(gè)40kHz的方波,然后自動(dòng)檢測(cè)是否有信號(hào)返回。當(dāng)有信號(hào)返回時(shí),通過(guò)IO口輸出一高電平,該高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間[9]。時(shí)間單位 一般為微秒(μs),聲速約為344m/s。
3.3.5 報(bào)警程序設(shè)計(jì)
將LED接到P3.6 口,當(dāng)用超聲波測(cè)距模塊測(cè)到與后車距離太近時(shí),用延時(shí)函數(shù)delay來(lái)控制LED每隔一秒閃爍一次。
結(jié)束語(yǔ)
本文提出一種基于單片機(jī)的多功能防盜自行車鎖設(shè)計(jì),使用STC89C52單片機(jī)作為系統(tǒng)的操控核心,采用震動(dòng)檢測(cè)和短信報(bào)警等方式,具有實(shí)用性高,易于推廣的優(yōu)點(diǎn),經(jīng)實(shí)際測(cè)試,結(jié)果符合設(shè)計(jì)要求,達(dá)到預(yù)期的設(shè)計(jì)目的。