劉云飛 ,舒軼昊, 張建明,臧傳蕾
(1.海軍航空大學青島校區(qū),山東青島,266041;2.中國人民解放軍91001部隊,北京,100036;3.中國電子科技集團公司第二十研究所,陜西西安,710068)
隨著計算機和通信技術的快速發(fā)展,嵌入式系統已廣泛應用到家用電器、儀器儀表、航空航天及軍事裝備等各行業(yè),嵌入式系統包括嵌入式處理器、存儲器和輸入輸出設備等硬件電路,以及嵌入在處理器的嵌入式操作系統、應用軟件。ARM微處理器與其他通用處理器相比,內核結構簡單,典型結構包含外圍接口、數字信號處理器、片上內存以及ARM內核;同時,精簡指令集和流水線設計,架構高度模型化,內存、內存管理單元(MMU)、浮點運算單元以及協處理器都是可選的,提高了ARM專用設備處理器的靈活性。
嵌入式系統以應用為中心,以微電子技術、控制技術、計算機技術和通訊技術為基礎,強調硬件、軟件的協同性與整合性,軟件、硬件可裁剪。
目前,導航接收機正向智能化、集成化及多功能的方向發(fā)展,對體積、可靠性、功耗要求不斷提高,結合ARM微處理器技術及應用上的特點,基于ARM公司最新推出的Cortex系列A9平臺,開展導航接收機的研制,可重復利用嵌入式技術的優(yōu)點。
該導航接收機要求能夠實現方位、仰角及導航數據信息的解算,完成方位、仰角誤差的分析計算,具備測試數據的存儲、輸出能力,由天線、射頻接收前端、信號處理、顯示及電源等電路單元組成,如圖1所示。
圖1 導航接收機原理框圖
天線接收信號經接收通道低噪聲放大和混頻后,下變頻為固定頻率的中頻信號,中頻信號經過A/D采樣電路變?yōu)閿底中盘枺蓸雍蟮男盘柾ㄟ^DDC數字下變頻后進行解調,解算出所需要的角度信息。這里以ARM嵌入式系統為出發(fā)點,論述導航接收機的設計,原理如圖2所示。
圖2 ARM微處理器的導航接收機嵌入系統原理框圖
ARM處理器選用Freescale公司的MCIMX6Q6AVT10AC,工作主頻1GHz,集成4個Cortex-A9內核,每個CPU可用于單線程系統,也可用于多線程。具有32KB一級數據及32KB一級指令緩存,提供1MB二級緩存,集成272KB內部RAM,96KB啟動ROM,具備3D圖形引擎、1個Sata3.0接口、2個CAN接口、1個PCIE接口、1個10/100/1000M以太網接口,提供NorFlash,NandFlash,Batter,Camera,LVDS,LCD,HDMI,KeyPad,WLAN等接口,原理如圖3所示。
圖3 ARM原理框圖
外部設備包括DDR內存、NorFlash、SSD電子盤、FPGA、CPLD,RS232,Ethernet、顯示器,這里雖然包括用于信號處理的FPGA及DSP,但它們都是在ARM控制下進行工作的,只能看作ARM微處理器的外部設備。
(1)FLASH
Flash用于存放操作系統Boot引導文件等,選用Spansion公司的S29GL01GP,該Flash為16位并行NorFlash,容量為128MB,操作速度為110ns,工作電壓為3.3V,與ARM采用EIM接口連接。
(2)DDR
DDR是操作系統運行所在,是變量暫存所在,DDR選用Micron公司的MT41J256M16,該芯片為低功耗DDR3內存顆粒,可工作在1600M數據率下,DDR工作在528MHz時鐘,數據速率為1056M。
(3)RS232接口
RS232用于與外部設備數據通信,RS232由ARM芯片內部UART加MAX3232EUE實現,MAX3232EUE為Maxim公司的雙路RS232電平轉換芯片,該芯片最大通信速率為250Kbps,可與常用的PC及嵌入式板卡進行通信。
(4)USB接口
直接由ARM處理器內部集成了USB接口。
(5)SSD固態(tài)硬盤
SSD(Solid State Drive)固態(tài)硬盤用于存儲導航接收機解算的導航數據,選用SiliconMotion公司的SM631GEABB單片SataSSD電子盤,容量為16GB,讀速度為80MB/S,寫速度為50MB/S。
(6)eMMC
eMMC用于存放系統鏡像及文件系統,選用Silicon Motion公司的SM661GE8AA單片eMMC芯片容量為8GB,讀速度為60MB/S,寫速度為30MB/S。
(7)網絡接口
以太網用于與外部設備通信,由ARM內部自帶的EMAC外接88E1111 PHY實現,88E1111為Marvell公司的10/100/1000M PHY,可工作于10/100/1000M模式。
(8)PS2接口
PS/2接口采用CPLD加電平轉換芯片實現,CPLD實現PS2接口通信邏輯,電平轉換芯片TXB0108實現5V到3.3V電平轉換,CPU通過EIM與CPLD進行數據通信,
(9)ARM顯示接口
采用MCIMX6Q6AVT10AC實現LVDS驅動。
(10)DSP子系統
DSP子系統由DSP,DDR,Flash,CPLD等組成,如圖4所示。
圖4 DSP子系統功能框圖
DSP主要實現導航角度的計算及與FPGA通信,選用TI公司的TMS320C6455,該DSP是定點信號處理器,最高主頻為1.2GHz,處理能力為9600MIPS,軟件與C64x兼容,該DSP有32KB一級緩存,2MB二級緩存及32KB二級ROM,集成有VCP、TCP協處理器,有32bit/DDR2內存接口,集成增強型EDMA,提供HPI主機接口,提供32位/33MHz的PCI接口。
Flash用于存放DSP代碼,實現上電自加載,選用Spansion公司的S29GL512GP,該Flash為16位寬并行NorFlash,容量為64MB,操作速度為110ns。
DDR是DSP外部大容量高速緩存,用于存放處理數據及變量,選用Micron公司的MT47H128M16,該芯片為16位DDR2內存,可工作于800M數據速率,用2片拼接成32bit位寬,容量為512MB,工作速率為533MHz。
(11)FPGA子系統
FPGA子系統由ADC、DAC、FLASH、FPGA等組成。
FPGA采用XC7K325T-2FFG900,支持10個CMT(每個CMT包括兩個DCM和1個PLL,即12個MMCM);具有840個25×18的DSP Slice(每個Slice包括1個乘法器,1個加法器,1個累加器);邏輯單元:50950個Slics(每個Slice包括4個LUT和4個FF);最多可支持到500個IO腳,350個HRIO接口,150個HP接口。
FPGA采用并行BPI加載,Flash芯片采用S29GL512P,該Flash為16位NorFlash,容量為64MB,操作速度為110ns。
ADC用于中頻信號采集,選用ADI公司的AD9643,該芯片為雙通道高速ADC,采用雙沿數據通信,采樣率最高達250MSa/s,分辨率14bit,SNR為70.5dBfs,SFDR為85dBc,支持二通道獨立采樣或2通道交錯采樣。
DAC用于接收機自檢中頻信號的產生,選用ADI公司16bit的AD9779數模轉換芯片,轉換速率為1Gsps,該芯片SFDR可達78dBc,與FPGA通過LVDS相連。
2.1.1 嵌入式操作系統特點
嵌入式操作系統是嵌入式系統工作的系統軟件,具有以下特點。
(1)應用于實時環(huán)境中,也稱為嵌入式實時操作系統(RTOS,Real-Time Operation System),RTOS將CPU時間、中斷、I/O、定時器等資源都包裝起來,根據任務的優(yōu)先級,合理分配CPU時間。
(2)RTOS的商品化實現了操作系統軟件和用戶應用軟件的分離,為工程開發(fā)帶來了極大便利,在嵌入式操作系統支持下,程序運行更高效而穩(wěn)定。這在一定程度上保證系統的穩(wěn)定性。具有任務調度、任務控制、系統資源管理、存儲器管理等功能,為應用程序提供統一的調用接口。在嵌入式操作系統軟件平臺上,開發(fā)者可以將更多的注意力放在對每個具體任務的處理上,使得程序結構模塊化,且易于糾錯、維護和升級,提高開發(fā)效率。
2.1.2 嵌入式操作系統的選擇
嵌入式Linux是在Linux基礎上裁剪而成的精簡操作系統,嵌入式Linux驅動程序是操作系統內核和硬件之間的接口,硬件設備在Linux可以認為是一個設備文件,這些設備文件使應用程序可以像操作普通文件一樣對硬件設備進行操作。
Linux內部集成了各種網絡和通信協議,擁有與內核相結合的網絡連接能力,更容易開發(fā)、使用。而且開發(fā)、維護成本低。
鑒于Linux嵌入式操作系統的特點及實際應用,選用嵌入式Linux作為導航接收機ARM軟件開發(fā)的操作系統。
由于用戶界面要求的提高,采用圖形用戶界面(Graphics User Interface,GUI)軟件作為接收機應用軟件開發(fā)平臺,可提高開發(fā)效率和用戶界面的友好性。目前嵌入式GUI軟件主要有Micro Windows、MiniGUI、Qt/E等,Micro Windows和MiniGUI絕大部分都是基于C語言開發(fā)的,前者側重于底層圖形引擎的開發(fā),在圖形接口和系統方面有所欠缺,MiniGUI側重于窗口系統和圖形接口的開發(fā),建立在比較成熟的圖形引擎之上。
Qt/E提供了完整的嵌入式GUI解決方案,相比Micro Windows、MiniGUI,沒有分層,能夠在底層操作,開發(fā)庫進行了裁剪和定制,簡單精煉的開發(fā)庫滿足實時性要求,運行速度非???,并可以很方便的應用于嵌入式系統。同時,Qt/E是采用C++的優(yōu)秀跨平臺開發(fā)構架,提供了豐富的API函數庫和多達250個以上的C++類,支持OpenGL圖形渲染,集軟件設計、開發(fā)、調試、發(fā)布功能于一體,極大提高了軟件開發(fā)效率,“一次編寫,隨處編譯”,不采用解析方式進行運行時代碼解析,因此其代碼指令處理效率高,支 持 Microsoft Windows、Linux、UNIX、Irix、FreeBSD等多種操作系統。因此,選用Qt/E作為導航接收機應用軟件開發(fā)平臺。
角度信號處理是該導航接收機的測量重點,在角度功能界面,在設置的工作波道可以進行以下數據的測量:
方位角、仰角實時測量;
方位、仰角掃描功率測量;
方位、仰角更新率測量;
根據輸入的角度真值及誤差門限,計算方位、仰角誤差。
圖5 角度功能界面
數據字功能界面可以實現導航數據信息的解算,包括數據字信息的十六進制代碼、數據字功率及更新率。
圖6 數據字功能界面
測試數據的記錄與導出是該接收機的突出特點,通過文件管理功能可以實時存儲接收機解算的方位、仰角數據,以及方位、仰角誤差,這些數據以txt格式存儲于接收機內部16G容量的SSD電子盤中,存儲時間超過1000個小時,同時,存儲的數據文件可通過接收機USB接口導出至外部存儲器,文件管理界面如圖7所示。
圖7 文件管理界面
ARMCortex-A9微處理器在導航接收機的應用,體現了嵌入式系統高性能、低功耗、低成本的特點,而基于Linux操作系統的嵌入式GUI開發(fā)工具-Qt/E軟件,使整個軟件設計更加靈活,實現了接收機對導航信號的實時采集、解算、存儲和顯示,測試表明整機功能、性能滿足技術要求。