楊明緒,楊建新,李 林
(海軍航空大學(xué) 青島校區(qū),山東 青島 266041)
在某型導(dǎo)彈指揮儀課程授課過程中,存在通電檢查顯示畫面課堂講解難度大、實裝配套不足、實操科目無法有針對性開展等問題,針對現(xiàn)階段課程建設(shè)的情況,設(shè)計一款模擬器實現(xiàn)指揮儀。其顯示功能對提升教學(xué)效果、建立學(xué)員更加直觀的印象,貼近實戰(zhàn)化保障具有很重要的意義。導(dǎo)彈指揮儀系統(tǒng)主要通過顯控臺完成相應(yīng)的顯示功能,如對載機的相關(guān)飛行參數(shù)、戰(zhàn)場敵我態(tài)勢實現(xiàn)字符或圖形的動態(tài)顯示。為實現(xiàn)模擬器顯示功能,基于NI CompactRIO進行嵌入式硬件設(shè)計,并借助OLED 技術(shù)實現(xiàn)顯示功能[1]。
圖1 顯控臺模擬器總體結(jié)構(gòu)框圖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 通過可自定義的現(xiàn)場可編程門陣列技術(shù),根據(jù)用戶的實際需求進行配置的輸入輸出測控系統(tǒng),借助專業(yè)軟件編程,定義并生成電路。NI CompactRIO 是一款在軍事、工業(yè)及教學(xué)等領(lǐng)域應(yīng)用較為廣泛的嵌入式緊湊型測量控制系統(tǒng)。該系統(tǒng)由用戶自定義的輸入輸出模塊、現(xiàn)場可編程門陣列邏輯及嵌入式實時控制器組成。集成的現(xiàn)場可編程門陣列使系統(tǒng)具備高速并行的運算能力,為使整個系統(tǒng)實現(xiàn)低功耗,采取一體化設(shè)計。NI CompactRIO系統(tǒng)硬件主體結(jié)構(gòu)由太空鋁支撐,緊湊型設(shè),使其外觀顯得小巧而堅固,滿足嚴苛的工業(yè)級安裝使用環(huán)境[2],但CompactRIO 系統(tǒng)本身不具有顯示功能,必須配備相應(yīng)的顯示器件實現(xiàn)其顯示功能。
由于某型飛機導(dǎo)彈指揮儀系統(tǒng)顯控臺,要求兼?zhèn)滹@示與控制功能,為實現(xiàn)前臺交互顯示可通過借助有機發(fā)光二極管顯示的OLED 技術(shù)完成設(shè)計。OLED 作為一種較為熱門的發(fā)光和顯示薄膜器件,其原理是通過在陽極和陰極之間夾多層有機薄膜導(dǎo)電致發(fā)光器件完成發(fā)光。由于其屬于電流型發(fā)光器件,顯示器的亮度可用電流來控制。OLED發(fā)光的點處于交叉排列的陰陽兩極中間,可以通過陰陽兩極的選通與關(guān)斷來控制每一個OLED 點位的明暗[3]。
本文主要通過實現(xiàn)OLED 技術(shù)與cRIO 系統(tǒng)融合,完成導(dǎo)彈指揮儀模擬器顯示功能的設(shè)計。
導(dǎo)彈指揮儀顯示功能模擬器總體結(jié)構(gòu)主要由cRIO 系統(tǒng)、顯示模塊、上位機及電源模塊等組成。cRIO 系統(tǒng)通過解讀上位機的指令完成對顯示模塊的管理功能,并回傳顯示模塊狀態(tài)信息;顯示模塊實現(xiàn)導(dǎo)彈指揮儀模擬器的所有顯示功能[4];上位機是根據(jù)指揮儀的控制原理完成對cRIO系統(tǒng)的綜合控制;電源負責(zé)對上位機及cRIO 系統(tǒng)供給電源。其結(jié)構(gòu)框圖如圖1 所示。系統(tǒng)的重點就是顯示模塊的選擇及功能的實現(xiàn)。
顯示模塊的選擇是本設(shè)計的重要環(huán)節(jié),根據(jù)不同的顯示器件,可設(shè)計多種顯示方案。其中,由7 段數(shù)碼管組成的顯示器結(jié)構(gòu)簡單,僅適合于數(shù)字和字母顯示的優(yōu)勢,但不能提供復(fù)雜的人機界面;點陣顯示器可自由組合不同大小的尺寸,人機界面比較豐富,但點陣顯示器接口相對復(fù)雜。
通過對某型飛機導(dǎo)彈指揮儀系統(tǒng)顯示相關(guān)指標進行綜合分析,并對比市面上應(yīng)用較多的顯示模塊,選用了諾維信公司提供的VGG12864Z。
VGG12864Z 模塊本身通過增加接口電路,在增加可匹配期間的同時,減少模塊本身的功耗。為實現(xiàn)控制OLED屏的顯示,在設(shè)計過程中對接口電路和驅(qū)動電路進行全新設(shè)計。該部分電路主要為了產(chǎn)生相應(yīng)的電源激勵信號、驅(qū)動指令信號和傳輸數(shù)據(jù)顯示信號。模塊邏輯電路和接口電路參見圖2 中下邊虛框部分。
VGG12864Z 模塊是64 行×128 列液晶顯示點組成的16 級灰度點陣單色圖形/字符顯示OLED 模塊。其外部接口電路設(shè)計簡單,使用非常方便,具有高對比度、高亮度、寬視角、響應(yīng)速度快、溫度范圍寬,低功耗等顯著特點,可以滿足指揮儀模擬器字符、圖形顯示的基本要求。該模塊可以直接與8 位微處理器相連,通過并行8 位數(shù)據(jù)接口,完成讀、寫操作時序邏輯傳輸。通過內(nèi)置的128×64×4bit數(shù)據(jù)顯示RAM,其中每4 位數(shù)據(jù)對應(yīng)OLED 顯示屏上一個點的明狀態(tài)。
圖2 中下部虛框部分為VGG12864Z-S003 的模塊邏輯電路和外部接口電路。用戶在使用過程中只需要對接口供電,產(chǎn)生驅(qū)動指令信號和傳輸顯示數(shù)據(jù)信號,完成OLED 屏的使用。通過研究發(fā)現(xiàn),模塊的外部激勵信號僅與SDD1325 有關(guān),所以只要對SSD1325 的輸入特性及指令系統(tǒng)進行開發(fā),就可以使用該模塊的相應(yīng)功能[5]。
圖3 顯示RAM的地址結(jié)構(gòu)Fig.3 Shows the address structure of RAM
通過查閱相關(guān)資料了解到cRIO 系統(tǒng)可以對RES#、WR#、RD#、CS#、D/C 和D0~D7 共計13 個端口對SSD1325驅(qū)動芯片進行控制,從而完成OLED 顯示屏的顯示。
RES#是控制模塊復(fù)位的信號,可以通過軟件進行定義。規(guī)定當(dāng)RES#輸入為低電平時,所有圖像RAM 清零,與此同時控制RAM 恢復(fù)為出廠設(shè)置。CS#為片選信號,當(dāng)CS#輸入為低電平時,cRIO 才能完成與驅(qū)動模塊通信。WR#和RD#分別為寫選擇信號和讀選擇信號,當(dāng)片選信號輸入低電平時,在其下降沿的讀寫選擇信號有效。D/C 是數(shù)據(jù)或命令選擇信號,當(dāng)數(shù)據(jù)/命令選擇信號的輸入為高電平時,代表傳輸?shù)臑閿?shù)據(jù)信號,此時D0~D7 端顯示為數(shù)據(jù)信號。所傳輸?shù)男枰M行顯示的數(shù)據(jù),由外部控制電路控制通過cRIO 外部接口輸入到緩存中。進入到緩存的數(shù)據(jù)首先需要通過色域解碼器對傳輸過來的數(shù)據(jù)進行解碼,最終將解碼后的數(shù)據(jù)通過行列驅(qū)動的模式驅(qū)動OLED 屏幕顯示。當(dāng)數(shù)據(jù)/命令選擇信號輸入為低電平時,代表傳輸?shù)臑槊钚盘枺珼0~D7 段顯示的為命令信號,該控制命令信號通過cRIO 的輸入輸出接口傳輸?shù)较到y(tǒng)控制命令解碼器中,對所傳輸?shù)拿钸M行解碼,最終存儲到相應(yīng)的命令寄存器中。
對于該模塊的功能實現(xiàn)的操作,可以將其簡化為OLED 屏幕初始化和OLED 屏幕顯示兩大步驟。為實現(xiàn)正常的顯示,要將OLED 屏幕進行初始化操作。首先,要對LED 顯示器進行設(shè)置,包括顯示方式的設(shè)置、對比度控制設(shè)置、屏幕起始行的設(shè)置。完成一系列設(shè)置后,需要將OLED 屏幕顯示清零并通過軟件對開機顯示內(nèi)容進行編輯。為完成OLED 的字符或數(shù)據(jù)的顯示需要通過編程實現(xiàn),可以通過向GDDRAM 中拷入數(shù)據(jù)完成,拷入的數(shù)據(jù)應(yīng)包含數(shù)據(jù)、命令、狀態(tài)及其數(shù)據(jù)段子程序等內(nèi)容。
圖4 實時數(shù)據(jù)采集cRIO系統(tǒng)Fig.4 Real-time data acquisition cRIO system
VGG12864Z 模塊是內(nèi)置了128×80×4bit 的顯示存儲器,RAM 容量為40960bit。該顯示存儲器主要用于存儲顯示數(shù)據(jù),OLED 顯示屏像素點的明暗狀態(tài)應(yīng)該與顯存地址中的數(shù)據(jù)狀態(tài)一一對應(yīng),通常顯存的數(shù)據(jù)作為直接驅(qū)動信號顯示圖形或者字符。某存儲地址的數(shù)據(jù)狀態(tài)為“1”,則該地址對應(yīng)的像素點為亮;某存儲地址的數(shù)據(jù)狀態(tài)為“0”,則該地址對應(yīng)的像素點為暗??梢燥@示窗口的大小為128×64,通過起始行和結(jié)束行進行設(shè)置。一個字節(jié)對應(yīng)著兩個像素點(其中,低4 位表示左像素點,高4 位表示右像素點的灰度值)。RAM 的地址結(jié)構(gòu)如圖3 所示[6]。
實時數(shù)據(jù)采集的cRIO 系統(tǒng)是一個可自定義的嵌入式系統(tǒng)。其硬件主要由cRIO 機箱、控制器和功能模塊組成,如圖4 所示。由于該系統(tǒng)相匹配的軟件和硬件資源較為豐富,可以通過搭建顯示功能的接口,構(gòu)成一個基于NI Compact RIO 可編程自動化控制器(PAC)。通過支持現(xiàn)場的輸入、輸出模塊的讀寫及數(shù)據(jù)處理,以可編程門陣列方式編程實現(xiàn),響應(yīng)速度快、傳輸速率和可靠性都十分高[7]。
NI cRIO-9103 是 具 備4 個 插 槽 的cRIO 底 座, 含三百萬門可自定義的可編程門陣列。時鐘頻率為40MHz,自帶196Kb 緩存,可將系統(tǒng)的其他相應(yīng)功能模塊都連接在這個底座上,其他槽位留給實際的數(shù)據(jù)采集功能用。
NI cRIO-9014 模塊需要連接在cRIO-9103 底座上,是cRIO 系統(tǒng)的實時控制器。cRIO-9014 使用的是MPC5200嵌入式處理器,該處理器是Freescale 公司的基于Power Architecture 技術(shù)實現(xiàn)的,處理器主頻具有400MHz,內(nèi)置嵌入式實時操作系統(tǒng)商業(yè)版VxWorks。該控制器是NI、Freescale 和Wind River 三大公司第二次在Compact RIO 平臺上的合作成果。cRIO 9014 為實現(xiàn)共享變量的方式與上位PC 機建立實時數(shù)據(jù)通信,提供了以太網(wǎng)絡(luò)接口。
如要求1s 內(nèi)完成一幅屏的刷新,則一個像素點的顯示時間為最低按一個像素點的顯示為7μs 計算,刷新一幅屏需要的時間為128×64×7μs=57344μs=57.344ms,基本看不到屏的刷新過程。根據(jù)信號的多少可選擇相應(yīng)的數(shù)字I/O模塊,速度快的模塊,需要的模塊數(shù)多。
在此配置NI-9401,它具備100ns 超高速數(shù)字輸入/輸出,8 通道,雙向,可按半字節(jié)(4 位)配置,滿足現(xiàn)實需求。
LabVIEW 平臺是一款通過圖形邏輯進行編程的軟件,具有所見即所得的特點,cRIO 系統(tǒng)運行的所有程序都需要在上進行編寫。通常為了更好地支持軟件的編譯,除了需要安裝LabVIEW 平臺主程序外,還需要安裝幾個必要的插件如:NI cRIO,LabVIEW FPGA,LabVIEW RT 等。用戶編寫的程序分為3 個層次,最下面的一層是安裝到cRIO 的底架上,可以直接對現(xiàn)場的輸入輸出模塊進行控制,程序的運行速度最快,經(jīng)過LabVIEW 程序編譯后可以下載至可編程門陣列上。通過對可編程門陣列的自定義設(shè)置,程序?qū)崿F(xiàn)對硬件的驅(qū)動[8];第二層程序是拷貝在實時控制器上,這一層程序?qū)儆谥虚g層,通過它既可以直接對可編程門陣列上程序前面板的所有輸入輸出控件進行讀寫操作,同時也可以通過建立網(wǎng)絡(luò)發(fā)布的變量與PC 級的程序建立通信;第三層程序主要完成人——機交互性的操作,通過拷貝到計算機上在Windows 操作系統(tǒng)執(zhí)行的程序。該軟件設(shè)計組成及流程如圖5 所示。
對電機的直接驅(qū)動程序與輸入信號檢測是在系統(tǒng)底架cRIO-9103 上實現(xiàn)的,可以通過自定義的可編程門陣列實現(xiàn)對硬件的控制。安裝NI cRIO,LabVIEW FPGA,LabVIEW RT 產(chǎn)檢后可在NI LabVIEW 軟件平臺上實現(xiàn)對可編程門陣列的程序設(shè)計、編譯、下載和運行監(jiān)控。
使用底架cRIO-9103 模塊,其單周期電路單元的執(zhí)行時間為25 ns。主控制器采用Freescale 設(shè)計生產(chǎn)的微處理器和操作系統(tǒng)為Wind River 的實時系統(tǒng)。為能夠快速高效地記錄現(xiàn)場數(shù)據(jù),采用了主頻具有400MHz,存儲為128M 內(nèi)存和2G 的拓展存貯空間的cRIO-9014 模塊。
某型導(dǎo)彈指揮儀顯控臺需要以字符或圖形的形式顯示敵我態(tài)勢,為完成其顯示,需要首先對顯示屏上應(yīng)顯示文字或圖片等信息建立字符庫,而這一套字符庫需要自己進行編譯。根據(jù)OLED 屏幕顯示數(shù)據(jù)的RAM 地址結(jié)構(gòu)特點,選用了嵌入式字模工具軟件Zimo21 建立字模庫。由于OLED 模組的字符結(jié)構(gòu)是低位在上、高位在下的順序,還需要進行字節(jié)倒序的設(shè)置[9]。所有的字符、字形等,可以根據(jù)顯控臺的顯示需求進行編譯。字符庫的建立通常首先需要采用C51 格式取模,生成單個字符的點陣顯示源代碼,然后根據(jù)圖形顯示需要在OLED 顯示屏上的顯示效果,最后根據(jù)顯示效果對源代碼進行相應(yīng)調(diào)整即可得到。在實現(xiàn)系統(tǒng)顯示功能的基礎(chǔ)上,配合cRIO 系統(tǒng)可以完成對導(dǎo)彈指揮儀系統(tǒng)顯控臺的交互式仿真設(shè)計[10,11]。
圖5 顯示功能軟件組成及其流程Fig.5 Shows the functional software composition and its process
本文借助OLED 技術(shù),通過cRIO 系統(tǒng)對某型飛機導(dǎo)彈指揮儀系統(tǒng)顯示功能實現(xiàn)仿真設(shè)計。通過上位機模擬飛機狀態(tài)信息、傳遞指令信息、裝訂參數(shù)信息,并通過OLED技術(shù)進行對上位機模擬、傳遞、裝訂的相關(guān)數(shù)據(jù)實時動態(tài)顯示,基本能夠?qū)崿F(xiàn)導(dǎo)彈指揮儀系統(tǒng)的顯示功能仿真,并根據(jù)該模擬顯示系統(tǒng)的構(gòu)建可實現(xiàn)對導(dǎo)彈指揮儀顯控臺的通電檢查類科目的仿真訓(xùn)練,探索并拓展了實裝半實物仿真的教學(xué)領(lǐng)域。