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