AD9361 数据数字接口说明

2023-11-02 20:45

本文主要是介绍AD9361 数据数字接口说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、简要

           AD9361和BBP之间的数据接口以两种模式之一工作:标准CMOS兼容模式或低压差分信号(LVDS)兼容模式。本篇文章将简要介绍一下CMOS和LVDS工作模式下的数据具体的传输样式。

二、CMOS 工作模式

        P0_D[11:0] and P1_D[11:0]: 端口0(P0)和端口1(P1)都有一个12位并行数据总线(D[11:0]),可在BBP和AD9361之间传输数据。每个总线在大小和功能上都与另一个总线相同,所以D[11:0]被用来指P0或P1。这些总线可以配置为仅传输、仅接收或双向传输。

        DATA_CLK:  DATA_CLK信号作为Rx数据路径的主时钟提供给BBP。在CMOS模式下,它在内部生成并输出到DATA_CLK_P引脚上(DATA_CLK_N保持未连接)。根据数据总线配置,对P0、P1或两个端口都使用相同的时钟。BBP使用这个主时钟作为接口数据传输和基带数据处理的定时参考。DATA_CLK在接收操作期间提供具有双边缘捕获(DDR)或单上升边缘捕获(SDR)数据传输的源同步定时。

        FB_CLK:FB_CLK是DATA_CLK的一个反馈(环回)版本,从BBP在CMOS模式下驱动到FB_CLK_P引脚(FB_CLK_N保持不连接)。FB_CLK允许对突发控制信号(TX_FRAME、启用和TXNRX)进行上升边缘捕获的源同步定时。FB_CLK还为Tx突发(P0和P1)期间的D[11:0]数据信号提供具有双边缘捕获(DDR)或单上升边捕获(SDR)的源同步定时。请注意,FB_CLK必须是DATA_CLK的反馈版本(完全相同的频率和占空比),但在两个时钟信号之间没有相位关系的要求。

        RX_FRAME: RX_FRAME由AD9361驱动,以识别Rx数据路径(P0和P1)的有效数据。在CMOS模式下,该信号从RX_FRAME_P引脚输出(RX_FRAME_N接地)。

        TX_FRAME:  TX_FRAME由BBP驱动,以识别Tx数据路径(P0和P1)的有效数据。在CMOS模式下,该信号被输入到TX_FRAME_P引脚(TX_FRAME_N接地)。

1、 单端半双工

        单端口半双工模式用于需要TDD操作和数据速率低于61.44 MHz的应用程序。在这种模式下,总线以双向半双工的方式使用,以便可以在同一线路上接收或传输数据。这种模式可用于所有接收机-发射机配置(1R1T、2R1T、1R2T和2R2T),通常在PCB空间有限或BBP只有一个可用的数据总线端口时使用。在此配置中,总线可以作为单数据速率(SDR)或双数据速率(DDR)进行操作。

         数据样本以二进制补码存放。I和Q数据样本在数据总线上时间交错传输。对于每个方向上的单个RF路径(一个1R1T系统),I和Q样品以双向交错的方式进行:

                          I,Q,I,Q,...

        对于使用两个Rx/Tx通道的系统,来自RF通道1和2的I和Q样本以4路交错:

                         I1、Q1、I2、Q2、I1、Q1、I2、Q2、…

        对于具有2R1T或1R2T配置的系统,时钟频率、采样周期和数据捕获时间与2R2T系统配置的相同。但是,在只使用一个通道的路径中,每个数据组中的禁用通道的I-Q对都未使用。这些未使用的插槽会被AD9361所忽略。例如,在一个只使用Tx信道1的2R1T系统中,发射突发将有两个未使用的插槽,如下:

                        I、Q、X、X、I、Q、X、X、..

未使用的X插槽可以由BBP填充任意的数据值。这些值可以是固定的常数值,或者可以重复前面的数据样本值,以减少母线切换因子,因此,功耗。

2、 单端全双工

        单端口全双工模式用于需要FDD操作和数据速率低于30.72 MHz的应用程序。在这种模式下,总线被分成两半,6位专用于Rx数据,6位专用于Tx数据。这种模式可用于所有的接收机-发射机配置。在此配置中,总线可以作为SDR或DDR进行操作。在本例中,只启用了P0,并且数据总线被分割成单独的子总线。每个子总线同时工作,允许在BBP和AD9361之间进行全双工传输和接收数据。因为在全双工模式下,总线必须完成两倍数量的数据传输,所以数据总线必须以TDD模式的两倍速度运行,以实现相同的传输和接收数据速率(因为每个数据都在全双工模式中并发运行)。

         在这种模式下,I和Q数据样本在数据总线上进行时间交错。对于每个方向的单个RF路径(1R1T系统),数据以4路交错携带,如下:

                         IMSB、QMSB、ILSB、QLSB、...

        对于具有两个活动Rx/Tx通道的系统,RF通道1和2通道的I和Q样本以8路交错携带,如下:

                         I1 MSB、Q1 MSB、I1 LSB、Q1 LSB、I2 MSB、Q2 MSB、Q2 LSB、Q2 LSB、…

        对于具有2R1T或1R2T配置的系统,时钟频率、采样周期和数据采集时间与2R2T系统配置的相同。但是,在只使用一个通道的路径中,每个数据组中被禁用通道的I-Q对都未使用。这些未使用的插槽会被AD9361所忽略。例如,对于使用发射信道1的2R1T系统,发射突发有四个未使用的槽:

                         I1 MSB、Q1 MSB、I1 LSB、Q1 LSB、X、X、X、X、..

        未使用的X插槽可以通过BBP用任意的数据值来填充。这些值可以是常量值,或者可以重复前面的数据样本值,以降低总线切换因子,从而降低功耗。

3、 双端半双工

        双端口半双工模式用于需要TDD操作和数据速率高达122.88 MHz的应用程序。在这种模式下,使用两个数据端口,P0分配给I数据,P1分配给Q数据。端口在这种模式下双向操作,数据方向是由哪个信道是活动的:传输或接收。在此配置中,每个总线都可以作为SDR或DDR进行操作。这种模式可用于所有的接收机-发射机配置。

         对于每个方向上的单个RF路径(即1R1T系统),I和Q样本用P0_D[11:0]上的I数据和P1_D[11:0]上的Q数据分离如下:

                P0:I,I,I,I,…

                P1:Q,Q,Q,…

        对于有两个主动Rx通道的系统,RF路径1和RF路径2的I和Q样本与P1上的I样本双向交错,P0和Q样本中有I样本。

                P0: I1、I2、I1、I2、…

                P1:Q1、Q2、Q1、Q2、…

        对于具有2R1T或1R2T配置的系统,时钟频率、采样周期和数据捕获时间与为2R2T系统配置的相同。但是,在只使用一个通道的路径中,每个数据组中被禁用通道的I-Q对都未使用。例如,对于只使用Tx通道1的2R1T系统,Tx burst将有两个未使用的插槽,如下:

                P0: I1,X,I1,X,…

                P1:Q1,X,Q1,X,...

        未使用的X插槽可以通过BBP用任意的数据值来填充。

4、 双端全双工

        双端口全双工模式(全端口)用于需要FDD操作和数据速率低于61.44 MHz的应用程序。在此模式下,使用两个数据端口,P0用于接收数据,P1用于传输数据。每个总线同时运行,允许在BBP和AD9361之间进行Tx和Rx数据的全双工传输。对于这种模式,每个数据总线必须以双端口TDD模式的两倍速度运行,以实现相同的Tx和Rx数据速率(因为每个数据总线都在全双工模式中并发运行)。在此配置中,每个总线都可以作为SDR或DDR进行操作。这种模式可用于所有的接收机-发射机配置。

        对于每个方向的单个射频路径,数据携带如下:

                 Px: I、Q、I、Q、I、Q、Q、…

        对于具有两个Rx/Tx通道的系统,来自射频通道1和2的I和Q样本携带如下:

                 Px: I1、Q1、I2、Q2,…

        对于具有2R1T或1R2T配置的系统,时钟频率、采样周期和数据捕获时间与2R2T系统配置时相同。但是,在只使用一个通道的路径中,每个数据组中的禁用通道的I-Q对都未使用。这些未使用的插槽会被AD9361所忽略。例如,对于使用Tx通道1的2R1T系统,Tx突发将有两个未使用的插槽,如下:

                Px: I1,Q1,X,X,..

        未使用的X插槽可以由BBP填充任意的数据值。这些值可以是常量值,也可以重复前面的数据样本值,以降低总线切换因子,从而降低功耗。

三、 LVDS 工作模式

        以下信息描述了AD9361在低电压差分信号(LVDS)模式下数据路径的操作。AD9361数据路径接口使用并行数据总线(P0和P1)在AD9361和BBP之间传输数据样本。在LVDS模式下,两个总线都与差分LVDS信令一起使用。AD9361 LVDS接口有助于连接到具有LVDS功能的自定义asic和fpga。当系统在有噪声的环境中需要更好的交换性能和比标准CMOS接口更高的数据速率时,通常会使用LVDS接口。

          双端全双工LVDS:

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

        I和Q数据样本在每个数据总线上进行时间交错的数据传输。对于1R1T系统,I和Q样本以4路交错携带:

                 IMSB,QMSB,ILSB,QLSB,…

        在这种情况下,Tx_FRAME和Rx_FRAME信号与数据切换一致。当启用50%占空比框架时,IMSB和QMSB分别处于高状态,ILSB和QLSB都处于低状态。然后,这些信号再次用IMSB调高,以指示新帧的开始。对于2R2T系统,射频路径1和2的I和Q样本以8路交错:

         I1 MSB、Q1 MSB、I1 LSB、Q1 LSB、I2 MSB、Q2 MSB、I2 LSB、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与数据交换一致,I1 MSB,Q1 MSB,I1 LSB,Q1 LSB,未使用插槽低。这些信号然后用I1MSB再次切换到较高的位置,以指示新帧的开始。未使用的X插槽可以由BBP填充任意的数据值。这些值可以是常量值,也可以重复前面的数据样本值,以降低总线切换因子,从而降低功耗。

四、 参考链接

AD9361 数据手册和产品信息 | 亚德诺(ADI)半导体

这篇关于AD9361 数据数字接口说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/333201

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十