Q值。我需要数据转换器以适应狭小的空间,我怀疑串行接口会有所帮助。选择和使用一个我需要知道什么?
A。让我们首先看一下串行接口的工作方式,然后将其与并行接口进行比较。在此过程中,我们将消除有关串行数据转换器的一些神话。
该图显示了连接到串行端口的AD7890 8通道多路复用12位串行A / D转换器(ADC)。 ADSP-2105数字信号处理器(DSP)。还显示了DSP用于与ADC通信的时序。构成转换结果的12位作为串行数据流通过单线传输。数据流还包括三个附加位,用于标识AD7890多路复用器当前选择的输入通道。为了区分串行数据流的位,必须通常由DSP提供时钟信号(SCLK);但是,有时ADC会将此时钟作为输出提供。 DSP通常(但不总是)提供额外的成帧脉冲,该通信脉冲在通信开始时的一个周期内有效,或者如图所示(TFS / RFS),在发送期间有效。
在本例中,DSP的串行端口用于编程ADC中的内部5位寄存器。寄存器的位控制诸如选择要转换的通道,将器件置于掉电模式以及开始转换等功能。显然,在这种情况下,串行接口必须是双向的。
另一方面,并行ADC直接(或可能通过缓冲器)连接到与其连接的处理器的数据总线。该图显示AD7892与ADSP-2101接口。转换完成后,AD7892会中断DSP,通过单次读取ADC的解码存储器地址来响应。
串行和并行数据转换器之间的关键区别在于数量需要的接口线。从节省空间的角度来看,由于减少了器件引脚数,串行转换器具有明显的优势。这使得可以将12位串行ADC或DAC封装在8引脚DIP或SO封装中。更重要的是,节省了电路板空间,因为串行接口连接需要更少的PCB轨道。
Q.我的数模转换器必须远离中央处理器并彼此远离。处理此问题的最佳方法是什么?
A.最初,您必须决定是使用串行DAC还是并行DAC。使用并行DAC,您可以将每个DAC映射到内存映射的I / O位置,如图所示。然后,您只需对相应的I / O位置执行写入命令即可对每个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端口输出完整的数据流。
Q.如果串行数据转换器节省了太多的空间和线路,为什么不在每个对空间敏感的应用中使用它们?
A。串行接口的主要缺点是空间速度的权衡。例如,要对并行DAC进行编程,只需将数据置于数据总线上,然后通过单脉冲将其计入DAC。但是,当写入串行DAC时,这些位必须按顺序计时(N位转换器为N个时钟脉冲),然后是加载脉冲。处理器的I / O端口花费相当多的时间与串行转换器通信。因此,吞吐率高于500 ksps的串行转换器并不常见。
Q值。我的8位处理器没有串行端口。有没有办法将AD7893等串行12位ADC连接到处理器的并行总线?
A。它当然可以使用外部移位寄存器来完成,该寄存器是串行(并且异步)加载,然后输入处理器的并行端口。但是,如果问题的意义是“没有外部逻辑”,则可以将串行ADC接口,就好像它是1位并行ADC一样。将转换器的SDATA引脚连接到处理器的数据总线之一(它连接到图中的D0)。使用一些解码逻辑,转换器可以映射到处理器的一个存储器位置,以便可以使用12个连续的读取命令读取转换结果。然后,附加软件命令将读取的12个字节的LSB集成到一个12位并行字中。
这种技术有时被称为“位冲击”,非常从软件角度来看效率低下。但在处理器运行速度比转换器快得多的应用中可能是可以接受的。
Q.在最后一个示例中,处理器写入信号的门控版本用于启动AD7893上的转换。这种方法有问题吗?
A。我很高兴你发现了这一点。在此示例中,可以通过对AD7893的映射存储器位置进行虚拟写操作来启动转换。没有数据交换,但处理器提供开始转换所需的写脉冲。从硬件角度来看,这种配置非常简单,因为它避免了生成转换信号的需要。但是,在交流数据采集应用中不推荐使用该技术,其中必须定期对信号进行采样。即使处理器被编程为对ADC进行周期性写入,写入脉冲上的相位抖动也会严重降低可达到的信噪比(SNR)。选通过程可能使写信号抖动更加严重。例如,采样时钟相位抖动电平仅为1 ns,会使理想的100 kHz正弦波的SNR降低到约60 dB(小于10个有效位分辨率)。还存在一个额外的危险,即采样信号上的过冲和噪声会进一步降低模数转换的完整性。
Q.我应该选择具有异步串行接口的转换器吗?
A。异步链接允许设备相互交换非时钟数据。必须首先将设备编程为使用相同的数据格式。这涉及设置特定数据速率(通常以波特或每秒位数表示)。定义如何启动和结束传输的约定也是必要的。我们使用名为 start 和 stop 位的可识别数据序列来执行此操作。传输还可以包括便于错误检测的奇偶校验位。
该图显示了AD1B60数字化信号调理器如何与PC的异步COM端口连接。这是一个3线双向接口(为清晰起见,省略了地线)。请注意,接收和传输线路在线路的另一端交换角色。
异步数据链接在设备偶尔进行通信的应用程序中很有用。由于每次传输都包含启动和停止位,因此设备可以通过简单地输出其数据随时启动通信。由于不再需要时钟和控制信号,因此减少了设备之间的连接数量。
Q.我正在考虑的ADC数据表建议在串行接口上使用非连续时钟。为什么?
A。规范可能要求在转换过程中时钟保持不活动状态。有些ADC需要这样做,因为连续的数据时钟可以通过器件的模拟部分,并对转换的完整性产生不利影响。如果I / O端口具有成帧脉冲,则在转换期间可以中断连续时钟信号;它被用作门控信号,仅在数据传输期间启用串行时钟到转换器。
Q.什么使器件SPI或MICROWIRE兼容?
A。SPI(串行外设接口)和MICROWIRE分别是Motorola和National Semiconductor开发的串行接口标准。大多数同步串行转换器可以轻松连接到这些端口;但在某些情况下,可能需要额外的“粘合”逻辑。
Q.好。我决定放弃偏见,在我目前的设计中使用串行ADC。我刚刚按照数据表的规定连接了它。当我的micro读取转换结果时,ADC似乎总是输出FFFHEX。发生了什么事?
A。也许您遇到了通讯问题。我们需要查看ADC和处理器之间的连接以及如何设置时序和控制信号。我们还需要查看中断结构。下一部分将回到此问题,讨论设计串行接口时遇到的问题。
全部0条评论
快来发表一下你的评论吧 !