摘要:該文介紹了基于TMS34020圖形系統處理器的圖形實時顯示系統,重點敘述了圖形顯示系統中的顯示軟件的設計方法。
關鍵詞:圖形顯示;軟件設計;數據交換
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)26-7413-02
Designing of Graphics Displaying Software Based on TMS34020
JI Wu-gang
(No.715 Research Institute of China Shipbuilding Industry Corporation, Hangzhou 310012, China)
Abstract: This passage introduces graphics display system based on TMS34020 graphics system processor, and mainly explains design method of displaying software of graphics displaying system.
Key words: graphics displaying; software designing; data exchanging
當今,隨著信號處理方法的不斷改進,信號處理能力和處理速度也大大的提高,相應地,作為終端的顯示系統,也必須提高其顯示信息量和處理速度。現代聲納顯示系統一般都采用雙顯示器結構,由兩塊圖形板來支持,在主機的管理調度下進行多畫面切換顯示、協調工作,如圖1所示。TI公司的圖形處理器(GSP)TMS34020融合了圖形處理功能和通用CPU的功能,與浮點協處理器TMS34082配合時還可進行復雜的浮點運算,能夠滿足顯示信息量大、處理速度高的要求,從而較廣泛地應用于聲吶及武器系統的顯示。本文將簡要介紹圖形板的結構、功能和特點,重點介紹它的軟件設計方法。
1 GSP圖形板的簡介
GSP板主要由圖形系統處理器TMS34020、動態存儲器DRAM、顯示存儲器VRAM、主機總線接口、調色片RAMDAC等組成,采用存儲器映像方式,通過軟件設定,將主機地址D0000H和D8000H分別映像到兩塊圖形板地址FC000000H處。TMS34020是一個具有強大圖形功能的32位處理器,它從程序存儲器中讀取指令和數據,在顯示存儲器中畫圖,它控制動態存儲器的刷新和顯示圖形的屏幕刷新,管理著整個圖形板,其原理框圖如圖2所示。
DRAM用于存放程序代碼和數據,一部分也可用作系統堆棧和圖形暫存區。 VRAM用于存放圖形,不可見的區域也可以用來存放數據。RAMDAC完成從顯示存儲器輸出的象素數據和顯示器輸入信號R、G、B之間的數模轉換器,其配色表可以使圖形板顯示色彩的范圍更廣,顏色更改更靈活。同時該板還支持位面屏蔽和閃爍、硬件光標等功能。
主機接口實現主機與圖形板之間的通信控制和數據傳輸功能,數據傳輸通過映像存儲器方式交換數據,因為主機系統總線的物理尋址空間較小,而且只能有一部分空間供圖形板用。圖形板采用存儲器映射,即在總線的存儲空間占有一塊區域作映射窗口,把TMS34020的存儲空間按頁的方式映射到這一窗口。主機訪問圖形板存儲器地址線是由映射寄存器內容和總線地址組合而成的。通過改變映射寄存器的內容和總線的低位地址可以訪問圖形板存儲空間的任一存儲單元。
顯示配色表由雙口RAM組成,分為256個24位的單元,每單元代表一種彩色成分,這樣配色表的選色范圍為16.7百萬種,而同時可顯示的彩色有256種。要往配色表中寫彩色值,首先往地址寄存器中寫要修改的配色表位置的地址值,然后對配色表RAM口執行三個連續的寫周期,在寫最后一個周期時,三個字節的彩色信息連在一起形成一個24位字,寫到由地址寄存器規定的位置,這時地址寄存器自動增址到下一個位置,可直接再寫彩色值。
2 程序開發中的一些方法
2.1 顯示軟件的裝載過程
TMS34020的源程序經編譯、連接后,生成可執行的目標文件*.OUT,存于主機硬盤上。這種格式的文件由不同的段組成,段是文件可重分配的最小單元。文件在缺省的情況下分為三個段:代碼段、數據段、未初始化的變量段。除此之外,也可以在連接時自己創建和命名不同的段。主機打開目標文件,讀出執行文件所包含的段的數量。首先取出代碼段的起始地址,計算代碼段的長度和偏移量將文件的指針指向代碼段,主機通過地址映射將代碼段傳內容輸到圖形板內存。其它的段也按此方式被加載到圖形板上。然后啟動34020運行該程序。程序執行時先完成硬件的初始化,然后進入主循環,通過不斷的檢測發現消息并做出相應的處理和顯示。在加載多塊圖形板的過程中,需要測試該圖形板是否存在或故障的情況,當測試函數返回錯誤時,應停止該板加載,以防影響系統。
2.2 顯示軟件的設計方法
依據軟件需求和通訊接口規約進行軟件設計,并采用自頂向下的程序設計方法,可用C語言、匯編語言和專用匯編語言混合編程。
現在圖形軟件一般都采用便于修改和擴充的模塊化結構。它不但便于程序的修改、增刪和將來可能的擴充,而且使程序結構條理清晰,各個模塊相對獨立,又有聯系。圖形顯示模塊軟件在主程序(任務管理程序)調度下運行,構成圖形顯示模塊軟件的主要模塊有:1) 任務管理程序;2)初始化模塊;3)主機接口模塊;4)各顯示模塊;5)狀態控制命令以及公共函數模塊,其軟件結構與工作流程如圖3所示。
此外,在程序設計中盡量使用執行時間較短的指令,節省程序執行時間,滿足程序的實時性要求,同時因為程序錯誤的出現次數幾乎與程序長度成正比,所以盡量減少程序的長度以提高可靠性。
2.3 主機和圖形板之間的數據交換
主機和圖形板之間的數據交換采用共享存儲器映像的方式,主機通過系統總線把數據寫到圖形板的映像RAM區,向TMS34020申請中斷,顯示軟件中斷服務程序讀取數據,將數據移至各程序模塊的數據隊列中。數據交換采用循環隊列的形式,以避免丟失和堵塞。判定隊列滿的條件為尾指針(rear)從后面追上頭指針(front)。隊列有三個基本的操作,用類語言描述如下:
隊列空(EmptyQ):if ((((rear+1) % maxsize))!=front)
returntrue
else return1
數據插入(EnQ):ifEmptyQ{temp=(rear+1) % maxsize};
將數據寫入第temp個元素;
rear=temp}
數據取出(DeQ):ifnot EmptyQ{temp=(front+1) % maxsize};
將數據從第temp個元素取出;
front=temp}
在中斷服務程序的開發中,如果中斷服務程序只是接收數據,而其他所有的數據處理和作圖都在主程序中完成,對于一些需立即響應的數據,在圖形板進行較為復雜的處理時,往往會滯后,影響操作反應的實時性。因此將一些實時性要求較高或者發送頻率高,處理起來耗時較短的數據,例如光標、菜單命令安排在中斷服務程序內處理。采用中斷方式確保了實時的要求,而隊列又保證了不因個別中斷的丟失而造成數據丟失。
2.4 多畫面的切換
一方面由于圖形顯示的信息量較大,為使這些信息能夠清晰地顯示,顯示內容需分成多個畫面,同時在工作中,我們采用兩板加載相同的程序,主機向每塊圖形板傳送全部數據的方法實現冗余備份,同時,主機向各圖形板發送頁面命令,顯示程序根據不同的畫面命令轉換顯示畫面。
顯示程序采用前后臺處理的方法。接收到的信息在當前畫面上顯示時,對信息進行相應的處理后,直接刷新畫面。當信息不在當前畫面上顯示時,在后臺對這些信息作相應的處理并保存,切換畫面時可調用這些歷史信息,保證了信息的連續。
3 結束語
以嵌入式的TMS34020圖形處理芯片為核心的圖形板具有較強的信息處理顯示能力,在顯示軟件的開發過程中,充分利用圖形板的硬件資源,極大地提高整個系統的顯示能力,滿足實時顯示要求。
參考文獻:
[1] RFC707.A High-Level Framework for Network-Based Resource Sharing[S].1976.
[2] RFC1050.RPC:Remote Procedure Call Protocol Specification[S].1988.