基于FPGA的数字高度计开发*
2014-07-07韩璐,宗群
韩 璐,宗 群
(天津大学 电气与自动化工程学院,天津 300072)
基于FPGA的数字高度计开发*
韩 璐,宗 群
(天津大学 电气与自动化工程学院,天津 300072)
针对声纳高度计、全球定位系统(GPS)和气压高度计的高度定位应用,开发了一种基于现场可编程门阵列(FPGA)的数字高度计,具有成本低、速度快、功耗小的特点。FPGA完成声纳高度计、GPS和气压高度计的数据采集,高度信息处理,气压高度计温度补偿及串口输出等工作。对高度计的误差来源进行分析,重点对气压高度计的温度漂移现象进行了补偿修正。为了验证设计效果,对数字高度计进行了测试,测试结果表明:高度计在进行误差补偿后,在低空范围内误差为0.1 m左右,高空范围内误差为2~3 m,可用于普通导航领域。
声纳高度计;气压高度计;全球定位系统;温度补偿;现场可编程门阵列
0 引 言
随着科技的迅速发展和社会的需要,高度计的使用越来越广泛,出现了全球定位系统(GPS)高度计、气压高度计等。高度计作为飞行器中重要的传感器,对飞行器的飞行安全和控制具有十分关键的作用[1]。传统的高度计如GPS高度计等因为自身的限制,在有障碍物或者天气变化剧烈的情况下难以满足飞行器的要求,而传统的气压高度计因为其结构复杂,体积庞大,测量精度低,功耗大[2],也难以满足飞行器的要求。因此,设计稳定性好、适应性强的数字高度计变得十分迫切。
本文开发了一种新型的数字高度计,具有高精度、性能稳定、可靠性强的特点。
1 系统硬件设计
1.1 系统构成
如图1所示,数字高度计主要由高度传感器模块,微处理器模块,显示与输出模块和电源模块4个部分组成。
图1 系统结构框图Fig 1 Structure block diagram of system
传感器模块输出当前的卫星测量高度信息,气压测量高度信息以及声纳测量高度信息;电源模块用于提供整个系统的供电;显示输出模块能够实时显示当前的高度信息和完成对数据的串口输出;微处理器FPGA完成对传感器数据的采集处理,并输出显示。
1.2 传感器模块
传感器模块由气压高度计、声纳高度计、GPS组成。
气压高度计是基于大气压与高度之间的关系的原理来测量高度的,选用芬兰VTI公司的SCP1000—D01数字式压力传感器进行测量。SCP1000—D01的分辨率可达亚米级别,测量误差能够在1 m左右。其输出接口为SPI接口,芯片在内部时钟驱动下工作,无需外接时钟[3]。本设计中SCP1000—D01芯片选取在高速测量模式下工作,其输出数据更新率可以达到9 Hz。
声纳高度计选用国外进口原装的SRF08,其测量范围为3~6 m,测量精度为1 cm,具有使用方便、精度高的优点。SRF08供电电压为5 V,正常工作时典型功耗为150 mW;其输出数据为数字量,通过I2C总线接口与处理器FPGA进行通信。
GPS选用芬兰Fastrax公司的UP500GPS接收机模块。UP500是Fastrax公司的一种主流产品,UP500信息默认更新率为1 Hz,定位精度为1.8 m,速度精度为0.1 m/s。UP500是一种性价比极高的功耗低、精度高、安装方便的OEM GPS接收机。
1.3 微处理器
采用FPGA作为微处理器,芯片选用Altera公司Cyclone系列的EP1C3T144C8,该芯片具有2 910个逻辑单元,能够满足开发的组合高度计的变成需要。FPGA通过SPI,I2C与RS—232总线接口采集传感器的数据后,对数据进行数字滤波处理,再将数据进行FIFO缓存,最后计算得到高度信息并且将高度信息显示到LED四段数码管上。
1.4 显示输出模块
该模块包括LED四段数码管显示和串口输出。采用数码管实时显示当前的高度信息,显示范围为0~999 m。串口输出部分将采集得到的传感器数据通过串口传到PC上,便于数字高度计的测试和校正工作。
2 系统软件设计
2.1 气压高度计测量原理
气压高度计是根据大气压强随高度变化而变化的原理而制成的。根据国际标准大气,可以建立在-2 000~11 000 m高度范围内海拔高度和对应高度上大气压强pH之间的关系[3],具体如下
(1)
式中R=287.052 87 m2/(K·s2),为空气专用气体常数;gn=9.806 65 m·s-2,为自由落体重力加速度;β为温度垂直变化率(β=dT/dH);T0,H0和p0为国际标准大气给出的高度分层中相应层的大气温度、标准气压高度和大气压力的下限值[4]。
在0~999 m的范围内,根据标准大气规定可以取相关参数:T0=288.15 K,β=-6.50 K·km-1,p0=101.325 Pa,H0=0,带入公式(1),可以得到该高度范围内的气压高度公式为
(2)
在理想大气条件下,得到的高度基本等于真实高度[5]。但是在实际的大气条件下,载体所处的位置很难符合标准大气的各项要求,因此,需要进行气压高度计的温度补偿。本文采用利用已知高度点温度、压力数据对待测的气压高度计的测量值进行修正,这样能够部分消除外界条件造成的误差[6],所得高度和实际高度更加相近。
本文使用的基于已知点高度的温度补偿算法如下:
(3)
同时,可由式(1)得到
(4)
又因M,N点的温度关系满足
T0=Tm-βHm=Tn-βHn.
(5)
将式(5)带入式(4),可得
(6)
2.2 声纳高度计测量原理
声纳是根据声波的传播来测量距离,高度计中只做短距离低空测量[8]。实际应用中,在无人机等起飞过程中需要高精度的高度测量,使用声纳在起飞短距离阶段具有良好的效果。
2.3 各模块数据采集
1)声纳高度计数据采集
声纳高度计的输出接口是标准的I2C接口,对于FPGA中I2C总线的实现,具体采用状态机的方法来实现。状态机就是把程序分成很多个状态,每一个状态的执行要看上一个状态的执行结果和输入信号。
FPGA主机通过I2C总线从声纳高度计读取数据的步骤如下:FPGA首先向从机发送器件地址(SRF08地址为0XE0),在得到器件的应答后,FPGA继续向从机发送控制字,使从机开始工作,然后再向从机发送器件地址和寄存器地址,从而该寄存器里读取传感器数据。
2)GPS数据采集
GPS接收机UP500的输出为数字信号,通过标准的RS—232串口与FPGA进行通信。UP500上电后,必须进行初始化,包括设置波特率、数据更新频率和数据输出格式等;模块初始化完成后,FPGA就可以通过串口提取UP500模块的数据,UP500的数据格式默认为NMEA0183格式,为了得到正确的高度信息参数,处理器还需要对该格式进行数据解析,提取出高度信息。
3)气压高度计数据采集
气压高度计SCP1000—D01的输出接口为SPI接口。SCP1000—D01刚上电后的60 ms之内,不能对传感器进行读取操作,因为传感器本身需要对自身进行初始配置完成线性化和状态检测。SCP1000—D01有4种工作模式,本系统选择高精度测量模式[9]。上电初始化完成以后,FPGA对控制寄存器发送控制字选择测量模式,然后开始发送数据寄存器地址,完成对气压高度计数据的读取。
2.4 软件主流程
无人直升机在起飞、降落以及低空飞行时,要求高精度的距离信息,而GPS/气压高度计组合导航系统的高度信息精度一般在m级,无法满足要求。本设计中,在低空范围内,系统识别后采用声纳高度计的高度信息作为唯一的高度输出,用来测量与地面的距离信息。由于GPS接收机的信号被遮挡后容易丢失,在GPS无效的短暂时间内,加入了气压高度计传感器,它可以为直升机提供GPS无效阶段期间的高度信息。声纳高度计测量范围是有限的,超出其测量范围会输出一个固定值FFFF,因此,可以通过判断声纳输出值是否有效来判断何时使用该信息,而GPS输出无效时输出为一重复错误值,可通过与气压高度计的值重复比较来判断其是否失效。组合数字高度计的高度信息显示如图2所示。
图2 数字高度计高度信息显示Fig 2 Digital altimeter height information display
在实际实现中,FPGA的设计采用VHDL硬件描述语言进行软件编程。FPGA数据处理单元是整个组合数字高度计的运算核心部分,它包括3个功能模块,即串口连接模块、数据处理模块、显示模块。
串口控制模块主要实现FPGA和控制端口的连接,模块通过设置内部工作寄存器来控制它的工作状态。
数据处理模块主要分为模式切换和数据处理部分。模式切换主要应对在不同高度和不同状况下,各高度传感器的工作状态和工作方式,以此来实现在各种情况下均能有效输出高度信息的目的。数据处理主要是利用FPGA的数据处理能力对得到的传感器信息进行数据信息处理,去除冗余信息,得到所需要的准确的高度信息。
显示模块主要完成高度信息的实时显示。
3 实验数据分析
为了验证开发系统的有效性,按照设计的流程制作出了实物系统,并进行了测试。选取实验室楼作为数字高度计测量的对象,实验室楼每一层的高度大约为3.8~4 m。测量距离从实验楼3~6楼的高度,测得的结果如图3。
图3 测高与时间曲线Fig 3 Height measurement vs times curve
可以知道,在室内情况下,GPS是无法工作的,根据设计流程,此时主要以气压高度计工作为主,从图3的结果可以看出:在第三层楼的海拔是13.2 m,第六层为25 m,三层楼高11.8 m,与三层楼高相吻合,从图上也可以看出每一层楼的高度也基本是相同的。
而从图4可以看出:在室外情况下GPS能够正常工作,此时气压高度计被屏蔽掉,对某一地点采取重复测量的方式求取误差,可以看出:GPS的误差在2 m左右,最高不超过4 m。
图4 GPS测高误差Fig 4 GPS height measurement error
对于声纳高度计来说,其主要针对超低空情况下飞行器起飞情况,因此,可以单独测量得到精度信息。经测试,声纳高度计的分辨率为1 cm,当其位置变化1 cm时,传感器数据会相应发生变化,而当小于1 cm时,数据不会发生变化。实验中,采用精密的标尺,每变化1 cm,声纳高度计的输出也为1 cm,其误差很小,几乎为0。
4 结 论
本文开发了一种基于FPGA的数字高度计,并从器件选择、硬件设计和软件设计上进行了详细的阐述和研究。为了验证开发方案的可行性,对数字高度计实物进行了测试。初步试验结果表明:数字高度计开发方案是可行的,且经过气压高度计温度补偿后数字高度计的误差可达到3 m以内,在室内和室外条件下均可以使用,实现了可靠性强、性能稳定、高精度的数字高度计设计。
[1] 王秀琳,曹云峰.基于单片机的微型飞行器高度计[J].传感器与微系统,2006,25(5):64-66.
[2] 史利剑.无人驾驶飞机大气数据计算机系统的研究[M].西安:西北工业大学出版社,2001.
[3] 姚 怡,黄智刚,李 锐.便携式气压高度计研制及误差修正技术[J].遥测遥控,2009,30(6):48-51.
[4] 严家明,张宏涛.基于FPGA的无人机气压高度测量系统的设计[J].传感技术学报,2007,20(3):707-710.
[5] 刘歌群,刘卫国,卢京潮.利用GPS校准、带 温度补偿的无人机气压高度测量[J].电子测量与仪器学报,2004(Z2):1161-1165.
[6] 高善清,魏新亮.气压测高误差分析及修正[J].电子测量技术,2012,35(9):60-63.
[7] 李 锐,姚 怡.车载便携式气压高度计的设计[J].微计算机应用,2010,31(4):43-47.
[8] 李洪辉,裴海龙.无人直升机高度测量的设计与实现[J].自动化与仪表,2012(7):11-15.
[9] 沈宗月,曹云峰.基于SCP1000—D01的气压计的设计[J].国外电子元器件,2007(8):49-51.
Development of digital altimeter based on FPGA*
HAN Lu,ZONG Qun
(School of Electrical and Automation Engineering,Tianjin University,Tianjin 300072,China)
Aiming at height location application of sonar altimeter,GPS and barometric altimeter,a kind of digital altimeter based on FPGA is developed,which has advantage of low cost,fast speed,low power consumption.FPGA is responsible for completion of sonar altimeter,GPS and barometric altimeter data acquisition,height information processing,barometric altimeter temperature compensation,and serial port output.After analyzing barometric altimeter error sources,compensation and correction of temperature drift of barometric altimeter are emphasized on. In order to verify design effect,the digital altimeter is tested,and test results show that the precision of digital altimeter in a low range can reach 0.1 m or so,for high altitude range error is 2~3 m after error compensation,which can be used for general navigation field.
sonar altimeter; barometric altimeter; GPS;temperature compensation;FPGA
10.13873/J.1000—9787(2014)10—0080—03
2014—03—12
国家自然科学基金资助项目(91016018);天津市基础研究重点项目(11JCZDJC25100)
TP 274
A
1000—9787(2014)10—0080—03
韩 璐(1991-),男,安徽阜阳人,硕士研究生,从事组合导航研究工作。