基于FPGA的惯导姿态数据采集实验系统设计

2020-07-28 02:38杨建华
自动化与仪表 2020年7期
关键词:惯导计数器计数

杨建华,马 超,齐 华

(西安工业大学,电子信息工程学院,西安710021)

惯性导航产品INS(inertial navigation system)在制造中会产生标度因数误差、安装误差、零偏误差等,因此,需要特定的标定方法对产品参数进行补偿以改善导航精度,标定平台为一个带高低温箱的高精度三轴转台与标定系统[1-2]。为尽可能一次性标定较多产品,一般设计多个数据采集通道。惯导产品标定时,将其固定于三轴转台内框,在预置的温度下,通过改变转台三轴位置以及旋转速率,分别采集惯导产品的各种姿态数据[3-4]。姿态数据代入误差模型方程中,可以解算出需要补偿的误差参数。数据通常以脉冲信号、电压模拟量信号、串口数据等形式输出。

为了帮助学生理解电子系统设计在工程实践中的应用,提高学生从单元模块设计到系统设计的能力以及数模混合设计的能力,在此设计了基于FPGA 的惯导姿态数据采集实验系统[5-6]。针对数据采集系统在工程中的应用,完成了基于FPGA 的惯导姿态数据采集实验系统的硬件系统搭建和数字逻辑电路设计,实现同时对48 路姿态数据以及4路温度模拟量数据的信号调理、数字滤波及高精度数据采集。

1 数据采集系统功能结构

所设计的采集系统,能够实现对惯性导航产品姿态数据的高速高精度采集,其控制核心采用Altera 的Cyclone V 系列5CEBA4F23C7N 型号FPGA芯片; 可以同时完成4 个惯导产品的自动标定,同时采集48 路脉冲信号,脉冲信号表示陀螺仪输出的角速率和加速度计的线加速度,4 路表示产品温度的电压模拟量信号。采集数据通过USB 接口上传到上位机进行进一步分析与处理。系统的功能结构如图1 所示。

图中,48 路脉冲信号通过光耦合器HCPL2630和施密特触发器74LVT14,实现脉冲信号的隔离和整形;4 路电压模拟量信号通过高速模数转换器AD9627 实现模数转换。在FPGA 芯片内部设计系统采集状态机,根据数据地址状态机按序每5 ms 读取一次各个采集单元的数值,存入FPGA 内部设计的FIFO 中,然后通过USB 芯片发送到上位机,进行保存、处理和显示。

2 试验系统外围电路设计

2.1 隔离及整形电路设计

图1 数据采集系统功能结构Fig.1 Functional structure of data acquisition system

为保证实验系统板能够良好运行,需要对其输入信号进行完全电气隔离,防止转台运行过程中其它来源的电信号对测试系统产生干扰[7-8]。在此采用光电耦合器对输入脉冲信号进行隔离,选用Fairchild 半导体公司生产的HCPL2630 芯片作为隔离芯片。

HCPL2630 为双通道数字隔离,转换速度可达10 MBit/s,输出TTL 电平信号,输出信号与输入信号电平相反,其内部是以“电—光—电”信号的转化方式来隔离输入端和输出端。

脉冲信号在经过双通道数字隔离器HCPL2630后,变为TTL 电平信号,但是电平发生了反相,脉冲的上升沿和下降沿也不够理想。选用Philips 公司的74LVT14 反相芯片,可使脉冲电平恢复到原来的逻辑,同时由于其施密特触发方式,使得脉冲信号在下降沿和上升沿变得更加陡峭,利于后端计数电路进行准确计数。

实验系统共48 路脉冲信号,其中一路脉冲信号的隔离与整形电路如图2 所示。

图2 脉冲信号隔离整形电路Fig.2 Circuit of pulse signal isolation and shaping

2.2 温度采集电路设计

4 路温度信号AD 采集采集电路如图3 所示。先通过运放AD8055 和分压电阻把-5~5 V 输入的电压缩小为-1~1 V。该范围输入电压通过AD8138芯片,转换为差分信号输入到双通道高速模数转换器AD9627,FPGA 控制模数转换器完成数据采集。

图3 温度信号采集电路Fig.3 Temperature signal acquisition circuit

3 基于FPGA 的系统数字逻辑电路设计

FPGA 内部数字逻辑电路主要设计脉冲信号数字滤波单元、高精度无缝计数单元、温度数据采集单元和数据传输协调控制单元等逻辑电路。

3.1 脉冲信号数字滤波

惯导组件输出的脉冲信号在采集前要经过转台滑环和长电缆线,在此过程中脉冲信号可能会发生畸变和叠加,产生一些干扰脉冲[9-10]。数字光耦(HCPL2630)可以隔离噪声和滤除干扰,但对高频干扰脉冲则无法消除。针对每一路计数电路,设计了数字逻辑滤波单元用以消除干扰脉冲,确保系统对脉冲信号采集和测量的准确性。

因惯导组件原始输出固定脉宽的脉冲队列,故采用阈值比较法进行滤波。将需要滤除干扰脉冲的最小脉冲宽度设为阈值,与输入脉冲信号的脉宽比较,大于阈值的判定为有效信号,小于阈值的则判定为干扰信号。数字滤波电路逻辑结构如图4 所示。

图4 滤波原理Fig.4 Filter schematic

阈值为滤除干扰的最小脉宽设定值,可以通过上位机来进行阈值宽度设定。当输入脉冲信号fin上升沿到来时,启动计数器1,对基准时钟f0计数,并将计数结果送入比较器与阈值作比较:当计数结果大于阈值时,比较器输出低电平,控制触发器将fout置高;当计数结果小于阈值时,比较器输出高电平,触发器输出fout不变。

当fin的下降沿到来时,计数器1 停止计数,计数器2 启动,该计数器设计为一个减法计数器,预设值为阈值,其借位输出信号可产生高电平,取反后用作触发器的清零端将fout置为低电平。计数器2 的实际作用是脉宽信号保持,在fin上升沿到来时,触发器输出fout信号将会有阈值乘以f0周期的延迟。为了保持脉冲信号的宽度和波形,计数器2将会延迟后再输出清零信号,以保证fout输出信号与输入脉冲的脉宽基本一致。数字滤波单元仿真结果图5 所示,d 为通过上位机设定的8 位最小脉宽阈值;f0为计数基准时钟;频率为50 MHz; fin为脉冲信号输入;enable 为锁存信号,fout为滤波后输出信号。

由仿真结果可见该逻辑单元有效滤除了干扰脉冲信号。

3.2 高精度无缝计数

对惯导产品的性能测试中,需要对惯导产品输出脉冲进行实时计数。该计数过程不仅要对每1 s的输出脉冲进行计数,而且要对每5 ms 的输出脉冲进行计数,同时在读取5 ms 计数值时不中断计数器工作。在此设计了无缝计数电路对惯导产品的输出进行计数。单路脉冲信号无缝计数电路如图6所示。

使用74161 计数器和74374 锁存器实现带锁存功能的16 位计数器。该计数器可以一直处于不间断工作状态,每5 ms 的计数值最高可达65536,频率最高可达13 MHz。对计数值的读取是每5 ms的即时读取,读取过程中计数器正常计数,因此实现对输入脉冲的无缝计数。

该电路不会产生累积误差,由于计数器工作期间始终无需清零,5 ms 间隔内的计数值由微处理器将本次中断读取数值与上一次中断读取数值求差得到,而1 s 的计数值是将200 个5 ms 计数值叠加求得的,这样就消除了每次清零可能带来的±1 个计数误差。

图6 无缝计数电路Fig.6 Seamless counting circuit

3.3 数据采集协调控制数字逻辑单元

用Verilog 语言,在FPGA 内部设计数据传输协调控制状态机模块如图7 所示,直接操作CY7C68013的FIFO 来完成读写控制。

图7 状态机模块逻辑电路Fig.7 Logic circuit of state machine module

模块中各引脚的功能如下:SLOE 为使能端;SLRD 为读操作端;SLWR 为写操作端;INPKTEND为主动发送操作端(当FIFO 上的数据小于规定大小,而又要强制上传给PC 时使用);DATA_IN 为16位数据输入总线;DATA_OUT 为16 位数据输出总线;FLAGA 为FIFO空标志;FLAGB为FIFO满标志;FIFO_ADR 实现对CY7C68013 中4 个大端点FIFO 的使能。IFCLK 可以引入外部时钟(仅用于同步Slave FIFOs 模式)。FPGA 的引脚控制这些端口,达到对USB 端的存储FIFO 进行操作的目的。

图5 数字滤波电路仿真结果Fig.5 Simulation results of digital filter circuit

由于异步Slave FIFOs 模式的读写状态简单,稳定性好,系统采用异步方式读取FIFO。状态机中实现异步Slave FIFO 写操作的状态转移如图8 所示。

图8 异步Slave FIFOs 的状态机转换Fig.8 State machine transition of asynchronous Slave FIFOs

各状态的功能如下:

IDLE 为空闲状态,什么都不做;

状态1使FIFOADR[1:0]指向IN FIFO(即选择CY68013 的4 个大数据量FIFO 中的1 个,固件程序已将此FIFO 配置为写模式);

状态2如果FIFO 满标志为假(即FLAGC 引脚为高电平时),则进状态3,否则在本状态等待;

状态3驱动数据到数据线上,使SLWR 有效(低电平),一个CLK_STATE 后再无效(高电平),以使FIFO 写指针递增,进状态4;

状态4如需传输更多的数,返回状态2,否则进状态IDLE。

4 系统测试与结果分析

在现有实验条件下,对系统的性能指标进行了测试。系统测试硬件搭建如图9 所示。使用Keysight 33210A 任意波形发生器(精度为±20×10-6/a)对实验系统精度测试,为方便计算误差,设置为0.1 kHz~6 MHz 内整数频率点,信号发生器输出频率与系统测量所得频率值对比结果见表1。

图9 系统测试硬件Fig.9 System test hardware

表1 系统测量结果Tab.1 System measurement results

由表1 测量数据可知,系统可以获得精度较高的频率测量结果,相对误差随着频率增大而减小,数据采集误差符合系统设计标准。

5 结语

复杂数模混合系统设计是电子系统设计的重要内容之一,模拟电路与数字电路、单元电路与系统电路的有机结合,可以培养学生分析问题、解决实际工程实践问题的能力,它一直是电子系统设计教学中的短板。基于FPGA 的惯导姿态数据采集实验系统在课程设计的成功实施,既可使学生将所学的理论知识与工程实践相结合,系统地理解模拟与数字系统的理论知识,又可使学生掌握复杂数模混合系统工程实践知识,培养学生的工程实践能力,达到工程教育认证对学生培养的要求。

猜你喜欢
惯导计数器计数
UUV惯导系统多线谱振动抑制研究
采用虚拟计数器的电子式膜式燃气表
古人计数
递归计数的六种方式
五十一进制计数器的设计与仿真实现
古代的计数方法
古代的人们是如何计数的?
无人机室内视觉/惯导组合导航方法
SR620型与53230A型计数器的性能测试
算盘是个“小气鬼”