邱錫宏,秦玉利
(北京全路通信信號研究設計院集團有限公司,北京 100070)
目前,計算機聯鎖系統中鐵路車站站場圖形采用固定分辨率、固定圖元尺寸的顯示方式,當站場圖形超過一臺顯示器的顯示范圍時,需要使用多個顯示器分別顯示全部站場圖形的不同區域[1]。
鐵路的計算機聯鎖廠家多屏顯示主要有兩種方式:
(1)通過單臺機器中裝載多屏卡的方式;
(2)通過多臺機器進行多屏的顯示。
第1種方式涉及多屏卡顯卡與機器兼容性問題,第2種方式涉及到多臺機器顯示同步及同一鼠標跨屏操作等問題。本文選用第1種方式:采用單臺機器,通過主板集成顯示系統進行多屏顯示。該方法能較好地解決上述問題,更好地滿足使用和維護的需要[2]。
根據站場圖形規模,可將站場圖形顯示于1個、2個或3個顯示屏,顯示模式支持Clone模式以及Split分屏模式[3]。
1.1.1 Clone模式
每個屏幕均顯示相同的內容,該模式簡稱為:AAA。適用于僅需要單屏顯示的站場圖形場景。
1.1.2 Split模式
站場圖形擴展顯示在多個屏幕上,每個屏幕顯示站場圖形的一部分,顯示模式簡稱為:ABC。適用于需要雙屏或三屏顯示的站場圖形場景(當為雙屏時,第3屏不顯示)。
顯示模式支持橫屏顯示與豎屏顯示,滿足站場圖形橫向擴展與縱向擴展的需求。
當該計算機為既有在用設備時,針對DOS系統,還需要滿足下述需求。
(1)DOS系統下,在autoexec.bat啟動文件中增加多屏驅動軟件。該軟件具備加載多屏顯示或卸載多屏顯示的功能。
(2)應用軟件中,每個顯示屏的圖形坐標均從(0,0)開始。
(3)通過應用接口軟件,指定屏幕后進行圖形顯示[4]。
(4)單屏、雙屏、三屏顯示均采用支持C語言接口的SVGA256.BGI文件,文件版本為2.4,支持256色模式。
(1)鐵路車站通常采用視頻圖像陣列(VGA)接口的顯示器,標準主板提供一個VGA接口,兩個高清視頻接口(HDMI),需要設計轉換電路,將HDMI轉換為VGA接口[5]。
(2)標準主板只支持一種顯示模式,對于提供三屏接口的主板,默認顯示模式為“AAA”模式,通過修改基本輸入輸出(BIOS),切換為“ABC顯示模式”。
(3)為確保監控的穩定性,主板設計上增加了屏幕長亮的功能。 也就是當屏幕出現故障的情況進行維修更換時,無需將系統關機或脫機,只要替換掉故障的屏幕即可立即恢復顯示,不會影響在線系統的顯示與運作,同時,可以解決現場部分黑屏問題[6]。
(4)單屏、雙屏、三屏顯示均采用SVGA256.BGI,文件版本為3.2。
(5)盡可能不修改既有應用軟件的代碼。
AMOS-6000中,將HDMI替換為VGA接口[7]。為了不影響主板的基本架構,保留HDMI顯示控制電路,并在HDMI顯示控制電路與替換后的VGA接口間增加顯示轉換電路,如圖1所示。
修改BIOS顯示驅動[8]中的雙屏模式(1 024×768×8 mode)和三屏模式(1 024×768×32 mode),部分代碼如下:

圖1 硬件設計圖
int 10 4f14 8003 xxxx;快速切換顯示屏幕[9];
int 10:中斷服務向量;4f14:系統服務代碼;8003:變更顯示屏代碼。
int 10 4f14 8003 281
device bit define
ActCrt EQU 00001h;設定緩存器值,點亮VGA屏幕;
DuoView EQU 00080h;設定緩存器值,點亮兩個屏幕;
ActDP6 EQU 00200h;設定緩存器值,點亮內定HDMI2屏幕;
ActDP5 EQU 08000h;設定緩存器值,點亮內定HDMI1屏幕;
……
顯示結果如圖2所示。

圖2 增加BIOS驅動效果多屏顯示圖
由于第3屏顯示分辨率達到32 bit,但DOS系統只有8 bit,需增加1 024×768×32 Mode到基本圖像接口(BGI)文件,作相應適配修改。
當顏色為3時,寄存器AL賦值為3,映射的32 bpp(bit per point)值應該為{ 255,255,0 }。因此,寄存器BX應該存儲MapTable[9] 的地址。寄存器Bl部分將寫{ MapTable[9] ,MapTable[10] ,MapTable[11] ,AL+240 }內容,篩選地址以適應32 bpp輸出。因為32 bit的顏色支持數遠超過8 bit的256色, 如果直接將32 bit的顏色值轉到8 bit, 會造成很多顏色無法顯示。如圖3所示,左邊pixel是32 bit的值, 右邊Displayed colour是8 bit支持的顏色??梢钥吹?,很多像素值在8 bit中是未被定義的。

圖3 8 bpp到32 bpp顏色映射圖
由此,創建一個8 bpp到32 bpp顏色映射表。代碼如下:


在8 bit顯示下, 透明度不被使用。所以,改用color+240寫最后一個字節(byte),用它來保存最后一個顏色,目的是改善顯示效能。原本8 bit,顯示只有1 byte, 轉換成32 bit,顯示4 bytes, 每一個顏色都必須增加4倍的處理時間。
顯示最后一個顏色的程序如下。如果比對之后,顏色值并沒有改變, 則可以略過這個顯示程序。


在DOS系統下,測試256色不同顏色在黑白底色下顯示效果,如圖4所示, 能夠滿足機器繪圖芯片32 bit處理的要求。

圖4 8 bpp到32 bpp顏色映射效果圖
通過上述設計,滿足DS6系列計算機聯鎖系統操作表示機當前的各種應用,在DOS系統下的應用 軟件只需替換原有的BGI文件,同時,修改原多屏卡指定屏幕的應用接口函數。AMOS-6000工控機能較好地解決原有在用設備的備品備件問題,已經在既有京滬普速鐵路線車站廣泛使用。
AMOS-6000工控機的應用,能很好地解決計算機聯鎖系統中操作表示機的多屏顯示問題,兼容原有DOS系統的操作界面,支持Windows系統的最大分辨率為1 920×1 080×32,同時,多屏支持橫屏擴展和豎屏擴展,有利于現場的設備維護[10]。