八,附录 A:其他发现流程示例

八,附录 A:其他发现流程示例

  • 八,附录 A:其他发现流程示例
    • 8.1 修改后的发现流程
    • 8.2 优化后的发现流程
    • 8.3 高级发现流程

八,附录 A:其他发现流程示例

以下部分提供了关于修改后的、优化后的和高级的发现流程的更多信息。任何软件流程图都可以作为发现和初始化的指南。

8.1 修改后的发现流程

在“修改后的发现流程”图中,所有从节点被发现并立即按顺序从从节点 0 到系统中最后一个可用的从节点依次进行初始化。 在所有节点被发现并编程后,不再需要总线管理。但是中断服务例程可用于对特殊事件做出反应(例如,来自诊断的中断请求(IRQ)事件)。IRQ 引脚可用于发出此类事件的信号。或者,可以轮询 A2B_INTTYPE 寄存器以监控中断事件。

在这里插入图片描述

8.2 优化后的发现流程

“优化后的发现流程”图展示了一种更加优化、快速的发现和初始化过程。甚至在一个节点被初始化之前,主机就尝试发现下一个节点。发现下一个节点的时间被用于初始化当前节点。这几乎将发现和初始化时间完全减少到锁相环(PLL)找到锁定所需的时间。中断服务例程用于避免重复轮询寄存器,减轻主机处理器的负担。

在所有节点被发现并初始化后,不再需要总线管理。中断服务例程可用于对特殊事件做出反应(例如,来自诊断的中断请求(IRQ)事件)。

流程图中的一个高级功能是节点 ID 的使用。节点 ID 允许主机根据存储在每个从节点的电可擦可编程只读存储器(EEPROM)中的 ID 查找寄存器设置。

在这里插入图片描述

8.3 高级发现流程

“高级发现流程”图展示了一种高级、快速的发现和初始化流程。甚至在一个节点被初始化之前,主机就尝试发现下一个节点。发现下一个节点的时间被用于初始化当前节点。这几乎将发现和初始化时间完全减少到锁相环(PLL)找到锁定所需的时间。一旦主节点和从节点 0 被初始化,同步数据交换就可以开始,而尚未被发现和初始化的下一个节点可以逐渐启动。使用中断服务例程以避免重复轮询寄存器,这减轻了主机处理器的负担。

此流程图中的另一个高级功能是节点 ID 的使用。节点 ID 允许主机根据存储在每个从节点的电可擦可编程只读存储器(EEPROM)中的 ID 查找寄存器设置。

随着每个新节点的加入,从节点会被重新配置以调整有效载荷量,从而优化带宽和功耗。即使并非所有节点都能被发现,在每次添加新节点时都能实现最佳的总线活动水平。

当主机试图在不事先知道系统中节点数量的情况下执行“自动发现”时,这尤其有利。A2B_DNSLOTS 和 A2B_UPSLOTS 寄存器值可以根据每个节点中的 A2B_BCDNSLOTS、A2B_LDNSLOTS 和 A2B_LUPSLOTS 信息进行计算。这可以是节点 ID 能力信息的一部分(例如,在每个从节点的 EEPROM 中),或者可以根据能力信息进行查找。

根据发现的节点数量在所有节点中更改 A2B_DNSLOTS 和 A2B_UPSLOTS 会对主节点的 I2S/TDM 接口产生影响。当添加提供或消耗同步数据的新节点时,通道分配会发生变化。

在总线完全被发现之前允许早期节点上的同步有效载荷操作可能是理想的,也可能不是。高级发现流程可以进行修改,以便同步音频操作仅在发现后开始(参见优化后的发现流程)。

在所有节点都被发现并初始化后,不再需要总线管理。中断服务例程可用于对特殊事件做出反应(例如,来自诊断的中断请求(IRQ)事件)。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/58610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实战:看懂并分析执行计划——Clustered Index Scan

这是 Clustered Index Scan 的执行计划详情,以下是对每一行的含义及其对查询性能的可能影响的解释。 Clustered Index Scan (Clustered) 解释 Physical Operation: Clustered Index Scan (Clustered) 物理操作,表明数据库引擎在整个聚集索引上进行扫描。Clustered Index Sc…

linux-find和zgrep

zgrep 命令本身并不支持递归搜索,它只能搜索单个压缩文件。但是,你可以结合使用 find 命令和 xargs 来实现递归搜索。下面是一个使用 find 和 xargs 来递归搜索所有 .gz 压缩文件中包含特定文本的例子: find /path/to/directory -type f -na…

C#核心(8) 静态成员

前言 先前我们已经学习了成员变量以及成员属性。 静态成员对于在整个应用程序中共享数据和功能非常有用。它们可以用于跟踪全局状态、共享常量和实现单例模式等。但是需要注意的是,过度使用静态成员可能导致代码变得难以维护和测试,因此应谨慎使用。其…

Jenkins声明式Pipeline流水线语法示例

系列文章目录 docker搭建Jenkins2.346.3版本及常用工具集成配置(ldap、maven、ansible、npm等) docker安装低版本的jenkins-2.346.3,在线安装对应版本插件失败的解决方法 文章目录 系列文章目录jenkins流水线基础1、pipeline1.1、什么是pipeline?1.2、为什么使用pi…

OceanBase中,如何解读 obdiag 收集的火焰图 【DBA早下班系列】

1. 前言 在之前的文章 遇到性能问题,如何给OceanBase“拍CT“(火焰图与扁鹊图)中,分享了obdiag 快速收集火焰图的方法,那么,紧接着的问题便是:收集到火焰图和扁鹊图之后,该如何解读…

网站架构知识之Ansible模块(day021)

1.Ansible模块 作用:通过ansible模块实现批量管理 2.command模块与shell模块 command模块是ansible默认的模块,适用于执行简单的命令,不支持特殊符号 案列01,批量获取主机名 ansible all -m command -a hostname all表示对主机清单所有组…

Browserslist 配置

Browserslist 是一个工具和规范,用于定义和共享支持的浏览器列表,以便在前端开发中管理不同工具的兼容性。这些工具可以包括 Babel、Autoprefixer、ESLint 等,它们都可以使用 Browserslist 提供的配置来确定应支持哪些浏览器及其版本。 主要…

短期电力负荷

🏡作者主页:点击! 🤖编程探索专栏:点击! ⏰️创作时间:2024年11月8日9点40分 论文发表 来自《IEEE Transactions on Smart Grid》2022年7月的13卷第4期,《IEEE Transactions on …

十四:java web(6)-- Spring Spring MVC

目录 Spring MVC 1.1 Spring MVC 概述 1.1.1 什么是 MVC 模式 1.1.2 Spring MVC 工作原理 1.2 Spring MVC 核心组件 1.2.1 DispatcherServlet 1.2.2 控制器(Controller) 1.2.3 请求映射(RequestMapping) 1.2.4 视图解析器…

redis与本地缓存

本地缓存是将数据存储在应用程序所在的本地内存中的缓存方式。既然,已经有了 Redis 可以实现分布式缓存了,为什么还需要本地缓存呢?接下来,我们一起来看。 为什么需要本地缓存? 尽管已经有 Redis 缓存了,但…

linux tigerVNC使用

简介 TigerVNC是VNC的一种高性能、平台中立实现(虚拟网络计算),一种客户端/服务器应用程序,允许用户启动远程图形应用程序并与之交互机器。TigerVNC提供运行所需的性能级别3D和视频应用程序,并尝试保持普通外观并尽可…

基于redis实现API接口访问次数限制

一,概述 日常开发中会有一个常见的需求,需要限制接口在单位时间内的访问次数,比如说某个免费的接口限制单个IP一分钟内只能访问5次。该怎么实现呢,通常大家都会想到用redis,确实通过redis可以实现这个功能&#xff0c…

uni-app小程序开发(1)

下载软件就不多赘述了。 直接上代码,写过wep端的vue看这个小程序就简单很多,不需要搞那么多麻烦事情,直接编译器就创建好了基础模版。 1、项目结构 暂时知道这么多,后续再补充 2、页面创建、导航栏设置、基础属性设置 在pages中…

【C++】哈希表封装 unordered_map 和 unordered_set 的实现过程

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与QueuePriori…

优化策略:揭秘钢条切割与饼干分发的算法艺术

引言 在生活中,钢条和饼干看似风马牛不相及,但它们的分割与分发却隐藏着惊人的数学魅力。如何最大化利润?如何用有限的资源最大程度满足需求?这便是算法世界中的艺术。今天,我们来揭秘钢条切割与饼干分发的算法设计。本…

SQL,力扣题目1709,访问日期之间最大的空档期

一、力扣链接 LeetCode_1709 二、题目描述 表: UserVisits ------------------- | Column Name | Type | ------------------- | user_id | int | | visit_date | date | ------------------- 该表没有主键,它可能有重复的行 该表包含用户访问…

第七篇: BigQuery中的复杂SQL查询

BigQuery中的复杂SQL查询 背景与目标 在数据分析中,我们通常需要从多个数据源中获取信息,以便进行深入的分析。这时,BigQuery提供的JOIN、UNION和子查询等复杂SQL语句非常实用。本文将以Google BigQuery的公共数据集为例,介绍如何…

【C++】条件变量condition_variable

文章目录 1. 条件变量定义及特点2. 代码示例3. wait方法4. wait_for方法5. notify_all和notify_one6. 思考 1. 条件变量定义及特点 条件变量 用于在线程之间协调共享资源的访问。它允许一个线程等待特定条件的满足(如某个值的变化),而另一个线程在条件满足时通知(或…

C++ 线程初始化编译报错

这是一个很简单的开启一个线程, 用于演示一个线程和生命周期之间的错误,但是还没有把这个错误暴露出来, 就遇见了一个编译问题. 线程中执行指定逻辑的代码 线程的执行方法, 声明写在了ThreadRun.h 实现写在 ThreadRun.cpp中. class ThreadRun { public: void func(); };void T…

SPIRE: Semantic Prompt-Driven Image Restoration 论文阅读笔记

这是一篇港科大学生在google research 实习期间发在ECCV2024的语义引导生成式修复的文章,港科大陈启峰也挂了名字。从首页图看效果确实很惊艳,尤其是第三行能用文本调控修复结果牌上的字。不过看起来更倾向于生成,对原图内容并不是很复原&…