摘 要: 提出了利用單芯片實現面向挖掘機圖形儀表的新一代車載終端系統設計與實現方法。采用富士通公司推出的MB86R01作為核心,根據挖掘機的要求和特點,主要介紹了挖掘機儀表的硬件和軟件設計。利用μC/OS-II作為操作系統設計一款精度高、靈敏度高、界面友好、工作穩定的嵌入式挖掘機圖形儀表。利用MB89296圖像處理器實現挖掘機儀表顯示任務,減輕了CPU的負擔,使圖形顯示更加高效。
關鍵詞: 圖形儀表;MB86R01;圖像處理器;μC/OS-II;CAN總線
儀表板作為挖掘機的一個關鍵部件之一,它集中了全車的儀表,能集中、直觀、迅速地反映挖掘機在行駛過程中的各種動態指標,如發動機轉速、行駛速度、油溫、水溫、油壓、GPS、視頻、故障診斷及各種指示燈和報警信號等。挖掘機駕駛員能夠通過儀表板上顯示的信息,了解挖掘機當前的工作狀態,以便及時地對挖掘機做出相應的處理。目前儀表板已經由最初的基于機械作用力而工作的機械式儀表發展到步進電機式儀表板,采用步進電機驅動指針指示車速、轉速、油量、水溫等[1]。傳統的挖掘機表存在占用面積大、分布散亂、顯示內容固定單一、顯示信息量小等缺點,不具有可配置性,而且惡劣的工作環境常常導致儀表顯示的信息不準確或失靈等[2]。這些傳統儀表板的缺點都在很大程度上影響了駕駛員對挖掘機的使用。
為克服傳統儀表板的局限性,根據挖掘機的工作特點,設計新一代全數字式挖掘機圖形儀表板代替傳統的機械儀表來準確、穩定、靈活地顯示挖掘機所有信息成為一種必要,也是儀表板發展的一種趨勢。
1 挖掘機圖形儀表板系統結構總體設計
挖掘機儀表板處理的主要信息有發動機轉速、油溫、水溫、油壓、GPS、視頻、故障診斷以及各種指示燈和報警信號。本文設計的挖掘機圖形儀表板的MCU利用CAN總線與控制器ECU等其他各個部件進行數據間的通信,最終在儀表板上顯示出各個功能模塊的信息。挖掘機系統框圖如圖1所示。
2 挖掘機儀表硬件設計
挖掘機儀表板的硬件框圖如圖2所示,該系統的硬件電路主要包括了以MB86R01為核心的時鐘電路、復位電路、電源電路、JTAG調試電路、存儲器電路、串口通信電路、視頻輸入電路、LCD顯示電路、按鍵電路和CAN總線收發電路組成。
該硬件系統的MCU采用的是MB86R01,該芯片是由富士通公司推出的一款單芯片實現新一代車載終端系統的微處理器。MB86R01整合汽車電子所需的各種功能,如2D/3D繪圖、汽車通信控制系統、程序保護功能及各種媒體接口;并將這些功能整合在一顆芯片上,進一步降低系統成本。此產品可對應來自汽車導航裝置或數字儀表板的資料及車載局域網絡的所有信息,并能同時提供舒適的駕駛環境以及高品質的繪圖顯示。本文的設計是將MB86R01應用于汽車儀表上的這些特性移植到挖掘機上來開發挖掘機圖形儀表。
MB86R01采用工作主頻達333 MHz的32 bit ARM926EJ-S內核作為控制CPU,片內有兩片內置的32 KB SRAM,提供了足夠的程序存儲空間。另外,MB86R01中采用富士通的MB89296圖像處理器(GDC)作為2D/3D圖像顯示和視頻捕捉。MB86R01的GDC可以實現3D繪畫顯示功能,與抗鋸齒功能組合使用能夠繪制光滑漂亮的直線。從幫助安全駕駛的角度出發,畫面的重疊對于MB86R01實時地收集各種信息,簡明易懂地傳遞給司機來說是個非常方便的功能,MB86R01能支持最多6個圖層的重疊,實現圖像的清晰顯示[3]。這主要是MB86R01利用了專門的圖像處理器,所以在圖像顯示上有其突出的優勢。
另外,MB86R01使用視頻紋理映射功能不變形地顯示后部攝像機等拍攝的圖像,克服了由于視野范圍、廣角鏡頭引起的變形而影響司機的判斷。新產品不僅可降低成本,并能維持高系統效能。
3 挖掘機儀表系統軟件設計
軟件部分主要由系統層和應用層組成[4]。對于一個嵌入式系統,選取合適的操作系統支持程序的開發是一個關鍵,針對不同的設計方案選取合適的操作系統能夠達到最好的設計效果。μC/OS-II操作系統的啟動快、研究免費、開源等特性符合本設計的需要,因而選擇μC/OS-II作為操作系統比較符合挖掘機圖形儀表的開發。應用層設計是在操作系統的基礎上編寫執行各種任務的程序代碼。
3.1 μC/OS-II系統簡介
μC/OS-II 是一種基于優先級的搶占式多任務實時操作系統,包含了實時內核、任務管理、時間管理、任務間通信同步(信號量,郵箱,消息 隊列)和內存管理等功能。它可以使各個任務獨立工作,互不干涉,很容易實現準時而且無誤執行,使實時應用程序的設計和擴展變得容易,使應用程序的設計過程大為減化[5]。
3.2 μC/OS-II在MB86R01上的移植及配置
μC/OS-II的源代碼除了那些與硬件關系極為緊密的軟件模塊不得不用匯編語言編寫之外,絕大部分代碼都是用C語言編寫的,所以μC/OS-II的可移植性極強。移植μC/OS-II要編寫3個文件,即OS_CPU.H、OS_CPU.C、OS_CPU_A.S。在OS_CPU.H中完成所需的基本配置和定義;OS_CPU.C源文件主要移植OSTaskStk Init()、OSTaskCreateHook()等6個函數;OS_CPU_A.S主要完成OSStartHighRdy()、OSCtxSw()等4個匯編函數的移植[6]。
3.3 系統任務及分析
μC/OS-II將各個執行的模塊程序作為任務,μC/OS-II的任務是一個無限循環的子程序。通過一定的調度機制來將各個任務有序實時地執行下去。本文中的挖掘機圖形儀表系統可以劃分為以下幾個主要任務:CAN總線收發與處理任務、LCD圖形儀表顯示任務、串口通信任務、視頻捕捉顯示任務、EEPROM存儲任務、鍵盤處理任務。各個任務之間可以通過信號量、郵箱和消息隊列實現任務的通信處理。
圖3為CAN收發與處理任務和LCD圖形儀表顯示任務的執行過程。初始化完成后,主程序發起CAN收發與處理任務和LCD圖形儀表顯示任務,兩個任務先后進人等待信號量和等待消息隊列的狀態。CAN總線中斷產生后,中斷服務程序釋放信號量,使CAN總線任務進人就緒狀態,在其獲得CPU使用權后,對總線數據進行處理并將數據發送到消息隊列,從而使LCD圖形儀表顯示任務進入就緒狀態,通過任務調度獲得CPU使用權后,根據消息隊列中的數據,計算指針需要指向的角度和需要顯示的數值并通過LCD顯示出來。
4 設計中需要解決的問題
4.1 存儲器問題
圖像存儲器是GDC系統的重要組件之一,存儲在圖像存儲器中的信息眾多,因此存儲器至關重要。存儲在圖像存儲器中的各種類型數據有:作圖幀;作圖幀的一個子集;顯示幀;3D作圖用到的Z緩沖數據;視頻捕捉緩沖器;一個從視頻輸入接口暫存的每個像素16位的區域;多邊形作圖標志緩沖器;在多邊形作圖時需要的每個像素1位信息;顯示列表緩沖器;紋理映射與光標圖形等。需要采取合適的存儲器結構解決CPU和GDC對存儲器的使用問題。
4.2 儀表圖形顯示問題
挖掘機圖形儀表的顯示有以下三種方案實現:(1)使用MB86R01自帶的繪圖功能進行2D/3D的繪圖,MB86R01中的GDC繪圖功能具有抗鋸齒效果。應用其繪圖功能可以繪制各種封閉的多邊形。(2)使用嵌入式應用中的圖形支持系統μCGUI來繪制圖形與寫文字。它提供非常好的允許處理灰度的顏色管理,還提供一個可擴展的2D圖形庫及占用極少RAM的窗口管理體系。(3)使用圖片格式來直接顯示圖形儀表,利用MB86R01特有的6層LCD顯示實現圖片的疊加。為了使儀表的畫面豐富多彩、界面友好,因此采用圖片疊加的方法并且結合使用MB86R01自帶的繪圖功能描繪簡單的圖形進行圖形儀表的顯示。
4.3 圖片處理問題
對于采用的圖片疊加顯示的方案,需要進行前期的圖片處理與修飾使之適合LCD的顯示。最重要的一個問題在于抗鋸齒算法的處理與實現。而對于利用MB86R01進行繪圖則可以在原圖像的邊緣重新利用抗鋸齒線重新繪制邊緣達到抗鋸齒效果[3]。
本文介紹了一種基于μC/OS-II嵌入式系統的挖掘機圖形儀表的設計方案。利用MB86R01作為MCU較以往采用單片機作為系統控制核心的儀表,其功能穩定性及精度等都有很大拓展。指針反應速度快、指示準確、圖形顯示清晰、功能強大。未來將會有越來越多的信息集成到儀表盤上,儀表盤未來將告別數字時代進入圖像時代。
參考文獻
[1] 戴方全,王建.基于μC/OS-II的全數字汽車儀表[J].汽車科技,2007(4):43-45.
[2] 王理停,劉強.工程機械圖形儀表信息系統設計與研究[J].微型機與應用,2011,30(8):86-88.
[3] Fujitsu. MB86R01 LSI product specifications[DB/OL]. http://www. fujitsu. com/emea/services/microelectronics/gdc/gdcdevices/mb86r01-jade.html.
[4] 吳蕾,付永慶.基于ARM9的彩色LCD屏駕控信息顯示儀表的設計[J].應用科技,2009,36(1):52-56.
[5] LABROSSE J J.嵌入式實時操作系統μC/OS-II(第二版)[M].邵貝貝,等譯.北京:北京航空航天大學出版社, 2003.
[6] 陳益平,朱敏,胡德安.基于s3c44b0x的汽車數字儀表[J].儀表技術與傳感器,2009(6):52-56.