【AD9361 数字接口CMOS LVDSSPI】C 并行数据 LVDS
接上一部分,AD9361 数字接口CMOS &LVDS&SPI
目录
- 一、LVDS模式数据路径和时钟信号
- LVDS模式数据通路信号
- [1] DATA_CLK
- [2] FB_CLK
- [3] Rx_FRAME
- [4] Rx_D[5:0]
- [5] Tx_FRAME
- [6]Tx_D[5:0]
- [7] ENABLE
- [8] TXNRX系列
- 二、LVDS最大时钟速率和信号带宽
一、LVDS模式数据路径和时钟信号
LVDS MODE DATA PATH AND CLOCK SIGNALS
以下介绍AD9361数据路径在低压差分信号(LVDS)模式(ANSI-644)下的工作情况。AD9361数据通路接口使用并行数据总线(P0和P1)在AD9361和BBP之间传输采样数据。总线传输使用简单的硬件握手信号进行控制。在LVDS模式下,两条总线均遵循差分LVDS信号。
AD9361使用 LVDS接口方便的连接到具有LVDS接口的ASIC或FPGA。LVDS接口通常用于系统在嘈杂环境中需要卓越的开关性能以及比标准CMOS接口更高的数据速率的情况。使用LVDS模式时,建议将所有走线长度保持在不超过30厘米,并使差分走线紧密相连且长度相等。
LVDS模式数据通路信号
LVDS MODE DATA PATH SIGNALS
数据接口由以下信号组成。
[1] DATA_CLK
DATA_CLK是在AD9361中产生的差分LVDS信号,并作为Rx数据路径的主时钟提供给BBP。BBP使用此主时钟作为接口数据传输和采样数据基带处理的时序参考。DATA_CLK在接收操作期间为 Rx_D[5:0] 信号提供源同步时序和 DDR 操作。
SDR 在 LVDS 模式下不可用。
DATA_CLK频率取决于系统架构(射频通道数、过采样程度和带宽模式)。该频率通过SPI写入AD9361来设置。
AD9361可以在接口空闲期间停止DATA_CLK(响应来自BBP的SPI事务),以降低功耗。如果禁用DATA_CLK,则与非切换状态的转换必须符合电气层对干净信号转换的要求,并且AD9361必须始终驱动有效电平。
[2] FB_CLK
FB_CLK是由BBP驱动的差分LVDS信号,是DATA_CLK的反馈(回环)版本。 FB_CLK在Tx突发期间为Tx_D[5:0]信号提供源同步时序和双边沿捕获。
FB_CLK可在接口空闲期间由BBP停止,以降低功耗。如果是这样,则与非切换状态之间的转换必须遵守干净信号转换的电气层要求,并且必须始终由BBP驱动有效电平。
[3] Rx_FRAME
Rx_FRAME是由AD9361驱动并提供给BBP的差分LVDS信号,用于对AD9361提供的采样数据进行成帧。上升沿表示帧的开始。Rx_FRAME可以设置为突发开始时的单个高电平转换,并在整个突发过程中保持高电平,也可以设置为在每帧开始时具有上升沿的脉冲序列(50% 占空比)。
[4] Rx_D[5:0]
Rx_D[5:0] 是由 6 个差分对组成的差分 LVDS 数据总线。它通过接收到的数据从AD9361驱动至BBP。数据在该总线上以成对的数据字传输,以创建 12 位数据总线。
[5] Tx_FRAME
Tx_FRAME是由BBP驱动的差分LVDS信号,并提供给AD9361,以对BBP提供的采样数据进行成帧。上升沿表示帧的开始。Tx_FRAME可以接受突发开始时的单个高电平转换,该跳变在整个突发期间保持高电平,或者接受在每帧开始时具有上升沿的脉冲序列(50% 占空比)。
AD9361发送零数据(全部为零),直到第一个Tx_FRAME指示有效数据。当 Tx 路径在 FDD 独立模式下完成传输操作并且数据路径不会自动刷新时,这是一个有用的功能。在这种情况下,可以将TX_FRAME引脚保持低电平以完成数据刷新操作。有关详细信息,请参阅“启用状态机指南”部分。
请注意,Rx_FRAME 和 Tx_FRAME 都是接口正常运行所需的信号。
[6]Tx_D[5:0]
Tx_D[5:0]是由六个差分对组成的差分LVDS数据总线。它从BBP驱动至AD9361,数据通过发送器输出。数据在该总线上以成对的数据字传输,以创建 12 位数据总线。
[7] 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独立控制Rx功能,可以节省功耗。
[8] TXNRX系列
TXNRX从BBP驱动至AD9361,并在ENSM处于TDD模式时提供数据传输突发控制(以及ENABLE)。当AD9361对ENABLE进行高电平采样以启动突发时,也会对TXNRX上的电平进行采样以确定数据方向。在 TDD 模式下,TXNRX 采样高电平表示发送突发,TXNRX 采样低电平表示接收突发。
TXNRX信号电平必须在整个数据传输突发期间保持(有效的逻辑电平)。TXNRX信号可以在对ENABLE起始脉冲进行采样之前建立任意数量的周期(≥ 0),也可以在对ENABLE结束脉冲进行采样后更改任意数量的周期(≥ 0)。需要注意的是,TXNRX信号只有在ENSM处于ALERT状态时才应改变状态,因为TXNRX上升沿和下降沿直接在TDD模式下对相应的频率合成器进行上电和断电。
在正常FDD模式下,TXNRX信号被忽略,但必须保持在有效的逻辑电平。还有另一种FDD模式,在这种模式下,TXNRX信号可以重新定义为TxON,这是ENSM的直接硬件控制输入,用于控制Tx功能。在这种模式下(称为FDD独立控制模式),BBP独立控制Tx功能,从而节省功耗。
二、LVDS最大时钟速率和信号带宽
LVDS MAXIMUM CLOCK RATES AND SIGNAL BANDWIDTHS
下表列出的数据比较了LVDS数据总线配置在不同允许工作模式下的最大数据时钟速率和信号带宽。列出了两种情况下的最大射频带宽:使用避免混叠的最小采样率进行采样,以及使用 2× 过采样进行采样。每种模式的详细信息将在后续中给出。在LVDS模式下,最大DATA_CLK速率提高到245.76 MHz。该时钟和56 MHz最大模拟滤波器带宽限制了RF信道信号带宽。请注意,TDD 和 FDD 模式的数据总线时序是相同的,因为每条路径(发送和接收)都有一条专用总线。
参考源文件 :《UG-570 AD9361 Reference Manual 》
参考源文件 :《UG-671 AD9361 Register Map Reference Manual》
相关文章:

【AD9361 数字接口CMOS LVDSSPI】C 并行数据 LVDS
接上一部分,AD9361 数字接口CMOS &LVDS&SPI 目录 一、LVDS模式数据路径和时钟信号LVDS模式数据通路信号[1] DATA_CLK[2] FB_CLK[3] Rx_FRAME[4] Rx_D[5:0][5] Tx_FRAME[6]Tx_D[5:0][7] ENABLE[8] TXNRX系列 二、LVDS最大时钟速率和信…...

开关电源测试方案分享:电源纹波及噪声测试方法、测试标准
纹波及噪声影响着设备的性能和稳定性,是开关电源测试的重要环节。通过电源纹波噪声测试,检测电源纹波情况,从而提升开关电源的性能。纳米软件开关电源自动化测试软件助力纹波和噪声测试,提升测试效能。 开关电源纹波及噪声测试方法…...

git的使用——如何创建.gitignore文件,排除target、.idea文件夹的提交
前言 git作为开发人员必备的技能,需要熟练掌握,本篇博客记录一些git使用的场景,结合具体问题进行git使用的记录。以gitee的使用为例。 本篇博客介绍如何创建.gitignore文件,排除一些文件夹的提交,比如排除target、.i…...
react-antd组件 input输入框: 实现按回车搜索
目录 法1: 法2: 法1: 在Input组件上绑定onKeyUp方法 import { Input, message } from antd;class App extends React.Component{handeleSousuo () > {this.props.form.validateFields((error, values) > {if(!error){axios.post().t…...

python_PyQt5日周月K线纵向对齐显示_1_数据处理
目录 写在前面: 图形结果显示: 数据设计: 代码: 从日数据中计算周数据、月数据 生成图形显示需要的数据格式 写在前面: “PyQt5日周月K线纵向对齐显示”,将分三篇博文描述 1 数据处理。将数据处理成…...

leetcode经典面试150题---4.删除有序数组中的重复项II
目录 题目描述 前置知识 代码 方法一 双指针 思路 图解 实现 复杂度 题目描述 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间&…...

Transformer英语-法语机器翻译实例
依照Transformer结构来实例化编码器-解码器模型。在这里,指定Transformer编码器和解码器都是2层,都使用4头注意力。为了进行序列到序列的学习,我们在英语-法语机器翻译数据集上训练Transformer模型,如图11.2所示。 da…...

21.12 Python 实现网站服务器
Web服务器本质上是一个提供Web服务的应用程序,运行在服务器上,用于处理HTTP请求和响应。它接收来自客户端(通常是浏览器)的HTTP请求,根据请求的URL、参数等信息生成HTTP响应,并将响应返回给客户端ÿ…...
Leetcode.274 H 指数
题目链接 Leetcode.274 H 指数 mid 题目描述 给你一个整数数组 c i t a t i o n s citations citations ,其中 c i t a t i o n s [ i ] citations[i] citations[i] 表示研究者的第 i i i 篇论文被引用的次数。计算并返回该研究者的 h h h 指数。 根据维基百科…...
订单BOM放哪儿?(我的APS项目二)
供应商的小伙伴带来了一个全新的架构,在服务器提供的服务中,有一个对象模型服务,就是数据内存对象;这个方式确实是我在其它架构中没有见到过的。可惜,最初的版本,我们的订单BOM被设计到放在内存对象中。我对…...

从0到1之微信小程序快速入门(03)
目录 什么是生命周期函数 WXS脚本 编辑 与 JavaScript 不同 纯数据字段 组件生命周期 定义生命周期方法 代码示例 组件所在页面的生命周期 代码示例 插槽 什么是插槽 启用多插槽 编辑 定义多插槽 组件通信 组件间通信 监听事件 触发事件 获取组件实例 自…...
【面试高高手】—— docker面试题
文章目录 1. 什么是Docker?它有什么作用?2.Docker容器和虚拟机之间有什么区别?3.如何创建一个Docker容器?4.Docker镜像和容器的区别是什么?5.什么是Dockerfile?能够详细说明下吗?6.什么是Docker Compose&a…...

mac电脑怎么永久性彻底删除文件?
Mac老用户都知道在我们查看Mac内存时都会发现有一条“其他文件”占比非常高,它是Mac储存空间中的“其他”数据包含不可移除的移动资源,如,Siri 语音、字体、词典、钥匙串和 CloudKit 数据库、系统无法删除缓存的文件等。这些“其他文件”无用…...

MySQL(2):环境搭建
1.软件下载 软装去官网下载(社区版):https://downloads.mysql.com/archives/installer/(历史版本可选) 选择下面的,一步到位 2.软件安装 双击 .msi 文件 选完 Custom 自定义后点 next 按 1,…...

Android平台GB28181执法记录仪技术方案
技术背景 我们在做Android平台GB28181设备接入模块的时候,对接过好多开发者,他们都是用于执法记录仪场景,执法记录仪是一种便携式设备,用于记录执法人员的行动和接触情况,通过实时回传音视频数据和实时位置信息给指挥…...

【已解决】VSCode运行C#控制台乱码显示
问题描述 如上图所示,最近在学习C#突然发现我在运行Hello World的时候出现这样的乱码情况。 分析原因 主要是因为VS Code 是UTF-8的编码格式,而我们的PC是Unicode编码,所以我们需要对其进行一个统一即可解决问题。那么知道这个的问题那就开…...

MySQL扩展语句和约束条件
MySQL扩展语句 create TABLE if not exists ky32 (id int(4) zerofill primary key auto_inc rement, #表示该字段可以自增长,默认从1开始每条记录会自动递增1name varchar(10) not null,cradid int(10) not null unique key,hobby varchar (50))&#x…...
Java排序学习
int[] 数组排序 升序排序: Arrays.sort(num);降序排序: num IntStream.of(num) // 变为 IntStream.boxed() // 变为 Stream<Integer>.sorted(Comparator.reverseOrder()) // 按自然序相反排序.mapToInt(Integer::intValue) …...

《2023中国社交媒体平台指南》丨附下载_三叠云
✦ ✦✦ ✦✦ ✦✦ ✦ KAWO发布的《2023中国社交媒体平台指南》,对中国社交媒发展情况、八大社交媒体平台做出详细分析,为营销人员提供了布局社交媒体的实操性指南。 社交媒体八大趋势: 1.社交媒体搜索引擎化 除了社交媒体上发表的内容会被…...

【unity小技巧】unity排序问题的探究
文章目录 前言一、排序图层二、sorting Group的使用三、树木排序设计方法一 代码控制方法二 拆分图片方法三 透视排序1. 普通物品排序2. TileMap瓦片排序设计 完结 前言 unity的排序问题其实之前分享的项目多多少少都有提到一点,但是没有单独拿出来说,所…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
Oracle11g安装包
Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...