楊明緒,楊建新,李 林
(海軍航空大學 青島校區,山東 青島 266041)
在某型導彈指揮儀課程授課過程中,存在通電檢查顯示畫面課堂講解難度大、實裝配套不足、實操科目無法有針對性開展等問題,針對現階段課程建設的情況,設計一款模擬器實現指揮儀。其顯示功能對提升教學效果、建立學員更加直觀的印象,貼近實戰化保障具有很重要的意義。導彈指揮儀系統主要通過顯控臺完成相應的顯示功能,如對載機的相關飛行參數、戰場敵我態勢實現字符或圖形的動態顯示。為實現模擬器顯示功能,基于NI CompactRIO進行嵌入式硬件設計,并借助OLED 技術實現顯示功能[1]。

圖1 顯控臺模擬器總體結構框圖Fig.1 Block diagram of the overall structure of the console simulator

圖2 顯示模塊邏輯電路和接口電路Fig.2 Shows the module logic circuit and interface circuit
NI CompactRIO 通過可自定義的現場可編程門陣列技術,根據用戶的實際需求進行配置的輸入輸出測控系統,借助專業軟件編程,定義并生成電路。NI CompactRIO 是一款在軍事、工業及教學等領域應用較為廣泛的嵌入式緊湊型測量控制系統。該系統由用戶自定義的輸入輸出模塊、現場可編程門陣列邏輯及嵌入式實時控制器組成。集成的現場可編程門陣列使系統具備高速并行的運算能力,為使整個系統實現低功耗,采取一體化設計。NI CompactRIO系統硬件主體結構由太空鋁支撐,緊湊型設,使其外觀顯得小巧而堅固,滿足嚴苛的工業級安裝使用環境[2],但CompactRIO 系統本身不具有顯示功能,必須配備相應的顯示器件實現其顯示功能。
由于某型飛機導彈指揮儀系統顯控臺,要求兼備顯示與控制功能,為實現前臺交互顯示可通過借助有機發光二極管顯示的OLED 技術完成設計。OLED 作為一種較為熱門的發光和顯示薄膜器件,其原理是通過在陽極和陰極之間夾多層有機薄膜導電致發光器件完成發光。由于其屬于電流型發光器件,顯示器的亮度可用電流來控制。OLED發光的點處于交叉排列的陰陽兩極中間,可以通過陰陽兩極的選通與關斷來控制每一個OLED 點位的明暗[3]。
本文主要通過實現OLED 技術與cRIO 系統融合,完成導彈指揮儀模擬器顯示功能的設計。
導彈指揮儀顯示功能模擬器總體結構主要由cRIO 系統、顯示模塊、上位機及電源模塊等組成。cRIO 系統通過解讀上位機的指令完成對顯示模塊的管理功能,并回傳顯示模塊狀態信息;顯示模塊實現導彈指揮儀模擬器的所有顯示功能[4];上位機是根據指揮儀的控制原理完成對cRIO系統的綜合控制;電源負責對上位機及cRIO 系統供給電源。其結構框圖如圖1 所示。系統的重點就是顯示模塊的選擇及功能的實現。
顯示模塊的選擇是本設計的重要環節,根據不同的顯示器件,可設計多種顯示方案。其中,由7 段數碼管組成的顯示器結構簡單,僅適合于數字和字母顯示的優勢,但不能提供復雜的人機界面;點陣顯示器可自由組合不同大小的尺寸,人機界面比較豐富,但點陣顯示器接口相對復雜。
通過對某型飛機導彈指揮儀系統顯示相關指標進行綜合分析,并對比市面上應用較多的顯示模塊,選用了諾維信公司提供的VGG12864Z。
VGG12864Z 模塊本身通過增加接口電路,在增加可匹配期間的同時,減少模塊本身的功耗。為實現控制OLED屏的顯示,在設計過程中對接口電路和驅動電路進行全新設計。該部分電路主要為了產生相應的電源激勵信號、驅動指令信號和傳輸數據顯示信號。模塊邏輯電路和接口電路參見圖2 中下邊虛框部分。
VGG12864Z 模塊是64 行×128 列液晶顯示點組成的16 級灰度點陣單色圖形/字符顯示OLED 模塊。其外部接口電路設計簡單,使用非常方便,具有高對比度、高亮度、寬視角、響應速度快、溫度范圍寬,低功耗等顯著特點,可以滿足指揮儀模擬器字符、圖形顯示的基本要求。該模塊可以直接與8 位微處理器相連,通過并行8 位數據接口,完成讀、寫操作時序邏輯傳輸。通過內置的128×64×4bit數據顯示RAM,其中每4 位數據對應OLED 顯示屏上一個點的明狀態。
圖2 中下部虛框部分為VGG12864Z-S003 的模塊邏輯電路和外部接口電路。用戶在使用過程中只需要對接口供電,產生驅動指令信號和傳輸顯示數據信號,完成OLED 屏的使用。通過研究發現,模塊的外部激勵信號僅與SDD1325 有關,所以只要對SSD1325 的輸入特性及指令系統進行開發,就可以使用該模塊的相應功能[5]。

圖3 顯示RAM的地址結構Fig.3 Shows the address structure of RAM
通過查閱相關資料了解到cRIO 系統可以對RES#、WR#、RD#、CS#、D/C 和D0~D7 共計13 個端口對SSD1325驅動芯片進行控制,從而完成OLED 顯示屏的顯示。
RES#是控制模塊復位的信號,可以通過軟件進行定義。規定當RES#輸入為低電平時,所有圖像RAM 清零,與此同時控制RAM 恢復為出廠設置。CS#為片選信號,當CS#輸入為低電平時,cRIO 才能完成與驅動模塊通信。WR#和RD#分別為寫選擇信號和讀選擇信號,當片選信號輸入低電平時,在其下降沿的讀寫選擇信號有效。D/C 是數據或命令選擇信號,當數據/命令選擇信號的輸入為高電平時,代表傳輸的為數據信號,此時D0~D7 端顯示為數據信號。所傳輸的需要進行顯示的數據,由外部控制電路控制通過cRIO 外部接口輸入到緩存中。進入到緩存的數據首先需要通過色域解碼器對傳輸過來的數據進行解碼,最終將解碼后的數據通過行列驅動的模式驅動OLED 屏幕顯示。當數據/命令選擇信號輸入為低電平時,代表傳輸的為命令信號,D0~D7 段顯示的為命令信號,該控制命令信號通過cRIO 的輸入輸出接口傳輸到系統控制命令解碼器中,對所傳輸的命令進行解碼,最終存儲到相應的命令寄存器中。
對于該模塊的功能實現的操作,可以將其簡化為OLED 屏幕初始化和OLED 屏幕顯示兩大步驟。為實現正常的顯示,要將OLED 屏幕進行初始化操作。首先,要對LED 顯示器進行設置,包括顯示方式的設置、對比度控制設置、屏幕起始行的設置。完成一系列設置后,需要將OLED 屏幕顯示清零并通過軟件對開機顯示內容進行編輯。為完成OLED 的字符或數據的顯示需要通過編程實現,可以通過向GDDRAM 中拷入數據完成,拷入的數據應包含數據、命令、狀態及其數據段子程序等內容。

圖4 實時數據采集cRIO系統Fig.4 Real-time data acquisition cRIO system
VGG12864Z 模塊是內置了128×80×4bit 的顯示存儲器,RAM 容量為40960bit。該顯示存儲器主要用于存儲顯示數據,OLED 顯示屏像素點的明暗狀態應該與顯存地址中的數據狀態一一對應,通常顯存的數據作為直接驅動信號顯示圖形或者字符。某存儲地址的數據狀態為“1”,則該地址對應的像素點為亮;某存儲地址的數據狀態為“0”,則該地址對應的像素點為暗。可以顯示窗口的大小為128×64,通過起始行和結束行進行設置。一個字節對應著兩個像素點(其中,低4 位表示左像素點,高4 位表示右像素點的灰度值)。RAM 的地址結構如圖3 所示[6]。
實時數據采集的cRIO 系統是一個可自定義的嵌入式系統。其硬件主要由cRIO 機箱、控制器和功能模塊組成,如圖4 所示。由于該系統相匹配的軟件和硬件資源較為豐富,可以通過搭建顯示功能的接口,構成一個基于NI Compact RIO 可編程自動化控制器(PAC)。通過支持現場的輸入、輸出模塊的讀寫及數據處理,以可編程門陣列方式編程實現,響應速度快、傳輸速率和可靠性都十分高[7]。
NI cRIO-9103 是 具 備4 個 插 槽 的cRIO 底 座, 含三百萬門可自定義的可編程門陣列。時鐘頻率為40MHz,自帶196Kb 緩存,可將系統的其他相應功能模塊都連接在這個底座上,其他槽位留給實際的數據采集功能用。
NI cRIO-9014 模塊需要連接在cRIO-9103 底座上,是cRIO 系統的實時控制器。cRIO-9014 使用的是MPC5200嵌入式處理器,該處理器是Freescale 公司的基于Power Architecture 技術實現的,處理器主頻具有400MHz,內置嵌入式實時操作系統商業版VxWorks。該控制器是NI、Freescale 和Wind River 三大公司第二次在Compact RIO 平臺上的合作成果。cRIO 9014 為實現共享變量的方式與上位PC 機建立實時數據通信,提供了以太網絡接口。
如要求1s 內完成一幅屏的刷新,則一個像素點的顯示時間為最低按一個像素點的顯示為7μs 計算,刷新一幅屏需要的時間為128×64×7μs=57344μs=57.344ms,基本看不到屏的刷新過程。根據信號的多少可選擇相應的數字I/O模塊,速度快的模塊,需要的模塊數多。
在此配置NI-9401,它具備100ns 超高速數字輸入/輸出,8 通道,雙向,可按半字節(4 位)配置,滿足現實需求。
LabVIEW 平臺是一款通過圖形邏輯進行編程的軟件,具有所見即所得的特點,cRIO 系統運行的所有程序都需要在上進行編寫。通常為了更好地支持軟件的編譯,除了需要安裝LabVIEW 平臺主程序外,還需要安裝幾個必要的插件如:NI cRIO,LabVIEW FPGA,LabVIEW RT 等。用戶編寫的程序分為3 個層次,最下面的一層是安裝到cRIO 的底架上,可以直接對現場的輸入輸出模塊進行控制,程序的運行速度最快,經過LabVIEW 程序編譯后可以下載至可編程門陣列上。通過對可編程門陣列的自定義設置,程序實現對硬件的驅動[8];第二層程序是拷貝在實時控制器上,這一層程序屬于中間層,通過它既可以直接對可編程門陣列上程序前面板的所有輸入輸出控件進行讀寫操作,同時也可以通過建立網絡發布的變量與PC 級的程序建立通信;第三層程序主要完成人——機交互性的操作,通過拷貝到計算機上在Windows 操作系統執行的程序。該軟件設計組成及流程如圖5 所示。
對電機的直接驅動程序與輸入信號檢測是在系統底架cRIO-9103 上實現的,可以通過自定義的可編程門陣列實現對硬件的控制。安裝NI cRIO,LabVIEW FPGA,LabVIEW RT 產檢后可在NI LabVIEW 軟件平臺上實現對可編程門陣列的程序設計、編譯、下載和運行監控。
使用底架cRIO-9103 模塊,其單周期電路單元的執行時間為25 ns。主控制器采用Freescale 設計生產的微處理器和操作系統為Wind River 的實時系統。為能夠快速高效地記錄現場數據,采用了主頻具有400MHz,存儲為128M 內存和2G 的拓展存貯空間的cRIO-9014 模塊。
某型導彈指揮儀顯控臺需要以字符或圖形的形式顯示敵我態勢,為完成其顯示,需要首先對顯示屏上應顯示文字或圖片等信息建立字符庫,而這一套字符庫需要自己進行編譯。根據OLED 屏幕顯示數據的RAM 地址結構特點,選用了嵌入式字模工具軟件Zimo21 建立字模庫。由于OLED 模組的字符結構是低位在上、高位在下的順序,還需要進行字節倒序的設置[9]。所有的字符、字形等,可以根據顯控臺的顯示需求進行編譯。字符庫的建立通常首先需要采用C51 格式取模,生成單個字符的點陣顯示源代碼,然后根據圖形顯示需要在OLED 顯示屏上的顯示效果,最后根據顯示效果對源代碼進行相應調整即可得到。在實現系統顯示功能的基礎上,配合cRIO 系統可以完成對導彈指揮儀系統顯控臺的交互式仿真設計[10,11]。

圖5 顯示功能軟件組成及其流程Fig.5 Shows the functional software composition and its process
本文借助OLED 技術,通過cRIO 系統對某型飛機導彈指揮儀系統顯示功能實現仿真設計。通過上位機模擬飛機狀態信息、傳遞指令信息、裝訂參數信息,并通過OLED技術進行對上位機模擬、傳遞、裝訂的相關數據實時動態顯示,基本能夠實現導彈指揮儀系統的顯示功能仿真,并根據該模擬顯示系統的構建可實現對導彈指揮儀顯控臺的通電檢查類科目的仿真訓練,探索并拓展了實裝半實物仿真的教學領域。