基于ARM嵌入式系统导航接收机设计与实现
2021-06-17刘云飞舒轶昊张建明臧传蕾
刘云飞 ,舒轶昊, 张建明,臧传蕾
(1.海军航空大学青岛校区,山东青岛,266041;2.中国人民解放军91001部队,北京,100036;3.中国电子科技集团公司第二十研究所,陕西西安,710068)
0 引言
随着计算机和通信技术的快速发展,嵌入式系统已广泛应用到家用电器、仪器仪表、航空航天及军事装备等各行业,嵌入式系统包括嵌入式处理器、存储器和输入输出设备等硬件电路,以及嵌入在处理器的嵌入式操作系统、应用软件。ARM微处理器与其他通用处理器相比,内核结构简单,典型结构包含外围接口、数字信号处理器、片上内存以及ARM内核;同时,精简指令集和流水线设计,架构高度模型化,内存、内存管理单元(MMU)、浮点运算单元以及协处理器都是可选的,提高了ARM专用设备处理器的灵活性。
嵌入式系统以应用为中心,以微电子技术、控制技术、计算机技术和通讯技术为基础,强调硬件、软件的协同性与整合性,软件、硬件可裁剪。
目前,导航接收机正向智能化、集成化及多功能的方向发展,对体积、可靠性、功耗要求不断提高,结合ARM微处理器技术及应用上的特点,基于ARM公司最新推出的Cortex系列A9平台,开展导航接收机的研制,可重复利用嵌入式技术的优点。
1 基于ARM嵌入式系统的导航接收机电路设计
■1.1 工作原理
该导航接收机要求能够实现方位、仰角及导航数据信息的解算,完成方位、仰角误差的分析计算,具备测试数据的存储、输出能力,由天线、射频接收前端、信号处理、显示及电源等电路单元组成,如图1所示。
图1 导航接收机原理框图
天线接收信号经接收通道低噪声放大和混频后,下变频为固定频率的中频信号,中频信号经过A/D采样电路变为数字信号,采样后的信号通过DDC数字下变频后进行解调,解算出所需要的角度信息。这里以ARM嵌入式系统为出发点,论述导航接收机的设计,原理如图2所示。
图2 ARM微处理器的导航接收机嵌入系统原理框图
■1.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原理框图
■1.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固态硬盘
SSD(Solid State Drive)固态硬盘用于存储导航接收机解算的导航数据,选用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 ARM微处理器软件开发
■2.1 操作系统
2.1.1 嵌入式操作系统特点
嵌入式操作系统是嵌入式系统工作的系统软件,具有以下特点。
(1)应用于实时环境中,也称为嵌入式实时操作系统(RTOS,Real-Time Operation System),RTOS将CPU时间、中断、I/O、定时器等资源都包装起来,根据任务的优先级,合理分配CPU时间。
(2)RTOS的商品化实现了操作系统软件和用户应用软件的分离,为工程开发带来了极大便利,在嵌入式操作系统支持下,程序运行更高效而稳定。这在一定程度上保证系统的稳定性。具有任务调度、任务控制、系统资源管理、存储器管理等功能,为应用程序提供统一的调用接口。在嵌入式操作系统软件平台上,开发者可以将更多的注意力放在对每个具体任务的处理上,使得程序结构模块化,且易于纠错、维护和升级,提高开发效率。
2.1.2 嵌入式操作系统的选择
嵌入式Linux是在Linux基础上裁剪而成的精简操作系统,嵌入式Linux驱动程序是操作系统内核和硬件之间的接口,硬件设备在Linux可以认为是一个设备文件,这些设备文件使应用程序可以像操作普通文件一样对硬件设备进行操作。
Linux内部集成了各种网络和通信协议,拥有与内核相结合的网络连接能力,更容易开发、使用。而且开发、维护成本低。
鉴于Linux嵌入式操作系统的特点及实际应用,选用嵌入式Linux作为导航接收机ARM软件开发的操作系统。
■2.2 应用软件开发平台
由于用户界面要求的提高,采用图形用户界面(Graphics User Interface,GUI)软件作为接收机应用软件开发平台,可提高开发效率和用户界面的友好性。目前嵌入式GUI软件主要有Micro Windows、MiniGUI、Qt/E等,Micro Windows和MiniGUI绝大部分都是基于C语言开发的,前者侧重于底层图形引擎的开发,在图形接口和系统方面有所欠缺,MiniGUI侧重于窗口系统和图形接口的开发,建立在比较成熟的图形引擎之上。
Qt/E提供了完整的嵌入式GUI解决方案,相比Micro Windows、MiniGUI,没有分层,能够在底层操作,开发库进行了裁剪和定制,简单精炼的开发库满足实时性要求,运行速度非常快,并可以很方便的应用于嵌入式系统。同时,Qt/E是采用C++的优秀跨平台开发构架,提供了丰富的API函数库和多达250个以上的C++类,支持OpenGL图形渲染,集软件设计、开发、调试、发布功能于一体,极大提高了软件开发效率,“一次编写,随处编译”,不采用解析方式进行运行时代码解析,因此其代码指令处理效率高,支 持 Microsoft Windows、Linux、UNIX、Irix、FreeBSD等多种操作系统。因此,选用Qt/E作为导航接收机应用软件开发平台。
3 导航接收机界面设计
■3.1 角功能界面
角度信号处理是该导航接收机的测量重点,在角度功能界面,在设置的工作波道可以进行以下数据的测量:
方位角、仰角实时测量;
方位、仰角扫描功率测量;
方位、仰角更新率测量;
根据输入的角度真值及误差门限,计算方位、仰角误差。
图5 角度功能界面
■3.2 数据字功能界面
数据字功能界面可以实现导航数据信息的解算,包括数据字信息的十六进制代码、数据字功率及更新率。
图6 数据字功能界面
■3.3 文件管理功能
测试数据的记录与导出是该接收机的突出特点,通过文件管理功能可以实时存储接收机解算的方位、仰角数据,以及方位、仰角误差,这些数据以txt格式存储于接收机内部16G容量的SSD电子盘中,存储时间超过1000个小时,同时,存储的数据文件可通过接收机USB接口导出至外部存储器,文件管理界面如图7所示。
图7 文件管理界面
4 结束语
ARMCortex-A9微处理器在导航接收机的应用,体现了嵌入式系统高性能、低功耗、低成本的特点,而基于Linux操作系统的嵌入式GUI开发工具-Qt/E软件,使整个软件设计更加灵活,实现了接收机对导航信号的实时采集、解算、存储和显示,测试表明整机功能、性能满足技术要求。