ADRV9009 项目系统架构——手册介绍

2023-10-27

一、9009介绍

ADRV9009 是一款双通道 RF 发送器和接收器,带有一个观察接收器。 工作频率范围为 75 MHz 至 6 GHz 。该器件在其发射器上支持高达 450 MHz 的合成带宽。该设备的接收器部分既可以作为支持高达 200 MHz 带宽的双通道接收器运行,也可以作为支持高达 450 MHz 带宽的单通道观测接收器运行。接收器部分在时分双工 (TDD) 操作中在单通道和双通道模式之间切换,在接收器时隙期间使用双通道接收器模式,在收发器时隙中使用单通道观测接收器。单通道观测接收器可以选择 ORX1_IN+/ORX1_IN− 或 ORX2_IN+/ORX2_IN− RF 输入之一。数据传输是通过 8 个 JESD204B 专用高速接口通道完成的。有四个接口通道,每个通道用于传输发射机数据和主接收机/观测接收机数据。

串行外设接口 (SPI) 在设备和基带处理器 (BBP) 之间传输和接收控制信息。 所有软件控制均通过 SPI 进行通信。 这些设备包括一个控制接口,该接口利用 GPIO 线为设备提供硬件控制。 这些 GPIO 可以配置为为不同的应用场景提供专用的功能集。 一些 GPIO 用于数字控制,而其他 GPIO 由 3.3 V 模拟电源供电以控制外部模拟组件。 这些器件还包括一组四个低速辅助 ADC,可用于监控与系统操作相关的外部电压。
AD9528 是系统的理想选择,可用于 Analog Devices, Inc. 的评估平台,因为 AD9528 提供具有多个输出的两级 PLL,以及用于多个设备同步的集成 JESD204B SYSREF 发生器。

 二、系统软件架构

通用的软件架构和ADI评估板的软件架构如下图所示。文档只提供软件的架构和API函数的大概使用方法,具体细节在Taise.chm中阅读。

 源码文件夹结构如下图所示,开发人员可以根据需要将 API 组织到自定义文件夹组织中,开发者不得修改 API 源代码的内容。

/src/app/example 文件 :包含简单的应用层的例子,headless.c是主函数,即main()函数。可作为进一步开发的初始化设备的案例。talise_config.c 文件包含 API 使用的初始化和运行时数据结构,可以由TTES软件进行配置生成。

/src/devices/talise 文件夹:包含用于构建最终用户软件系统的高级函数原型、数据类型、宏和源代码。 除了可以修改 /talise/talise_user.c 文件外,严禁用户修改 /talise 文件夹中包含的文件,因为该代码由 Analog Devices 维护。talise_user.c 文件包含接收器增益表和用户可选择的定义宏,例如,TALISE_VERBOSE 模式,它启用和禁用某些 API 消息到日志。

/src/devices/adi_hal 文件夹:为开发人员提供了插入自定义平台硬件驱动程序代码以与 API 进行系统集成的方法。 adi_hal.c 文件中的函数原型不要更改,这一点很重要。 开发人员负责在每个 adi_hal.c 函数中实现代码,以确保为平台硬件调用正确的硬件驱动程序。 在 adi_hal.c 文件中提供的示例代码中,函数是调用 Xilinx® 硬件层函数、设备和资源的通用包装器Zynq®-7000 SoC ZC706 平台。 ADI 公司的 API 实现尝试保持 adi_hal.c 实现的通用性,以允许简化平台交换。

 /src/doc文件夹:打开Talise.chm文件,进入函数介绍网页,查看函数的具体细节。

API 由多个 .c 和 .h 文件组成。 API 的功能分为模块化部分,以帮助组织 API 功能。因为 API 是用 C 编写的,所以没有语言修饰符来将函数标识为私有或公共函数,这在面向对象的语言中是常​​见的。公共 API 函数由带有 TALISE_functionName() 的函数名表示。应用层可以自由使用任何带有 TALISE_ 命名的 API 函数。私有辅助函数缺少 TALISE_ 前缀。私有辅助函数无意为应用层添加任何价值。 API 中的大多数函数都以 TALISE_ 为前缀,供公众使用。其中许多函数从未直接从应用程序层调用。为此,大部分初始化和其他辅助函数都与顶层 talise.c/talise.h 文件分开,以帮助开发人员专注于应用层程序最常用和最广泛使用的函数。

三、硬件抽象层(HAL)

HAL 接口是收发器 API 在 API 必须访问目标平台硬件时使用的函数库。 HAL 由 adi_hal.h 定义; 但是,此接口的实现取决于平台,并由最终用户在 adi_hal.c 文件中实现。 该架构如图 2 所示。
HAL 是 API、宏和定义的集合,旨在使上层(库和应用程序)尽可能独立于平台。 本参考手册描述了这些 HAL 组件。 Analog Devices 源代码在 /device 文件夹中的 /adi_hal 文件夹下有一个子文件夹。 adi_hal.h 头文件详细介绍了 HAL 接口和功能。 adi_hal.c 提供了 ADI 平台特定的 ADI HAL (ADIHAL) 接口实现的详细信息。 adi_hal.c 文件可作为最终用户在为自定义平台开发 HAL 函数实现时使用的示例。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ADRV9009 项目系统架构——手册介绍 的相关文章

  • 独家专访BlockCity区块城市徐志翔:DAO是未来元宇宙的核心

    转载说明 最近随着ChatGPT的出圈 整个AIGC领域倍受关注 唱衰媒体人的声音也开始不绝于耳 但看到这样有质量的长文 我想也不是每个媒体人都将会被AI替代吧 本文来自前瞻 元宇宙观察 专栏记者采访 作者声明分享无版权限制 如下为全文内容
  • 基础算法题 —— 合唱队(最长递增子序列)

    题解 枚举每个位置左右侧分别所能站的做多人 自左向右递增 求每个位置左边最多可站多少人 含自己 dp1 自右向左递增 求每个位置右边最多可站多少人 含自己 dp2 选择第 i 个位置不移动的情况下 合唱队所能站的人数 dp1 i dp2 i
  • 学习文件day20--关于File

    java io File File的每一个实例用于表示硬盘上的一个文件或目录 实际上表示的是一个抽象路径 File可以 1 访问其表示的文件或目录的属性信息 名字 大小 修改时间等 2 操作文件或目录 创建 删除 3 访问一个目录中的所有子
  • Flutter之瀑布流效果——Flutter基础系列

    需求 相信android和ios的瀑布流效果大家都试过 网上有很多实现方法和开源库 今天我来为大家介绍一下如何在Flutter中实现瀑布流 整理一下方便以后学习 顺便分享给大家 一 生成二维码 1 导入依赖 在 pubspec yaml 中
  • R手册(Machine Learning)--mlr (Part 2)

    文章目录 Configuration 配置 Parallelization 并行 Imputation 插补 Feature Extraction 特征提取 1 Feature filtering 特征筛选 2 Feature select
  • 排序算法总结—时间复杂度O(n)—基数排序/计数排序小记

    排序算法总结 时间复杂度O n 基数排序 基数排序 分为最高位优先和最低位优先的算法 找到最大值max 求出max的位数 在max位数max length进行循环max length趟 对于每一位进行排序 对于一个数字要会从低位一位一位取值
  • Flutter导航返回拦截(WillPopScope)

    onWillPop是一个回调函数 当用户点击返回按钮时被调用 包括导航返回按钮及Android物理返回按钮 该回调需要返回一个Future对象 如果返回的Future最终值为false时 则当前路由不出栈 不会返回 最终值为true时 当前
  • 基于LSTM的股票时间序列预测(附数据集和代码)

    LSTM 数据集 实战 如果对LSTM原理不懂得小伙伴可以看博主下一篇博客 因为博主水平有限 结合其他文章尽量把原理写的清楚些 数据集 首先附上数据集 链接 https pan baidu com s 1AKsz ohmYHr9mBEEh7
  • 【Linux】套接字编程

    目录 1 网络初识 1 1 协议 1 2 OSI七层模型 1 3 TCP IP五层模型 2 socket 2 1 源IP和目的IP 2 2 端口号 2 3 端口号 和 进程ID 2 4 初识TCP UDP协议 2 5 网络字节序 3 soc
  • Windows Server2012 R2 卸载Apache 服务

    Windows Server2012 R2 卸载Apache 服务 步骤总结 1 打开cmd 命令控制台 运行services msc 在服务中找到并停止 Apache8015 服务 2 打开cmd 命令控制台 输入 sc delete 服
  • linux connect 设置连接超时【转】

    原来我们实现connect 超时基本上都使用unix网络编程一书的非阻塞方式 connect nonb 今天在网上看到一篇文章 觉得很有意思 转载如下 读Linux内核源码的时候偶然发现其connect的超时参数竟然和用SO SNDTIMO
  • 【HTML5高级第二篇】WebWorker多线程、EventSource事件推送、History历史操作

    文章目录 一 多线程 1 1 概述 1 2 体会多线程 1 3 多线程中数据传递和接收 二 事件推送 2 1 概述 2 2 onmessage 事件 三 history 一 多线程 1 1 概述 前端JS默认按照单线程去执行 一段时间内只能
  • VSCode怎么换主题(有图 超详细)

    上下键可预览
  • X86_64平台运行Arm docker容器

    QEMU是什么 QEMU是一个通用的开源的跨平台仿真模拟器 提供user和system两种模式 其模拟的作用可是可以模拟在特定的体系结构下的应用的执行或者构建 比如在x86的体系结构的操作系统上运行ARM的应用 常见问题的场景 在ARM体系
  • 第十四届蓝桥杯C++ B组 飞机降落

    目录 题目内容 题目分析以及算法复杂度 完整代码 题目内容 有 N架飞机准备降落到某个只有一条跑道的机场 其中第 i架飞机在 Ti时刻到达机场上空 到达时它的剩余油料还可以继续盘旋 Di 个单位时间 即它最早可以于 Ti时刻开始降落 最晚可
  • 协议篇之以太网ARP协议

    协议篇之以太网ARP协议 一 什么是ARP协议 作用是什么 二 ARP请求与ARP应答 三 以太网ARP数据报格式 四 总结 一 什么是ARP协议 作用是什么 ARP Address Resolution Protocol 地址解析协议 是
  • Spring Cloud中Hystrix仪表盘与Turbine集群监控

    Hystrix仪表盘 就像汽车的仪表盘实时显示汽车的各项数据一样 Hystrix仪表盘主要用来监控Hystrix的实时运行状态 通过它我们可以看到Hystrix的各项指标信息 从而快速发现系统中存在的问题进而解决它 OK 本文我们就来看看H

随机推荐

  • jeesite 框架的简单应用

    jeesite 框架的简单应用 一个讲解jeesite的网站 https www w3cschool cn jeesite jeesite官网 http jeesite com 公司项目都是基于jeesite做的项目 所以就找资料了解一下啦
  • 数据的6种排序方法

    今天讲了堆排序 就这以前学过的排序方法 我来做一个总结 1 选择排序 选择排序是比较基础的排序方法 需要两个循环 用于对每一个数进行查找和替换 不用多说 代码如下 span style color 000000 include span
  • 教育行业ChatGPT的新挑战

    随着科技不断发展 AI的水平越来越高 尤其是最近火出圈的ChatGPT不仅仅可以与人类对话 而且还可以为人们提供关于各种信息帮助 作为一个先进的 聊天 AI 无论是正苦恼 还是只是需要一些关于如何更有效地管理时间的建议 ChatGPT都可以
  • 【性能测试】loadrunner12.55教程(一)--知识准备

    目录 1 0 前言 1 1 性能测试术语介绍 1 1 1 响应时间 Response time 1 1 2 并发用户数 1 1 3 吞吐量 Throughput 1 1 4 吞吐率 Throughout 1 1 5 TPS Transact
  • c++ 笔记2

    c 笔记 1 转换函数 2 explicit与隐式转换 3 智能指针 4 仿函数 5 namespace 6 类模板 7 函数模板 8 成员模板 9 模板偏化 10 模板模板参数 11 可变数目模板参数 12 auto关键字和增强型for循
  • 前端校验用户输入的手机号或者座机号是否符合格式

    效果 输入的手机号 15878452358324 输入座机号 012 15845233223 代码 因为联系电话非必填项 所以在点击提交之前去校验的时候 如果填写了手机号或者座机号则去校验 没有填则新增 编辑同理 function subm
  • Android开源框架Universal-Image-Loader详解

    如果说评价一下哪个图片开源库最被广泛使用的话 我想应该可以说是Universal Image Loader 在主流的应用中如 果你随便去反编译几个 基本都能看到他的身影 它就像个图片加载守护者 默默的守护着图片加载 相信很多人对 这个异步加
  • 学习记录654@搞定python安装TA-Lib第三方库

    TA Lib是量化投资比较重要的一个包 用于生成技术指标 比如均线 MACD RSI等 安装还是遇到点小问题 首先我去 https pypi org project TA Lib 官方的第三方库网址倒找这个包 然后按照他的提示进行下载 是的
  • 造轮子实现RPC框架_01_MyRPCFramework简介

    项目简介 造轮子实现 MyRPCFramework 框架 RPC介绍 RPC是让客户端远程调用服务端方法 就像 调用本地方法一样简单的一种设计理念 一个最简单的 RPC 框架架构 技术要点 SPI 注册中心 Socket编程 享元模式 动态
  • pandas快速从一列中提取数字

    我有一个表格 里面的一列是文本 我向快速的提取其中的数字 可以这样 比如提取生命值 使用这种方式 df temp df life str extract d 这样就可以提取数字了 当然最笨的办法是一步一步操作 life num for i
  • 负载均衡笔记

    定义 负载均衡建立在现有网络结构之上 它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽 增加吞吐量 加强网络数据处理能力 提高网络的灵活性和可用性 负载均衡 Load Balance 其意思就是分摊到多个操作单元上进行执行 例如We
  • C语言 蓝桥杯 备战笔记——快速幂

    C语言 算法笔记 快速幂 1 取模 求余 1 1 数据溢出 1 2 判断奇偶 2 快速幂 2 1 分治法 2 2 快速幂 幂次 二进制 快速幂 1 取模 求余 1 1 数据溢出 计算2022 2022的后四位 include
  • Eclipse 编写c/c++程序与MinGW的配置

    1 MinGW安装 在windows环境下必须要先安装c 编译器 MinGW是一个比较好的选择 下载地址 http sourceforge net projects mingw source dlp 选择c 编译器 网速快的10分钟可以下载
  • Unity [hold on busy for 老长长时间的解决方法]

    Hold on busy for Projectbrowser repaint waiting for Unity s code in UnityEditor CoreModule dll to finish executing 如图 Un
  • Qt提升自定义控件,找不到头文件

    Qt提升自定义控件 找不到头文件 问题描述 我自定义了一个搜索控件SearchEdit 然后把一个普通的lineEdit提升为SearchEdit 编译的时候提示我找不到头文件 解决方案 去掉全局包含 只想解决问题的看到这应该就可以解决了
  • Ubuntu 18.04安装Samba服务器及配置

    1 更新当前软件 sudo apt get upgrade sudo apt get update sudo apt get dist upgrade 2 安装samba服务器 sudo apt get install samba samb
  • 测试开发工程师到底是做什么的?你真的知道吗

    目录 一二三线互联网公司对测试开发工程师的要求 测试开发工程师的具体职责 不要迷失方向 总结 测试开发工程师必看视频教程 一二三线互联网公司对测试开发工程师的要求 现在很多测试的同事对测试开发工程师的认识都有一定的误差 我最早在阿里的时候和
  • UniLM模型简单介绍

    目录 一 概要 二 深入扩展 2 1 预训练任务 2 2 模型精调 一 概要 如果将基于Transformer的双向语言模型 如BERT模型中的掩码语言模型 与单向的自回归语言模型 如BART模型的解码器 进行对比 可以发现 两者的区别主要
  • 华为OD机试 - 响应报文时间(Java)

    题目描述 IGMP 协议中 有一个字段称作最大响应时间 Max Response Time HOST收到查询报文 解折出 MaxResponsetime 字段后 需要在 0 MaxResponseTime 时间 s 内选取随机时间回应一个响
  • ADRV9009 项目系统架构——手册介绍

    一 9009介绍 ADRV9009 是一款双通道 RF 发送器和接收器 带有一个观察接收器 工作频率范围为 75 MHz 至 6 GHz 该器件在其发射器上支持高达 450 MHz 的合成带宽 该设备的接收器部分既可以作为支持高达 200