?

基于北斗導航的車輛信息管理系統設計與實現

2023-05-22 11:46蘇健淵謝鋒
時代汽車 2023年9期

蘇健淵 謝鋒

摘 要:隨著現今計算機技術的快速發展,數字信息已遍布生活的各個角落,軌跡信息在人們生活的重要程度也逐漸提升,車輛軌跡管理也日漸重要。在車輛的行駛過程中,車輛將不斷產生位置、速度、車輛狀態等信息,如何將數據進行有效地收集匯總,提高數據的可用性,增加數據的復用性,實現車輛信息管理的數字化、網絡化、人工智能化顯得尤為重要。本文基于北斗導航系統,通過設計基于北斗導航的車輛信息管理的硬件平臺,將車輛信息數據實時匯總到服務器,利用軟件對信息數據進行再加工,實現車輛信息數據的可視化,顯示車輛的軌跡狀態、運行日志,提高車輛的監控效率,保障車輛的安全管理,對進一步改善車輛管理具有十分重要的參考意義。

關鍵詞:北斗導航 車輛信息 微處理器 STM32

1 引言

在現今的大部分關于管理車輛信息的系統,都是利用GPS(全球定位系統)[1]和蜂窩網絡[2]獲取車輛的數據信息,基本原理是車輛上的終端設備通過接收器接收到衛星的信號,終端設備通過對衛星信號解析,得到當前車輛的衛星數據,然后利用蜂窩網絡將數據傳輸到網絡,建立和服務器的信號鏈路,服務器提供可視化的管理窗口,方便快捷查看車輛信息。但是這樣的系統是基于GPS,存在可能會泄露信息的風險,難以保證車輛數據的安全。北斗衛星導航系統是一個新興的系統,且為我國自行研制,相比較GPS而言擁有更好的政策優勢,部署上與GPS相同,可以從GPS平滑的過度到北斗系統。并且北斗導航系統擁有自己特有的優勢,不僅僅提供經緯度的信息,還能夠提供時間授時以及短信服務,豐富了車輛導航的應用領域[3]。

2 整體介紹

2.1 整體結構

基于北斗導航的車輛信息管理系統主要分為3個模塊:

車輛終端模塊:主要設計了衛星導航數據接收的硬件模塊,負責接收車輛的北斗定位信息與后臺服務器進行信息交流。該終端可以安裝小轎車、公交車、貨車等不同類型的車輛上,主要實現車輛定位導航、信息收發等職責。

數據服務器模塊:接收北斗衛星導航儀通過網絡發送過來的信息,并記錄在數據倉庫中,隨時為數據查詢提供服務。

監控系統模塊:通過軟件,對車輛進行各種管理,其中主要包括:車輛跟蹤、軌跡回放、線路規劃、車輛報警、信息交流等。

系統結構圖如圖1所示,整個系統在信息流轉的過程中,車輛在行駛過程中不斷產生數據,北斗衛星系統與車輛上的北斗衛星系統接收模塊進行數據交換,不斷傳輸位置信息,車輛上的車載終端將信息匯總后,形成數據包,進而通過2G/3G/4G不同的蜂窩網絡傳輸至遠程的服務器中,實現數據的遠程交互;遠程數據集服務器在收到信息后,會及時解析數據字段,將剝離數據的有效信息,按照數據庫的字段進行分類存儲,保證數據的可用性;監控系統會從數據服務器中根據需要調取所需數據。

從圖1中可以看出,在整個系統中,利用北斗衛星的定位技術,獲取準確可用的地理數據,同時采集車輛的傳感數據,包括溫度、濕度、油壓、油量等等,這些數據作為車載終端的輸入RS232信號,以模擬信號和數字信號的形式出現,而車輛的路線、時間、速度和位置數據則是輸出信號,也是以RS232的串口數據傳輸給2G/3G/4G模塊。數據從蜂窩網絡到服務的線路,采用HTTP、TCP和UDP的方式實現,保障了數據傳輸的可靠傳輸。

2.2 關鍵技術

2.2.1 信息接收與數據處理技術

車載終端設備一般由北斗接收機、數據處理軟件和相應的用戶設備等組成。它的主要作用是接收北斗衛星發出的信號并解析出導航電文,通過計算得出自身的位置。北斗衛星導航電文中包含了衛星的星歷、歷書、工作狀態、時間系統、星鐘運行狀態、軌道攝動改正、大氣折射改正和由C/A馬捕獲P碼等導航信息的數據碼。從這些信息中,我們可以獲得衛星在坐標系中的位置、時鐘、以及時鐘在任意時刻的修正值等信息,將衛星的時鐘與接收機本身的時鐘進行比較就可以獲得信號從衛星到達接收機的時間,進而可以計算出衛星和接收機之間的大致距離——偽距[4]。

2.2.2 監控軟件關鍵技術

監控中心軟件使用B/S架構,減少部署的成本,同時支持跨平臺的異地訪問。使用PHP語言實現與數據中心通信,通過Ajax技術實現異步接口訪問,比如進行單車跟蹤、系統報警、信息發送等功能。

2.2.3 地圖操作關鍵技術

目前系統采用百度地圖,使用百度地圖api進行編程,并加入自定義的地圖元素,以適應本系統的特有操作,比如路徑繪制、圖層顯示、路徑繪制。

3 系統設計

3.1 嵌入式系統設計

本系統是基于低功耗的STM32的微處理器進行設計,運行在嵌入式系統中。而嵌入式系統在眾多場合的應用也非常廣泛[5]。嵌入式系統的軟件和硬件往往是緊密結合的,因此隨著應用領域和硬件設備的千差萬別,嵌入式系統的軟件也隨著變化多樣,因此很難對嵌入式系統進行一個十分明確的分類。嵌入式系統的軟件可以分為如圖2所示的中間層、系統軟件層、應用軟件層。

中間層是是嵌入式系統硬件和軟件之間的橋梁,鏈接了軟件運行和硬件基礎,對外提供一系列接口,比如中斷運行、定時器接口、設備初始化、地址映射等等,尤其是適配硬件基礎的驅動程序。

系統軟件層主要實現對資源的訪問和管理,完成任務調度,支持應用軟件的運行及開發。往往通過移植較為成熟的操作系統來縮短開發周期和確保穩定性。

應用軟件層位于嵌入式系統的最頂層,決定了嵌入式系統的具體功能,直接與用戶進行交互。應用軟件設計的好壞,很大程度決定了嵌入式整個系統的可靠性,會影響到系統中資源的分配使用,為此,應用軟件具有十分重要的地位。

3.2 微處理器設計

本系統結合嵌入式系統的特征,選用STM32F103ZET6的芯片作為微處理器,該芯片的功耗較低,內核采用ARM32位的CortexTM-M3CPU,CortexM3是ARM公司推出的基于ARMv7架構的新一代微處理器,該處理器的指令和數據都有自己獨自的一條總線,存儲器中的指令和數據可以同時被讀取,因此對多個操作并行執行,能夠提高應用程序的執行速度[6]。其速度比目前廣泛使用的ARM7架構快了三分之一,功耗卻沒有提高,而是降了四分之三,體積也隨之減小,更能方便集成到更小的芯片電路中,能夠實現更小尺寸的產品設計。

3.3 北斗接收模塊設計

本系統采用聯星CC50-BG型號北斗衛星導航模塊,能夠實時接收北斗衛星和GPS導航衛星信號,能夠實現衛星數據的接收、授時服務以及串口輸出等功能,能夠廣泛應用于交通、導航、人員追蹤等場合。

在設計本模塊進行獲取數據的時候,接收天線的安裝位置要保證天線的視野足夠大;不要直接用手拿取CC50- -BG模塊,以防靜電損壞芯片;盡量避免其他電磁波對天線和CC50-BG模塊的干擾;如果用戶需要使用模塊的熱啟動功能,需保證模塊外部供電不能斷開。根據上述硬件設計要求。

硬件確定好后,還需要確立通信協議。由于采用GPRS的方式進行通信,因此通信協議應該使得每一幀盡量簡潔以減少數據流量。但是,對于嵌入式系統而言,我們還需要考慮另一個因素,那就是嵌入式設備的處理能力的問題,通信協議應該使嵌入式模塊在打包和拆解包的過程中不需要復雜的計算和處理過程。

協議幀分為三部分:幀頭、正文,結束標志。對于不同類型的信息,協議幀的正文部分不同,甚至可能省略,但是幀頭和結束標志是統一的。幀頭和結束標志對于所有通信幀都是一致的,幀頭包括幀序號、目的站號、源站號、操作碼、操作狀態。

3.4 電源模塊設計

GPRS芯片的VBAT電源管腳電壓范圍3.4~4.5V,芯片文檔推薦的電壓是4.0V,而供電電壓滿足芯片的最大工作電流,否則在發射或者模塊初始化階段可能造成電壓急劇下降而導致復位甚至死機。所以GPRS芯片的供電電源一定要能夠提供2A以上的電流。設計時應該在電源管腳上放置兩個電容,一個1~10uF的瓷片電容,然后再并行連接一個100uF的鉭電容, PCB布線的時候讓這兩個電容靠近電源管腳,減少紋波影響。

由于GPRS芯片工作時電流變化如此之大,如果和STM32和北斗衛星模塊共用一個電源則可能造成過大的電壓起伏,而北斗衛星模塊的文檔中也提到定位的精度和電源的波動也會有一定的影響,再加上GPRS芯片典型電壓值為4.0V,而STM32的最大供電電壓僅為3.6V。因此,將GPRS芯片與其他模塊分割開來單獨供電。

3.5 軟件設計

3.5.1 狀態轉換圖

本文根據系統需要,實現車輛信息數據的數字化管理,根據要完成的功能完成圖3的軟件狀態轉換圖。

圖3中包括了多種不同情形的狀態,主要針對系統在運行過程中的狀態切換,根據收到指令和數據的不同,進入到不同的切換狀態,保證程序數據的穩定可靠。根據狀態圖可以方便編寫運行程序,首先當系統開機后,系統會初始化外圍硬件,包括串口的波特率初始化、GPIO的輸出輸入方向配置、運行頻率等;一旦系統收到北斗衛星的信號數據,將數據解析整合到緩沖區后,通過TCP的方式傳輸給下端模塊;如果是接收到指令,則根據指令的不同類型執行不同的子任務,然后診斷傳輸是否出現問題,如果一切正常的話,繼續往下執行。

3.5.2 中斷處理

STM32的NVIC支持通過搶占優先級和子優先級來區分中斷。高搶占優先級的中斷可以打斷低搶占優先級的中斷,構成嵌套中斷。而相同搶占優先級的中斷不會彼此打斷,當同時有多個相同搶占優先級的中斷時,優先響應子優先級高的中斷。因此可以利用高搶占優先級可以打斷低搶占優先級中斷的這一特性來保證軟件的實時性。讓對實時性要求高的任務打斷對實時性要求低的任務。

在本文中,根據北斗數據傳輸的過程涉及到的業務情況,在程序中設計了本系統的中斷處理機制,具體過程如圖所示:

(1)確定各業務的實時等級,安排在不同的優先級,分配不同的中斷級別;

(2)使能外設的相應中斷,配置寄存器的中斷使能位,同時開啟GPIO端口的時鐘;

(3)初始化NVIC_InitTypeDef結構體,調用NVIC_IRQChannelPreemptionPriority()函數設置搶占優先級和響應優先級,配置中斷優先級分組,調用NVIC_IRQChannelCmd()函數使能中斷請求,調用NVIC_IRQChannel()函數設置不同的中斷源;

(4)在stm32f0xx_it.c中編寫中斷服務函數,根據給出的中斷向量表,定制對應業務的中斷服務函數。

4 結語

本文設計的基于北斗導航的車輛信息管理系統,在微控制器STM32構成的嵌入式系統下,通過與北斗衛星模塊進行通信,獲取實時的衛星數據,掌握車輛的軌跡數據,并將數據通過GPRS的蜂窩網絡,遠程傳輸到后臺的數據服務器,服務器對數據進行解析處理,最終實現對車輛信息的數字化管理,提高車輛信息管理的安全性與便捷性。

參考文獻:

[1]朱立妙,沈旭東,何樂華.基于北斗/GPS雙模定位的遠程車輛防盜監控系統設計[J].機電一體化,2022,28(06):35-41.

[2]鈕思玥. 基于GPS與GPRS的車輛防盜系統的設計與實現[D].內蒙古大學,2018.

[3]梁楠,吳傳強.北斗智慧交通道路運輸車輛動態監管服務平臺 打通智慧交通脈絡[J].中國自動識別技術,2022(02):45-50.

[4]馬凱,鮑顥之,哈欣怡,王藝瑾,封曉同.基于STM32的城市消防車監測及智能調度系統[J].微處理機,2022,43(06):48-52.

[5]鄧軍,王澤,張璽,習特銘,周佳葆.基于STM32的北斗定時定位實驗系統設計[J].實驗室科學,2022,25(06):82-85.

[6]蘇日古格,于新海,國芳,王睿聰.基于STM32單片機的北斗/GPS雙模定位系統設計及測試[J].信息與電腦(理論版),2021,33(01):123-125.

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合