閻旭田丹
(電子科技大學 成都 611731)
嵌入式系統(tǒng)廣泛用于船用雷達的顯示控制系統(tǒng),目前船用雷達的顯示控制系統(tǒng)主要為基于ARM的嵌入式處理系統(tǒng),通過人機交互界面對船用雷達的各個硬件模塊進行控制,通過大尺寸的顯示屏顯示雷達圖像。
嵌入式系統(tǒng)應用于船用雷達領域主要有如下的技術特點:實時性好,能夠較好的滿足船用雷達系統(tǒng)在特定工作情況下的實時要求,完成雷達不同功能切換;專用性強,嵌入式系統(tǒng)面向于船舶電子導航設備,因此硬件和軟件都是專門針對船用雷達系統(tǒng);可裁剪性好,嵌入式系統(tǒng)提供外部擴展的硬件模塊和優(yōu)化的軟件系統(tǒng),便于維護和升級;可靠性高,嵌入式系統(tǒng)能夠在惡劣的環(huán)境下對雷達軟硬件設備的穩(wěn)定控制。
目前有兩種船用雷達顯示架構(gòu),一種是基于ARM加DSP的雙核處理器架構(gòu),該系統(tǒng)主要將雷達的控制和圖像顯示放在ARM核的SOC中,通過SOC中自帶的LCD控制器實現(xiàn)圖像的顯示,由DSP實現(xiàn)雷達數(shù)據(jù)的處理,處理好的數(shù)據(jù)通過通訊接口傳入ARM進行顯示,如圖1所示,該架構(gòu)的優(yōu)點是使用雙核架構(gòu)的處理器,將數(shù)據(jù)處理和數(shù)據(jù)顯示分離開來,充分發(fā)揮ARM和DSP的優(yōu)勢,最大限度提高系統(tǒng)效率,不足在于由于目前ARM核運行頻率不高,使得系統(tǒng)總線上顯示數(shù)據(jù)量不能太大,總線上的數(shù)據(jù)傳輸限制了LCD上數(shù)據(jù)顯示大小,只能滿足較小屏幕的顯示需求。但考慮到現(xiàn)代船舶電子顯示屏的需求,較大的屏幕能大大提高船用雷達的顯示可靠性,因此大屏幕數(shù)據(jù)顯示是船用雷達顯示系統(tǒng)發(fā)展的需要。
圖1雙核處理架構(gòu)
另一種是基于Intel處理器的工控機模塊,整合了船用雷達各個模塊,更像是一個高性能的PC機,該系統(tǒng)的優(yōu)點是能夠迅速的處理雷達數(shù)據(jù)并顯示在大屏幕上,不足是由于工控機軟硬件結(jié)構(gòu)復雜,開發(fā)難度大,設備成本高和體積大等。
本設計由兩部分組成:嵌入式ARM模塊部分負責顯示功能的驅(qū)動層操作,底層硬件的顯示操作由FPGA完成,即將原來基于ARM的嵌入式處理器中的LCD控制器分離出,放在FPGA模塊部分進行硬件層的顯示操作。建立ARM與FPGA之間的異步數(shù)據(jù)傳輸機制,并通過該機制將嵌入式ARM部分關于雷達顯示人機操作界面的數(shù)據(jù)圖像發(fā)送到FPGA進行顯示,并創(chuàng)建雙核模塊間的控制寄存器,實現(xiàn)ARM顯示功能對FPGA硬件層的控制操作,使雷達圖像在屏幕上掃描顯示。FPGA就負責LCD控制器的底層數(shù)據(jù)調(diào)度顯示,由于FPGA特有的高速并行數(shù)據(jù)處理的技術特點,使得能夠進行大量的圖像數(shù)據(jù)顯示,因此能夠支持雷達掃描圖像的大屏幕顯示,并減少嵌入式ARM處理器的運行負載,提高顯控系統(tǒng)的運行效率,同時,F(xiàn)PGA也可以取代DSP完成雷達數(shù)據(jù)的數(shù)字信號處理。方案實現(xiàn)原理如圖2所示。
圖2 大屏顯示方案
根據(jù)對圖像顯示機制的分析和討論,本文提出了一種支持大屏幕船用雷達數(shù)字成像的顯示系統(tǒng)解決方案,這一系統(tǒng)的整體數(shù)據(jù)傳輸機制原理如圖3所示。
圖3 數(shù)據(jù)傳輸機制
顯示圖像的數(shù)據(jù)通過 LCD驅(qū)動傳送到外部的顯存中,ARM系統(tǒng)中的圖像數(shù)據(jù)空間映射到外部顯存空間,由 FPGA硬件完成顯示數(shù)據(jù)的顯示刷新。實現(xiàn)顯示圖像的慢速數(shù)據(jù)交互,并進行高速數(shù)據(jù)的顯示刷新,完成大屏幕雷達圖像的高速顯示。
整個船用雷達的軟件整體框圖如圖4所示。
圖4 軟件整體框架
數(shù)據(jù)流分為2路:顯示的雷達回波數(shù)據(jù)由人機交互界面開始,經(jīng)過ARM顯示系統(tǒng)的幀緩沖設備,通過LCD驅(qū)動層的數(shù)據(jù)傳輸,發(fā)送至底層硬件部分,進行圖像的刷新顯示;上位機對雷達各功能模塊的控制指令由人際界面發(fā)出,經(jīng)過雷達控制中間件軟件進行控制調(diào)度,然后由采集控制驅(qū)動相應底層雷達硬件操作,完成上位機對底層硬件的有效控制。
根據(jù)整個雷達數(shù)據(jù)流的方向,設計整個軟件架構(gòu),確定驅(qū)動層分為LCD模塊和中間件模塊。建立上位機和底層之間的高速、可靠的顯示與控制通信機制,完成大屏顯示。
船用雷達LCD驅(qū)動模塊主要負責上層嵌入式操作系統(tǒng)的統(tǒng)一應用層顯示機制與底層FPGA顯示硬件的數(shù)據(jù)通信連接,使得嵌入式船用雷達顯示系統(tǒng)的上層應用程序的圖像通過驅(qū)動層在底層硬件完成圖像顯示。整個模塊包括雷達圖像數(shù)據(jù)的高速傳輸、對LCD控制器功能寄存器的設定,以及對上層圖像應用程序的接口設計。
LCD模塊包括幀緩沖驅(qū)動的設計和LCD-FPGA驅(qū)動的設計。
幀緩沖作為linux系統(tǒng)為顯示設備提供的一個軟件接口,它的作用就是將傳統(tǒng)的顯示緩沖區(qū)抽象,屏蔽圖像底層硬件差異,允許上層應用程序在一定的圖形模式下直接對顯示緩沖區(qū)進行讀寫操作,幀緩沖設備屬于標準的字符型設備驅(qū)動。設備驅(qū)動結(jié)構(gòu)如圖5所示。
圖5 幀緩沖驅(qū)動程序架構(gòu)
LCD-FPGA驅(qū)動設計:在本設計中,顯示部分的LCD控制器的設計集成在FPGA內(nèi)部,通過ARM系統(tǒng)的系統(tǒng)總線實現(xiàn)與FPGA關于顯存部分的數(shù)據(jù)通信,由FPGA外部的DDR分配一塊顯示緩沖區(qū),將這片顯存空間地址映射到ARM的片選空間,同時幀緩沖設備就可以對外部這片顯存空間進行讀寫數(shù)據(jù)訪問,實現(xiàn)上層應用空間對顯示屏幕的用戶直接操作,其原理見圖6。
圖6 LCD-FPGA顯存分配
LCD-FPGA驅(qū)動的基本流程:
a.驅(qū)動加載采用平臺驅(qū)動設備加載。
b.把FPGA的數(shù)據(jù)傳輸?shù)牡刂纷鰉map映射,使用共享內(nèi)存的方式,直接將FPGA顯存的空間映射到用戶空間,用戶空間可以直接訪問FPGA的顯存空間,實現(xiàn)fb的內(nèi)存映射功能。
c.驅(qū)動將從平臺設備獲取的LCD設備信息進行上層fb的參數(shù)設置,使得應用層能夠使用。
d.注冊framebuffer幀緩沖設備,該過程將前面設置的硬件接口參數(shù),統(tǒng)一創(chuàng)建到對應的幀緩沖設備中,并自動創(chuàng)建fb設備節(jié)點。
e.驅(qū)動卸載包括注銷平臺設備、注銷framebuffer幀緩沖設備,停止LCD顯示,以及對FPGA顯存的取消映射。
將LCD-FPGA的驅(qū)動加載成功以后,操作/dev/fb0的幀緩沖設備文件,簡單測試幀緩沖設備的用戶空間的訪問。測試的形式主要是寫圖片,由于底層硬件設置的分辨率為1024×768,像素位數(shù)是16位,所以文件的大小應與實際的硬件顯存訪問的空間大小相同,幀緩沖設備才能進行正確的數(shù)據(jù)讀寫,在顯示屏幕上完整顯示圖片。具體的操作流程如圖7所示。
圖7 操作流程
a.打開幀緩沖設備文件,即打開/dev/fb0的設備文件;
b.通過ioctl()操作獲得底層驅(qū)動的固定屏幕參數(shù)和可變屏幕參數(shù),比如屏幕分辯率(1024×768),像素位數(shù)(16bit),計算硬件支持的最大屏幕緩沖區(qū)的大小。
c.將從底層獲取的與硬件匹配的屏幕緩沖區(qū)的實際物理空間映射到用戶空間,使應用層可以對這片空間直接進行數(shù)據(jù)讀寫。
d.在底層屏幕的物理空間映射成的用戶空間可以直接進行圖片數(shù)據(jù)的寫入,將1024×768分辨率、16位像素的圖片寫入顯示緩沖區(qū),完成幀緩沖 設備的應用空間測試。測試結(jié)果如圖8所示。
圖8 雷達界面
本設計以嵌入式架構(gòu)為前提,通過優(yōu)化ARM和FPGA的通信方式,使得性能較低的ARM芯片也能驅(qū)動大屏幕的顯示,有效降低了船用雷達系統(tǒng)成本,通過低成本的嵌入式系統(tǒng)設計方案取代了高昂的工控機方案,本設計具有通用性,不僅僅局限于船用雷達,可適用于普遍大屏驅(qū)動的場合。
[1]杜春雷.ARM體系結(jié)構(gòu)與編程[M].北京:清華大學出版社,2003,2.
[2]張潤澤,船舶導航雷達,第一冊,第二冊.人民交通出版社,1987,6.
[3]雷琴,耿晨歌,陳耀武,汪樂宇.基于嵌入式的船載雷達系統(tǒng)軟件設計.船舶,2003,(3).
[4]宋寶華,Linux設備驅(qū)動開發(fā)詳解,人民郵電出版社,2008,2.
[5]Samsung Electronics.32-bit CMOS Microcontroller User's Manual.Revision 1.
[6]B.Cantrell,J.Degraaf,F(xiàn).Willwerth.Development of a digital array radar(DAR)[J].IEEE Aerospace and electronics systems magazine,2002,17(3):22 -27.