SDR实战(四)-AD9361使用手册(三)

数字接口规范

概述

本节定义了并行数据端口和串行外设接口(SPI),它们使得AD9361与基带处理器(BBP)之间能够传输数据和控制/状态信息。图63展示了这些接口,并提供了AD9361和BBP在宽带无线系统中使用方式的高级概述。数据接口以两种模式之一运行:兼容标准CMOS模式或兼容低压差分信号(LVDS)模式。每个接口都具有以下部分描述的独特特性。

使用CMOS模式时:

  • 保持了单端-CMOS逻辑兼容性。

  • 可以使用一个或两个数据端口。使用两个端口可以提高数据吞吐量。

  • 通过一个数据端口或两个数据端口都支持频分双工(FDD)和时分双工(TDD)操作。

使用LVDS模式时:

  • 数据端口信号是差分LVDS,允许AD9361与BBP之间长达12英寸的PCB迹线/连接器互连。

  • 仅数据端口(包括时钟和其他相关定时信号)兼容LVDS。

  • 支持FDD和TDD操作。

LVDS模式数据通路和时钟信号

AD9361的LVDS接口便于连接具有LVDS功能的定制ASIC和FPGA。当系统需要在嘈杂环境中提供优于标准CMOS接口的开关性能和更高的数据速率时,通常使用LVDS接口。在使用LVDS模式时,建议保持所有迹线长度不超过12英寸,并将差分迹线保持紧密并等长。

数据通路信号

DATA_CLK

DATA_CLK是一个由AD9361生成的差分LVDS信号,提供给BBP作为接收数据路径的主时钟。BBP使用这个主时钟作为接口数据传输的时序参考,以及对数据样本进行基带处理。在接收操作期间,DATA_CLK为Rx_D[5:0]信号提供源同步时序,支持DDR操作。在LVDS模式下不支持SDR(单数据速率)。

DATA_CLK的频率取决于系统架构(射频通道数量、过采样程度和带宽模式)。该频率通过SPI写入AD9361来设置。

在接口空闲期间,AD9361可以停止DATA_CLK(作为对BBP的SPI事务的响应),以降低功耗。如果DATA_CLK被禁用,从非开关状态到开关状态的转换必须遵守干净信号转换的电气层要求,并且AD9361必须始终驱动一个有效的电平。

FB_CLK

FB_CLK是一个由基带处理器(BBP)驱动的差分LVDS信号,它是DATA_CLK的反馈(环路返回)版本。FB_CLK在发射(Tx)突发期间为Tx_D[5:0]信号提供源同步时序和双边缘捕获。

在接口空闲期间,BBP可以停止FB_CLK以减少功耗。如果是这样,那么在非开关状态和开关状态之间的转换必须遵守干净信号转换的电气层要求,并且BBP必须始终驱动一个有效的电平。

Rx_FRAME

Rx_FRAME是一个由AD9361生成的差分LVDS信号,提供给BBP以对AD9361提供的数据样本进行帧定位。一个高电平转换表示帧的开始。Rx_FRAME可以设置为在突发开始时仅为单个高电平转换,并在整个突发期间保持高电平,或者可以设置为具有每个帧开始时的上升沿的脉冲列(50%占空比)。

Rx_D[5:0]

Rx_D[5:0]是一个由六个差分对组成的差分LVDS数据线。它由AD9361驱动到BBP,传输接收到的数据。数据以数据字对的形式在这个总线上传输,从而创建了一个12位的数据线。

Tx_FRAME

Tx_FRAME是一个由BBP生成的差分LVDS信号,提供给AD9361以对BBP提供的数据样本进行帧定位。一个高电平转换表示帧的开始。Tx_FRAME可以接受在突发开始时的单个高电平转换,该转换在整个突发期间保持高电平,或者可以接收一个脉冲列,该脉冲列在每个帧的开始处有一个上升沿(50%占空比)。

AD9361在第一个Tx_FRAME指示有效数据之前传输零数据(全部为零)。当Tx路径在FDD独立模式下完成传输操作且数据路径不会自动冲洗时,这是一个有用的特性。在这种情况下,可以将TX_FRAME引脚保持低电平以完成数据冲洗操作。有关更多详细信息,请参阅启用状态机指南部分。

请注意,Rx_FRAME和Tx_FRAME都是接口正常工作所需的信号。

Tx_D[5:0]

Tx_D[5:0]是一个由六个差分对组成的差分LVDS数据线。它由BBP驱动,向AD9361传输要通过发射器输出的数据。数据以数据字对的形式在这个总线上传输,从而创建了一个12位宽的数据总线。

ENABLE

ENABLE信号由BBP驱动到AD9361,用于在时分双工(TDD)模式下提供数据传输突发的控制(与TXNRX一起)。ENABLE信号由BBP断言,至少持续一个DATA_CLK周期,以指示每个突发的开始。随后,它再次断言,至少持续一个DATA_CLK周期,以指示每个突发的结束。

AD9361内部跟踪ENABLE脉冲的序列,以正确解释每个脉冲作为每个突发的开始或结束。ENABLE信号还可以配置为电平模式,其中信号的状态(而不是脉冲)决定了ENSM在状态之间的转换。在LVDS模式下,数据端口始终处于活动状态。在TDD模式下,BBP和AD9361都会忽略非活动方向的数据。开始和结束的延迟时间(在AD9361采样ENABLE脉冲和总线上出现第一个和最后一个有效数据样本之间)根据数据路径配置而变化。Rx_FRAME和Tx_FRAME信号分别被BBP和AD9361用来确定有效数据。FB_CLK信号用于采样这个输入。

在频分双工(FDD)模式下,ENABLE信号作为唯一的控制输入,用于确定ENSM的状态。还有一种备选的FDD模式,其中ENABLE信号可以重新定义为RxON,这是一个直接硬件控制输入到ENSM,用于控制接收(Rx)功能。在这种模式下(称为FDD独立控制模式),BBP独立控制接收功能,这可能导致功耗节省。

TXNRX

TXNRX是由BBP驱动到AD9361的信号,当ENSM处于TDD模式时,它与ENABLE信号一起提供数据传输突发的控制。当AD9361采样到ENABLE信号为高电平时,开始一个突发,同时采样TXNRX电平来确定数据方向。在TDD模式下,TXNRX采样为高电平表示传输突发,而TXNRX采样为低电平表示接收突发。

在整个数据传输突发期间(一个有效的逻辑电平),必须保持TXNRX信号电平。TXNRX信号可以在ENABLE开始脉冲被采样之前的任意周期(≥0)建立,并可以在ENABLE结束脉冲被采样之后的任意周期(≥0)改变。需要注意的是,在ENSM处于警戒(ALERT)状态时,TXNRX信号才应该改变状态,因为在TDD模式下,TXNRX的上升沿和下降沿会直接供电和断电相应的合成器。

在正常的FDD模式下,TXNRX信号被忽略,但必须保持在有效的逻辑电平。还有一种备选的FDD模式,其中TXNRX信号可以重新定义为TxON,这是一个直接硬件控制输入到ENSM,用于控制发射(Tx)功能。在这种模式下(称为FDD独立控制模式),BBP独立控制发射功能,这可以导致功耗节省。

LVDS最大时钟速率和信号带宽

表50中列出的数据比较了在不同允许操作模式下LVDS数据总线配置的最大数据时钟速率和信号带宽。最大射频带宽针对两种情况列出:使用避免混叠的最小采样率进行采样,以及使用2倍过采样进行采样。

在LVDS模式下,最大DATA_CLK时钟速率提高到245.76 MHz。这个时钟和最大的56 MHz模拟滤波器带宽限制了射频通道信号带宽。请注意,由于每个路径(发射和接收)都有专用的总线,所以TDD和FDD模式的数据总线时序是相同的。

双口全双工模式

双总线全双工LVDS模式可以通过写入SPI寄存器来启用。在此模式下,P0和P1都被启用为LVDS信号,数据总线(D[11:0])被分割成单独的子总线(Rx_D[5:0]和Tx_D[5:0])。每个子总线同时操作,允许BBP和AD9361之间进行全双工的发射和接收数据传输。

发射数据(Tx_D[5:0])、FB_CLK和Tx_FRAME由BBP驱动,以便在FB_CLK、Tx_D[5:0]和Tx_FRAME之间的建立和保持时间允许AD9361使用FB_CLK来捕获Tx_D[5:0]和Tx_FRAME。Tx_D[5:0]总线上的数据样本由Tx_FRAME信号进行帧定位,如时序图所示。发射数据样本以二进制补码格式传输,每个数据包的第一个6位字包含MSB(最高有效位),第二个6位字包含LSB(最低有效位)。最正的样本值是0x7FF,第一个字为0x1F,第二个字为0x3F,最负的值是0x800,第一个字为0x20,第二个字为0x00。Tx_D[5]是每个字中最显著的位,Tx_D[0]是最不重要的位。

接收数据(Rx_D[5:0])、DATA_CLK和Rx_FRAME由AD9361驱动,以便在DATA_CLK、Rx_D[5:0]和Rx_FRAME之间的建立和保持时间允许BBP使用DATA_CLK来捕获Rx_D[5:0]和Rx_FRAME。Rx_D[5:0]总线上的数据样本由Rx_FRAME信号进行帧定位,如时序图所示。接收数据样本以二进制补码格式传输,每个数据包的第一个6位字包含MSB,第二个6位字包含LSB。这意味着最正的样本值是0x7FF,第一个字为0x1F,第二个字为0x3F,最负的值是0x800,第一个字为0x20,第二个字为0x00。Rx_D[5]是每个字中最显著的位,D[0]是最不重要的位。

请注意,与CMOS模式一样,FB_CLK必须从DATA_CLK生成,以保持相同的频率和占空比。两个时钟信号之间没有相位关系要求。

如前所述,I和Q数据样本在每个数据总线上是时间交错的。对于1R1T系统,I和Q样本以4路交错方式传输:

IMSB, QMSB, ILSB, QLSB, …

在这种情况下,Tx_FRAME和Rx_FRAME信号与数据切换同步。每个信号在50%占空比帧定位启用时,对于IMSB和QMSB为高状态,对于ILSB和QLSB为低状态。然后这些信号再次与IMSB一起变为高状态,以指示新帧的开始。

对于2R2T系统,来自RF路径1和2的I和Q样本以8路交错方式传输:

I1 MSB, Q1 MSB, I1 LSB, Q1 LSB, I2 MSB, Q2 MSB, I2 LSB, Q2 LSB, …

在这种情况下,Tx_FRAME和Rx_FRAME信号与数据切换同步。每个信号在50%占空比帧定位启用时,对于I1MSB, Q1MSB, I1LSB, Q1LSB为高状态,对于I2MSB, Q2MSB, I2LSB和Q2LSB为低状态。然后这些信号再次与IAMSB一起变为高状态,以指示新帧的开始。

对于具有2R1T或1R2T配置的系统,时钟频率、总线传输速率和样本周期以及数据捕获时序与配置为2R2T系统时相同。然而,在只使用单个通道的路径中,每个数据组中禁用通道的I-Q对是未使用的。这些未使用的插槽被AD9361忽略。例如,对于使用Tx通道1的2R1T系统,发射突发将有四个未使用的插槽:

I1 MSB, Q1 MSB, I1 LSB, Q1 LSB, X, X, X, X, …

在这种情况下,Tx_FRAME和Rx_FRAME与数据切换同步,对于I1MSB, Q1MSB, I1LSB, Q1LSB为高状态,然后对于未使用的插槽为低状态。然后这些信号再次与I1MSB一起变为高状态,以指示新帧的开始。BBP可以用任意数据值填充未使用的X插槽。这些值可以是恒定值,或者可以重复前面的数据样本值以减少总线切换因子,从而降低功耗。

数据路径时序图

图79和图80中的时序图展示了双端口频分双工(FDD)LVDS模式下总线信号之间的关系。为了说明数据线的差分特性,在时序图中使用实线和虚线表示差分信号。实线表示差分对的正腿,与差分对的负腿的实线相对应,虚线表示正腿,与负腿的虚线相对应。请注意,由于2R1T和1R2T系统遵循2R2T的时序图,因此它们在图79和图80中被省略了。

在LVDS模式下,以下位不被支持:

  • 交换端口(Swap Ports):在LVDS模式下,P0是发射(Tx)端口,P1是接收(Rx)端口。这个配置不能被改变。

  • 单端口模式(Single Port Mode):在LVDS模式下,两个端口都被启用。

  • 频分双工全端口(FDD Full Port):在LVDS模式下不支持。

  • 频分双工备选字节序(FDD Alt Word Order):在LVDS模式下不支持。

  • 频分双工交换位(FDD Swap Bits):在LVDS模式下不支持。

数据路径时序参数

SPI 接口

SPI总线提供了对AD9361进行所有数字控制的机制。每个SPI寄存器都是8位宽,每个寄存器包含控制位、状态监控或其他设置,这些设置控制设备的所有功能。

SPI总线可以通过设置SPI配置寄存器中的位值来配置。这个寄存器是对称的;也就是说,D6等同于D1,D5等同于D2(D4和D3未使用)。设备在默认模式(MSB优先寻址)下上电,但由于这种对称性,它可以接收LSB优先写入SPI配置寄存器。对称位被或(OR)在一起,所以设置一个位会同时设置这对位中的两个。当D5和D2保持清除时,位顺序为MSB优先;当这些位被设置时,位顺序被交换为LSB优先。一旦正确配置,所有后续的寄存器写入必须遵循所选格式。

总线默认配置为4线接口。如果D6位和D1位被设置,SPI总线被配置为3线接口。当D7位和D0位被设置时,它们异步将所有寄存器重置为默认值,并且在可以更改其他寄存器之前必须清除这些位。

SPI_ENB

SPI_ENB是从BBP驱动到AD9361的总线使能信号。在第一个SPI_CLK上升沿之前,SPI_ENB被拉低,通常在最后一个SPI_CLK下降沿之后再次被拉高。当SPI_ENB为高电平时,AD9361会忽略时钟和数据信号。如果AD9361是SPI总线上唯一的设备,SPI_ENB可以接地。

SPI_CLK

SPI_CLK是由BBP驱动到AD9361的接口参考时钟。只有当SPI_ENB为低电平时,它才处于活跃状态。SPI_CLK的最大频率为50 MHz。

SPI_DI, SPI_DO and SPI_DIO

当配置为4线总线时,SPI使用两个数据线:SPI_DI和SPI_DO。SPI_DI是从BBP驱动到AD9361的数据输入线,而在这个配置中,SPI_DO是从AD9361到BBP的数据输出。

当配置为3线总线时,使用SP_DI作为双向数据线,既接收又传输串行数据。在3线配置中,为了区分两种配置,这个信号在本节中被称为SP_DIO。

数据信号在SPI_CLK的上升沿被发射,并在SPI_CLK的下降沿被BBP和AD9361采样。在所有事务中,SPI_DI(或SPI_DIO)携带从BBP到AD9361的控制字段,并且在写事务中携带写数据字段。在读取事务中,SPI_DO(或SPI_DIO)携带从AD9361到BBP的返回读取数据字段。

AD9361不在这些引脚上提供任何弱上拉或下拉。当SPI_DO不活跃时,它处于高阻态。如果需要SPI_DO始终有有效的逻辑状态,应在PCB上添加外部弱上拉/下拉。

传输协议

AD9361的控制字段宽度仅限于16位,并且允许多字节I/O操作。AD9361不能用于控制总线上的其他设备——它只作为从设备运行。

通信周期有两个阶段。第一阶段是控制周期,即将控制字写入AD9361。控制字为AD9361串行端口控制器提供有关数据字段传输周期的信息,这是通信周期的第二阶段。第一阶段的控制字段定义了即将到来的数据传输是读取还是写入。它还定义了被访问的寄存器地址。

W/Rb(读写位)——指令字的位15(Bit 15)决定了在指令字节写入之后是发生读数据传输还是写数据传输。高电平表示写操作;低电平表示读操作。

NB2, NB1, NB0——指令字的位[14:12](Bits [14:12])指定了在I/O操作的第二阶段(Phase 2)期间传输的字节数。表52详细列出了每个NB[2:0]组合在第二阶段传输的字节数。

[D11:D10] — 指令字的位[11:10]未使用。

[D9:D0] — 位[9:0]指定了在I/O操作的第二阶段(Phase 2)期间数据传输的起始字节地址。

所有字节地址,包括起始地址和内部生成的地址,都假定为有效。也就是说,如果访问了一个无效地址(未定义的寄存器),I/O操作会继续进行,就好像地址空间是有效的一样。对于写操作,所写的位将被丢弃;对于读操作,输出将在逻辑上为零。

时序图

其他接口信号

CLOCK_OUT

CLOCK_OUT 是一个设计用作基带处理器(BBP)的主时钟源的输出信号。这个输出可以被编程设置为输入时钟的缓冲版本,或者是接收数据路径ADC时钟的倍数。需要注意的是,时钟频率必须始终低于61.44 MHz。

CTRL_IN[3:0]

CTRL_IN 引脚是四个可编程的输入信号,用于实时控制接收增益设置。 CTRL_IN2 引脚还可以用于在接收机 AGC(自动增益控制)混合模式下提供硬件控制。在这种模式下,当 BBP(基带处理器)将 CTRL_IN2 引脚拉高时,增益会发生变化。这允许 BBP 直接控制增益设置变化的时间。

CTRL_OUT[7:0]

CTRL_OUT 引脚是八个可编程的数字输出信号,用于实时处理。这些输出包括内部生成的功能和状态位,例如锁相环锁定(PLL lock)、校准完成(calibration complete)以及自动增益控制(AGC)功能等。

EN_AGC

EN_AGC 是一个输入信号,用于实时控制 AGC(自动增益控制)何时处于活动状态。当该引脚被拉高时,EN_AGC 引脚会强制 AGC 解锁,以便可以对增益设置进行调整。如果未使用 EN_AGC 引脚,则必须将增益锁定延迟位(Gain Lock Delay bit)设置为高电平。

GPO[3:0]

GPO 引脚是数字输出引脚,可以配置用于监控 ENSM(环境传感管理器)的状态或作为通用逻辑输出。这些引脚特别适用于为连接的功率放大器提供偏置或控制在 TDD(时分双工)系统中使用的前端开关。

RESETB

RESETB 是一个输入信号,允许对 AD9361 进行异步硬件复位。当对此引脚施加低电平时,会复位该设备(所有 SPI 注册表将被重置为默认设置,设备将被置于睡眠模式)。RESETB 线应该保持低电平至少 1 微秒,并且在 RESETB 线恢复高电平后,至少 1 微秒内不应对此设备进行编程。

SYNC_IN

SYNC_IN 是一个逻辑输入,可用于提供多个 AD9361 设备之间数据端口的同步。

  • 22
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值