一站式电子元器件采购平台

华强商城公众号

一站式电子元器件采购平台

元器件移动商城,随时随地采购

华强商城M站

元器件移动商城,随时随地采购

半导体行业观察第一站!

芯八哥公众号

半导体行业观察第一站!

专注电子产业链,坚持深度原创

华强微电子公众号

专注电子产业链,
坚持深度原创

电子元器件原材料采购信息平台

华强电子网公众号

电子元器件原材料采购
信息平台

问应用工程师- 19:串行转换器接口- 1相关问题的解答

来源:analog 发布时间:2023-09-19

摘要: 问应用工程师-20:串行转换器的接口- 1

问:我需要数据转换器来适应狭小的空间,我想串行接口会有帮助。我需要知道什么才能选择和使用?

让我们首先看看串行接口是如何工作的,然后将其与并行接口进行比较。在此过程中,我们将消除一些关于串行数据转换器的神话。


AD7890 8通道复用12位串行A/D转换器(ADC)连接到ADSP-2105数字信号处理器(DSP)的串口。还显示了DSP用于与ADC通信的时序。构成转换结果的12位作为串行数据流在单线上传输。数据流还包括三个额外的位,用于标识AD7890的多路复用器当前选择的输入通道。为了区分串行数据流的位,必须提供一个时钟信号(SCLK),通常由DSP提供;然而,有时ADC提供这个时钟作为输出。DSP通常(但并非总是)提供一个额外的帧脉冲,该脉冲在通信开始时的一个周期内有效,或者如图所示(TFS/RFS),在传输的持续时间内有效。

在本例中,DSP的串行端口用于对ADC中的内部5位寄存器进行编程。寄存器的位控制诸如选择要转换的通道、将设备置于断电模式和开始转换等功能。很明显,在这种情况下,串行接口必须是双向的。

另一方面,并行ADC直接(或可能通过缓冲区)连接到与其接口的处理器的数据总线。图中为AD7892与ADSP-2101的接口。当转换完成时,AD7892中断DSP, DSP通过对ADC的解码内存地址进行单次读取来响应。


串行和并行数据转换器之间的关键区别在于所需接口线的数量。从节省空间的角度来看,串行转换器提供了一个明显的优势,因为减少了设备引脚数。这使得在8引脚DIP或SO封装中封装12位串行ADC或DAC成为可能。更重要的是,由于串行接口连接需要更少的PCB轨道,因此节省了电路板空间。

问:我的数字转换器必须远离中央处理器,彼此之间也必须远离。解决这个问题的最佳方法是什么?

首先,您必须决定是使用串行还是并行dac。使用并行dac,您可以将每个dac映射到内存映射的I/O位置,如图所示。然后,只需向适当的I/O位置执行一个Write命令,就可以对每个DAC进行编程。然而,这种配置有一个明显的缺点。它需要一个并行的数据总线,以及一些控制信号,到所有的远程位置。显然,只有两根线的串行接口要经济得多。


串行转换器通常不能映射到处理器的内存中。但是许多串行dac可以连接到处理器的串行I/O端口。然后,处理器上的其他端口可用于生成芯片选择信号,以单独启用dac。芯片选择信号将需要从每个设备到接口的一条线路。但是处理器上用于传输芯片选择信号的线路数量可能是有限的。

解决这个问题的一种方法是使用可以连接在一起的串行dac。该图显示了如何将多个dac连接到单个I/O端口。每个DAC都有一个串行数据输出(SDO)引脚连接到链中下一个DAC的串行数据输入(SDI)引脚。LDAC和SCLK与链中的所有dac并行馈电。由于时钟进入SDI的数据最终出现在SDO (N个时钟周期之后),因此单个I/O端口可以寻址多个dac。但是,端口必须输出长数据流(每个DAC N比特乘以链中的设备数量)。这种配置的最大优点是不需要设备解码。所有设备实际上都位于相同的I/O位置。菊花链的主要缺点是可访问性(或延迟)。为了改变单个DAC的状态,处理器仍然必须从I/O端口输出完整的数据流。


问:如果串行数据转换器节省了这么多的空间和电线,为什么不是在所有对空间敏感的应用中都使用它们?

串行接口的一个主要缺点是速度与空间之间的权衡。例如,要对并行DAC进行编程,只需将数据放在数据总线上并用单个脉冲将其时钟输入DAC。然而,当写入串行DAC时,这些位必须按顺序进行时钟(N位转换器的N个时钟脉冲),然后是负载脉冲。处理器的I/O端口花费相对大量的时间与串行转换器通信。因此,串行转换器的吞吐量高于500 ksps是不常见的。

问:我的8位处理器没有串口。是否有一种方法将串行12位ADC(如AD7893)连接到处理器的并行总线?

答:当然可以使用外部移位寄存器来完成,该寄存器是串行(异步)加载的,然后将时钟输入处理器的并行端口。然而,如果问题的意义是“没有外部逻辑”,串行ADC可以被接口,如果它是一个1位并行ADC。将转换器的SDATA引脚连接到处理器的数据总线之一(在图中连接到D0)。使用一些解码逻辑,转换器可以被映射到处理器的一个内存位置,这样转换的结果就可以用12个连续的read命令来读取。然后,附加的软件命令将读取的12字节的lsb集成到单个12位并行字中。


这种技术有时被称为“敲位”,从软件的角度来看是非常低效的。但在处理器运行速度比转换器快得多的应用程序中,它可能是可以接受的。

在最后一个例子中,处理器写信号的一个门控版本被用来启动AD7893上的转换。这种方法有问题吗?

很高兴你发现了这一点。在本例中,可以通过对AD7893的映射内存位置进行虚拟写入来启动转换。没有数据交换,但是处理器提供开始转换所需的写脉冲。从硬件的角度来看,这个配置非常简单,因为它避免了生成转换信号的需要。但是,在交流数据采集应用中不推荐使用该技术,因为这些应用必须对信号进行周期性采样。即使处理器被编程为对ADC进行周期性写入,写入脉冲的相位抖动也会严重降低可实现的信噪比(SNR)。门控过程可能使写信号抖动更严重。例如,采样时钟相位抖动水平低至1ns,将使理想的100 khz正弦波的信噪比降低到约60dB(小于10位有效分辨率)。还有一个额外的危险,即采样信号上的超调和噪声将进一步降低到数字转换的完整性。

什么时候应该选择带有异步串行接口的转换器?

异步链路允许设备之间交换未锁定的数据。这些设备最初必须被编程为使用相同的数据格式。这涉及到设置特定的数据速率(通常以波特或每秒比特数表示)。此外,还需要一个约定来定义如何启动和结束传输。我们使用称为开始位和停止位的可识别数据序列来做到这一点。传输还可以包括奇偶校验位,以方便错误检测。


AD1B60数字信号调节器与PC的异步COM口的接口关系如图所示。这是一个3线双向接口(地线已被省略为清晰)。注意,接收和发送线路在线路的另一端交换角色。

异步数据链路在设备仅以局部方式通信的应用程序中很有用。由于每次传输都包含开始位和停止位,因此设备可以在任何时候通过简单地输出其数据来启动通信。由于不再需要时钟和控制信号,设备之间的连接数量减少了。

问:我正在考虑的ADC的数据表建议在串行接口上使用非连续时钟。为什么?

规范可能要求时钟在转换过程中保持非活动状态。一些adc需要这样做,因为连续的数据时钟可以馈送到器件的部分,并对转换的完整性产生不利影响。如果I/O端口具有帧脉冲,则可以在转换期间中断连续时钟信号;它被用作门控信号,使串行时钟仅在数据传输期间进入转换器。

问:是什么使设备SPI或MICROWIRE兼容?

SPI (Serial Peripheral Interface)和MICROWIRE分别是摩托罗拉和美国国家半导体公司开发的串行接口标准。大多数同步串行转换器可以很容易地连接到这些端口;但在某些情况下,可能需要额外的“粘合”逻辑。

问:好吧,我决定抛开偏见,在我目前的设计中使用串行ADC。我刚刚按照数据表上的规定把它接通了。当我的微读取转换结果时,ADC似乎总是输出FFFHEX。发生什么事情了?

也许你有沟通问题。我们需要查看ADC和处理器之间的连接,以及如何设置定时和控制信号。我们还需要看一下中断结构。下一期将继续讨论这个问题,讨论在设计串行接口时遇到的问题。

声明:本文观点仅代表作者本人,不代表华强商城的观点和立场。如有侵权或者其他问题,请联系本站修改或删除。

社群二维码

关注“华强商城“微信公众号

调查问卷

请问您是:

您希望看到什么内容: