張穗華,陳 浩,劉儀聰
(中國兵器工業(yè)第五八研究所,四川 綿陽 621000)
Hi3531A 是HUAWEI 海思開發(fā)的針對(duì)多路高清和標(biāo)清DVR 產(chǎn)品應(yīng)用的一款專業(yè)SOC 芯片,內(nèi)置ARM-A9 雙核處理器和H.264 視頻編解碼引擎,支持PAL 和SDI 接口視頻信號(hào)輸入,提供HDMI、VGA 高清顯示輸出能力,且集成有豐富的外圍通信接口[1]。
Qt 是由QtCompany 開發(fā)的跨平臺(tái)C++圖形用戶界面應(yīng)用程序框架開發(fā)平臺(tái)[2-3]。它具備優(yōu)良的跨平臺(tái)特性、組件編程和豐富的控件資源,可以為開發(fā)者提供健全且美觀的用戶界面功能[4-5]。
遙控武器戰(zhàn)是一種可以應(yīng)用于多平臺(tái)的相對(duì)獨(dú)立的模塊化、通用化武器系統(tǒng)[6],其組成框圖如下頁圖1 所示。
圖1 遙控武器站系統(tǒng)組成框圖
操控終端作為遙控武器站類型武器裝備平臺(tái)的重要組成部分,是系統(tǒng)人機(jī)交互的接口,主要用于警戒監(jiān)控、狀態(tài)顯示、指令下發(fā)等功能的實(shí)現(xiàn)[7]。
整個(gè)軟件的開發(fā)環(huán)境包括Linux 服務(wù)器(宿主機(jī))、Windows 工作臺(tái)(調(diào)試機(jī))和Hi3531A(目標(biāo)板)3 部分,三者同處于一個(gè)網(wǎng)絡(luò)中,如圖2 所示。
圖2 開發(fā)環(huán)境連接示意圖
整個(gè)操控終端軟件的開發(fā)流程如圖3 所示。
圖3 開發(fā)流程示意圖
海思官方發(fā)布的SDK 包中提供有兩種編譯工具鏈:基于uclibc 的工具鏈arm-hisiv300-linux 和基于glibc 的工具鏈arm-hisiv400-linux。本文選擇前者,在Linux 服務(wù)器下安裝對(duì)應(yīng)工具鏈,具體步驟不再贅述,海思官方有詳細(xì)的指導(dǎo)說明。
安裝成功之后,會(huì)顯示如圖4 信息。
圖4 交叉編譯器安裝成功示意圖
Qt 支持組件編程,在進(jìn)行源碼編譯時(shí),可根據(jù)實(shí)際需要增刪對(duì)應(yīng)的功能模塊。本文選擇Qt4.8.1 作為開發(fā)庫,編譯指令如下:
#makeinstall
編譯成功之后,會(huì)在對(duì)應(yīng)路徑的bin 目錄下生成qmake 可執(zhí)行文件。
配置開發(fā)工具QtCreator 如圖5~圖6 所示。
圖5 QtCreator 配置示意圖1
圖6 QtCreator 配置示意圖2
本操控終端外圍通信接口包含3 路串口、3 路SDI 視頻輸入、1 路視頻PAL 輸入、1 路CAN 口、1路網(wǎng)口、2 路USB、1 路VGA 輸出、1 路HDMI 輸出。這里重點(diǎn)闡述PAL/SDI 視頻驅(qū)動(dòng)、CAN 驅(qū)動(dòng),以及觸摸屏驅(qū)動(dòng)的內(nèi)核配置和對(duì)應(yīng)源碼修改。
Hi3531A 通過ITU-R、BT656/601/1 120 接口或DigitalCamera 接口接收芯片外的視頻數(shù)據(jù)。它擁有5 個(gè)BT.1120 接口,前4 個(gè)BT.1120 接口每個(gè)對(duì)應(yīng)2 個(gè)VI 設(shè)備,均支持1/2/4 路D1、960H 復(fù)合模式輸入(BT.656 協(xié)議),以及2 路720P 復(fù)合模式。第5 個(gè)BT.1120 口是專用于級(jí)聯(lián)的。
通過采用TVP5150 芯片,可實(shí)現(xiàn)外圍PAL 視頻輸入接口到板級(jí)BT.656 接口的信號(hào)轉(zhuǎn)換,采用TW6874 芯片可將3 路SDI 視頻輸入轉(zhuǎn)為對(duì)應(yīng)的BT.1120 口。
Hi3531A 并沒有直接可用的CAN 接口,通過采用MCP2515 芯片可將外圍的CAN 接口轉(zhuǎn)為板級(jí)的SPI 通信口,但需要修改相關(guān)的源碼文件,包括
driver/net/can/mcp251x.c 以及drivers/spi/spidev_info.c
等,并配置相關(guān)IO 引腳的屬性。
Hi3531A 支持USB 觸摸屏輸入,但并沒有eGalax 所需的HidMultiTouch 模塊,因此,需要根據(jù)linux 內(nèi)核版本修改相關(guān)源碼并配置內(nèi)核模塊,詳情請(qǐng)參考eGalax 的指導(dǎo)說明。
修改完源碼,配置好內(nèi)核,可生成內(nèi)核文件,并燒寫到Hi3531A(目標(biāo)板)中。以上驅(qū)動(dòng)既可編譯到內(nèi)核文件中,也可單獨(dú)生成驅(qū)動(dòng)文件,自行加載。
觸摸屏驅(qū)動(dòng)安裝成功之后,并不能直接供Qt 程序調(diào)用。還需要通過Tslib 庫將觸摸屏的原始數(shù)據(jù)與界面像素坐標(biāo)進(jìn)行校準(zhǔn)和映射,校屏后的結(jié)果測試如圖7 所示。
圖7 Tslib 校屏后的效果圖
整個(gè)操控終端軟件框架可分為4 層:驅(qū)動(dòng)層、協(xié)議層、功能層、UI 層。其軟件組成框圖如圖8 所示。
圖8 操控終端軟件組成框圖
驅(qū)動(dòng)層用于實(shí)現(xiàn)操控終端與外部設(shè)備之間的通信和數(shù)據(jù)采集,在軟件設(shè)計(jì)階段,可根據(jù)硬件通信接口模塊化配置。
協(xié)議層主要用于實(shí)現(xiàn)對(duì)接口協(xié)議數(shù)據(jù)的解析、數(shù)據(jù)格式的轉(zhuǎn)換以及數(shù)據(jù)庫的查詢等功能。
功能層主要由火控解算模塊、日志記錄模塊以及圖像處理模塊組成。其中,圖像處理模塊可根據(jù)用戶需求增刪子模塊:圖像識(shí)別、圖像跟蹤、視頻傳輸?shù)?。其功能是?shí)現(xiàn)對(duì)目標(biāo)的識(shí)別、跟蹤,射擊諸元解算、預(yù)判打擊,操作日志和故障信息的記錄等。
UI 層是人機(jī)交互的入口,主要用于操控指令的使能和下發(fā)、工作模式的切換、伺服位置的反饋顯示、單體設(shè)備健康狀態(tài)的監(jiān)控以及功能開啟、完成情況的顯示等。
UI 界面依據(jù)簡潔明了、操作便捷的設(shè)計(jì)風(fēng)格,主要?jiǎng)澐譃橐曨l監(jiān)控、系統(tǒng)健康狀態(tài)、射控、位置反饋、系統(tǒng)狀態(tài)反饋、手柄使能反饋,以及功能按鈕等區(qū)域。
系統(tǒng)健康狀態(tài)區(qū)域布局如圖9 所示,用于系統(tǒng)單體設(shè)備運(yùn)行狀態(tài)的顯示。系統(tǒng)故障時(shí),該區(qū)域會(huì)自動(dòng)彈出,點(diǎn)擊右側(cè)“系統(tǒng)健康狀態(tài)”圖標(biāo),該區(qū)域可隱藏。
圖9 系統(tǒng)健康狀態(tài)區(qū)域布局圖
射控區(qū)域布局如圖10 所示,包含4 種射擊模式,用于控制射擊方式和射擊頻率。
圖10 射控區(qū)域布局圖
伺服位置反饋區(qū)域布局如圖11 所示,圖中“指針”會(huì)根據(jù)槍塔位置旋轉(zhuǎn)。
圖11 伺服位置反饋區(qū)域布局圖
手柄觸發(fā)反饋區(qū)域布局如圖12 所示,其中左手柄的遙桿,上下用于調(diào)焦,左用于相機(jī)切換;按鈕分別對(duì)應(yīng)火控解算、圖像跟蹤、測距以及射擊(后扳機(jī)連鎖)等功能的觸發(fā);右手柄的遙桿用于實(shí)現(xiàn)伺服位置調(diào)轉(zhuǎn)。
圖12 手柄觸發(fā)反饋區(qū)域布局圖
功能按鈕區(qū)域布局如圖13 所示,主要用于操控指令的使能和下發(fā)。點(diǎn)擊左側(cè)翻頁“<”圖標(biāo),會(huì)跳轉(zhuǎn)到“校零”區(qū)域。按鈕的使能是根據(jù)工作模式來判斷。
圖13 功能按鈕區(qū)域布局圖
點(diǎn)擊校零頁面下的“步進(jìn)校零”按鈕,會(huì)彈出窗口如圖14 所示,主要用于實(shí)現(xiàn)槍塔小范圍角度調(diào)轉(zhuǎn)到位后的零位燒寫,步進(jìn)值范圍為0~127,點(diǎn)擊界面中的四向鍵,會(huì)發(fā)送一幀數(shù)據(jù)給下位機(jī),實(shí)現(xiàn)位置偏移調(diào)轉(zhuǎn)。
圖14 步進(jìn)校零界面
操控終端軟件主流程框架,如下頁圖15 所示。
圖15 操控終端軟件主流程圖
簡單介紹幾個(gè)子模塊的流程,系統(tǒng)自檢模塊,如圖16 所示。UI 布局模塊,如圖17 所示。通信子模塊,如圖18 所示。
圖16 系統(tǒng)自檢子模塊流程圖
圖17 UI 布局模塊圖
圖18 通信子模塊流程圖
本軟件以Hi3531A 為平臺(tái),基于Qt4.8.1 庫,采用分層模塊化的軟件架構(gòu),能根據(jù)外設(shè)通信接口和使用場景自行配置驅(qū)動(dòng)和功能模塊。具備簡潔明了的操控界面和穩(wěn)定可靠的運(yùn)行狀態(tài),滿足武器裝備實(shí)時(shí)監(jiān)控警戒、火力打擊、系統(tǒng)自檢、安全可靠的戰(zhàn)場需求。