高龍琛,丁 月,陳永紅,劉 政,邢建平
(1.山東大學 微電子學院,山東 濟南 250101;2.濟南市城市公共客運管理服務中心,山東 濟南 250013)
隨著國家經濟的發展,對教育行業的投入逐年增加。但由于缺乏有效監管,校車事故頻繁發生。自2013年起,我國校車傷亡事件數量逐年上漲,單起事故的傷殘率與死亡率由2013年的3.5人/起、0.75人/起上升至2016年的13.38人/起、2.25人/起,給社會造成了極大危害[1]。因此,排除安全隱患,對校車進行實時監控刻不容緩。
物聯網技術的發展帶動車聯網行業的興起。大量車輛接入互聯網,將自身內部信息通過網絡傳輸至聯網服務端平臺,以保證車聯網系統的實時運作。傳統的車聯網終端加入互聯網通過使用GPRS模塊接入IPv4網絡,WebGIS(網絡地理信息系統)服務平臺和數據庫也在IPv4環境中工作。隨著Internet規模的日益擴大,車聯網網絡中各終端對網絡IP地址數量的要求越來越大,產生了大量的地址需求,傳統方式已無法滿足當前需求。IPv4地址的短缺日益嚴重,不適用于大規模車輛加入互聯網以及車與車之間的網絡連接。車載終端需要獨立的IP地址才能與服務平臺建立對等的通信連接,IPv6網絡無疑為車聯網的發展提供了一種便捷的技術路線。在IPv6網絡下建立車聯網系統,實現車聯網中人-車互聯、車-車互聯的場景,實時掌握車輛動態信息,才能有效預防人為原因造成的重大安全事故。
本系統融合了WebGIS服務平臺、Oracle分布式數據庫、安全網關等集存儲、訪問、轉發于一體的云端車聯網云服務平臺,設計基于嵌入式Linux的車載終端設備,實現了高精度北斗/GPS厘米級定位系統,開發了基于V4L2框架的視頻服務器系統。監管人員能夠實時監控終端報警數據,實現對報警數據的記錄、查詢,第一時間預警、處理危險情況。
本系統旨在解決難以實時監管車輛的問題。車聯網監控系統需要完成對車輛信息的獲取、云端數據的存儲與獲取、云平臺指令下發,以及實現人-機交互等功能,系統架構如圖1所示。車載終端獲取車輛實時信息,包括終端定位數據、車身OBD(車載自動診斷系統)數據以及監控視頻相關數據等,通過網絡將數據加密后上傳至安全網關,安全網關接收到終端數據后,將數據進行拆包、校驗、解密后,轉發至分布式數據庫中分類儲存。WebGIS監控管理服務平臺用于向監管人員實時顯示車輛定位信息,包括對車身數據的調取,如油耗、剎車、車速等;向平臺實時展示報警數據,如超速行駛、車身狀態異常等。云平臺嵌入大數據分析框架,可對駕駛人員的急加速、急減速等不良駕駛行為進行次數統計,通過分析駕駛員的駕駛歷史,對其進行安全駕駛等級劃分,從而激勵駕駛人員文明駕駛。

圖1 車聯網系統架構
車載定位終端需要完成對車輛信息的獲取與實時數據的上傳,以及視頻服務器的運行。車載終端如圖2所示。選取ARM Cortex-A9作為系統處理器單元,終端內部運行嵌入式Linux操作系統。板載UVC高清攝像頭、北斗/GPS雙頻高精度定位模塊、WiFi/4G模塊,以及CAN網關設備接口。

圖2 高清視頻服務器設計
ARM Cortex-A9處理器是基于指令集ARMv7的A系列處理器,相比上一代處理器,它在降低功耗的同時提升了功效和峰值性能,適應性良好。其中,內部媒體處理引擎(MPE)可加強特定應用中的性能表現,滿足長時間電池供電需求。嵌入式Linux系統因其免費開源、易移植、性能穩定、開發周期短等特點,被廣泛應用于嵌入式設備中。本系統基于嵌入式Linux系統編程,實現車聯網終端設備中包括IPv6網絡加入、高精度定位信息處理、車身OBD數據獲取、遠程視頻服務器等功能。
終端系統中的CPU通過讀取GPS/北斗定位模塊的數據與INS慣導模塊的數據[2],將GPS/北斗定位源數據與慣導原件的源數據進行數據融合,采用動態加權融合算法降低慣性導航系統在工作過程中的累計誤差,實現厘米級精度定位,保證校車定位信息的可靠性。結合速度、姿態、位置的誤差方程,建立組合導航狀態方程(連續系統)。通過狀態方程可以遞推出下一時刻的速度、姿態、位置,用于與差分定位的輸出進行融合。由狀態轉移方程得到下一時刻的位置、速度等數據。


式中:X為狀態矢量;F為狀態轉移矩陣;G表示噪聲驅動;W表示系統噪聲矢量矩陣[3]。將算法用C語言離散化表示,定義輸出函數,執行程序后即可得到下一時刻的速度、位置等信息。在嵌入式Linux系統下運行該程序時,需要使用ARM-Linux-gcc工具編譯程序,然后將交叉編譯環境中生成的程序拷貝至ARM平臺系統中運行。
車載終端需完成對UVC攝像頭視頻的獲取、封裝、儲存以及壓縮等。本系統遠程視頻服務器采用V4L2(Video for Linux Two)架構[4],該架構是Linux為視頻設備提供的標準接口,主要包括V4L2相關底層數據結構和V4L2相關底層驅動接口,可使程序具備發現和操作設備的能力。視頻服務器工程流程如圖3所示。初始化輸入設備相關函數,通過FFmpeg程序將采集的圖像壓縮編碼為適合網絡流媒體傳輸的H.264格式,并將圖像壓入緩沖區,供輸出函數調用。FFmpeg可以記錄、轉換數字音視頻,并將其轉化為開源計算機程序[5]。輸出函數通過創建Socket進程綁定本地IPv6地址與端口,回應客戶端發起的UDP請求,將圖像或視頻數據通過HTTP應答的方式發送至客戶端,供客戶端讀取調用。對視頻實現H.264壓縮編碼需要借助FFmpeg相關庫,在交叉編譯環境下安裝編譯完成之后將FFmpeg庫生成的動態鏈接庫復制到嵌入式Linux系統[6]。將程序移植到ARM Cortex-A9 硬件開發平臺,在Ubuntu平臺下搭建ARM-Linux交叉開發環境,將程序拷貝至ARM平臺。

圖3 高精度定位數據的獲取
車聯網系統運行在IPv6網絡環境中,數據鏈路中的通信協議不再適用,需構建適用于IPv6網絡的數據包格式。車載終端需定時向云平臺上傳數據,通過TCP協議建立與云平臺數據通信鏈路的連接,上傳數據包括車輛登錄與退出、終端心跳包傳輸、車身OBD數據傳輸、報警、監控視頻傳輸等信息。通信網關接收到數據后,對不同的數據包進行處理,包括對每一幀數據的校驗、解密、拆包,將有效數據根據數據庫規則存入對應數據庫中。其中,車載終端向服務平臺上傳的定位報警數據主要包括車載終端ID、IPv6地址、端口、定位數據、定位時間、速度、報警、油耗,以及附加消息;多媒體數據包括ID、IPv6地址、多媒體數據類型、數據包大小、數據格式、附加消息等;平臺向車載終端下發的指令消息包括車載終端ID、IPv6地址、指令類型、指令數據、附加消息等;指令類型包括視頻監控調取、視頻畫面抓拍、當前終端數據上傳等。通信協議格式見表1所列。

表1 通信協議格式
數據庫用于存儲車輛相關信息以及多媒體信息等,供WebGIS服務平臺使用JDBC組件調取使用。數據庫是車聯網系統的關鍵,用于支撐車聯網云平臺的數據調用以及數據分析。網關系統通過ODBC組件與數據庫進行數據交互,網關將終端上傳的不同類型的數據解析后,將有效數據寫入數據庫。數據庫參數見表2所列。

表2 數據庫參數
定位信息包括定位車輛的經度、緯度、速度、IPv6地址、定位時間等,用于在車聯網平臺獲取數據庫信息并實時顯示在車聯網平臺。
車聯網云服務平臺包括監控管理平臺、網關系統、分布式數據庫等,其中監控管理網站平臺需要完成對車輛信息的顯示,包括對定位數據與WebGIS數據的融合,與道路匹配,以及提供車聯網云計算平臺相關服務。云服務平臺架構基于WebGIS+Oracle[7]數據庫,使用Java Web完成前端服務程序與后端數據處理程序。平臺應用分層搭建,主要分為應用層、服務接口、業務層、存儲層、數據處理層、通信層、設備層,如圖4所示。

圖4 云服務平臺架構
(1)云計算環境支撐層IaaS:為云服務對象提供統一的訪問界面,包裝云服務資源、建立服務等級SLA、管理云服務對象狀態和請求等。
(2)平臺服務層PaaS:通過構建分布式服務平臺,對外提供平臺級服務,包括開發環境、平臺資源、服務資源。PaaS提供了消息中間件、數據持久化存儲、多媒體存儲、統一配置、用戶權限、數據分析、運維管理中心等基礎服務;對外提供了服務的限流、降級、熔斷、路由等核心功能。
(3)軟件服務層SaaS:該層主要基于PaaS提供的資源開發業務構建核心業務,搭建微服務業務集群,Open API應用通過前端軟負載對外提供軟件服務。該層主要實現具體的業務邏輯,通過微服務開發方式把系統業務拆分成多個單元模塊,降低模塊耦合性,提高系統健壯性。系統通過Open API提供與其他接入方的數據接口。
車載終端內部ARM平臺使用基于Linux 3.0內核的Qt嵌入式操作系統,內核內部集成IPv6協議棧,ARM平臺硬件板載MT6620 WiFi/藍牙芯片,設備經無線網絡接入校園網,通過無狀態地址自動配置協議獲取全局IPv6地址。硬件平臺如圖5所示。

圖5 車載終端硬件平臺
遠程視頻服務器初始化完成后,查詢IPv6地址下有無UDP請求,若有,則根據請求做出應答,通過板載LCD觸摸顯示屏顯示實時UVC攝像頭畫面。通過Socket綁定IPv6地址與端口號,與網關系統建立IPv6網絡下的TCP連接,完成登錄、數據上傳等信息交互。
網關選用Windows Server 2012版本,通過監聽本地IPv6地址[8]與對應端口號,接收來自車載終端上傳的數據,將數據校驗解密后通過ODBC連接數據源,將數據存入分布式數據庫。
分布式數據庫集群采用Oracle RAC,其架構的最大特點是將整個RAC集群建立在一個共享的存儲設備之上,節點之間高速互聯。在Oracle安裝文件夾目錄中修改listener.ora文件中的監聽地址,使數據庫監聽程序監聽本地IPv6地址。系統工作流程如圖6所示。車載終端通過加入無線IPv6網絡監聽云平臺有無指令下發,同時實時保持與網關間的通信鏈路;網關系統實時監聽來自終端與平臺的數據并處理,之后加密轉發至數據庫。

圖6 車聯網系統運行流程
打開設備運行程序,終端車載設備向網關上傳數據,發送登錄注冊信息與終端定位數據,地圖實時顯示當前數據,通過歷史回放可以查詢當前車輛行駛軌跡等信息。云平臺還具備報警數據上傳、駕駛員駕駛行為分析、路況查詢等功能。監控平臺展示界面如圖7所示。

圖7 監控平臺展示圖
硬件平臺板載2路UVC高清攝像頭,一路拍攝司機,一路拍攝車內乘客。待終端遠程視頻服務器程序初始化完畢,車輛根據功能提示打開車載視頻,并根據數據庫保存的車載終端的IPv6地址,打開對應視頻服務器8080端口。遠程視頻監控測試圖如圖8所示。

圖8 遠程視頻監控測試圖
本文簡述了IPv6網絡下校車監控系統的搭建與實施,分別對校車監控各子系統做了簡要分析,通過在校車內部安裝監控系統,實現在IPv6網絡環境下的校車遠程監管與視頻實時監控。該系統能夠預防由于監管不足造成的人為行車事故,實現向下一代網絡環境下車聯網系統的過渡以及原型驗證。