tag 标签: 数据压缩

相关博文
  • 热度 29
    2012-11-15 21:45
    1623 次阅读|
    0 个评论
            在科学研究或近年来极其热门的物联网技术领域中,数据检测和采集早已成为重要的检测技术。然而,在许多工业测控机械、医疗仪器以及消费电子产品中,都对数据采集系统的实时性与功耗提出了更高的要求:即在满足微功耗、微型化的总体设计原则的基础上,又要能实时反映现场采集数据的变化。这样一来,对系统的功耗、采样速度、数据存储和传输速度等提出了更高的要求。然而,随着半导体与微控制器技术的飞速发展,各种微电子器件性能不断提升,功耗却不断降低,尤其是TI公司的产品在数据处理领域尤为突出。技术的进步使得高速度、低功耗的数据采集系统得以实现。           一般而言,采集到的数据量还是很大的,在进行传输的过程中对带宽要求较高,解决此类问题的有效途径笔者认为有:采用高带宽的传输方式;对数据进行压缩变相提高数据带宽。然而采用高带宽的传输方式是需要一定的成本的,所以可以采用压缩数据的方式,退一步来说,即使采用高带宽方式,当传输被压缩的数据时效率会高很多。为此,笔者撰写此博文,提出一种数据采集与压缩系统,供广大博友和大牛们指导与批评。        整个系统分为两个部分:数据采集部分(虚红线以上)和数据压缩部分(虚红线以下),如下图:      一:数据采集        数据采集部分核心采用核心采用MSP430F169 单片机,MSP430 系列单片机是TI 公司研发的16 位超低功耗单片机,非常适合各种功率要求低的场合。内部自带的12 位A/ D 和DMA控制单元,可以分别为系统采样电路和数据传输部分采用,使得系统的硬件电路更加集成化、小型化。 1)A/ D 采集数据模块       MSP430F169 内部的ADC12 模块能够实现12 位精度的模数转换,具有高速和通用的特性。其主要特点有:12 位转换精度;内置采样与保持电路;有多种时钟源可提供给ADC12 模块,且模块本身内置时钟发生器;内置温度传感器;配有8 路外部通道与4 路内部通道;内置参考电源,且参考电压有6 种可编程的组合;模数转换有4 种模式,可灵活应用以节省软件量及时间;可以关闭ADC12 模块以节省系统能耗。 2)DMA传输模块       DMA(Direct Memory Access) 是直接存储器访问的意思。DMA 控制器不需要CPU 的干预即可提供最先进的可配置的数据传输能力,从而可以解放CPU ,使其不是将更多的时间浪费在等待上,而是将更多的时间用于处理数据。DMA 控制器可在内存与内部及外部硬件之间进行精确的传输控制。DMA 消除了数据传输延迟时间以及CPU 等待等各种开销,从而提高了MCU 利用率,使信号处理能力更强。 3)缓存到RAM1模块      所以要用缓存模块主要是考虑到两个方面,一是数据采集的速率和数据传输速率不一致,二是数据采集速率和数据压缩的速率不一致。RAM1在此起到缓存数据和协调系统的作用。 二:数据压缩        通过对各种压缩算法做一对比,发现算术编码(ARC)的压缩率极高,但是算法较复杂,计算量大,在压缩数据时必须采用浮点型运算,基于上述考虑,可以选用TI公司的一款性价比非常高的浮点芯片TMS320C6713实现算术编码。      整个过程可描述如下:采集到的数据通过数据总线以DMA方式写入RAM1中。在程序中通过控制信号,即当RAM1数据超过一定量时,控制器信号低电平有效,就会触发一次中断通知DSP,DSP进入中断后把一定量的数据从输入RAM1中读入到SBUF所指向的SDRAM空间中,在进行高速压缩以后,被压缩的数据放到DBUF中。SBUF的数据要与DBUF的数据进行比较,若DBUF中存储数据的容量小于SBUF中的存储数据的容量,就把DBUF中相应的数据写到DSP的软FIFO中,否则,就把SBUF中相应的数据写到DSP的软FIFO中。最终,DSP把压缩后的数据通过其软FIFO写入到输出RAM2中,等待发送模块把数据读走。 以上是数据采集与压缩系统的设计,其中有很多不足忘大牛们指导,谢谢!!      
相关资源