張穗華,陳 浩,劉儀聰
(中國兵器工業第五八研究所,四川 綿陽 621000)
Hi3531A 是HUAWEI 海思開發的針對多路高清和標清DVR 產品應用的一款專業SOC 芯片,內置ARM-A9 雙核處理器和H.264 視頻編解碼引擎,支持PAL 和SDI 接口視頻信號輸入,提供HDMI、VGA 高清顯示輸出能力,且集成有豐富的外圍通信接口[1]。
Qt 是由QtCompany 開發的跨平臺C++圖形用戶界面應用程序框架開發平臺[2-3]。它具備優良的跨平臺特性、組件編程和豐富的控件資源,可以為開發者提供健全且美觀的用戶界面功能[4-5]。
遙控武器戰是一種可以應用于多平臺的相對獨立的模塊化、通用化武器系統[6],其組成框圖如下頁圖1 所示。

圖1 遙控武器站系統組成框圖
操控終端作為遙控武器站類型武器裝備平臺的重要組成部分,是系統人機交互的接口,主要用于警戒監控、狀態顯示、指令下發等功能的實現[7]。
整個軟件的開發環境包括Linux 服務器(宿主機)、Windows 工作臺(調試機)和Hi3531A(目標板)3 部分,三者同處于一個網絡中,如圖2 所示。

圖2 開發環境連接示意圖
整個操控終端軟件的開發流程如圖3 所示。

圖3 開發流程示意圖
海思官方發布的SDK 包中提供有兩種編譯工具鏈:基于uclibc 的工具鏈arm-hisiv300-linux 和基于glibc 的工具鏈arm-hisiv400-linux。本文選擇前者,在Linux 服務器下安裝對應工具鏈,具體步驟不再贅述,海思官方有詳細的指導說明。
安裝成功之后,會顯示如圖4 信息。

圖4 交叉編譯器安裝成功示意圖
Qt 支持組件編程,在進行源碼編譯時,可根據實際需要增刪對應的功能模塊。本文選擇Qt4.8.1 作為開發庫,編譯指令如下:

#makeinstall
編譯成功之后,會在對應路徑的bin 目錄下生成qmake 可執行文件。
配置開發工具QtCreator 如圖5~圖6 所示。

圖5 QtCreator 配置示意圖1

圖6 QtCreator 配置示意圖2
本操控終端外圍通信接口包含3 路串口、3 路SDI 視頻輸入、1 路視頻PAL 輸入、1 路CAN 口、1路網口、2 路USB、1 路VGA 輸出、1 路HDMI 輸出。這里重點闡述PAL/SDI 視頻驅動、CAN 驅動,以及觸摸屏驅動的內核配置和對應源碼修改。
Hi3531A 通過ITU-R、BT656/601/1 120 接口或DigitalCamera 接口接收芯片外的視頻數據。它擁有5 個BT.1120 接口,前4 個BT.1120 接口每個對應2 個VI 設備,均支持1/2/4 路D1、960H 復合模式輸入(BT.656 協議),以及2 路720P 復合模式。第5 個BT.1120 口是專用于級聯的。
通過采用TVP5150 芯片,可實現外圍PAL 視頻輸入接口到板級BT.656 接口的信號轉換,采用TW6874 芯片可將3 路SDI 視頻輸入轉為對應的BT.1120 口。
Hi3531A 并沒有直接可用的CAN 接口,通過采用MCP2515 芯片可將外圍的CAN 接口轉為板級的SPI 通信口,但需要修改相關的源碼文件,包括
driver/net/can/mcp251x.c 以及drivers/spi/spidev_info.c
等,并配置相關IO 引腳的屬性。
Hi3531A 支持USB 觸摸屏輸入,但并沒有eGalax 所需的HidMultiTouch 模塊,因此,需要根據linux 內核版本修改相關源碼并配置內核模塊,詳情請參考eGalax 的指導說明。
修改完源碼,配置好內核,可生成內核文件,并燒寫到Hi3531A(目標板)中。以上驅動既可編譯到內核文件中,也可單獨生成驅動文件,自行加載。
觸摸屏驅動安裝成功之后,并不能直接供Qt 程序調用。還需要通過Tslib 庫將觸摸屏的原始數據與界面像素坐標進行校準和映射,校屏后的結果測試如圖7 所示。

圖7 Tslib 校屏后的效果圖
整個操控終端軟件框架可分為4 層:驅動層、協議層、功能層、UI 層。其軟件組成框圖如圖8 所示。

圖8 操控終端軟件組成框圖
驅動層用于實現操控終端與外部設備之間的通信和數據采集,在軟件設計階段,可根據硬件通信接口模塊化配置。
協議層主要用于實現對接口協議數據的解析、數據格式的轉換以及數據庫的查詢等功能。
功能層主要由火控解算模塊、日志記錄模塊以及圖像處理模塊組成。其中,圖像處理模塊可根據用戶需求增刪子模塊:圖像識別、圖像跟蹤、視頻傳輸等。其功能是實現對目標的識別、跟蹤,射擊諸元解算、預判打擊,操作日志和故障信息的記錄等。
UI 層是人機交互的入口,主要用于操控指令的使能和下發、工作模式的切換、伺服位置的反饋顯示、單體設備健康狀態的監控以及功能開啟、完成情況的顯示等。
UI 界面依據簡潔明了、操作便捷的設計風格,主要劃分為視頻監控、系統健康狀態、射控、位置反饋、系統狀態反饋、手柄使能反饋,以及功能按鈕等區域。
系統健康狀態區域布局如圖9 所示,用于系統單體設備運行狀態的顯示。系統故障時,該區域會自動彈出,點擊右側“系統健康狀態”圖標,該區域可隱藏。

圖9 系統健康狀態區域布局圖
射控區域布局如圖10 所示,包含4 種射擊模式,用于控制射擊方式和射擊頻率。

圖10 射控區域布局圖
伺服位置反饋區域布局如圖11 所示,圖中“指針”會根據槍塔位置旋轉。

圖11 伺服位置反饋區域布局圖
手柄觸發反饋區域布局如圖12 所示,其中左手柄的遙桿,上下用于調焦,左用于相機切換;按鈕分別對應火控解算、圖像跟蹤、測距以及射擊(后扳機連鎖)等功能的觸發;右手柄的遙桿用于實現伺服位置調轉。

圖12 手柄觸發反饋區域布局圖
功能按鈕區域布局如圖13 所示,主要用于操控指令的使能和下發。點擊左側翻頁“<”圖標,會跳轉到“校零”區域。按鈕的使能是根據工作模式來判斷。

圖13 功能按鈕區域布局圖
點擊校零頁面下的“步進校零”按鈕,會彈出窗口如圖14 所示,主要用于實現槍塔小范圍角度調轉到位后的零位燒寫,步進值范圍為0~127,點擊界面中的四向鍵,會發送一幀數據給下位機,實現位置偏移調轉。

圖14 步進校零界面
操控終端軟件主流程框架,如下頁圖15 所示。

圖15 操控終端軟件主流程圖
簡單介紹幾個子模塊的流程,系統自檢模塊,如圖16 所示。UI 布局模塊,如圖17 所示。通信子模塊,如圖18 所示。

圖16 系統自檢子模塊流程圖

圖17 UI 布局模塊圖

圖18 通信子模塊流程圖
本軟件以Hi3531A 為平臺,基于Qt4.8.1 庫,采用分層模塊化的軟件架構,能根據外設通信接口和使用場景自行配置驅動和功能模塊。具備簡潔明了的操控界面和穩定可靠的運行狀態,滿足武器裝備實時監控警戒、火力打擊、系統自檢、安全可靠的戰場需求。