关于ARC算法的数据压缩技术和实现

电子说

1.3w人已加入

描述

航天技术的发展,对遥测系统的性能要求越来越高。飞行器复杂程度的加大、测量参数种类的增多、数据量的增大、测量实时性的增强使传统有限传输信道容量的遥测系统面临巨大挑战。为此,可以通过采用数据压缩技术,有效地提高信道利用率,减少遥测数据的传输时间和存储空间,增强遥测数据的实时性和吞吐率。

设计的数据压缩器以FPGA为控制单元,用DSP实现数据压缩,可将6路模拟信号采集并压缩,再经长线发送至数据接收器。实现硬件模块化、功能软件化设计,依靠FPGA的并行执行特性,结合高速DSP通信,可靠地完成被测信号的采集、压缩功能。在保证系统可靠性的同时节省系统的开发成本,提高了系统的可重构性[1-2]。

1 数据压缩器的总体设计

数据压缩器基于FPGA和DSP的硬件平台,将待压缩的6路模拟信号经过调理后输入给A/D转换器进行量化,FPGA将量化结果写入其内部FIFO(First In First Out)缓存中。DSP通过判断FIFO的半满信号读取数据,并根据通道号把数据流分配到6个分组缓存区,当其中任一分组缓存区满2 KB时,就进行一次压缩,压缩后的数据被存入缓存器中。

当缓存器半满时,DSP将压缩后的数据串行发送至FPGA,FPGA根据接口的通信协议再把压缩数据发送给数据接收器,以保证压缩数据传输的实时性。压缩器的总体设计方案如图1所示[3-5]。

压缩器

2 硬件及实现原理

2.1 控制单元的选型

FPGA采用XILINX公司的低成本产品XC3S200AN。其包含丰富的Block RAM资源,可利用IP核建立内部FIFO,以便于数据缓存。XC3S200AN内部含有4 MB大小的Flash,可以存储FPGA程序。DSP是执行数据压缩的核心单元器件,选型时在考虑处理速度的同时,还要兼顾其与其他设备的接口匹配能力。选用TI公司的TMS320C6416高性能DSP,其CPU工作主频达到600 MHz,内含容量为1 MB的RAM内存,同时可通过外部存储器接口(EMIF)、多通道缓存串口(MCBSP)等外设接口与FPGA及存储器连接。

2.2 信号采集电路设计

设计要实现对6个通道的信号进行每通道30 kHz、8位分辨率的采样,相当于总采样率180 kHz。选用TI公司的16位、250 kS/s、6通道同步采样模数转换器ADS8365,能够满足要求[2]。为了保证模拟信号能被正确量化,先采用运算放大器OPA4340对信号进行电压跟随,再由FPGA控制ADS8365进行采样。

通过在FPGA内部建立FIR滤波器IP核对采集到的数据进行数字滤波,随后将其低13位并置3位通道编号发送给DSP。DSP工作频率通常能达到几百兆赫兹,但FPGA的工作频率仅为几十兆赫兹,所以FPGA要将数据先缓存在其内部FIFO,便于DSP读取[6-8]。信号调理电路如图2所示。

压缩器

2.3 DSP的通信接口设计

DSP从FPGA中读取采样数据进行压缩,再将压缩后数据发回FPGA,由FPGA进行编码后发送到数据接收器。由于数据压缩需要较大的处理空间,而DSP内部存储空间有限,为防止在数据压缩期间内采样数据和压缩结果因不能及时传送而丢失,故在数据输入、输出接口之间设计了缓存单元。采样数据输入缓存可用FPGA内部FIFO承担,考虑到FPGA内部RAM资源有限,仅能搭建容量较小的FIFO,而需要的是大容量数据输出缓存单元。

因此,设计中DSP的外部存储采用64 MB容量,能够缓存1 MB压缩数据,64位数据宽度的同步动态随机存储器(SDRAM)MT48LC2M32B2TG芯片。DSP在采集数据时的数据通信操作较复杂,如果按照外设的器件手册编程实现对其控制效率太低,而用DSP的外部存储器接口EMIFA可极大地简化操作过程,将采集数据FIFO映射到EMIFA的CE2空间;

将SDRAM映射到CE0空间,只需设置DSP的EMIFA相关寄存器参数即可实现数据通信。同样可通过设置DSP的MCBSP相关寄存器参数来完成压缩后数据的发送[9-11]。连接如图3所示。

3 逻辑控制

3.1 FPGA逻辑设计

压缩器中,FPGA作为控制单元,完成6路模拟信号采集的逻辑控制、数据传输控制以及与DSP的数据传输。如图4所示,FPGA逻辑功能可划分为4个模块,分别为信号采集模块、数据输入缓存模块、DSP通信模块和数据输出模块。其中数据输入、输出缓存模块的实现,可通过调用FPGA的IP核设置参数生成相应容量的FIFO来完成。

压缩器

3.2 DSP程序设计

DSP程序模块主要完成模拟信号的压缩处理。DSP的程序包括模拟数据的预处理、模拟数据的压缩以及与外部存储器的通信等。DSP程序流程图如图5所示[12-14]。

压缩器

TMS320C6416在上电启动或者复位后,DSP程序从Flash中加载并启动,完成系统的初始化以及各个参数的设置,然后进入主函数、初始化CSL函数库、MCBSP、可编程输入输出接口(GPIO)等相关中断寄存器和内部FIFO。当TMS320C6416检测到输入FIFO半满信号,DSP从输入FIFO中读取模拟信号的量化值,当SBUF中有待处理标志时,

DSP启动ARC编码开始数据压缩,ARC编码将返回压缩后的数据长度,如果压缩后的数据长度比压缩前的小,DSP将压缩后数据写入内部数据发送缓存器,反之则将压缩前的数据直接写入。同时DSP不断监测内部缓存的状态与外部输出FIFO中数据状态,当内部FIFO数据量大于512 B,同时外部FIFO不半满,DSP从内部FIFO取出数据启动MSBSP传输,将压缩后的数据发送到FPGA。

3.3 无损压缩算法及实现

通过试验,比较ARC、WINZIP、WINRAR、字典编码等常用的数据无损压缩算法的压缩结果。在压缩去除率、压缩速度以及稳定性等各方面综合分析后,最终采用ARC编码。ARC编码采用依次递推方式,对全序列连续编码。ARC算法不是依据每个信源符号单独映射后编码,而是将整个信号符号序列全部映射到实数轴上(0,1)区间内的一个子区间内,子区间长度等于该序列的概率。

当整个序列映射完毕,就可以用一个概率值表示,可以在子区间内选择一个有代表性的介于0和1之间的二进制小数作为实际的ARC编码输出,从而实现高效编码。例如,算术编码对某条输入信号序列的输出为1011001111,它表示小数0.101100111,即十进制数0.72。在VC中编译调试后,再将算法移植到DSP开发平台CCS3.3上继续编译直到通过[15-16]。

4 测试结果

数据压缩器地面测试台是专门用来对数据压缩器进行单元测试的,它可以完全地模拟数据压缩器在实际环境下的电气工作环境。地面测试台通过电缆传输到压缩器信号输入接口,压缩器采集处理完毕,把数据通过422接口回传到地面测试台,测试台将接收到的数据通过USB接口存储到计算机以便事后分析处理。测试系统结构图如图6所示。

对采集到的6组遥测信号利用ARC算法进行32 min无损压缩,测试得到162.8 MB的数据。可得压缩去除率为:

1-162.8 MB/(6×30 kHz×8 bit×32×60 s)=52.9%

压缩过程中SDRAM的最大占用比例为55%。通过MATLAB工具,对一路压缩前的原始数据和解压还原后数据进行频域分析,图7和图8分别为两者的幅频特性图,横轴为频率值,纵轴为幅值。实测噪声的主要频率分布在1~2 kHz的范围内,解压后,由于前端滤波器的作用,频率大于10 kHz的部分基本被滤掉,但数据主要成分基本保持下来,能比较真实地反映数据的实际分布情况。

通过对比,可以看出原始数据与解压后数据具有一致性,压缩器的压缩性能良好,可以较好地完成数据压缩任务,而且在设计指标上考虑了一定冗余量,提高了压缩装置的可靠性,减轻遥测系统的传输带宽压力。

压缩器

为有效降低遥测速变数据单信道容量,从而在有限的带宽中增加更多的测试通道和测试参数,提高带宽利用率,通过对压缩机理的研究、压缩算法的比较及相关硬件的设计,总体上实现了遥测噪声数据的无损压缩。通过单元测试,充分验证了所设计的遥测噪声数据无损压缩装置的正确性与可靠性。数据无损压缩对当前许多应用领域都产生了深远的影响,特别是在航天遥测领域,意义重大。

针对目前的研究情况,进一步需改进的问题包括:(1)数据采集部分可以在现有遥测噪声数据采集的基础上,结合FPGA的高性能和AD器件的更新,增加提高数据采集路数,提高采集速率和精度。(2)优化ARC编码方式。可以结合其他的算法,实现算法自适应以增强数据处理适应能力,进一步提高压缩器性能。(3)推广技术的使用范围,比如应用在数据采编、存储等各个领域,以节省数据存储容量开销。

编辑:jq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分