采用ARM7網(wǎng)絡(luò)型汽車(chē)防盜系統(tǒng)的設(shè)計(jì)方案
3 系統(tǒng)關(guān)鍵技術(shù)
系統(tǒng)采用的關(guān)鍵的技術(shù)主要有兩個(gè),一個(gè)是GPRS遠(yuǎn)程無(wú)線(xiàn)數(shù)據(jù)傳輸,另一個(gè)是FLASH存儲(chǔ)器的讀寫(xiě)。
3.1 GPRS數(shù)據(jù)傳輸流程
GPRS遠(yuǎn)程無(wú)線(xiàn)數(shù)據(jù)傳輸主要是通過(guò)串口完成對(duì)SIM100 GSM/GPRS進(jìn)行短信的收發(fā)操作。當(dāng)有短信到來(lái)時(shí),SIM100 GSM/GPRS將發(fā)送“+CMTI: SM, N”給ARM的串口,其中N為短信編號(hào)。如第五條,則N為5,串口收到短信后,處理函數(shù)先根據(jù)“+CMTI: SM, 5”的內(nèi)容解析出收到的短信的ID為5,打包成“AT+CMGR=5”的命令發(fā)給GPRS模塊,約1~2秒之后該模塊會(huì)返回一個(gè)確認(rèn)數(shù)據(jù)“AT+CMGR=5”,再過(guò)一段時(shí)間,該模塊才返回ID號(hào)為5的短信,其內(nèi)容為:“+CMGR:RECREAD,+8613978319414,04/07/22,10:54:23+00 #13#10dX# 13#10#13#10 OK”。為了確??刂频暮戏ㄐ裕绦蛳葘?duì)發(fā)送過(guò)來(lái)的短信號(hào)碼進(jìn)行合法性檢查,只有與設(shè)定的手機(jī)號(hào)碼相符合的短信的內(nèi)容才作為控制命令處理,而對(duì)于其他的短信,都給予屏蔽掉,阻止錯(cuò)誤操作。
若通過(guò)GPRS模塊發(fā)送短信,ARM系統(tǒng)先向GPRS模塊發(fā)送控制命令“AT+CMGS=XXXX” ,GPRS模塊收到命令后返回“AT+CMGS=XXXX#13#10>”信息,等待輸入要發(fā)送的短信內(nèi)容。如若發(fā)送內(nèi)容為“Your Car Has Stolen!”,系統(tǒng)程序先將此內(nèi)容通過(guò)串口發(fā)給GPRS模塊,之后再發(fā)確認(rèn)命令“ctl+z”,表示數(shù)據(jù)發(fā)送完畢。GPRS模塊收到短信數(shù)據(jù)和確認(rèn)命令后,馬上向ARM系統(tǒng)返回“AT+CMGS=XXXX#13#10>#13#10 Your Car Has Stolen!#13#10”信息,表示系統(tǒng)發(fā)送的數(shù)據(jù)和命令已經(jīng)被GPRS模塊接收到。然后GPRS模塊將短信數(shù)據(jù)發(fā)送給車(chē)主手機(jī),大約5秒之后 GPRS模塊給系統(tǒng)返回是否發(fā)送成功的回饋信息,如果返回“#13#10+CMGS:19#13#10#13#10 OK#13#10”表示成功發(fā)送,結(jié)束。如果返回“ERROR”表示發(fā)送失敗,則在下次輪循中系統(tǒng)會(huì)繼續(xù)發(fā)送同樣內(nèi)容的短信,直到發(fā)送成功為止。
3.2 FLASH的讀寫(xiě)技術(shù)
由于不同廠(chǎng)商的FLASH存儲(chǔ)器在結(jié)構(gòu)和讀寫(xiě)操作是有區(qū)別的,所以FLASH存儲(chǔ)器的燒寫(xiě)、擦除程序一般不具有通用性。系統(tǒng)所用的FLASH是SST39LV160,可以對(duì)任一扇區(qū)進(jìn)行讀、寫(xiě)或擦除操作,而不影響其他部分的數(shù)據(jù)。對(duì)FLASH的編程指令只能使二進(jìn)制位由‘1’變?yōu)椤?’,而擦除命令可使‘0’變?yōu)椤?’,因此正確的操作順序必須是先擦除,后編程,否則就會(huì)導(dǎo)致FLASH存儲(chǔ)器復(fù)位,致使操作命令無(wú)法完成。當(dāng)FLASH存儲(chǔ)器被擦除后,讀出的內(nèi)容全是0XFF。
對(duì)SST39LV160進(jìn)行燒寫(xiě)操作需要遵循幾個(gè)固定的步驟。每個(gè)步驟是首先向FLASH 存儲(chǔ)器的特定寄存器寫(xiě)入地址和數(shù)據(jù)命令,然后由其內(nèi)部的編程或擦除算法自動(dòng)完成編程或擦除操作。如擦除操作,第一步程序向地址1(0X5555)寫(xiě)數(shù)據(jù)1(0XAAAA),第二步向地址2(0X2AAA)寫(xiě)數(shù)據(jù)2(0X5555),第三步再向地址1(0X5555)寫(xiě)數(shù)據(jù)3(0X8080),這樣完成了擦除扇區(qū)的第一階段,接著的第二階段與第一階段幾乎一樣,只不過(guò)最后一次是向地址0X10000寫(xiě)數(shù)據(jù)0X3030,然后程序再用一個(gè)循環(huán),來(lái)檢測(cè)該扇區(qū)的內(nèi)容是否變成了0XFF。如果該扇區(qū)的內(nèi)容變成了0XFF,那么說(shuō)明擦除扇區(qū)的操作已經(jīng)完成,可以進(jìn)行下一步的操作,寫(xiě)數(shù)據(jù)到FLASH的指定地址了。寫(xiě)操作和擦除類(lèi)似,也是遵循幾個(gè)固定的步驟,其具體步驟應(yīng)參考對(duì)應(yīng)FLASH芯片的技術(shù)資料。寫(xiě)操作執(zhí)行后應(yīng)對(duì)數(shù)據(jù)進(jìn)行檢查,如果成功寫(xiě)入則進(jìn)行下一字節(jié)的寫(xiě)入,否則繼續(xù)等待,如果超時(shí),則退出。由于無(wú)論是編程或擦除都需要一定的時(shí)間,程序應(yīng)根據(jù)其內(nèi)部的操作檢測(cè)機(jī)制,判斷操作是否完成或操作是否正確,以確定是否執(zhí)行下一步操作。
在我們的系統(tǒng)中,系統(tǒng)程序利用FLASH第17號(hào)扇區(qū)來(lái)存放車(chē)主的手機(jī)號(hào)碼,從首地址開(kāi)始存放。通常對(duì)該扇區(qū)的操作程序是:先把該扇區(qū)的所有內(nèi)容讀到SDRAM中(共4K),之后將要寫(xiě)的電話(huà)號(hào)碼寫(xiě)入到17扇區(qū)的首地址后的11個(gè)單元中,因?yàn)榈?7號(hào)扇區(qū)我們并沒(méi)有全部用到,所以可以省去將4K內(nèi)容讀到SDRAM的步驟,只需要直接向17號(hào)扇區(qū)的首地址0x10000開(kāi)始,寫(xiě)入車(chē)主手機(jī)號(hào)碼就可以了。
4結(jié)論
系統(tǒng)采用嵌入式開(kāi)發(fā)技術(shù),利用S3C44B0X和GPRS通訊模塊開(kāi)發(fā)了基于手機(jī)的汽車(chē)防盜系統(tǒng),該系統(tǒng)能通過(guò)車(chē)主手機(jī)實(shí)現(xiàn)對(duì)汽車(chē)的遠(yuǎn)程無(wú)線(xiàn)監(jiān)控功能。它充分利用了GPRS網(wǎng)絡(luò)優(yōu)勢(shì),可全天24小時(shí)監(jiān)控,成本低,實(shí)現(xiàn)完全自我服務(wù)。不論身在何地,通過(guò)手機(jī)查詢(xún),可具體了解車(chē)輛的具體狀況;更能對(duì)車(chē)輛進(jìn)行遠(yuǎn)程控制,從開(kāi)關(guān)門(mén)鎖、遠(yuǎn)程啟動(dòng)到命令停車(chē)。經(jīng)實(shí)驗(yàn)證明,這是一種性能穩(wěn)定, 安全性和性?xún)r(jià)比較高的產(chǎn)品。系統(tǒng)進(jìn)一步將實(shí)現(xiàn)與全球衛(wèi)星定位系統(tǒng)(GPS)和交通地理信息系統(tǒng)(GIS)相結(jié)合,實(shí)現(xiàn)一個(gè)功能更強(qiáng)的汽車(chē)防盜監(jiān)控網(wǎng)絡(luò)。
本文作者的創(chuàng)新點(diǎn):采用嵌入式開(kāi)發(fā)技術(shù),利用S3C44B0X和GPRS通訊模塊開(kāi)發(fā)了基于手機(jī)的汽車(chē)防盜系統(tǒng),該系統(tǒng)能通過(guò)車(chē)主手機(jī)實(shí)現(xiàn)對(duì)汽車(chē)的遠(yuǎn)程無(wú)線(xiàn)監(jiān)控。
評(píng)論