DSP与数据转换器协同工作考虑的10大因素

发布者:cyzcee最新更新时间:2006-11-20 来源: 慧聪电子关键字:DAC  ADC  握手 手机看文章 扫描二维码
随时随地手机看文章
假设您接到一项工作任务,设计一套由DSP与DAC与ADC等模拟器件组成的信号处理系统。如果您考虑到几个重要因素,工作就会非常简单。下面就来谈谈设计工作中应该考虑的这几个因素。

  详细了解应用类型

第一步需要了解应用类型。对于控制型应用,既需要应对突发的大量数据处理情形,也要考虑间歇的闲置状态;而对于音频应用,则需要处理连续数据流的能力。了解应用的具体需求将有助于选择适当的接口和正确的数据读取方法。

  评估系统速率

第二步需要了解数据采样的速率。举例来说,音频系统可能是一部CD播放机,采样率为96kHz,也可能是电话语音系统,采样率仅为8kHz。当然,也可能是其他系统,如ADSL质量测量应用,采样速率高达10MSPS,或者是称重应用,每秒只要16次采样就足够了,但要求具备较高的分辨率(如24位)。了解此方面信息,将有助于开展下一步工作,即选择正确的DSP接口。

  选择正确的DSP接口

了解了应用及速率要求后,就对采用哪种DSP接口有了一定的认识。大多数音频设备均使用特定类型的串行接口,不过高速应用则要求并行接口。当采样速率为10MSPS、分辨率 为12位时,如果采用串行接口,其端口的速率要达到120MHz才能从转换器向DSP发送数据。这一要求大大超过了大多数50MHz串行端口的处理能力。若使用并行接口,则总线上信号交换的频率为10MHz,速率显著降低,因此处理起来非常简单。

在选择接口时,还要考虑的另一问题就是,并行总线能否满足所需的数据速率要求,或者说并行总线芯片在满足程序与系数要求后是否已经达到了满负荷。如果是的话,不妨考虑在DSP与转换器之间插入FIFO。

  确定握手模式

一旦选择了DSP接口,下一步就要考虑转换器与DSP之间的握手模式(handshakemode)。大多数转换器在发出新的数据字之前都会给出某种类型的转换结束(EOC)信号。处理器使用上述信号的方式有两种:一是轮询(poll);二是用其作为中断。

使用EOC信号作为中断具有一定优势,因为CPU不会被轮询标记占用,因此在获得数据前不会打断CPU的正常工作。不过,如果转换器等待处理特定的协议来读取数据,比如转换器发出转换结束信号后又需要读取命令来检索数据,每个读取命令都会触发新的中断,那么就会造成过多的开销,得不偿失。在这种情况下,轮询的方法就具有明显的优势了。

如果中断时延非常重要的话,那么使用轮询方式就更具优势。轮询可确保信号响应速度更快,这比进入中断服务例程要快得多。如果数据检索有短暂时隙(narrowtimeslot),那么采用轮询方式也是有利的。

  确定传输模式

下一步就是实际收集数据的工作了。收集数据有两种方法,各有千秋。第一种方法是采用DSP的DMA(直接存储器存取)控制器,可使传输与转换器的转换结束标记同步,并使CPU不用承担传输工作,因为数据阵列的填充是在后台完成的,传输完成后再通知CPU。

不过,这种方法只有在进行直接传输的情况下才有效。如果数据转换器在检索数据时需要某些复杂的机制,那么DMA就不太有效了。

在这种情况下,应让CPU参与传输工作。尽管服从特殊的协议相当简单,但必须使用大量的CPU资源来收集数据。如果中断率非常高,那么CPU可能很难有时间再去执行数据收集之后的算法了。

  是否采用数据猝发

假设数据转换器连接至DSP的并行总线,该并行总线在存储器存取(读取正在执行的数据)和I/O存取(读取采样)之间需要几个周期的转换,而且数据转换速率非常高,因此,转换常常是必需的,几乎每次采样读取都要进行转换。

如果一步就能读取多个数据字,且不用每次都进行数据总线交换,肯定是非常有价值的。在这种情况下,不妨考虑在数据转换器与DSP之间采用FIFO。一旦FIFO达到一定的水平即中断DSP,达到一定数量的数据字一步完成传输,这就大大降低了总线转换的开销。

  针对变量选择正确的数据类型

数据转换器针对所用的数据采用不同的格式。有的使用标准二进制(即无符号二进制)数据类型,有的则采用带符号的二进制数据类型,这就是问题的复杂所在。如果有一个12位数据转换器,那么在带符号二进制数据情况下,如何使用将是一个问题。符号位占据最重要的位置,即第“11”位(这里的起始位是第“0”位)。如果将此数据字赋予“C”变量,宽度为“16”位,那么假定“C”符号位为第“15”位。如果从转换器读取的数字为负,那么DSP就不能识别其为负值,因为符号位的位置错误。如何解决这一问题呢?第一种方法是在读取数据时进

行数据位移。不过,这只有在CPU读取数据时才有可能,因为DMA控制器不可能在传输时进行数据位移。另一种方法是在数据块完全传输后在环路中将数据位移至正确的位置。不过这必须使用CPU,并要求额外的MIPS。

如果改变连接后转换器的第“11”位刚好连接至DSP数据总线的第“15”位,那么符号位从首位算起刚好位于正确的位置,这就能实现基于DMA的传输,而且也不用再进行数据位移。

确保处理的是正确数据

现在,数据已经进入系统,数据字存储在阵列中,数据大小也合适,于是开始处理数据,但没有获得预期的结果,这时需要思考到底出了什么问题。首先应该检查DSP的高速缓存,DMA传输数据进入存储器时是否启用高速缓存,在这种情况下,高速缓存很可能保留拷贝的旧数据,并在算法工作中使用它们。如果发生了此类问题,就必需注意高速缓存相关性与转储清除问题,或者是存储新数据的高速缓存区失效。这样就能确保CPU处理的数据是传输完成后的最新数据。

如果用C语言编程应分配易失关键字

在调试嵌入式系统时,采用变量查询外设的状态后,发现CPU所用变量值是错误的,这时就要思考到底哪里出了问题。先看看下面这个结构:

  unsignedint*pControl=(unsignedint*)0x00COFFEE;file://错误

  while(*pControl==0);file://等待一个外部事件

  这里的*pControl指向一个外设。

  通过while循环,期望EOC能从“0”转换为“1”。但在大多数情况下,恐怕得一直等下去,因为编译器认为它已经完全控制了变量及与其相关的存储器,只加载*pControl指向的存储器位置的内容一次,就会对其进行循环测试。但问题在于,由于不会重新读取存储器内容,也就不能结束循环。

  解决这一问题的方法就是将*pControl的声明作一下修改,通知编译器其指向的存储器位置可由外部事件修改,而每次使用该变量时都必须重新载入,如下所示:

  volatileunsignedint*pControl=(unsignedint*)0x00COFFEE;file://正确

  while(*pControl==0);file://等待一个外部事件

  确保采样等距

  如果要在频域中处理采样数据,那么还要提到一点:不是所有转换器都有启动新转换的自身时基。在这种情况下,应采用外部时基或DSP定时针(timerpin)。

关键字:DAC  ADC  握手 引用地址:DSP与数据转换器协同工作考虑的10大因素

上一篇:基于DSP与AD9852的任意信号发生器
下一篇:TMS320VC5410在线并行自举的实现

推荐阅读最新更新时间:2024-05-13 18:15

【MSP430】Bluetooth握手及校验信息函数
握手程序: //---------------接收蓝牙校验信息------------------------------- void bluetooth_hand(){ uart1_RXirt_open(); //允许接收 while(!bus_start); //开始接收 while(bus_start); //等待接收完毕 uart1_RXirt_close(); //停止接收 } 校验程序: //---------------验证蓝牙校验信息------------------------------- int bluetooth
[单片机]
如何利用乘法DAC和运算放大器提供可编程增益
电路功能与优势 本电路利用乘法DAC和运算放大器提供可编程增益功能。最大增益值和温度系数由外部电阻设置,可编程增益的分辨率由DAC的分辨率设置。 图1:采用电流输出DAC的可编程增益电路(原理示意图) 电路描述 图1所示电路就是推荐用来提高电路增益的方法。R1、R2和R3应具有相似的温度系数,但不必与DAC的温度系数相匹配。在要求增益大于1的电路中,推荐使用这种方法。增益为: VOUT = −Gain × VIN × (D/2N) 其中D为载入DAC数字字的小数表示,n为位数: D = 0 to 255 (8位 AD5426); D = 0 to 1023 (10位 AD5432); and D = 0 to
[模拟电子]
如何利用乘法<font color='red'>DAC</font>和运算放大器提供可编程增益
【STM32】HAL库-ADC
12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。 ADC的输入时钟不得超过14MHz ADC开关控制 通过设置ADC_CR2寄存器的ADON位可给ADC上电。当第一次设置ADON位时,它将ADC从断电状态下唤醒。 ADC上电延迟一段时间后(tSTAB),再次设置ADON位时开始进行转换。 tSTAB可查询数据手册 一般来说是1us 通过清除ADON位可以停止转换,并将ADC置
[单片机]
【STM32】HAL库-<font color='red'>ADC</font>
德州仪器推出业界最快双通道16位ADC
    日前,德州仪器 (TI) 宣布推出两款支持数据转换器 JEDEC JESD204B 串行接口标准的器件,其中 ADS42JB69 是业界首款采用 JESD204B 接口、支持 250 MSPS 最高速度的双通道 16 位模数转换器 (ADC), LMK04828是业界最高性能的时钟抖动清除器,也是首款支持 JESD204B 时钟的器件。二者相结合,可为高速系统实现卓越的系统级性能。针对需要传统并行接口的设计,TI还推出了业界最快速度并支持 LVDS 接口的 250 MSPS 双通道 16 位 ADC ADS42LB69。 JESD204B 是业界标准串行通信链路,可简化数据转换器同 FPGA、DSP 以及
[模拟电子]
ADC的有效位指标以及示波器系统的有效位
衡量示波器测试系统质量的关键指标有很多,而“有效位数”对于了解整个测量系统至关重要。本文将讨论示波器有效位ENOB,以及ENOB对实际信号测试的影响,并结合实际应用,给出EXCEL求解的方法。 1. 前言 图表 1数字示波器系统结构图 由图表 1数字示波器系统结构可知,信号通过探头系统进入示波器后,经过衰减器和前置放大器调理后进入ADC。衰减电路和放大器通过继电器进行协同工作,在调整垂直分辨率时可快速切换使用。衡量ADC性能指标的参数有很多,比如采样率、DNL、INL、信噪比、有效位等。本文主要讨论ADC的有效位指标以及示波器系统的有效位。 2. ADC有效位定义 图表 2 ADC采集的正弦波频域分布 ADC的有效
[测试测量]
<font color='red'>ADC</font>的有效位指标以及示波器系统的有效位
CTSD ADC—第1部分:如何改进精密ADC信号链设计
摘要 精密信号链设计人员面临着满足中等带宽应用中噪声性能要求的挑战,最后往往要在噪声性能和精度之间做出权衡。缩短上市时间并在第一时间完成正确的设计则进一步增加了压力。持续时间Σ-Δ (CTSD) ADC本身具有架构优势,简化了信号链设计,从而缩减了解决方案尺寸,有助于客户缩短终端产品的上市时间。为了说明CTSD ADC本身的架构优势及其如何适用于各种精密中等带宽应用,我们将深入分析信号链设计,让设计人员了解CTSD技术的关键优势,并探索AD4134 精密ADC易于设计的特性。 简介 在许多数字处理应用和算法中,在过去的20年里,日益要求所有转换器技术都具有更高的分辨率和精度。通过使用外部数字控制器,借助平均和优化的滤波
[模拟电子]
CTSD <font color='red'>ADC</font>—第1部分:如何改进精密<font color='red'>ADC</font>信号链设计
STM32 ADC的采样周期确定
一 STM32 ADC 采样 频率的确定   先看一些资料,确定一下STM32 ADC 的时钟:   (1),由时钟控制器提供的ADCCLK 时钟和PCLK2(APB2 时钟)同步。CLK 控制器为ADC 时钟提供一个专用的可编程预分频器。   (2)一般情况下在程序 中将 PCLK2 时钟设为 与系统时钟 相同   RCC_HCLKConfig(RCC_SYSCLK_Div1);   RCC_PCLK2Config(RCC_HCLK_Div1);   RCC_PCLK1Config(RCC_HCLK_Div2);   (3)在时钟配置寄存器(RCC_CFGR) 中 有 为ADC 时钟提供一个专用的可编程预分器
[模拟电子]
对STM32内部FLASH编程时遇到的ADC异常问题
某STM32用户使用STM32F407芯片开发产品。用到内部3个ADC,其中ADC1与ADC2工作在ADC双模式,ADC3独立工作。运行代码时给FLASH开锁编程后,发现ADC3不工作了(其DR数据寄存器似乎不更新了,倒是用来触发ADC的定时器TIM2依然正常),Flash编程前后ADC3配置寄存器CR1、CR2没有发生改变。如果重新配置ADC3后就能正常工作。 从问题现象来看,初步感觉跟flash编程有些关系。 经了解,客户的确做了flash编程,有一部分参数需要存放在FLASH内。他的ADC3是由TIM2触发的,ADC3的转换结果是通过DMA搬运。 鉴于此,我这边便提醒他,如果不是基于双BANK条件,在flash编程时CP
[单片机]
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved