车载A2B芯片AD2428 IIC功能介绍

news2024/11/13 9:28:15

车载A2B芯片AD2428 IIC功能介绍

  • 一,功能描述
  • 二,架构概念
    • 2.1 I2C接口
    • 2.2 I2C时钟拉伸
    • 2.3 收发器I2C接口
    • 2.4 收发器I2C访问延迟

一,功能描述

A2B收发器在节点之间的距离上连接多通道I2S(IC间声音)同步脉冲编码调制(PCM)数据(电缆长度在产品数据表中指定)。它还将I2S的同步、时分复用特性扩展到连接多个节点的系统,其中每个节点都可以消耗数据、提供数据或两者兼而有之。

A2B收发器通过多通道I2S/TDM接口与通用DSP、FPGA、ASIC、麦克风、ADC、DAC和编解码器直接接口,支持这些A2B功能。A2B总线链路上的数据是曼彻斯特编码的。收发器还完全支持A2B链路上的I2C通信。A2B收发器可用于从节点或主节点。默认情况下,收发器作为从收发器启动,但如果主机设置了A2B_CONTROL.MSTR位,则可以配置为主收发器。

具有四个节点的简化A2B系统图显示了一个简单的A2B系统示例。主机程序在每个节点中注册,以控制A2B总线上的数据流量。来自从属节点0和2的麦克风数据被传递到主机,从属节点1和2的扬声器数据从主机传递到DAC。

在这里插入图片描述

二,架构概念

以下部分提供了描述硬件块、接口和互连的信息。

2.1 I2C接口

I2C接口用于从本地连接的主机直接访问收发器寄存器空间,并通过A2B总线在主收发器和系统中任何发现的从节点之间远程交换I2C数据。该协议被称为远距离I2C,其中交换的I2C数据嵌入同步控制帧SCF(下游,从主设备到目标从设备)和同步响应帧SRF(上游,从目标从设备到主设备)中。

收发器中的I2C接口与高达5V的逻辑电平兼容,并具有以下功能:

  • A2B主节点中的仅从属操作
  • A2B从节点中的主、多主或从操作
  • 以100k或400k bits/s的速率运行,由A2B_I2CCFG.DATARATE位配置
  • 7位寻址
  • 时钟伸展

注意:主节点上的A2B主机必须支持I2C时钟扩展,以便与主节点连接收发器。

配置为主收发器的收发器识别两个I2C设备地址:

  • BASE_ADDR-用于通过I2C端口直接访问其寄存器空间
  • BUS_ADDR-用于使用I2C远距离协议通过A2B总线远程访问从节点寄存器和从节点I2C外围设备

I2C BASE_ADDR由通电复位时ADR2/IO2和ADR1/IO1引脚上的逻辑电平设置,从而为连接到同一I2C总线的多达四个主设备提供支持。7位设备地址的LSB决定了I2C数据交换是使用BASE_ADDR(位1=0)访问收发器,还是使用BUS_ADDR(位1=1)通过启用主控的收发器访问总线节点,如I2C地址表所述。
在这里插入图片描述
配置为从属的收发器无法识别BUS_ADDR。在从收发器上,I2C接口允许I2C主站和从站行为。当收发器通过A2B总线从主机接收远程I2C外围设备访问请求时,它作为I2C主机。然后,该从属收发器作为I2C主机将接收到的I2C事务转发到其A2B_CHIP寄存器中编程的I2C从属地址。当本地外部控制器通过I2C端口访问收发器寄存器(BASE_ADDR)时,它作为I2C从机。

注意:虽然本地外部控制器可以对从属收发器的寄存器空间进行编程,但远程主机必须通过A2B总线写入A2B_SWCTL、A2B_RESPCYCS、A2B_SLOTFMT、A2B_DATCTL、A2B_ RAISE和A2B_GENER寄存器。从本地I2C端口写入这些寄存器中的任何一个都不会对寄存器产生影响。

收发器上的I2C接口允许在PLL锁定之前进行寄存器编程。动作写入1(W1A)位(例如,A2B_CONTROL.ENDDSC和A2B_CONTROL.NEWSTRCT)在PLL锁定之前无效,因为协议引擎仍处于重置状态。

注意:在PLL锁定之前,A2B_SWCTL、A2B_SLOTFMT、A2B_DATCTL和A2B_DISCVRY寄存器不能写入主收发器。在PLL锁定建立之前对这些寄存器的写入无效。

警告:系统软件的设计必须避免从A2B主机(通过A2B总线)和本地处理器(通过I2C端口)同时写入同一从属寄存器。当发生写入争用时,两个写入都完成了,但它们完成的顺序是不可预测的。

2.2 I2C时钟拉伸

收发器使用I2C时钟扩展功能来确保I2C访问有足够的时间进行处理。它主要用于通过A2B总线对从节点收发器和从节点I2C外围设备进行主机I2C访问。时钟拉伸由主机在以下时间响应主机I2C访问而启动:

  • 在写访问期间——在每个数据字节后的确认位之前
  • 在读取访问期间——在读取请求后的确认位之前
  • 在多于一个字节的突发读/写访问期间——在后续数据字节的第一位之前

将SCL信号拉低向主机表明收发器需要更多时间来处理请求。一旦收发器准备好确认请求,它就会让SCL信号变高,这样主机就可以重新控制SCL,并继续进行确认(ACK)和下一个字节。

重要提示:在A2B系统设计中,主机(I2C主机)必须支持I2C时钟扩展。
当从节点中的外围设备延长I2C时钟时,SCL信号也会在主收发器和主机之间延长。如果外围设备在32个超帧的时间内没有释放SCL信号,则主设备会注册超时(A2B_INTPND2.I2CERR=1),释放SCL,并停止延长主机时钟。此超时可确保从属外围设备无法使主机的I2C接口永久停止。

2.3 收发器I2C接口

7位设备地址的LSB决定了I2C数据交换是使用BASE_ADDR(位1=0)访问收发器,还是使用BUS_ADDR(位1=1)通过主配置的收发器访问总线节点,如下表所示。
在这里插入图片描述

A2B收发器支持以下读写操作:

  • 单字写入操作——A2B主设备(I2C从设备)在第九个时钟脉冲期间通过将SDA拉低来发出确认,从而完成访问。
  • 突发模式写入序列——收发器在每个数据字节后自动递增寄存器地址指针,因此可以在不重新编程地址的情况下写入顺序数据寄存器。
  • 单字读取操作-第一个读/写(R/W)位为0,表示写入操作。这是因为仍然必须写入寄存器地址才能设置内部地址。在I2C从属设备确认收到寄存器地址后,I2C主设备必须发出重复的启动命令,然后是R/W位设置为1(读取)的芯片地址字节。这导致I2C数据线SDA反转方向并开始将数据驱动回I2C主设备。然后,I2C主设备每九个脉冲向从设备发送一个确认脉冲。
  • 突发模式读取序列-收发器在每次读取数据字节后自动递增寄存器地址指针,因此可以在不重新编程地址的情况下读取顺序数据寄存器。

通过I2C接口进行数据传输需要以下步骤:

  1. 数据传输由连接到A2B收发器的微控制器启动。
  2. 微控制器建立启动条件(SDA上的高到低转换,而SCL保持高),这表示地址/数据流随之而来。
  3. 在接下来的八个SCL周期中,A2B收发器从主机接收7位地址和R/W位(MSB优先)。
  4. A2B收发器识别所传输的地址,并在第九个时钟脉冲(确认位)期间通过将数据线拉低来做出响应。

R/W位决定数据的方向。当第一个字节的LSB被清除(=0)时,主机将信息写入主机。当第一个字节的LSB设置为(=1)时,主机从主机读取信息。数据传输一直持续到遇到停止条件(SDA从低转变为高,而SCL保持高)。寄存器地址指针自动递增,以支持主设备和从设备的突发模式I2C写入和突发模式I2C读取。

I2C格式图显示了以下I2C操作的格式:

  • 写入BASE_ADDR/BUS_ADDR可以包含一个或多个字节的数据。设备地址后的第一个字节设置设备中的寄存器地址。后续字节被写入寻址寄存器。由于地址指针在每次写入后递增,因此可以在单个事务中写入顺序寄存器。
  • 从BASE_ADDR/BUS_ADDR读取的数据可以包含一个或多个字节的数据。带有写指示的设备地址后面是设备中的寄存器地址和带有读访问指示的重复设备地址。
    在这里插入图片描述

重复设备地址后的第一个字节包含所寻址寄存器的值。设备地址后的第一个字节设置设备中的寄存器地址。它后面是重复的设备地址,但带有读取访问指示。后续字节包含自动递增的寄存器地址的值。
I2C写入时序图显示了I2C写入时序。
在这里插入图片描述

I2C读取时序图显示了I2C读取时序。
在这里插入图片描述

2.4 收发器I2C访问延迟

当通过A2B总线远距离访问远程收发器时,会产生延迟。I2C访问的总线延迟表中提供了不同类型I2C访问的A2B总线延迟。
在这里插入图片描述
在这里插入图片描述

例如,考虑正在写入远程外围设备(连接到从节点)寄存器的情况。在I2C访问延迟图中,I2C访问延迟用绿色箭头标记。
在这里插入图片描述

注意:I2C访问的总线延迟表中描述的延迟适用于没有冲突的访问。如果I2C消息没有立即得到确认,或者由于GPIO中断、线路故障中断、I2C问题(NACK)等更高优先级的事件而被推迟,则尝试执行消息交换之前产生的延迟不包括在表中提供的值中。

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

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

相关文章

Realize LIVE 2024 | 庭田科技参与2024西门子用户大会

7月24日至25日,西门子“2024大中华区Realize LIVE用户大会”在上海盛大开幕。作为西门子在工业软件领域的年度盛会,此次大会不仅是一场科技的盛宴,更是一次探索工业未来、推动行业数智化转型的深度对话。大会以“让数字转型立现真章”为主题&…

Sonar-Scanner: 静态代码分析的利器

Sonar-Scanner: 静态代码分析的利器 懂得享受生活的过程,人生才会更有乐趣。每个人都会遇到一些陷阱,每个人都有过去,有的甚至是失败的往事。过去的错误和耻辱只能说明过去,真正能代表人一生的,是他现在和将来的作为。…

EmoBench:评估大模型的情感智能

人工智能咨询培训老师叶梓 转载标明出处 情感智能是识别、理解和管理自己和他人的情感的能力,对于塑造人际关系、改善决策和影响整体福祉至关重要。尽管情感智能系统被认为具有相似的好处,但现有研究主要集中于情绪识别,忽视了情绪调节和通过…

传知代码-上下位关系自动检测方法(论文复现)

代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 概述 本文复现论文 Hearst patterns revisited: Automatic hypernym detection from large text corpora[1] 提出的文本中上位词检测方法。 在自然语言处理中,上下位关系(Is-a Relations…

单链表的应用(附代码)

链表 链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。其实链表可以想象为小火车,链表比顺序表具有更好的灵活性,只需要通过指针的改变就可以实现增删查改。 这是逻辑思维下链表的样…

使用TensorRT对YOLOv8模型进行加速推理

这里使用GitHub上shouxieai的 infer框架 对YOLOv8模型进行加速推理,操作过程如下所示: 1.配置环境,依赖项,包括: (1).CUDA: 11.8 (2).cuDNN: 8.7.0 (3).TensorRT: 8.5.3.1 (4).ONNX: 1.16.0 (5).OpenCV: 4.10.0 2.clon…

redis:Linux安装redis,redis常用的数据类型及相关命令

1. 什么是NoSQL nosql[not only sql]不仅仅是sql。所有非关系型数据库的统称。除去关系型数据库之外的都是非关系数据库。 1.1为什么使用NoSQL ​ NoSQL数据库相较于传统关系型数据库具有灵活性、可扩展性和高性能等优势,适合处理非结构化和半结构化数据&#xff0c…

服务运营|摘要:INFORMS 近期收益管理(Revenue Management )相关文章

编者按: 本期涵盖了INFORMS与收益管理相关的文章及其基本信息。 Title: Online Learning for Constrained Assortment Optimization Under Markov Chain Choice Model 基于马尔可夫链选择模型的约束下选品优化的在线学习 Link: https://pubsonline.informs.org/do…

召唤生命,阻止轻生——《生命门外》

本书的目的,就是阻止自杀!拉回那些深陷在这样的思维当中正在挣扎犹豫的人,提醒他们珍爱生命,让更多的人,尤其是年轻人从执迷不悟的犹豫徘徊中幡然醒悟,回归正常的生活。 网络上抱孩子跳桥轻生的母亲&#…

Linux中gdb调试器的使用

Linux调试器:gdb gdb简介基本使用和常见的指令断点相关运行相关命令 gdb简介 我们都知道一个程序一般有两个版本分别是debug,和release版本,后者就是发布给用户的版本,而前者就是我们程序员用来调试用的版本。 他们有什么区别呢&…

Docker搭建Mysql主从复制,最新,最详细

Docker搭建Mysql主从复制,最新,最详细 这次搭建Mysql主从复制的时候,遇到不少问题,所以本次重新记录一下,使用Docker搭建一主三从的Mysql 一、Docker-Compose创建4个Mysql容器 1.1 创建对应的映射文件夹和对应的配置…

GitLab的安装步骤与代码拉取上传操作

一、GitLab的安装 详情见如下博客链接:gitlab安装 二、GitLab配置ssh key (1)打开Git Bash终端生成SSH和添加步骤 1、全局配置git用户名 git config --global user.name "xxx"注意:xxx为你自己gitlab的名字 2、全局…

JavaScript递归菜单栏

HTML就一个div大框架 <div class"treemenu"></div> 重中之重的JavaScript部分他来啦&#xff01; 注释也很清楚哟家人们&#xff01; let data; let arr []; let cons;let xhr new XMLHttpRequest(); // 设置请求方式和请求地址 xhr.open(get, ./js…

Linux上如何分析进程内存分配,优化进程内存占用大小

云计算场景下,服务器上内存宝贵,只有尽可能让服务器上服务进程占用更少的内存,方才可以提供更多的内存给虚拟机,卖给云客户。 虚拟化三大件:libvirt、qemu、kvm内存开销不小,可以优化占用更少的内存。如何找到进程内存开销的地方直观重要,以qemu为例说明。 一、查看进…

别让不专业的HR逼走你的人才!人力资源管理应该遵循哪些原则?

优秀的HR能够带领整个人力资源部门为企业招揽人才、培养人才和留住人才&#xff0c;促使人才为企业的业务增长提供支持。而不专业的HR&#xff0c;不仅无法做到这些&#xff0c;还会把企业原有的人才逼走&#xff0c;因为不合适的人力管理也是导致人才离职的原因。所以&#xf…

【C++】前缀和算法专题

目录 介绍 【模版】一维前缀和 算法思路&#xff1a; 代码实现 【模版】二维前缀和 算法思路 代码实现 寻找数组中心的下标 算法思路 代码实现 总结 除自身以外数组的乘积 算法思路 代码实现 和为K的子数组 算法思路 代码实现 和可被整除的K的子数组 算法思…

C++ 操作Git仓库

代码 #include "common.h" #include "args.c" #include "common.c"enum index_mode {INDEX_NONE,INDEX_ADD };struct index_options {int dry_run;int verbose;git_repository* repo;enum index_mode mode;int add_update; };/* Forward declar…

Python零基础详细入门教程

Python零基础详细入门教程可以从以下几个方面展开&#xff0c;帮助初学者系统地学习Python编程&#xff1a; 一、Python基础入门 1. Python简介 Python的由来与发展&#xff1a;Python是一种广泛使用的高级编程语言&#xff0c;以其简洁的语法和强大的功能而受到开发者的喜爱…

2024第二十届中国国际粮油产品及设备技术展示交易会

2024第二十届中国国际粮油产品及设备技术展示交易会 时间&#xff1a;2024年11月15-17日 地点&#xff1a; 南昌绿地国际博览中心 展会介绍&#xff1a; 随着国家逐年加大对农业的投入&#xff0c;调整农业产业结构&#xff0c;提高农产品附加值&#xff0c;促进农民增收。…

CRMEB-众邦科技 使用笔记

1.启动项目报错 Unable to load authentication plugin ‘caching_sha2_password’. 参考&#xff1a;http://t.csdnimg.cn/5EqaE 解决办法&#xff1a;升级mysql驱动 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</ar…