基于TMS320DM642的增強視景系統(tǒng)設(shè)計與實現(xiàn)
0 引言
隨著現(xiàn)代飛行技術(shù)的發(fā)展,以及飛機性能的日益提高,飛行員需要實時獲取的信息越來越多,飛行員不僅要不斷接收和處理各種儀表信息及地面或空中的通報和指揮信息,還需要對各種危險警告和異常信號做出迅速的反應(yīng)。特別是當(dāng)飛機進行進場著陸或者起飛及做戰(zhàn)術(shù)動作時,飛行員的操作負(fù)荷較大。因此如何有效地將各傳感器信息綜合地顯示出來,不僅可以降低飛行員的勞動負(fù)荷,還能增強其態(tài)勢的感知能力。傳統(tǒng)的飛行員座艙系統(tǒng)包含大量的機械式儀表,飛行員的操作負(fù)荷大,態(tài)勢感知能力弱,而根據(jù)對航空事故的調(diào)查統(tǒng)計顯示,85%的航空事故是因為飛行員失去態(tài)勢感知能力造成的。因此通過對飛行員座艙系統(tǒng)的良好設(shè)計,提高信息的綜合顯示水平能有效地提高飛行員的態(tài)勢感知能力,從而減少飛行事故。
在飛行員座艙系統(tǒng)中采用增強視景和合成視景技術(shù),不僅可以減少飛行員座艙系統(tǒng)中儀表的數(shù)量,還能提高信息的綜合顯示水平,降低飛行的勞動負(fù)荷,增強飛行員的態(tài)勢感知能力。所謂視景增強系統(tǒng),就是把機載紅外傳感器和毫米波雷達(dá)輸出的圖像疊加在平顯上,在為機組提供機外真實視景的同時,顯示一些下顯給出的重要數(shù)據(jù)指示。
在此,研究和開發(fā)了基于實時采集圖像傳感器的圖像數(shù)據(jù),并在圖像數(shù)據(jù)上疊加相應(yīng)的飛行姿態(tài)信息增強視景系統(tǒng)。系統(tǒng)采用TI公司的視頻處理專用芯片DM642,實現(xiàn)了對4路D1(720×576)格式視頻數(shù)據(jù)的實時采集和顯示。
基于DM642的增強視景系統(tǒng)實現(xiàn)的功能有:
(1)擁有16×8,8×8,5×7的完全ASCII碼點陣字符集,可以自由顯示任意的字符和數(shù)字信息;
(2)支持自定義漢字點陣字符集的顯示;
(3)支持基本圖元的繪制,如直線、圓、矩形、圓弧、多邊形、矩形填充等基本GUI功能的實現(xiàn);
(4)支持靜態(tài)圖片的加載,如logo、靜態(tài)儀表盤等圖形信息的透明和不透明疊加顯示;
(5)實現(xiàn)羅盤儀表的繪制操作,可自由繪制各種數(shù)字儀表;
(6)實現(xiàn)導(dǎo)航和預(yù)警儀表盤的繪制與顯示;
(7)支持4路視頻的實時采集,可實現(xiàn)多種模式的顯示操作界面,各種模式可以相互自由切換。
1 系統(tǒng)的硬件設(shè)計
基于DM642的增強視景系統(tǒng)主要由TMS320DM642數(shù)字信號處理器、視頻編解碼模塊、存儲模塊、電源和可編程控制器模塊組成。整個系統(tǒng)結(jié)構(gòu)見圖1。
1.1 系統(tǒng)主控制器及存儲空間拓展
系統(tǒng)采用TMS320DM642作為核心處理器,它基于C64X內(nèi)核,采用VLIW(超長指令字)結(jié)構(gòu),最高時鐘可達(dá)720 MHz,采用二級緩存結(jié)構(gòu),擁有豐富的外設(shè)接口:擁有3個可配置視頻口,可實現(xiàn)與視頻輸入/輸出的無縫連接;擁有64路可配置EDMA,可靈活實現(xiàn)數(shù)據(jù)搬移操作;具有64位外部存儲器接口(EMIFA),可以連接同步或者異步的存儲器和外設(shè);擁有I2C總線接口,可實現(xiàn)對外部編解碼芯片的配置。
TMS320DM642的EMIF在內(nèi)存中的地址映射分為4個可獨立尋址的空間CE[O:3],自地址Ox80000000起各占256 MB空間。根據(jù)設(shè)計中所選芯片的數(shù)據(jù)寬度等特點,可以對這4個尋址空間進行配置。其中,CE0空間配置成64位寬,只用于SDRAM內(nèi)存的映射;CE1空間配置成8位寬度,用于FLASH的映射;CE2\CE3在該設(shè)計中未使用,留作將來拓展使用。系統(tǒng)中利用DM642的EMIFA外部存儲器接口進行存儲空間拓展,外擴有2片4M ×32 b SDRAM,共64MB,其占用外部存儲空間的范圍為Ox8000000~0x81FFFFFF,用于存儲視頻幀數(shù)據(jù)和程序代碼;系統(tǒng)同時外接了4M×8位FLASH芯片,F(xiàn)LASH在CE1子空間占據(jù)的內(nèi)存映射空間為0x90000000~0x9007FFFF,共512 KB空間,用于固化程序和初始化數(shù)據(jù)。由于TMS320 DM642的外部總線只有EA[22:3],所以CE1子空間的最大尋址范圍為1M×8b。系統(tǒng)中CE1子空間除了分配給FLASH空間外,還分配給狀態(tài)/控制寄存器等資源使用,F(xiàn)LASH只占據(jù)CE1子空間的一半尋址空間,最大可尋址范圍為512K×8 b,而FLASH的設(shè)計容量為4M×8 b。所以為了訪問整個FLASH空間,需將FLASH進行分頁,每頁為512 KB,共分8頁,具體的分頁邏輯將在CPLD控制邏輯部分進行詳細(xì)介紹。
1.2 視頻解碼模塊
視頻解碼模塊也稱為視頻采集模塊,它由數(shù)字視頻解碼芯片SAA7113和視頻源(模擬CVBS信號)組成。對于輸入的圖像,經(jīng)過視頻解碼模塊A/D轉(zhuǎn)換后才能送給視頻處理模塊。該解碼模塊采用Philips公司的SAA7113H芯片來進行采集。圖像傳感器輸出的模擬CVBS信號經(jīng)SAA7113視頻芯片轉(zhuǎn)化為數(shù)字信號,輸出的數(shù)字信號經(jīng)過視頻口的內(nèi)部FIFO緩沖后,由DM642的EDMA通道將數(shù)據(jù)傳送到片外SDRAM中,以便視頻處理程序使用。DM642通過I2C控制器對SAA7113進行配置,使其輸出BT.656格式4:2:2的YUV視頻數(shù)據(jù)流。
1.3 視頻編碼模塊
視頻編碼模塊也稱為視頻顯示模塊,本模塊由兩部分組成,即輸出兩種模式的視頻信號,可以外接CVBS和VGA的顯示終端。
(1)CVBS編碼模塊
該模塊由Philips的編碼芯片SAA7121H和顯示終端組成。它將DM642處理后的。BT.656格式視頻信號轉(zhuǎn)化成模擬CVBS視頻信號,并通過顯示器顯示處理結(jié)果。
(2)VGA編碼模塊
該模塊由VXll28,ADV7125等芯片完成。將BT.656格式的視頻數(shù)據(jù)轉(zhuǎn)換成模擬RGB信號,通過VGA接口與顯示終端連接。其中,VX1128接收DSP視頻口輸出的BT.656格式數(shù)據(jù)流和行場同步信號,輸出24位RGB數(shù)據(jù)流送給視頻編碼芯片ADV7125;視頻編碼芯片ADV7125將數(shù)字格式的RGB信號轉(zhuǎn)換成模擬的RGB信號,并通過VGA接口送到顯示終端。
1.4 CPLD邏輯部分
CPLD邏輯在系統(tǒng)中的主要功能是完成系統(tǒng)的輔助控制功能,如拓展外部鍵盤、FLASH分頁操作及I/O拓展等,CPLD頂層邏輯如圖2所示。這里主要介紹利用CPLD邏輯來拓展外部鍵盤及FLASH分頁的操作。
為了實現(xiàn)增強視景中模式的切換功能,需要外擴一個3×3的鍵盤陣列。在系統(tǒng)實現(xiàn)中,利用CPLD邏輯完成鍵盤信號KEY1:KEY9的相與操作,將相與之后的信號接DM642的外部中斷5。當(dāng)有鍵按下時,DSP_INT5將產(chǎn)生一個下降沿,從而觸發(fā)DSP產(chǎn)生中斷,在中斷服務(wù)程序中,進行鍵值掃描,判斷是哪個按鍵按下,然后設(shè)置相應(yīng)的標(biāo)志位,作為模式選擇信號。
CPLD除了完成按鍵拓展外,還有一個很重要的功能就是完成FLASH的分頁操作。系統(tǒng)中,將CE1子空間配置成8位異步靜態(tài)存儲器接口連接FLASH,由于DM642的只有20根(EA3:EA20)外部總線,所以CE1的最大可尋址空間為1 M×8 b,CE1只將前一半的尋址空間分配給FLASH,后一半空間作為控制邏輯寄存器使用,所以FLASH映射空間為Ox90000000~0x90007FFFF,共512K×8 b。
為了完成對外部4M×8 b FLASH空間的訪問,需要利用CPLD邏輯完成對FLASH的分頁管理,共將FLASH分成8頁。
系統(tǒng)中,利用CPLD邏輯分配了一個頁地址控制寄存器,地址為0x90080060,通過改變頁地址寄存器的值來改變頁選通信號PA19:PA21的值,從而完成FLASH的分頁操作。
2 系統(tǒng)軟件設(shè)計
基M642的視景增強系統(tǒng)軟件的實現(xiàn)是在TI公司提供的CCS2.2編譯環(huán)境下進行的。采用了DSP/BIOS嵌入式操作系統(tǒng),利用硬件中斷和任務(wù)調(diào)度實現(xiàn)視頻數(shù)據(jù)的采集、任務(wù)的顯示及各種顯示模式的相互切換。在程序設(shè)計中利用了RF5及同步通信等相關(guān)技術(shù)。DSP/BIOS程序模型如圖3所示。
2.1 軟件實現(xiàn)總流程
DSP/BIOS是一種搶先型、可裁剪的實時操作系統(tǒng),由3部分組成:DSP/BIOS實時內(nèi)核與API、DSP/BIOS分析工具、DSP/BIOS配置工具。DSP/BIOS操作系統(tǒng)支持多線程管理和調(diào)度,共有4種線程:硬件中斷、軟件中斷、任務(wù)、空閑循環(huán);支持任務(wù)間同步通信,提供郵箱、信號燈、隊列等方式。在DSP/BIOS操作系統(tǒng)下,可方便地實現(xiàn)對片上外設(shè)及外部存儲芯片的配置和管理,利用它開發(fā)的程序具有更好的移植性能。
系統(tǒng)軟件的實現(xiàn)基于DSP/BIOS微操作系統(tǒng),利用圖3所示基于任務(wù)的應(yīng)用程序?qū)崿F(xiàn)模型進行編寫。系統(tǒng)的總流程如圖4所示。
2.2 系統(tǒng)設(shè)備驅(qū)動的設(shè)計與實現(xiàn)
在系統(tǒng)中,綜合運用了DSP/BIOS,DDK,RF5等技術(shù)編寫設(shè)備驅(qū)動程序,使用標(biāo)準(zhǔn)的類/微驅(qū)動程序模型來開發(fā)視頻驅(qū)動程序,使硬件驅(qū)動程序與上層應(yīng)用程序開發(fā)剝離開,提高程序的可移植和復(fù)用性能。當(dāng)開發(fā)好硬件驅(qū)動程序后,上層的應(yīng)用程序開發(fā)人員只需知道設(shè)備驅(qū)動程序提供的接口,而不需要了解底層硬件的工作原理及如何配置。
在系統(tǒng)中,當(dāng)配置好硬件的底層驅(qū)動后,在圖像采集時,底層驅(qū)動提供給上層應(yīng)用程序的接口就是存放圖像傳感器數(shù)據(jù)的幀緩沖地址;而在圖像顯示時,應(yīng)用程序只提供要顯示圖像的幀緩沖地址。這些功能的實現(xiàn)都是通過幀視頻驅(qū)動程序(FVID)來實現(xiàn)的,它不僅完成對視頻采集與顯示設(shè)備的配置,還完成視頻幀緩沖區(qū)的管理工作。
FVID函數(shù)是對GIO類函數(shù)的簡單封裝,是為GIO類設(shè)備提供的一組宏。FVID/GIO類驅(qū)動程序不僅可以完成對片上視頻口外設(shè)的配置,還能與外部設(shè)備接口(EDC)配合實現(xiàn)對外部編解碼芯片的配置。在程序中,除了完成對3個視頻口的配置外,還需對外部編解碼芯片的配置,現(xiàn)以視頻口0配置成采集通道為例來說明具體的操作過程:
(1)先在DSP/BIOS操作系統(tǒng)下的靜態(tài)配置工具中創(chuàng)建一個設(shè)備驅(qū)動,取名為“VPOCAPTURE”,在屬性頁面完成設(shè)置操作。
(2)在采集任務(wù)開始前,利用FVID_create()函數(shù)完成分配,并初始化FVID通道對象。FVID_create()函數(shù)可以配置視頻口是采集模式,還是顯示模式。在采集和顯示時,使用視頻口哪個通道來配置這個通道的參數(shù)。
(3)利用FVID_control()函數(shù)發(fā)送命令給下層的微驅(qū)動(Mini-driver),以實現(xiàn)對外部編解碼芯片的配置。
(4)在采集和顯示任務(wù)中,調(diào)用FVID幀緩沖管理函數(shù),以完成視頻幀緩沖的管理。
2.3 飛行儀表畫面的繪制與疊加
增強視景系統(tǒng)中除了實時采集的圖像外,還有一個很重要的功能就是要能夠顯示當(dāng)前飛機的飛行姿態(tài)、飛機發(fā)動機及航電系統(tǒng)的狀態(tài)、敵我信息的顯示等。而這些信息的顯示都是用儀表的形式顯示出來的,這些儀表可以透明或者不透明地疊加在實時采集的傳感器圖像上,從而增強飛行員態(tài)勢感知的能力。在系統(tǒng)中主要設(shè)計了以下幾種飛行儀表:
PFD(Primary Flight Display)儀表畫面是飛機飛行中最重要的飛行儀表,在PFD儀表中應(yīng)該包含的信息包括航向角、飛行姿態(tài)、空速以及高度等。PFD畫面以綜合的顯示方式包含了上面的信息,主飛行畫面如圖5所示。
除了PFD畫面以外,還設(shè)計了發(fā)動機參數(shù)界面,用來顯示發(fā)動機參數(shù)信息。同時設(shè)計了NVD(Narigation Display)導(dǎo)航信息界面,用電子羅盤指示當(dāng)前飛機所飛行的磁航向角等,其界面如圖6所示。
3 結(jié)語
該系統(tǒng)基本實現(xiàn)了增強視景系統(tǒng)的功能,能夠在不低于25 f/s的圖像采集速率下,同時采集4路圖像傳感器數(shù)據(jù),實時動態(tài)疊加飛行儀表信息,以便明顯提高飛行員態(tài)勢感知能力。