李 潔, 張 蕾, 王靈剛
(1.中國航空工業洛陽電光設備研究所,河南 洛陽 471009;2.河南科技大學電子信息工程學院,河南 洛陽 471003)
筆劃式顯示方式廣泛應用于飛機座艙顯示。隨著光柵顯示技術的發展,許多顯示器已采用了光柵顯示方式。但對于要求高亮度和高顯示精度的平視顯示器和頭盔顯示器,仍大量采用筆劃式顯示方式。目前,筆劃/光柵轉換技術較為成熟,不少資料中介紹了各種筆劃/光柵轉換方法[1-3],使筆劃、光柵顯示方式可以協調共存于同一飛機平臺。
筆劃式字符發生器是筆劃式顯示方式的核心。一些國外專利[4-10]介紹了符號筆劃的各種生成方法,但都是利用分離器件產生基本筆劃。也有一些資料介紹筆劃式字符發生器的設計方案,有的采用多通道任意波形發生器模塊來產生筆劃信號[11];有的采用EPLD來實現基本的筆劃矢量生成[12];最近有設計采用了DSP和FPGA,其特點是集成度高,使用高性能的數字信號處理器完成筆劃和光柵兩路字符數據生成,控制邏輯和圖形生成電路由FPGA實現,體積和功耗大幅度下降[13]。隨著飛機航電系統的發展,需要處理、顯示的信息量越來越大,對字符發生器的數據處理能力和筆劃書寫性能提出了更高的要求。本文提出一種同樣基于DSP和FPGA的新型筆劃式字符發生器的設計方法,以滿足相關國軍標[14-15]為前提,旨在提升字符發生器的數據處理能力和符號書寫性能。該設計采用帶核處理器和IO處理器的DSP作為主處理器,將數據處理和符號書寫管理并行,矢量發生器可以全周期進行書寫;利用DSP的握手DMA通道,矢量發生器由從處理器被動接收矢量指令改為主動申請矢量指令,使筆劃之間書寫連續無停頓,提高字符發生器的平均書寫速度和筆劃書寫均勻性。
字符發生器由數字信號處理器(DSP)及外圍電路、矢量發生器、A/D轉換電路組成,產生筆劃式字符畫面供后級顯示器顯示。組成框圖如圖1所示。

圖1 字符發生器組成框圖Fig.1 Composition of a charalter generator
DSP選用AD公司的ADSP21160,為雙處理器、雙總線結構。內含核處理器和I/O處理器;核工作時鐘100 MHz,兩個獨立32位浮點運算單元,每個都帶乘法器、累加器、移位器和16個數據寄存器組;片內含4 MB雙端口存儲器,數據總線寬度64位,地址總線寬度32位;支持單指令多數據流模式(SIMD);全部指令為單周期指令;支持14通道DMA,6個Link口通訊。
DSP可通過Link口或雙端口存儲器獲取顯示文件和指令,由核處理器進行相應計算處理,生成矢量發生器能識別的一組筆劃矢量指令,存入指定緩沖區。DSP內存開辟兩個緩沖區,用于存儲處理好的筆劃矢量指令。I/O處理器根據矢量發生器發出的DMA請求從某一緩沖區輸出筆劃矢量指令。筆劃矢量指令的輸出與矢量發生器發出的DMA請求信號有關,與計算無關。計算期間可以同時響應矢量發生器的請求,及時向矢量發生器輸出矢量指令,對矢量發生器的矢量指令輸出不會長時間占用DSP外總線,影響計算數據的存取,使計算和矢量指令輸出同時進行,互不影響。
一個符號及完整的畫面均是由若干筆劃矢量構成,矢量發生器就是產生這些筆劃矢量的單元。矢量發生器根據筆劃矢量指令,按一定的書寫時鐘連續輸出一個筆劃矢量的X、Y坐標數據及亮暗信息。矢量發生器由FPGA實現。
本文采用間接式的筆劃矢量構成形式,即將字符矢量用長邊位移量和tan α表示。基本筆劃矢量的構成如圖2所示。

圖2 基本筆劃矢量構成Fig.2 Constitution of basic stroke vector
如矢量AB,其矢量指令表示為長邊位移量和tan α,其中,在X和Y兩個方向上位移量較大者為長邊,矢量與長邊的夾角為α,α≤45°。
一筆矢量書寫時,其長邊按書寫時鐘每周期步進一,直到走完長邊位移量。而短邊位移量的步進時鐘頻率由12位的二進制比率乘法器計算,乘法器輸入12位二進制比率系數 L、K、J、I、H、G、F、E、D、C、B、A,其輸出頻率為fout。

式中,M=L×211+K×210+J×29+I×28+H ×27+G×26+F×25+E×24+D×23+C×22+B×21+A×20。
12位二進制比率系數的計算方法為tan α×4095,fin為長邊書寫時鐘頻率。乘法器的輸出脈沖fout即為短邊的書寫時鐘頻率。
矢量發生器由以下工作單元組成:指令管理單元,指令譯碼單元,延時單元,顯示忙處理單元,時序控制單元,長邊計數單元,二進制系數乘法器,X、Y坐標計數單元,X、Y坐標輸出單元,輝亮控制單元,窗口控制單元,閉塞區控制單元。組成框圖如圖3所示。

圖3 矢量發生器組成框圖Fig.3 Block diagram of vector generator
矢量發生器輸入信號為字符時鐘,顯示忙信號,筆劃矢量指令;輸出信號為DMA請求信號,X、Y坐標數據(各12位),輝亮信號。
由于矢量發生器由DSP的IO處理器管理,且矢量指令的獲取是由矢量發生器主動申請,而非從處理器被動接收,因此,矢量發生器的工作相對獨立。矢量發生器可自行調整筆劃書寫速度,也可利用DMA請求信號的快慢來隨意調節筆劃之間的停頓時間,而不受處理器工作速度及軟件結構的影響。采用適當的書寫點時鐘頻率和筆劃間的等待時間,配合后級電路可達到最佳的顯示效果。
D/A轉換電路將筆劃矢量的X、Y坐標數據進行D/A轉換,產生X、Y模擬偏轉電壓,配合輝亮信息,驅動后級電路,在顯示器上完成畫面的顯示。
核處理器周期性地處理顯示文件,形成一幅完整顯示畫面的矢量指令組,放入DSP內部緩存,交由IO處理器管理,核處理器隨即可處理下一周期的數據;IO處理器啟動握手式DMA,等待DMA請求信號,并向矢量發生器發出書寫啟動標志SFLAG0(SFLAG0置“1”)。
矢量發生器中的矢量指令管理單元收到書寫啟動標志后,發出第一個指令接收請求信號(DMA請求),IO處理器隨即將DSP內部緩存中的第一條矢量指令從數據總線發出;矢量指令管理單元將指令寫入第一級緩存,延時后寫入第二級緩存,矢量發生器中的筆劃生成邏輯開始進行指令譯碼并執行,如圖1所示。
筆劃生成邏輯進行指令譯碼的同時,矢量指令管理單元發出下一個指令接收請求,并將新指令存入第一級緩存;當前矢量指令執行結束時,將第一級緩存中的指令寫入第二級緩存,開始新的譯碼和執行,并再發出指令接收請求;矢量發生器周而復始地申請、接收、譯碼、執行,當執行畫面結束指令時,不再發出指令接收請求信號,一幅完整的畫面書寫完成,等待下一周期的書寫。
指令管理單元內含兩級緩存,如圖4所示。

圖4 指令管理單元的兩級緩存Fig.4 Two-level cache of instruct managemcnt unit
矢量發生器在DSP的SFLAG0置“1”后,開始一個顯示周期的工作,直到一幅畫面書寫完畢。SFLAG0置“1”,矢量指令管理單元向DSP發出第一個DMA請求信號,DSP隨即向矢量發生器輸出矢量指令。圖5是矢量指令管理單元的工作時序圖。

圖5 指令管理單元工作時序圖Fig.5 Timing sequence of instruct management unit
SCLKOUT是DSP輸出的40 MHz外部時鐘,也是本單元的工作時鐘,SRESETI是字符發生器的全局復位信號。dmaq1、dmaq2、dmar_1為定義的中間信號(signal)。SFLAG0置“1”后,dmaq1和 dmaq2分別由SFLAG0延時一個和三個時鐘得到,dmar_1由dmaq1和dmaq2異或得到,作為第一個DMA請求信號。DMA請求信號 sdmar1由 dmar_1與譯碼脈沖 wrdecode(wrdecode由矢量發生器對矢量指令譯碼得到)合成得到,即sdmar1的第一個脈沖為 dmar_1,后續脈沖由wrdecode展寬得到,以便DSP能及時送出下一條指令。
DSP收到DMA請求信號后,向矢量發生器發出第一條指令。Wrvector是第一級緩存寫入信號,由DSP寫信號合成矢量發生器地址產生。Wrvector的上升沿將矢量指令寫入第一級緩存,得到vectororder1。Beginflag是一個標志,低電平時,第二級緩存寫入脈沖wrvector_2由wrvector延時兩個時鐘得到(即wrvector2);高電平時,wrvector_2在上一條指令執行結束時產生。即只有第一個wrvector_2由wrvector延時得到,后續的wrvector_2均在上一條指令執行結束時產生,wrvector_2的上升沿將vectororder1寫入第二級緩存,得到vectororder2。這樣在一條指令執行結束時,將第一級緩存中的指令寫入第二級緩存,隨即送筆劃生成邏輯進行譯碼,并送出DMA請求信號。當執行畫面結束指令0x0時,不再產生wrvector_2。
筆劃生成邏輯對vectororder2進行指令譯碼并執行,直至碰上畫面結束指令0x0,結束一個顯示周期,等待下一周期的書寫。
本文所述字符發生器基于DSP和FPGA設計,是高集成度、小型化設計。利用DSP強大的數據處理能力和其內部IO處理器的并行處理功能,加之矢量管理單元的協調設計,達到了提高字符發生器數據處理能力和筆劃書寫性能的目的。由于筆劃間無停頓,在不改變書寫時鐘的前提下,每周期畫面書寫時間較之先前的字符發生器縮短約1/3;也正是由于筆劃間可以連續無停頓,使字符書寫流暢,亮度均勻,顯示畫面更加美觀。
[1]RODGERS B,COVITT M.Stroke-to-raster video conversion method having error correction capabilities.United States Patent:US 2010/0271542 A1[P].2010-10-28.
[2]TANNER A H,SIMMONS C L.Stroke to raster converter system:United States Patent,US6496160B1[P].2002-12-17.
[3]BALRAM N,OLSON W P,WILSON M R.Stroke-to-stroke:United States Patent,US5969699[P].1999-10-19.
[4]MULLER H R.Digital symbol generator with symbol error checking:United States patent,US4413323[P].Nov.1,1983-11-01.
[5]DETTMER J R.Angle based stroke generator:United States Patent,US4553214[P].1985-11-12.
[6]GROTHE S P.Variable refresh rate for stroke CRT displays:United States Patent,US4511892[P].1985-04-16.
[7]BROWN R R.Digital stroke display with vector,circle and character generation capability:United StatesPatent,US4115863[P].1978-09-19.
[8]GROTHE S P,NARVESON P L.Dynamic stroke priority generator forhybrid display:United StatesPatent,US4635050[P].1987-06-06.
[9]STAUFFER F K,SMITH P R.Constant writing rate digital stroke character generator having minimal data storage requirements:United States Patent,US3952297[P].1976-04-20.
[10]BURNHAM G O,WEBER J W.Direction coded digital stroke generator previding a plurality of symbols:United States Patent,US3938130[P].1976-02-10.
[11]劉海見,楊健,張凱義,等.航空顯示信號自動測試技術研究[J].測控技術,2005,24(9):76-78.
[12]彭克勤,蔡保勝.ALTERA EPLD在火控顯示系統字符發生器中的應用[J].電光與控制,1995,2(2):16-22.
[13]劉翔,戎蒙恬,劉忠偉.基于DSP和FPGA的筆劃字符發生器設計[J].航空電子技術,2008,39(3):50-54.
[14]GJB 189A-2003,飛機平視顯示/武器瞄準系統通用規范[S].北京:中航一集團,2003.
[15]GJB 300-1987,飛機平視顯示器字符[S].北京:空軍和航空部,1987.