0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子工程师 来源:《电子技术应用》 作者:凌 伟 张会新 2021-04-27 17:22 次阅读

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

设计的数据压缩器以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]。

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

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所示。

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

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来完成。

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

3.2 DSP程序设计

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

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

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的部分基本被滤掉,但数据主要成分基本保持下来,能比较真实地反映数据的实际分布情况。

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

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

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

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

编辑:jq

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

    关注

    9

    文章

    672

    浏览量

    54983
  • 数据
    +关注

    关注

    8

    文章

    6511

    浏览量

    87592
  • ARC
    ARC
    +关注

    关注

    0

    文章

    36

    浏览量

    16353
  • 压缩器
    +关注

    关注

    0

    文章

    22

    浏览量

    7644
收藏 人收藏

    评论

    相关推荐

    FPGA压缩算法有哪些

    在图像压缩算法中可以采用哈夫曼编码的方式对编码冗余的信息进行压缩,可以采用预测的方式来减少像素间冗余,可以采用量化的方式完成心理视觉冗余信息的去除
    的头像 发表于 04-15 11:48 173次阅读
    FPGA<b class='flag-5'>压缩</b><b class='flag-5'>算法</b>有哪些

    基于门控线性网络(GLN)的高压缩比无损医学图像压缩算法

    实现基于门控线性网络(GLN)的高压缩比无损医学图像压缩算法,以提高医学图像存储和分发系统的效率。与“传统”的基于上下文的数据压缩
    的头像 发表于 04-08 10:29 167次阅读
    基于门控线性网络(GLN)的高<b class='flag-5'>压缩</b>比无损医学图像<b class='flag-5'>压缩</b><b class='flag-5'>算法</b>

    NanoEdge AI的技术原理、应用场景及优势

    是指将数据处理任务从云端迁移到离数据源更近的设备上,以实现更快的响应时间和更低的延迟。神经网络压缩技术则通过减少模型参数和计算量来降低设备的
    发表于 03-12 08:09

    高性能无损数据压缩FPGA IP,LZO无损数据压缩IP

    LZOAccel-C是一个无损数据压缩引擎的FPGA硬件实现,兼容LZO 2.10标准。 Core接收未压缩的输入数据块,产生压缩后的
    的头像 发表于 01-25 13:39 210次阅读
    高性能无损<b class='flag-5'>数据压缩</b>FPGA IP,LZO无损<b class='flag-5'>数据压缩</b>IP

    卡尔曼滤波算法是怎么实现数据的预测处理的?

    卡尔曼滤波算法是怎么实现数据的预测处理的
    发表于 10-10 08:28

    关于数据挖掘的十种算法原理讲解

    数据挖掘主要分为三类:分类算法、聚类算法和相关规则,基本涵盖了当前商业市场对算法的所有需求。这三类包含了许多经典算法。市面上很多
    的头像 发表于 09-18 15:00 656次阅读
    <b class='flag-5'>关于</b><b class='flag-5'>数据</b>挖掘的十种<b class='flag-5'>算法</b>原理讲解

    一文弄懂数据挖掘的十大算法数据挖掘算法原理讲解

    数据挖掘主要分为三类:分类算法、聚类算法和相关规则,基本涵盖了当前商业市场对算法的所有需求。这三类包含了许多经典算法。市面上很多
    的头像 发表于 09-14 15:56 531次阅读
    一文弄懂<b class='flag-5'>数据</b>挖掘的十大<b class='flag-5'>算法</b>,<b class='flag-5'>数据</b>挖掘<b class='flag-5'>算法</b>原理讲解

    CoreSight组件技术参考手册

    CoreSight组件提供以下系统范围跟踪功能: ·整个系统的调试和跟踪可见性·SoC子系统之间的交叉触发支持·单一流中的多源跟踪·比以前的解决方案更高的数据压缩·标准工具的标准程序员模型支持·第三方核心的开放接口·低引脚数·低硅开销
    发表于 08-18 07:11

    GaussDB技术解读

    数据压缩与关系数据库的结合,早已不是一个新鲜的话题,当前我们已经看到了各种各样数据压缩的产品和解决方案。
    的头像 发表于 07-25 11:16 584次阅读
    GaussDB<b class='flag-5'>技术</b>解读

    MAX22192ARC+ - (Maxim Integrated) - 接口 - 传感器和探测器接口

    电子发烧友网为你提供Maxim(Maxim)MAX22192ARC+相关产品参数、数据手册,更有MAX22192ARC+的引脚图、接线图、封装手册、中文资料、英文资料,MAX22192ARC
    发表于 07-05 19:02
    MAX22192<b class='flag-5'>ARC</b>+ - (Maxim Integrated) - 接口 - 传感器和探测器接口

    详细介绍8种最常用的排序算法

    在计算机科学领域中,排序算法是一种基本的算法。排序算法可以将一个数据集合重新排列成一个按照某种规则有序的集合,常用于数据检索、
    的头像 发表于 06-06 14:52 2304次阅读

    在语音芯片行业中,常用的压缩技术主要分为这几类

    在语音芯片行业中,常用的压缩技术有以下几类:   1. ADPCM压缩技术:ADPCM(自适应差分脉冲编码)是一种相对简单的压缩
    的头像 发表于 06-01 16:25 415次阅读

    数字音频有哪三类 数字音频的主要技术指标

    数据压缩格式:为了减小音频文件的大小,常使用数据压缩技术对数字音频进行压缩。主要的压缩格式有MP3、AAC、FLAC、ALAC等。不过
    发表于 05-30 17:26 3602次阅读

    zSwap 技术压缩算法介绍

    压缩可以降低占用空间,顾名思义,内存压缩就是压缩内存,节省内存空间。就目前的技术而言, I/O 的速度远远慢于这 RAM 操作速度。因此,如果频繁地做 I/O 操作,不仅影响 flas
    的头像 发表于 05-19 09:25 820次阅读

    专用数据压缩引擎,提高数据中心效率

    压缩并不是一个新概念,但随着存储需求的增长,它正成为数据中心中更重要的工具。目标当然是使用比原始数据更少的位对信息进行编码,从而减小数据的大小。计算效率优势还体现在需要移动的
    的头像 发表于 05-06 10:30 499次阅读
    专用<b class='flag-5'>数据压缩</b>引擎,提高<b class='flag-5'>数据</b>中心效率