王強林
(南京交通職業技術學院 信息化建設與管理辦公室,江蘇 南京 211188)
隨著機動車保養量的快速上升,給交通環境帶來了極大的壓力,這一點在以北上廣為典型的經濟發達地區尤其明顯。緩解這種壓力的方法有很多,比如現階段采用的限行,但是這種方法是以犧牲交通需求為前提的。再比如人工干預,但這種方式效率很低,實時性也較差。為此,人們在車聯網領域提出了車路協同系統的概念。其基本思想是通過車與車、車與路之間的信息交互來達到整個交通環境的優化和管控,在不犧牲交通需求的前提下從根本上解決交通環境的壓力。
車路協同的基本實施方法是由車載終端通過無線通信技術將車輛位置、工況等信息發送給路側設備,從而讓路測設備獲知一個范圍內每輛車的交通行為信息,然后通過相應的交通管控策略,一方面控制紅綠燈,另一方面向車輛發出管控和警示信號。從而在整體上控制相關路段的交通流量和車輛行駛行為,最大限度降低交通擁堵,提高交通效率。很明顯,車路協同技術的基礎之一就是車載終端系統。該系統需要能夠實時讀取車輛行駛信息,然后通過無線通信技術發送給路側設備[1-2]。
本文提出了一種基于飛思卡爾硬件平臺和Linux軟件平臺的車載終端設計方法,能夠實時讀取相關車況信息,并具備3G通信功能。
本文設計的車載終端在邏輯上分為硬件抽象層、內核層、車況協議解析層、應用層共5層,其架構如圖1所示。
本文所提方法采用的硬件平臺是飛思卡爾以MPC563x型MCU處理器為硬件平臺。該處理器采用32位計算架構,采用40 MHz,60 MHz和80 MHz 3種工作基頻,可用于數字信號處理(Digital Signal Processing,DSP)和浮點操作,具有196個中斷源。該處理器提供串行外設接口(Serial Peripheral Interface,SPI)、控制器局域網絡(Controller Area Network,CAN)、異步串口等豐富的外圍接口,完全能夠滿足本文設計車載終端的數據處理和通信的功能需求[3-4]。

圖1 車載終端架構
本文所設計平臺直接將外設連接到MPC563x處理器的外圍引腳上,大大降低了PCB設計和制造代價,并提高了其可靠性和能耗比。
軟件平臺的核心是操作系統。目前主流的車載級操作系統有很多,但是像Vxworks,QNX等系統的使用成本較高。為了提高性價比,本文基于Linux搭建軟件平臺。Linux具有開源、穩定、高效、移植性好等優點,并具有非常龐大的上層開發工具鏈。
本文首先將Linux移植到MPC563x開發板,然后移植板級支持包(Board Support Package,BSP),編寫了CAN總線、SPI和串口驅動,并定制了文件系統,為后續上層應用開發搭建了底層平臺。
目前車輛上搭載了各種監視運行工況的傳感器。這些傳感器把數據發送給相應的控制器,再由控制器在CAN網絡上進行共享。本文通過CAN總線向控制器獲取相應傳感器數據。訪問通信協議采用UDS。因此,本文對UDS協議解析程序進行編寫。UDS協議工作流程如圖2所示。

圖2 UDS協議工作流程
根據車載終端功能需要,本文對車輛車速、方向盤轉角、油門位置、旋轉信息進行了讀取,讀取頻率設為5 Hz。
本文需要對車輛位置進行實時讀取。目前廣泛使用的方式就是讀取GPS信號。GPS協議中使用最廣泛的就是NMEA-0183協議。該協議定義的標準通信接口參數如下。
波特率:4 800 bit/s(缺省值);
數據位:8位;
停止位:1位;
奇偶校驗:無;
傳輸長度表:傳輸長度=傳輸總字符數/每秒傳輸數。
協議所規定的通信語句都已是以ASCII碼為基礎的,NMEA-0183協議語句的數據格式如下:“$”為語句起始標志;“,”為域分隔符;“ *”為校驗和識別符,其后面的兩位數為校驗和,代表了“$”和“*”之間所有字符的按位異或值(不包括這兩個字符);“/”為終止符,所有的語句必須以回車換行來結束,也就是ASCII字符的“回車”(十六進制的0D)和“換行”(十六進制的0A)。
本文所設計的應用層主要具有3個功能:(1)讀取車況與位置信息;(2)對所采集數據進行融合,生成車輛行駛信息向量;(3)3G數據收發。應用層框架如圖3所示。

圖3 應用層框架
本文在東風標致3008車輛上進行技術驗證。實驗參數如表1所示。

表1 實驗參數
實驗時間總計12 min。共獲取3 600組車輛行駛數據,如圖4所示的是其中500組。

圖4 500組車輛行駛數據
上述結果表明,本文所設計的車載終端滿足預期要求。
本文基于飛思卡爾和Linux系統設計了一種能夠獲取車輛行駛狀態數據的車載終端,并能通過3G進行數據交互。在東風標致3008車輛上的實驗結果表明,該裝置滿足預期要求。