?

基于NiosII多核智能交通車載終端的設計與實現

2013-09-25 14:12張方方
電子設計工程 2013年4期
關鍵詞:車載嵌入式終端

劉 軍,金 蕾,張方方

(1.西安郵電大學 計算機學院,陜西 西安 710121;2.西安郵電大學 電子工程學院,陜西 西安 710121;3.廣州致遠電子有限公司 廣東 廣州 510660)

近年來,隨著中國汽車工業的發展,越來越多的人喜歡開私車出行,所到之地也越來越廣,傳統的“看地圖,找地名”方式已很難為車主提供具體客觀的路況等信息,各式各樣的導航系統方興未艾。

市面上的導航系統一般只提供道路、地點等靜態信息,基本不提供道路擁堵及停車場車位情況等動態實時信息。而且基于Internet的實時路況查詢系統一般都基于個人計算機,遠沒有嵌入式系統方便實用[1-2]。因此,本文利用SOPC工具進行系統設計時,硬件與軟件系統的可裁減性,開發了一個“基于NOIS II多核智能交通車載終端”的系統,本系統的設計充分利用雙Nios II軟核的多種功能和特點,所有的控制和數據處理都是在一片FPGA生成的雙Nios II軟核處理器的管理下進行,充分體現了高度集成的SOPC解決方案,擺脫了傳統軟件依賴于硬件的開發模式[3-4]。

1 系統組成

考慮到要向客戶提供道路擁堵情況等實時信息,該系統采用客戶機—服務器模式,將地圖等靜態信息存放于車載終端中,而實時的動態信息由后臺服務器在用戶發出請求后,通過無線通信模塊傳送給用戶[5-6]。系統組成如圖1所示。

圖1 系統組成圖Fig.1 System diagram

本系統設計分為軟件和硬件兩大部分。硬件結構如圖2所示。

圖2 硬件系統框圖Fig.2 Hardware block diagram of system

其中CPU1運行應用程序(GUI),CPU2運行GPS模塊和GPRS模塊,CPU1與CPU2間通過3個互斥核通訊。其中GPS用于GPS模塊與GUI鍵的通訊,GPRS_TX用于 GPRS向GUI發送數據,GPRS_RX用于GUI向GPRS發送數據[7-8]。

軟件結構如圖3所示。

圖3 軟件系統框圖Fig.3 Software block diagram of system

μC/OS II是我們整個GPRS通信模塊的基礎,通信模塊所有任務的調度和各個任務之間的通信都是依靠μC/OS II完成的,主要用來調度Task_start(主控任務)、Task_GPS_Send(從串口接受 GPS數據并向 GUI發送 GPS信息)、Task_GPRS_Send(向 GUI發送后臺傳來的數據)、Task_GPRS_TCP_Send(向后臺發送前端服務請求)等9個任務。

μC/GUI不僅提供了豐富的界面元素(窗體,各種控件)和繪圖函數,同時也提供了很好的顏色管理和漢字支持,對硬件也提供了良好的底層驅動支持。我們的應用程序正是基于這樣的圖形用戶接口開發的[9]。

2 系統實現

2.1 Nios雙核處理器的設計

由于uc/GUI的調用關系復雜,地圖數據的處理過于龐大,導致μC/OS II調度GUI所需的堆棧太大,調度效果很不理想,于是決定拋棄μC/OS II,提出雙核設計,即滿足了 uc/GUI運行于無操作系統環境中,又保證GPS和GPRS運行于有操作系統環境中。設計思想如下:

第一個CPU的功能:

1)人機交互,不設置操作系統;

2)μC/GUI及應用程序的運行。

第二個CPU的功能:

1)設置嵌入式實時μC/OS II操作系統;

2)通過UART1串口接受前端GPS數據;

3)通過UART2(自定義擴展)串口與GPRS模塊通信。

2個NiosII軟核通過mailbox進行軟核間的通信。

Altera提供的雙核互斥通訊機制使用效果不能滿足系統要求,于是編寫了郵箱機制來實現雙核間的互斥通訊。

互斥信號量(mutex)是解決雙處理器爭用存儲器的關鍵。它的位寬為2x32bit(見表1)。首先將VALUE值置0x0000,RESET位賦‘1’,使能mutex。而在多核的環境中也可以用信箱(mailbox)在多核之間進行通信,mailbox含有的互斥信號量(mutex)僅僅在同一時刻使一個CPU修改mailbox里面的內容,基于兩者的優點,在互斥信號量的基礎上用信箱的方式來解決雙處理器爭用存儲器的問題。下面分別是共享存儲器和信箱的結構體:

表1 互斥信號量Tab.1 Mutual exclusion semaphore

2.2 μC/GUI移植重點和應用程序開發

μC/GUI不僅提供了豐富的界面元素(窗體,各種控件),繪圖函數,以及顏色管理和漢字支持,同時對硬件也提供了良好的底層驅動支持。在μC/GUI的基礎上,使用壓縮位圖作為存儲格式開發的智能交通導航系統界面如下:

首先定義GUIConf.h和LCDConf.h這兩個文件,GUIConf.h是μC/GUI功能模塊和動態存儲空間 (用于內存設備和窗口對象)大小,默認字體設置等基本GUI預定義控制的定義。LCDConf.h為LCD大小,控制器類別,總線寬度,顏色選取等LCD參數控制文件。

GUI/CORE/LCD_ConfDefaults.h文件內可以找到所有囊括LCD配制默認選項,包括LCD屏個數,控制器個數,調色板,屏幕反向設置等眾多配制選項。如果配備觸摸屏可以通過GUITouchConf.h進行配制,根據觸摸屏及其控制芯片編制以下幾個函數:

void TOUCH_X_ActivateX (void);//準備 X 軸數據測量

void TOUCH_X_ActivateY (void);//準備 Y 軸數據測量

因為在本系統的軟件中不需要測量X、Y軸的數據,所以以上兩個函數均為空結構體;

int TOUCH_X_MeasureX (void);//根據AD轉換結果返回X的值

int TOUCH_X_MeasureY (void);//根據AD轉換結果返回Y的值

以上幾個函數在GUI_TOUCH_Exec()會被調用,將它們寫好即可。

2.3 行程壓縮算法(RLE算法)

雖然μC/GUI自身提供了RLE算法,但解壓時要全部解壓,會占用大量的內存和CPU,而對于本系統并不需要完全解壓,在地圖中主要以白色為主而且是連續的,因此采用了類RLE算法,即只壓縮白色像素,以壓縮率的微弱降低來換取更快的壓縮速度,而且在解壓時采用部分解壓,即只解壓屏幕上顯示部分,大大減少了內存使用量。在實際操作中制作的地圖達4.1M,而Altera的DE2板子的Flash只有4M,如果不采取壓縮算法,地圖根本無法運行,經過類RLE算法,地圖壓縮到了2.45M,節省了DE2板的Flash。

圖4 導航系統界面Fig.4 Navigation system interface

2.4 客戶端-服務器模式的應用

服務器端軟件是由Microsoft SQL2000和Microsoft Visual Studio.NET 2003完成的,數據庫中主要包括的是酒店、商場、醫院、車站、加油站及道路等信息,而.NET主要完成了界面的設計、算法設計和數據處理等。后端服務器軟件的登陸界面如圖5所示。

由于后端服務器可以實時的將路況的信息反饋給車主,本車載終端可用作交通部門的數據采集終端,假設交通部門裝配了一定數目的該系統(比如安裝在公交車、出租車上),則交通部門可以通過該車載終端發送的位置信息 (當然,用戶也可以不發送)了解道路擁堵情況。算法設計如下:

N為某條道路S上裝配該設備的車輛數目;

圖5 后端服務器軟件登陸界面Fig.5 Back-end server software interface

R為這些車輛的平均行駛速度(一定時間內,該時間會大于紅綠燈的紅燈時間,以免造成誤判斷);

R0為該路段限速最大值。

若R<<R0且N大于一定數目 (減少可能存在的司機停車情況對結果的影響),我們可以認為該路段擁堵,R越小則擁堵越嚴重。

3 結束語

為了更好的將道路實時信息反饋給車主,方便車主與控制中心聯絡和通信,本系統外置了GPRS模塊,通過串口和FPGA中的NiosII軟核聯系。車主可以直接發送服務請求給后端的監控中心,并獲得相關的服務,同時后端通過采集道路信息而及時了解道路交通情況。由于SOPC系統構件中硬件和軟件的可裁剪性,使得系統開發過程中軟硬件設計可以協同開發,幾乎可以同時開始和同時完成,優勢明顯,加快了產品上市的進程,并可以保持一個較長的產品生命周期[10]。即使在開發過程中需要修改一些定義,也只需重新生成新的NiosII內核,對于其他的外圍器件或者是NiosII程序沒有任何影響。

[1]HungA,BishopW,AndrewKennings.Symmetricmultiprocessing on programmable chips made easy[J].1530-1591/05 IEEE.

[2]王衛源,戴紫彬,錢育蓉.NiosⅡ多處理器系統方案設計[J].微計算機信息,2007,7(2):96-97.

WANG Wei-yuan,DAIZi-bin,QIAN Yu-rong.Nios Ⅱmultiprocessor system design[J].Control&Automation,2007,7(2):96-97.

[3]李蘭英.NiosII嵌入式軟核SOPC設計原理及應用 [M].北京:北京航空航天大學出版社有限公司,2006.

[4]周航慈.基于嵌入式實時操作系統的程序設計技術[M].北京:北京航空航天大學出版社,2011.

[5]陸明,馮志勇.基于嵌入式SoC的車載系統設計與實現[J].微處理機,2008(4):174-176.

LU Ming,FENG Zhi-yong.Design and implementation of vehicle system based embedded SoC[J].Microprocessors,2008(4):174-176.

[6]Vanlvanno J W.嵌入式微計算機系統實時接口技術[M].李曦,周學海,方潛生,等譯.北京:機械工業出版社,2003.

[7]張佐經,吳旭光.基于GPS和GPRS模塊的車載導航定位系統設計[J].計算機測量與控制,2008,16(7):997-1000.

ZHANG Zuo-jing,WU Xu-guang.Design of multi-functional development board based on GPS module and GPRS module[J].Computer Measurement&Control,2008,16(7):997-1000.

[8]史軍勇,張曉煜.基于GPRS的實時路況車載導航終端研究與實現[J].計算機技術與發展,2011,21(9):156-159.

SHI Jun-yong,ZHANG Xiao-yu.Study and implementation of real-time traffic information navigation terminal based on GPRS[J].Computer Technology and Development,2011,21(9):156-159.

[9]邵貝貝.嵌入式實時操作系統μC/OS-II[M].北京:北京航空航天大學出版社,2003.

[10]江國強.SOPC技術與應用[M].北京:機械工業出版社,2006.

猜你喜歡
車載嵌入式終端
一種車載可折疊宿營住房
X美術館首屆三年展:“終端〉_How Do We Begin?”
高速磁浮車載運行控制系統綜述
通信控制服務器(CCS)維護終端的設計與實現
奔馳S級48V車載電氣系統(下)
GSM-R手持終端呼叫FAS失敗案例分析
搭建基于Qt的嵌入式開發平臺
智能互聯勢不可擋 車載存儲需求爆發
嵌入式軟PLC在電鍍生產流程控制系統中的應用
倍福 CX8091嵌入式控制器
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合