蘇健淵 謝鋒
摘 要:隨著現(xiàn)今計(jì)算機(jī)技術(shù)的快速發(fā)展,數(shù)字信息已遍布生活的各個(gè)角落,軌跡信息在人們生活的重要程度也逐漸提升,車輛軌跡管理也日漸重要。在車輛的行駛過程中,車輛將不斷產(chǎn)生位置、速度、車輛狀態(tài)等信息,如何將數(shù)據(jù)進(jìn)行有效地收集匯總,提高數(shù)據(jù)的可用性,增加數(shù)據(jù)的復(fù)用性,實(shí)現(xiàn)車輛信息管理的數(shù)字化、網(wǎng)絡(luò)化、人工智能化顯得尤為重要。本文基于北斗導(dǎo)航系統(tǒng),通過設(shè)計(jì)基于北斗導(dǎo)航的車輛信息管理的硬件平臺(tái),將車輛信息數(shù)據(jù)實(shí)時(shí)匯總到服務(wù)器,利用軟件對(duì)信息數(shù)據(jù)進(jìn)行再加工,實(shí)現(xiàn)車輛信息數(shù)據(jù)的可視化,顯示車輛的軌跡狀態(tài)、運(yùn)行日志,提高車輛的監(jiān)控效率,保障車輛的安全管理,對(duì)進(jìn)一步改善車輛管理具有十分重要的參考意義。
關(guān)鍵詞:北斗導(dǎo)航 車輛信息 微處理器 STM32
1 引言
在現(xiàn)今的大部分關(guān)于管理車輛信息的系統(tǒng),都是利用GPS(全球定位系統(tǒng))[1]和蜂窩網(wǎng)絡(luò)[2]獲取車輛的數(shù)據(jù)信息,基本原理是車輛上的終端設(shè)備通過接收器接收到衛(wèi)星的信號(hào),終端設(shè)備通過對(duì)衛(wèi)星信號(hào)解析,得到當(dāng)前車輛的衛(wèi)星數(shù)據(jù),然后利用蜂窩網(wǎng)絡(luò)將數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò),建立和服務(wù)器的信號(hào)鏈路,服務(wù)器提供可視化的管理窗口,方便快捷查看車輛信息。但是這樣的系統(tǒng)是基于GPS,存在可能會(huì)泄露信息的風(fēng)險(xiǎn),難以保證車輛數(shù)據(jù)的安全。北斗衛(wèi)星導(dǎo)航系統(tǒng)是一個(gè)新興的系統(tǒng),且為我國(guó)自行研制,相比較GPS而言擁有更好的政策優(yōu)勢(shì),部署上與GPS相同,可以從GPS平滑的過度到北斗系統(tǒng)。并且北斗導(dǎo)航系統(tǒng)擁有自己特有的優(yōu)勢(shì),不僅僅提供經(jīng)緯度的信息,還能夠提供時(shí)間授時(shí)以及短信服務(wù),豐富了車輛導(dǎo)航的應(yīng)用領(lǐng)域[3]。
2 整體介紹
2.1 整體結(jié)構(gòu)
基于北斗導(dǎo)航的車輛信息管理系統(tǒng)主要分為3個(gè)模塊:
車輛終端模塊:主要設(shè)計(jì)了衛(wèi)星導(dǎo)航數(shù)據(jù)接收的硬件模塊,負(fù)責(zé)接收車輛的北斗定位信息與后臺(tái)服務(wù)器進(jìn)行信息交流。該終端可以安裝小轎車、公交車、貨車等不同類型的車輛上,主要實(shí)現(xiàn)車輛定位導(dǎo)航、信息收發(fā)等職責(zé)。
數(shù)據(jù)服務(wù)器模塊:接收北斗衛(wèi)星導(dǎo)航儀通過網(wǎng)絡(luò)發(fā)送過來的信息,并記錄在數(shù)據(jù)倉(cāng)庫(kù)中,隨時(shí)為數(shù)據(jù)查詢提供服務(wù)。
監(jiān)控系統(tǒng)模塊:通過軟件,對(duì)車輛進(jìn)行各種管理,其中主要包括:車輛跟蹤、軌跡回放、線路規(guī)劃、車輛報(bào)警、信息交流等。
系統(tǒng)結(jié)構(gòu)圖如圖1所示,整個(gè)系統(tǒng)在信息流轉(zhuǎn)的過程中,車輛在行駛過程中不斷產(chǎn)生數(shù)據(jù),北斗衛(wèi)星系統(tǒng)與車輛上的北斗衛(wèi)星系統(tǒng)接收模塊進(jìn)行數(shù)據(jù)交換,不斷傳輸位置信息,車輛上的車載終端將信息匯總后,形成數(shù)據(jù)包,進(jìn)而通過2G/3G/4G不同的蜂窩網(wǎng)絡(luò)傳輸至遠(yuǎn)程的服務(wù)器中,實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程交互;遠(yuǎn)程數(shù)據(jù)集服務(wù)器在收到信息后,會(huì)及時(shí)解析數(shù)據(jù)字段,將剝離數(shù)據(jù)的有效信息,按照數(shù)據(jù)庫(kù)的字段進(jìn)行分類存儲(chǔ),保證數(shù)據(jù)的可用性;監(jiān)控系統(tǒng)會(huì)從數(shù)據(jù)服務(wù)器中根據(jù)需要調(diào)取所需數(shù)據(jù)。
從圖1中可以看出,在整個(gè)系統(tǒng)中,利用北斗衛(wèi)星的定位技術(shù),獲取準(zhǔn)確可用的地理數(shù)據(jù),同時(shí)采集車輛的傳感數(shù)據(jù),包括溫度、濕度、油壓、油量等等,這些數(shù)據(jù)作為車載終端的輸入RS232信號(hào),以模擬信號(hào)和數(shù)字信號(hào)的形式出現(xiàn),而車輛的路線、時(shí)間、速度和位置數(shù)據(jù)則是輸出信號(hào),也是以RS232的串口數(shù)據(jù)傳輸給2G/3G/4G模塊。數(shù)據(jù)從蜂窩網(wǎng)絡(luò)到服務(wù)的線路,采用HTTP、TCP和UDP的方式實(shí)現(xiàn),保障了數(shù)據(jù)傳輸?shù)目煽總鬏敗?/p>
2.2 關(guān)鍵技術(shù)
2.2.1 信息接收與數(shù)據(jù)處理技術(shù)
車載終端設(shè)備一般由北斗接收機(jī)、數(shù)據(jù)處理軟件和相應(yīng)的用戶設(shè)備等組成。它的主要作用是接收北斗衛(wèi)星發(fā)出的信號(hào)并解析出導(dǎo)航電文,通過計(jì)算得出自身的位置。北斗衛(wèi)星導(dǎo)航電文中包含了衛(wèi)星的星歷、歷書、工作狀態(tài)、時(shí)間系統(tǒng)、星鐘運(yùn)行狀態(tài)、軌道攝動(dòng)改正、大氣折射改正和由C/A馬捕獲P碼等導(dǎo)航信息的數(shù)據(jù)碼。從這些信息中,我們可以獲得衛(wèi)星在坐標(biāo)系中的位置、時(shí)鐘、以及時(shí)鐘在任意時(shí)刻的修正值等信息,將衛(wèi)星的時(shí)鐘與接收機(jī)本身的時(shí)鐘進(jìn)行比較就可以獲得信號(hào)從衛(wèi)星到達(dá)接收機(jī)的時(shí)間,進(jìn)而可以計(jì)算出衛(wèi)星和接收機(jī)之間的大致距離——偽距[4]。
2.2.2 監(jiān)控軟件關(guān)鍵技術(shù)
監(jiān)控中心軟件使用B/S架構(gòu),減少部署的成本,同時(shí)支持跨平臺(tái)的異地訪問。使用PHP語(yǔ)言實(shí)現(xiàn)與數(shù)據(jù)中心通信,通過Ajax技術(shù)實(shí)現(xiàn)異步接口訪問,比如進(jìn)行單車跟蹤、系統(tǒng)報(bào)警、信息發(fā)送等功能。
2.2.3 地圖操作關(guān)鍵技術(shù)
目前系統(tǒng)采用百度地圖,使用百度地圖api進(jìn)行編程,并加入自定義的地圖元素,以適應(yīng)本系統(tǒng)的特有操作,比如路徑繪制、圖層顯示、路徑繪制。
3 系統(tǒng)設(shè)計(jì)
3.1 嵌入式系統(tǒng)設(shè)計(jì)
本系統(tǒng)是基于低功耗的STM32的微處理器進(jìn)行設(shè)計(jì),運(yùn)行在嵌入式系統(tǒng)中。而嵌入式系統(tǒng)在眾多場(chǎng)合的應(yīng)用也非常廣泛[5]。嵌入式系統(tǒng)的軟件和硬件往往是緊密結(jié)合的,因此隨著應(yīng)用領(lǐng)域和硬件設(shè)備的千差萬(wàn)別,嵌入式系統(tǒng)的軟件也隨著變化多樣,因此很難對(duì)嵌入式系統(tǒng)進(jìn)行一個(gè)十分明確的分類。嵌入式系統(tǒng)的軟件可以分為如圖2所示的中間層、系統(tǒng)軟件層、應(yīng)用軟件層。
中間層是是嵌入式系統(tǒng)硬件和軟件之間的橋梁,鏈接了軟件運(yùn)行和硬件基礎(chǔ),對(duì)外提供一系列接口,比如中斷運(yùn)行、定時(shí)器接口、設(shè)備初始化、地址映射等等,尤其是適配硬件基礎(chǔ)的驅(qū)動(dòng)程序。
系統(tǒng)軟件層主要實(shí)現(xiàn)對(duì)資源的訪問和管理,完成任務(wù)調(diào)度,支持應(yīng)用軟件的運(yùn)行及開發(fā)。往往通過移植較為成熟的操作系統(tǒng)來縮短開發(fā)周期和確保穩(wěn)定性。
應(yīng)用軟件層位于嵌入式系統(tǒng)的最頂層,決定了嵌入式系統(tǒng)的具體功能,直接與用戶進(jìn)行交互。應(yīng)用軟件設(shè)計(jì)的好壞,很大程度決定了嵌入式整個(gè)系統(tǒng)的可靠性,會(huì)影響到系統(tǒng)中資源的分配使用,為此,應(yīng)用軟件具有十分重要的地位。
3.2 微處理器設(shè)計(jì)
本系統(tǒng)結(jié)合嵌入式系統(tǒng)的特征,選用STM32F103ZET6的芯片作為微處理器,該芯片的功耗較低,內(nèi)核采用ARM32位的CortexTM-M3CPU,CortexM3是ARM公司推出的基于ARMv7架構(gòu)的新一代微處理器,該處理器的指令和數(shù)據(jù)都有自己獨(dú)自的一條總線,存儲(chǔ)器中的指令和數(shù)據(jù)可以同時(shí)被讀取,因此對(duì)多個(gè)操作并行執(zhí)行,能夠提高應(yīng)用程序的執(zhí)行速度[6]。其速度比目前廣泛使用的ARM7架構(gòu)快了三分之一,功耗卻沒有提高,而是降了四分之三,體積也隨之減小,更能方便集成到更小的芯片電路中,能夠?qū)崿F(xiàn)更小尺寸的產(chǎn)品設(shè)計(jì)。
3.3 北斗接收模塊設(shè)計(jì)
本系統(tǒng)采用聯(lián)星CC50-BG型號(hào)北斗衛(wèi)星導(dǎo)航模塊,能夠?qū)崟r(shí)接收北斗衛(wèi)星和GPS導(dǎo)航衛(wèi)星信號(hào),能夠?qū)崿F(xiàn)衛(wèi)星數(shù)據(jù)的接收、授時(shí)服務(wù)以及串口輸出等功能,能夠廣泛應(yīng)用于交通、導(dǎo)航、人員追蹤等場(chǎng)合。
在設(shè)計(jì)本模塊進(jìn)行獲取數(shù)據(jù)的時(shí)候,接收天線的安裝位置要保證天線的視野足夠大;不要直接用手拿取CC50- -BG模塊,以防靜電損壞芯片;盡量避免其他電磁波對(duì)天線和CC50-BG模塊的干擾;如果用戶需要使用模塊的熱啟動(dòng)功能,需保證模塊外部供電不能斷開。根據(jù)上述硬件設(shè)計(jì)要求。
硬件確定好后,還需要確立通信協(xié)議。由于采用GPRS的方式進(jìn)行通信,因此通信協(xié)議應(yīng)該使得每一幀盡量簡(jiǎn)潔以減少數(shù)據(jù)流量。但是,對(duì)于嵌入式系統(tǒng)而言,我們還需要考慮另一個(gè)因素,那就是嵌入式設(shè)備的處理能力的問題,通信協(xié)議應(yīng)該使嵌入式模塊在打包和拆解包的過程中不需要復(fù)雜的計(jì)算和處理過程。
協(xié)議幀分為三部分:幀頭、正文,結(jié)束標(biāo)志。對(duì)于不同類型的信息,協(xié)議幀的正文部分不同,甚至可能省略,但是幀頭和結(jié)束標(biāo)志是統(tǒng)一的。幀頭和結(jié)束標(biāo)志對(duì)于所有通信幀都是一致的,幀頭包括幀序號(hào)、目的站號(hào)、源站號(hào)、操作碼、操作狀態(tài)。
3.4 電源模塊設(shè)計(jì)
GPRS芯片的VBAT電源管腳電壓范圍3.4~4.5V,芯片文檔推薦的電壓是4.0V,而供電電壓滿足芯片的最大工作電流,否則在發(fā)射或者模塊初始化階段可能造成電壓急劇下降而導(dǎo)致復(fù)位甚至死機(jī)。所以GPRS芯片的供電電源一定要能夠提供2A以上的電流。設(shè)計(jì)時(shí)應(yīng)該在電源管腳上放置兩個(gè)電容,一個(gè)1~10uF的瓷片電容,然后再并行連接一個(gè)100uF的鉭電容, PCB布線的時(shí)候讓這兩個(gè)電容靠近電源管腳,減少紋波影響。
由于GPRS芯片工作時(shí)電流變化如此之大,如果和STM32和北斗衛(wèi)星模塊共用一個(gè)電源則可能造成過大的電壓起伏,而北斗衛(wèi)星模塊的文檔中也提到定位的精度和電源的波動(dòng)也會(huì)有一定的影響,再加上GPRS芯片典型電壓值為4.0V,而STM32的最大供電電壓僅為3.6V。因此,將GPRS芯片與其他模塊分割開來單獨(dú)供電。
3.5 軟件設(shè)計(jì)
3.5.1 狀態(tài)轉(zhuǎn)換圖
本文根據(jù)系統(tǒng)需要,實(shí)現(xiàn)車輛信息數(shù)據(jù)的數(shù)字化管理,根據(jù)要完成的功能完成圖3的軟件狀態(tài)轉(zhuǎn)換圖。
圖3中包括了多種不同情形的狀態(tài),主要針對(duì)系統(tǒng)在運(yùn)行過程中的狀態(tài)切換,根據(jù)收到指令和數(shù)據(jù)的不同,進(jìn)入到不同的切換狀態(tài),保證程序數(shù)據(jù)的穩(wěn)定可靠。根據(jù)狀態(tài)圖可以方便編寫運(yùn)行程序,首先當(dāng)系統(tǒng)開機(jī)后,系統(tǒng)會(huì)初始化外圍硬件,包括串口的波特率初始化、GPIO的輸出輸入方向配置、運(yùn)行頻率等;一旦系統(tǒng)收到北斗衛(wèi)星的信號(hào)數(shù)據(jù),將數(shù)據(jù)解析整合到緩沖區(qū)后,通過TCP的方式傳輸給下端模塊;如果是接收到指令,則根據(jù)指令的不同類型執(zhí)行不同的子任務(wù),然后診斷傳輸是否出現(xiàn)問題,如果一切正常的話,繼續(xù)往下執(zhí)行。
3.5.2 中斷處理
STM32的NVIC支持通過搶占優(yōu)先級(jí)和子優(yōu)先級(jí)來區(qū)分中斷。高搶占優(yōu)先級(jí)的中斷可以打斷低搶占優(yōu)先級(jí)的中斷,構(gòu)成嵌套中斷。而相同搶占優(yōu)先級(jí)的中斷不會(huì)彼此打斷,當(dāng)同時(shí)有多個(gè)相同搶占優(yōu)先級(jí)的中斷時(shí),優(yōu)先響應(yīng)子優(yōu)先級(jí)高的中斷。因此可以利用高搶占優(yōu)先級(jí)可以打斷低搶占優(yōu)先級(jí)中斷的這一特性來保證軟件的實(shí)時(shí)性。讓對(duì)實(shí)時(shí)性要求高的任務(wù)打斷對(duì)實(shí)時(shí)性要求低的任務(wù)。
在本文中,根據(jù)北斗數(shù)據(jù)傳輸?shù)倪^程涉及到的業(yè)務(wù)情況,在程序中設(shè)計(jì)了本系統(tǒng)的中斷處理機(jī)制,具體過程如圖所示:
(1)確定各業(yè)務(wù)的實(shí)時(shí)等級(jí),安排在不同的優(yōu)先級(jí),分配不同的中斷級(jí)別;
(2)使能外設(shè)的相應(yīng)中斷,配置寄存器的中斷使能位,同時(shí)開啟GPIO端口的時(shí)鐘;
(3)初始化NVIC_InitTypeDef結(jié)構(gòu)體,調(diào)用NVIC_IRQChannelPreemptionPriority()函數(shù)設(shè)置搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí),配置中斷優(yōu)先級(jí)分組,調(diào)用NVIC_IRQChannelCmd()函數(shù)使能中斷請(qǐng)求,調(diào)用NVIC_IRQChannel()函數(shù)設(shè)置不同的中斷源;
(4)在stm32f0xx_it.c中編寫中斷服務(wù)函數(shù),根據(jù)給出的中斷向量表,定制對(duì)應(yīng)業(yè)務(wù)的中斷服務(wù)函數(shù)。
4 結(jié)語(yǔ)
本文設(shè)計(jì)的基于北斗導(dǎo)航的車輛信息管理系統(tǒng),在微控制器STM32構(gòu)成的嵌入式系統(tǒng)下,通過與北斗衛(wèi)星模塊進(jìn)行通信,獲取實(shí)時(shí)的衛(wèi)星數(shù)據(jù),掌握車輛的軌跡數(shù)據(jù),并將數(shù)據(jù)通過GPRS的蜂窩網(wǎng)絡(luò),遠(yuǎn)程傳輸?shù)胶笈_(tái)的數(shù)據(jù)服務(wù)器,服務(wù)器對(duì)數(shù)據(jù)進(jìn)行解析處理,最終實(shí)現(xiàn)對(duì)車輛信息的數(shù)字化管理,提高車輛信息管理的安全性與便捷性。
參考文獻(xiàn):
[1]朱立妙,沈旭東,何樂華.基于北斗/GPS雙模定位的遠(yuǎn)程車輛防盜監(jiān)控系統(tǒng)設(shè)計(jì)[J].機(jī)電一體化,2022,28(06):35-41.
[2]鈕思玥. 基于GPS與GPRS的車輛防盜系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].內(nèi)蒙古大學(xué),2018.
[3]梁楠,吳傳強(qiáng).北斗智慧交通道路運(yùn)輸車輛動(dòng)態(tài)監(jiān)管服務(wù)平臺(tái) 打通智慧交通脈絡(luò)[J].中國(guó)自動(dòng)識(shí)別技術(shù),2022(02):45-50.
[4]馬凱,鮑顥之,哈欣怡,王藝瑾,封曉同.基于STM32的城市消防車監(jiān)測(cè)及智能調(diào)度系統(tǒng)[J].微處理機(jī),2022,43(06):48-52.
[5]鄧軍,王澤,張璽,習(xí)特銘,周佳葆.基于STM32的北斗定時(shí)定位實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)室科學(xué),2022,25(06):82-85.
[6]蘇日古格,于新海,國(guó)芳,王睿聰.基于STM32單片機(jī)的北斗/GPS雙模定位系統(tǒng)設(shè)計(jì)及測(cè)試[J].信息與電腦(理論版),2021,33(01):123-125.