王強林
(南京交通職業(yè)技術(shù)學(xué)院 信息化建設(shè)與管理辦公室,江蘇 南京 211188)
隨著機動車保養(yǎng)量的快速上升,給交通環(huán)境帶來了極大的壓力,這一點在以北上廣為典型的經(jīng)濟發(fā)達地區(qū)尤其明顯。緩解這種壓力的方法有很多,比如現(xiàn)階段采用的限行,但是這種方法是以犧牲交通需求為前提的。再比如人工干預(yù),但這種方式效率很低,實時性也較差。為此,人們在車聯(lián)網(wǎng)領(lǐng)域提出了車路協(xié)同系統(tǒng)的概念。其基本思想是通過車與車、車與路之間的信息交互來達到整個交通環(huán)境的優(yōu)化和管控,在不犧牲交通需求的前提下從根本上解決交通環(huán)境的壓力。
車路協(xié)同的基本實施方法是由車載終端通過無線通信技術(shù)將車輛位置、工況等信息發(fā)送給路側(cè)設(shè)備,從而讓路測設(shè)備獲知一個范圍內(nèi)每輛車的交通行為信息,然后通過相應(yīng)的交通管控策略,一方面控制紅綠燈,另一方面向車輛發(fā)出管控和警示信號。從而在整體上控制相關(guān)路段的交通流量和車輛行駛行為,最大限度降低交通擁堵,提高交通效率。很明顯,車路協(xié)同技術(shù)的基礎(chǔ)之一就是車載終端系統(tǒng)。該系統(tǒng)需要能夠?qū)崟r讀取車輛行駛信息,然后通過無線通信技術(shù)發(fā)送給路側(cè)設(shè)備[1-2]。
本文提出了一種基于飛思卡爾硬件平臺和Linux軟件平臺的車載終端設(shè)計方法,能夠?qū)崟r讀取相關(guān)車況信息,并具備3G通信功能。
本文設(shè)計的車載終端在邏輯上分為硬件抽象層、內(nèi)核層、車況協(xié)議解析層、應(yīng)用層共5層,其架構(gòu)如圖1所示。
本文所提方法采用的硬件平臺是飛思卡爾以MPC563x型MCU處理器為硬件平臺。該處理器采用32位計算架構(gòu),采用40 MHz,60 MHz和80 MHz 3種工作基頻,可用于數(shù)字信號處理(Digital Signal Processing,DSP)和浮點操作,具有196個中斷源。該處理器提供串行外設(shè)接口(Serial Peripheral Interface,SPI)、控制器局域網(wǎng)絡(luò)(Controller Area Network,CAN)、異步串口等豐富的外圍接口,完全能夠滿足本文設(shè)計車載終端的數(shù)據(jù)處理和通信的功能需求[3-4]。
圖1 車載終端架構(gòu)
本文所設(shè)計平臺直接將外設(shè)連接到MPC563x處理器的外圍引腳上,大大降低了PCB設(shè)計和制造代價,并提高了其可靠性和能耗比。
軟件平臺的核心是操作系統(tǒng)。目前主流的車載級操作系統(tǒng)有很多,但是像Vxworks,QNX等系統(tǒng)的使用成本較高。為了提高性價比,本文基于Linux搭建軟件平臺。Linux具有開源、穩(wěn)定、高效、移植性好等優(yōu)點,并具有非常龐大的上層開發(fā)工具鏈。
本文首先將Linux移植到MPC563x開發(fā)板,然后移植板級支持包(Board Support Package,BSP),編寫了CAN總線、SPI和串口驅(qū)動,并定制了文件系統(tǒng),為后續(xù)上層應(yīng)用開發(fā)搭建了底層平臺。
目前車輛上搭載了各種監(jiān)視運行工況的傳感器。這些傳感器把數(shù)據(jù)發(fā)送給相應(yīng)的控制器,再由控制器在CAN網(wǎng)絡(luò)上進行共享。本文通過CAN總線向控制器獲取相應(yīng)傳感器數(shù)據(jù)。訪問通信協(xié)議采用UDS。因此,本文對UDS協(xié)議解析程序進行編寫。UDS協(xié)議工作流程如圖2所示。
圖2 UDS協(xié)議工作流程
根據(jù)車載終端功能需要,本文對車輛車速、方向盤轉(zhuǎn)角、油門位置、旋轉(zhuǎn)信息進行了讀取,讀取頻率設(shè)為5 Hz。
本文需要對車輛位置進行實時讀取。目前廣泛使用的方式就是讀取GPS信號。GPS協(xié)議中使用最廣泛的就是NMEA-0183協(xié)議。該協(xié)議定義的標(biāo)準(zhǔn)通信接口參數(shù)如下。
波特率:4 800 bit/s(缺省值);
數(shù)據(jù)位:8位;
停止位:1位;
奇偶校驗:無;
傳輸長度表:傳輸長度=傳輸總字符數(shù)/每秒傳輸數(shù)。
協(xié)議所規(guī)定的通信語句都已是以ASCII碼為基礎(chǔ)的,NMEA-0183協(xié)議語句的數(shù)據(jù)格式如下:“$”為語句起始標(biāo)志;“,”為域分隔符;“ *”為校驗和識別符,其后面的兩位數(shù)為校驗和,代表了“$”和“*”之間所有字符的按位異或值(不包括這兩個字符);“/”為終止符,所有的語句必須以回車換行來結(jié)束,也就是ASCII字符的“回車”(十六進制的0D)和“換行”(十六進制的0A)。
本文所設(shè)計的應(yīng)用層主要具有3個功能:(1)讀取車況與位置信息;(2)對所采集數(shù)據(jù)進行融合,生成車輛行駛信息向量;(3)3G數(shù)據(jù)收發(fā)。應(yīng)用層框架如圖3所示。
圖3 應(yīng)用層框架
本文在東風(fēng)標(biāo)致3008車輛上進行技術(shù)驗證。實驗參數(shù)如表1所示。
表1 實驗參數(shù)
實驗時間總計12 min。共獲取3 600組車輛行駛數(shù)據(jù),如圖4所示的是其中500組。
圖4 500組車輛行駛數(shù)據(jù)
上述結(jié)果表明,本文所設(shè)計的車載終端滿足預(yù)期要求。
本文基于飛思卡爾和Linux系統(tǒng)設(shè)計了一種能夠獲取車輛行駛狀態(tài)數(shù)據(jù)的車載終端,并能通過3G進行數(shù)據(jù)交互。在東風(fēng)標(biāo)致3008車輛上的實驗結(jié)果表明,該裝置滿足預(yù)期要求。