摘 要: 介紹了一種以SH7264微處理器為核心、μC/OS為操作系統(tǒng)的工程機(jī)械智能圖形儀表板的設(shè)計與實現(xiàn)方法。采用VDC分層圖像顯示,提高啟動速度、改善顯示質(zhì)量。在軟件設(shè)計中采用重構(gòu)技術(shù),加快了工程機(jī)械儀表板的開發(fā)速度及效率,節(jié)約了社會資源。
關(guān)鍵詞: 工程機(jī)械;儀表板;CAN總線;VDC;μC/OS
儀表板是各類工程機(jī)械必不可少的裝置,它用于顯示工程機(jī)械各個系統(tǒng)工作狀況,是工程機(jī)械與作業(yè)員進(jìn)行信息交流的界面,作業(yè)員通過儀表隨時掌握工程機(jī)械各個部件的工作狀態(tài)?,F(xiàn)代工程機(jī)械越來越復(fù)雜,所需的各類儀表也越來越多,傳統(tǒng)的工程機(jī)械儀表存在占用面積大、分布散亂、顯示內(nèi)容固定單一、顯示信息量小等缺點,不具有可配置性,而且惡劣的工作環(huán)境常常導(dǎo)致儀表顯示的信息不準(zhǔn)確或失靈;其次,主要由作業(yè)員根據(jù)目視得到的外界信息對工程機(jī)械進(jìn)行操作。隨著各種工程機(jī)械不斷向大型化、復(fù)雜化方向發(fā)展,傳統(tǒng)的目視觀察己經(jīng)越來越多地暴露出其局限性:如視角存在盲區(qū)、遠(yuǎn)處作業(yè)面無法看清等。傳統(tǒng)儀表板的這些局限性很可能導(dǎo)致作業(yè)員的操作不及時甚至失誤,不僅降低了生產(chǎn)效率,還帶來較大的安全隱患[1]。
傳統(tǒng)儀表已遠(yuǎn)遠(yuǎn)不能滿足現(xiàn)代工程機(jī)械高速發(fā)展的要求。為此設(shè)計一款既能夠以圖形、文字甚至動畫的方式來實時顯示工程機(jī)械的各種狀態(tài)信息,又能完成工程機(jī)械的視頻采集、解壓縮、終端顯示的多功能的智能圖形儀表信息系統(tǒng)顯得非常有必要,這也是今后工程機(jī)械儀表板發(fā)展的一個必然趨勢。
儀表板做為工程機(jī)械的核心技術(shù)之一,具有重要的地位。目前,我國在工程機(jī)械圖形儀表技術(shù)方面與德、美、日等國有較大差距,基本上只能由國外提供高端儀表,導(dǎo)致資金外流。因此,開展智能圖形儀表技術(shù)方面的研究,能擺脫對國外的技術(shù)依賴,對增強(qiáng)我國工程機(jī)械廠家的核心競爭力、促進(jìn)產(chǎn)業(yè)升級具有重要意義。
1 工程機(jī)械智能圖形儀表信息系統(tǒng)的總體設(shè)計
隨著工程機(jī)械的發(fā)展,各種機(jī)構(gòu)日趨復(fù)雜,其附屬裝置也越來越多,儀表板作為工程機(jī)械的信息中心,必須為操作人員提供挖掘機(jī)各部分的狀態(tài)信息,使駕駛員能夠及時了解挖掘機(jī)當(dāng)前的狀態(tài)。工程機(jī)械儀表板上主要顯示的信息有油溫、水溫、油壓、GPS、視頻、故障診斷及各種指示燈和報警信號,因此整個系統(tǒng)設(shè)計可分為電源模塊、主控制器模塊、CAN總線模塊、故障診斷模塊、GPS模塊、視頻解碼模塊、鍵盤及TFF-LCD顯示模塊,系統(tǒng)構(gòu)架如圖1所示。
2 硬件設(shè)計
工程機(jī)械智能圖形儀表板主要負(fù)責(zé)顯示、監(jiān)控工程機(jī)械運行時的狀態(tài)及從CAN總線接收到的各種主要參數(shù)。根據(jù)功能劃分,該系統(tǒng)的硬件電路主要包括電源模塊、CPU模塊、存儲器模塊、視頻處理模塊、LCD驅(qū)動模塊、模擬信號處理模塊、外部接口模塊(包括CAN和UART、GPS及故障診斷信息都通過該模塊來獲?。┖玩I盤掃描模塊等,其硬件結(jié)構(gòu)框圖如圖2所示。
本系統(tǒng)采用的主控制芯片是瑞薩公司2009年推出的Super H系列的32位SH7264[2]微處理器,該微處理器的特性包括工作速度高達(dá)144 MHz的32位超標(biāo)量SH-2A內(nèi)核和1 MB內(nèi)部SRAM。顯示圖形時,該內(nèi)部SRAM可用作幀緩沖器。因此,該微處理器可以減少外部元件的數(shù)量,縮小電路的設(shè)計面積。并且,只要加了電源電壓,內(nèi)部SRAM就能夠保持其數(shù)據(jù),所以器件具有減少待機(jī)功耗的優(yōu)勢。
內(nèi)置到SH7264芯片中的VDC3(視頻顯示控制器3)具有視頻輸入和RGB輸出功能,因此相同的硬件可以用于視頻和繪制圖形。大容量內(nèi)部SRAM與VDC3之間還具有專用總線:1個專用視頻總線和2個專用圖形總線。這種設(shè)計結(jié)構(gòu)允許同時傳輸不同類型的數(shù)據(jù)。這些總線操作都是獨立的,即使在傳輸視頻數(shù)據(jù)的同時,也可以操作CPU和外設(shè)功能總線。片內(nèi)帶1 MB的顯示緩存,可以支持QVGA、WQVGA大小的多層顯示數(shù)據(jù)緩存,而無需SDRAM。
3 軟件設(shè)計
工程機(jī)械智能圖形儀表板涉及到CAN總線中斷與視頻解碼、GPS信息采集、實時時鐘信息讀取、菜單設(shè)計、鍵盤掃描及與ECU進(jìn)行通信等多任務(wù)并行的復(fù)雜軟件系統(tǒng)。傳統(tǒng)的單任務(wù)順序程序結(jié)構(gòu)靈活性差、實時性差、資源利用率低,難以滿足多任務(wù)并行的實時數(shù)據(jù)采集系統(tǒng)的需要[3]。本文采用?滋C/OS操作系統(tǒng),?滋C/OS代碼小、可移植性強(qiáng),移植工作主要是對OS_CPU.H、OS_CPU_C.C、OS_CPU_A.ASM三個文件進(jìn)行修改[4]。
3.1 任務(wù)的劃分
本系統(tǒng)主要包括以下任務(wù):儀表虛擬圖形顯示模塊任務(wù)(圖形靜態(tài)顯示和指針圖形動態(tài)旋轉(zhuǎn)等)、基于圖像分層疊加的菜單界面設(shè)計模塊任務(wù),視頻顯示模塊任務(wù)、通信模塊任務(wù)、工況數(shù)據(jù)處理模塊任務(wù)、鍵盤掃描模塊任務(wù)、E2PROM讀寫模塊任務(wù)以及LCD顯示模塊任務(wù)。各任務(wù)間通過消息隊列和信號量來通信和共享數(shù)據(jù)。
3.2 任務(wù)結(jié)構(gòu)及分析
主程序在完成各種初始化操作后依次創(chuàng)建各任務(wù),然后通過調(diào)用OSStart()函數(shù)啟動操作系統(tǒng)。在μC/OS-II中,各任務(wù)被賦予不同的優(yōu)先級,擁有各自的任務(wù)堆棧,不同任務(wù)之間通過消息隊列和信號量互相通信和共享數(shù)據(jù)。任務(wù)都采用無限循環(huán)結(jié)構(gòu),各任務(wù)通過延時或等待信號量和消息隊列來放棄CPU使用權(quán)。這樣在時鐘節(jié)拍到來時將產(chǎn)生中斷級任務(wù)切換,系統(tǒng)轉(zhuǎn)而運行處于就緒狀態(tài)的高優(yōu)先級任務(wù),當(dāng)延時時間到或者信號量和消息到來時,任務(wù)將再次運行。系統(tǒng)中主要任務(wù)具體功能分析如下。
CAN總線接收與處理任務(wù):因為工程機(jī)械儀表板所顯示的信息主要來自與CAN總線相連的ECU主控制器,實時更新主控制器數(shù)據(jù)對操作員來說尤為重要,因此將該任務(wù)作為最高優(yōu)先級。
視頻解碼及顯示任務(wù):視頻作為工程機(jī)械操作的另一個重要輔助設(shè)備,很好地克服了視角存在盲區(qū)、遠(yuǎn)處作業(yè)面無法看清等問題。攝像頭傳輸來的數(shù)據(jù)通過ADV7180視頻硬件解碼器解碼,然后再通過I2C總線讀到CPU進(jìn)行處理,然后在TFT-LCD上顯示。
圖形顯示任務(wù):本儀表板所設(shè)計的智能圖形儀表,其作圖方式不再是通過畫點畫線等GUI軟件程序來實現(xiàn),而是先在PC機(jī)上用畫圖軟件先設(shè)計好所需的圖片,該圖片可根據(jù)用戶需求任意實現(xiàn),然后在Matlab下處理,之后寫到CPU,將其顯示出來。這種圖形顯示方式的優(yōu)勢在于大大縮減了軟件代碼,減輕CPU的負(fù)擔(dān),而且可以顯示任意的圖形界面。
4 儀表板設(shè)計中關(guān)鍵技術(shù)問題的解決
(1) 指針旋轉(zhuǎn)問題
一般的圖形儀表盤設(shè)計指針時主要有以下幾種方案;(1)直接畫線,這種方法顯示的指針簡單、單調(diào);(2)移植μC/GUI或者QT等軟件,這種方法對硬件資源要求比較高;(3)將不同指針狀態(tài)變化后的每張圖片存儲起來,這種方式所需要的存儲量非常巨大;(4)利用圖片旋轉(zhuǎn)方法,即只需要存儲一張指針圖片,通過坐標(biāo)變換將指針圖片旋轉(zhuǎn)得到其他角度的指針,這種方法會造成圖片信息點的丟失,顯示效果較差,雖然可通過臨近插值法或雙線性插值法等來解決圖像的瑕疵,但又耗用了大量的CPU資源。
本文在不占用太多存儲空間和不耗用大量的CPU資源的情況下設(shè)計了一種指針指示方法,即先用作圖軟件畫出不同角度的指針圖片,然后用Matlab找出每個幅圖片指針的每個像素的坐標(biāo)及像素值,將這些數(shù)據(jù)存儲在Flash中,程序調(diào)用時可采用查表法。
(2)抗鋸齒問題
傳統(tǒng)的圖像處理邊緣抗鋸齒的方法有超級采樣抗鋸齒SSAA(Super-Sampling Anti-aliasing)和多重采樣抗鋸齒MSAA(MultiSampling Anti-Aliasing)。SSAA簡單直接,但消耗資源多,MSAA對資源的消耗相對較小,但在畫質(zhì)上不如SSAA。在Photoshop軟件中,其邊緣羽化功能已經(jīng)集成了很好的抗鋸齒算法,而本文的最大特點是利用圖形來設(shè)計儀表,所以只需在Photoshop里利用羽化功能對旋轉(zhuǎn)的指針圖像進(jìn)行邊緣處理,即可消除指針旋轉(zhuǎn)后的鋸齒問題,且不需要消耗儀表硬件系統(tǒng)的資源,減輕軟件設(shè)計負(fù)擔(dān)。
(3)VDC3圖像分層顯示問題
一般的數(shù)字儀表板設(shè)計圖形時只有一層圖形,由于要顯示一些動態(tài)信息,需經(jīng)常修改圖形緩沖區(qū)的內(nèi)存值,所以常常導(dǎo)致背景圖像會有殘影和閃爍。如果使用VDC分層顯示則可以很好地解決這個問題,背景圖片做為底層,需要變換的動態(tài)信息等圖片或文字則在第二層顯示,視頻輸出結(jié)果在第三層顯示,如圖3所示。
5 工程機(jī)械儀表板軟件重構(gòu)技術(shù)
本設(shè)計主要是針對液壓挖掘機(jī)來開發(fā)的,而面對種類繁多的工程機(jī)械,針對每種工程機(jī)械開發(fā)對應(yīng)的儀表板幾乎是不可能的,而且也造成了重復(fù)開發(fā)和社會資源的浪費。因此本文提出針對工程機(jī)械儀表板開發(fā)的軟件重構(gòu)技術(shù)[5-6],對功能軟件進(jìn)行封裝,將各類工程機(jī)械的型號種類參數(shù)進(jìn)行打包封裝,將這些軟件“芯片”集成在存儲器里,如要開發(fā)新的工程機(jī)械儀表板,只需修改儀表軟件中的工程機(jī)械的型號或種類等參數(shù),無需進(jìn)行再次軟件開發(fā),便可設(shè)計出對應(yīng)型號的工程機(jī)械的儀表板,這樣可滿足工程機(jī)械種類繁多、要求五花八門等特點,減少不必要的重復(fù)設(shè)計,使工程機(jī)械儀表朝著規(guī)?;?、集成化的方向發(fā)展。
本研究開發(fā)的智能圖形儀表信息系統(tǒng)集成了工程機(jī)械工作信息顯示、機(jī)器工作參數(shù)設(shè)置、視頻監(jiān)控、故障診斷、GPS顯示等功能,基本上可以滿足中高檔工程機(jī)械的儀表顯示需求,效果美觀大方、人機(jī)接口界面友好。
參考文獻(xiàn)
[1] 徐殿魁.工程車輛視頻處理與圖形終端硬件平臺的設(shè)計與實現(xiàn)[D].南京:南京理工大學(xué),2010.
[2] SH7262 Group, SH7264 Group Hardware Manual Rev.2.00 [EB/OL]. Renesas Technology Corp.[2009-06-18].http://cn.renesas.com/.
[3] 何創(chuàng)新,李彥明,劉成良.工程機(jī)械遠(yuǎn)程狀態(tài)信息采集方 法研究與應(yīng)用[J].儀器儀表學(xué)報,2009,30(4):728-732.
[4] LABROSSE J J.嵌入式實時操作系統(tǒng)μC/OS-Ⅱ(第二版)[M].邵貝貝,等譯.北京:北京航空航天大學(xué)出版社, 2003.
[5] 陳曾勝,呂國強(qiáng),洪占勇. 一種基于可重構(gòu)理論智能儀器設(shè)計[J].電子測量技術(shù),2001(4):1-2.
[6] GARRIDO A. Software refactoring applied to C programming language[D]. MS Thesis. University of Illinoisate Urbana-Champaign, 2000.