I2S/PCM board-level 约束及同步(latencyskewbitsync)

news2025/1/20 5:45:11

I2S/PCM是典型的低速串口,在两个方向上分别有两组信号,我们已soc为视角分为soc-adif和外设audio-codec。

那么adif输入:

sclk_i,  ws_i, sdi

当然并不是三个输入信号同时有效,只有adif RX slave时,三个输入都会有效

adif输出:

sclk_o,  ws_o, sdo

也只有adif TX master时,三个输出才会有效。

下面要解释两个问题

1.TX master和RX slave时说明 adif与codec怎么完成的bitsync;

2.TX slave和RX master时说明 怎么保证RX输出的ws/fs sclk到了TX端产生sdo之后,再到RX端用ws/fs sclk能够正确采样

其实第一个问题对应的时信号间的skew;第二个问题对应的时信号传输的latency。

首先我们给出一些参数的量级:

adif和codec的寄存器setup和hold时间都在 几个ns

adif和codec的工作时钟都是sclk的十几到上百倍

sclk(bitclk采样时钟)最大十几MHz,所以sclk的周期在100ns量级 【所有音频采样率及采样深度请见另一文章 TODO

1.I2S/PCM 同步

        I2S/PCM自带帧同步信号,对于I2S来说ws的下降沿就是帧起始;对于PCM来说fs的上升沿就是帧起始。

        那么如何保证bit同步呢?不同于高速串行接口有复杂的bit同步电路,I2S/PCM的bit同步很简单,主要由以下几个机制来完成:

  1. 对信号组设置skew约束,skew都约束在5ns以下【见过约束为1ns,3ns的。这个skew阈值和工艺以及IO电压有关】约束包括soc端和codec端。-----见图1
  2. 用高频adifclk采样信号,并对信号进行adifclk打拍---调整相位
  3. sclk的上升沿改变信号,下降沿采样数据,这样有足够的采样窗口----见图4

        设T(sclk) ,T(fs) 和 T(sdo)分别是TX master时 从adif TX到芯片IO的延迟时间,或者Rx slave时从芯片IO到adif RX的延迟时间。

其中对于I2S这种需要输出sclk+控制信号+data的接口,通常会有以下的延时要求

T(sclk) <= T(fs) <= T(sdo)------这种约束的前提就是setup、hold、Tco远小于sclk周期

当然如果采用sclk上升沿改变信号,下降沿采样信号的处理下,上面的约束可以不用设置。

下面就以数据从adif TX 到芯片IO这一段来分析时序:

NOTE:下图源端信号中 fs和sdo都是在上升沿改变,且与上升沿的delay很小,这个delay就是寄存器的内部延迟Tco,是符合实际情况的。

                                                                         图 1

        上图中看出T(sclk), T(fs)和T(sdi) 差别较大,在源端三个信号的关系是 用sclk上升沿采样fs和sdo数据,其中sdo第一个数据‘1’与fs有一拍间隔;而在IO处,用sclk采样fs和sdo时,会发现fs和sdo第一笔数据差了两拍,明显出现了错误,所以尽量约束信号在传输过程中的skew,理想情况下,三根信号skew为0,必然在收端是可以正确采样的。

                                                                 图 2

        图2显示了上升沿变换,上升沿采样的情况下 T(fs)< T(sclk) < T(sdo)的情况,虽然三则之间skew不大【只要T(sclk)>T(fs)+Tco】,就出现了fs和sdo第一笔数据差了2各sclk的情况。

        其他不满足T(sclk) <= T(fs) <= T(sdo)的情况,也很容易出现时序错误,根因在于Tco太小,T(fs)和T(sdo)延迟小了就会被提前采样。

                                                                        图 3

图3就给出了T(sclk) <= T(fs) <= T(sdo)情况下的时序图,明显看出各信号都在正确的沿被采样。

                                                            图 4

图4给出了上升沿源端改变信号,芯片IO处用下降沿采样的时序图,T(fs) > T(sdo),但任然能够正确的采样数据。而且可以看到相对于下降沿,采样窗口左右两边都大了很多。

2.I2S/PCM的板间latency

        在TX slave 和Rx master的工作模式下,TX接收Rx输出的ws/fs和sclk信号并进行同步,这个同步的过程需要TX 两个adifclk时间,再加上沿检测只有变化后沿【即翻转后一个脉冲宽度的信号】又晚了一个adifclk,然后用ws/fs、sclk的变化后沿输出sdo,sdo经过板间延迟T(sdo),到达RX,而此时要用RX的ws/fs和sclk来正确采样sdo,这就要求3adifclk+T(sdo)不要超过一个sclk的周期,这个也可以画时序图来分析,这里不在赘述。

        在实际的项目中由于sclk在100ns量级,adifclk在10ns~0.xns的量级,T(sdo)也在几十ns【不确定】的范围,所以是很容易达到的,有些项目就没有对latency设置约束。

        如果sdo在RX master端和ws/fs间隔太远超过1个sclk,有没有设计上的手段来保证不影响音频接收?

        这时RX会检测到错误,比如sdata的bit数左右声道不一致,或整帧的bit数和配置值不一样。这时上报错误,然后控制Rx端的ws/fs向后delay n个sclk,直到软件检测不到错误。

 

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

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

相关文章

贷款公司精准获客,快速找到目标客户,直击获客高点!

目前&#xff0c;运营商的大数据技术正在逐步发展壮大&#xff0c;并已广泛应用于各个行业。运营商大数据市场有待发展的潜在行业发展趋势难以预料&#xff0c;整体能源规模达数万亿元。运营商大数据与三家网络运营商进行了深度战略合作&#xff0c;利用移动电信运营商的大数据…

使用coloc 进行 QTL 共定位Colocalization

GWAS找到显著信号位点后&#xff0c;需要解释显著信号位点如何影响表型。 常见的一个解释方法是共定位分析。 主流的共定位分析包括&#xff1a; 1&#xff09;GWAS和eQTL共定位&#xff1b; 2&#xff09;GWAS和sQTL共定位&#xff1b; 3&#xff09;GWAS和meQTL共定位&am…

上一个说软件测试简单的,已经被面试官问emo了···

现在已经过了 ”不会但我会学“ 就能感动面试官的时代&#xff0c;随着供需关系的变化&#xff0c;不论是对于面试官还是面试者&#xff0c;面试的成本越来越高。为了筛选到更优秀的程序员&#xff0c;面试官们可谓是绞尽了脑汁&#xff0c;”面试造火箭&#xff0c;工作拧螺丝…

PS丢失d3dcompiler_47.dll文件怎么办(附详细修复方法)

我们在安装PS等软件的时候&#xff0c;有可能安装完之后出现以下问题&#xff08;特别是win10或者win11系统&#xff09; 错误&#xff1a; 打开PS的时候出现这个错误&#xff1a;无法启动此程序&#xff0c;因为计算机中丢失D3DCOMPILER_47.dll。尝试重新安装该程序以解决此问…

03-微信小程序常用组件-视图容器组件

微信小程序组件-视图容器 文章目录 视图容器view 视图容器案例代码 swiper 滑块视图容器案例代码indicator-color 微信小程序包含了六大组件&#xff1a; 视图容器、 基础内容、 导航、 表单、 互动和 导航。这些组件可以通过WXML和WXSS进行布局和样式设置&#xff0c;从…

CFD特性FPmarkets澳福认为了解这11种足够了

CFD在交易中很重要&#xff0c;但CFD特性很多投资者不了解&#xff0c;FPmarkets澳福认为了解这11种足够了&#xff1a; 1. 投资者通过标的资产价格价值的变化获利&#xff0c;而不拥有标的资产。 2. 差价合约交易没有固定的到期日。 3. 与期货交易类似&#xff0c;差价合约交易…

海外问卷脚本机器人哪里哪里有?是真的吗?

大家好&#xff0c;我是橙河老师&#xff0c;今天讲一讲海外问卷项目能不能用脚本操作&#xff1f; 最近没怎么写文章&#xff0c;确实比较忙。我本人每天至少要面对5-10个客户咨询项目&#xff0c;每隔一段时间&#xff0c;都会有人问我&#xff1a;操作海外问卷有没有脚本&a…

文字点选验证码识别(上)-YOLO位置识别

声明 本文以教学为基准、本文提供的可操作性不得用于任何商业用途和违法违规场景。 本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任。 如有侵权,请联系我进行删除。 文章中没有代码,只有过程思路,请大家谨慎订阅。…

集简云简化流程模板,轻松实现工作流程自动化

集简云平台内置大量自动化流程模板&#xff0c;用户可以在“模板中心”搜索应用名称&#xff0c;选择适合自己的场景&#xff0c;直接使用。本期分享集简云自动化工作流程。 模板推荐 模板1&#xff1a;小鹅通新增订单后同步到seatable并更新微伴助手用户信息 集成应用&#…

redis 存储结构原理 1

关于 redis 相信大家都不陌生了&#xff0c;之前有从 0 -1 分享过 redis 的基本使用方式&#xff0c;用起来倒是都没有啥问题了&#xff0c;不过还是那句话&#xff0c;会应用之后&#xff0c;我们必须要究其原理&#xff0c;知其然知其所以然 今天我们来分享一下关于 redis 的…

【网络基础实战之路】VLAN技术在两个网段中的实际应用详解

系列文章传送门&#xff1a; 【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 【网络基础实战之路】基于…

Matplotlib数据可视化(五)

目录 1.绘制折线图 2.绘制散点图 3.绘制直方图 4.绘制饼图 5.绘制箱线图 1.绘制折线图 import matplotlib.pyplot as plt import numpy as np %matplotlib inline x np.arange(9) y np.sin(x) z np.cos(x) # marker数据点样式&#xff0c;linewidth线宽&#xff0c;li…

揭开区块链地址背后的故事,你需要知道的KYA

作者&#xff5c;Jason Jiang 在区块链世界中&#xff0c;除了交易还有另一个基础要素&#xff1a;地址。在欧科云链日前推出的Onchain AML合规技术方案&#xff0c;也有一个与区块链地址密切相关的概念&#xff1a;KYA&#xff08;Know Your Address&#xff0c;了解你的地址&…

[LitCTF 2023]Ping

因为直接ping会有弹窗。这里在火狐f12,然后f1选禁用javascript,然后ping 然后输入127.0.0.1;cat /flag 得到flag&#xff0c; 查看其他大佬的wp &#xff0c;这里还可以抓包。但是不知道为什么我这里的burp 用不了

数字化转型能带来哪些价值?_光点科技

随着科技的迅猛发展&#xff0c;数字化转型已成为企业和组织的一项重要战略。它不仅改变了商业模式和运营方式&#xff0c;还为各行各业带来了诸多新的机遇和价值。在这篇文章中&#xff0c;我们将探讨数字化转型所能带来的价值。 数字化转型能够显著提升效率和生产力。通过引入…

【React学习】React组件生命周期

1. 介绍 在 React 中&#xff0c;组件的生命周期是指组件从被创建到被销毁的整个过程。React框架提供了一系列生命周期方法&#xff0c;在不同的生命周期方法中&#xff0c;开发人员可以执行不同的操作&#xff0c;例如初始化状态、数据加载、渲染、更新等。一个组件的生命周期…

TCP中窗口和滑动窗口的含义以及流量控制

一.窗口 在TCP中由于要保证可靠性&#xff0c;所以每发送一条数据后&#xff0c;都需要接收方返回一条应答报文&#xff0c;要是我们每发送一条数据&#xff0c;发送方就等待接收应答报文&#xff0c;收到之后再去发送下一条数据&#xff0c;这样我们就会花费大量的时间在等待应…

数据结构-->栈

&#x1f495;休对故人思故国&#xff0c;且将新火试新茶&#xff0c;诗酒趁年华&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;详解链表OJ题 前言&#xff1a; 前面已经学习过顺序表&#xff0c;链表。他们都是线性表&#xff0c;今天要学习的栈也是一种线…

设计模式-观察者模式(观察者模式的需求衍变过程详解,关于监听的理解)

目录 前言概念你有过这样的问题吗&#xff1f; 详细介绍原理&#xff1a;应用场景&#xff1a; 实现方式&#xff1a;类图代码 问题回答监听&#xff0c;为什么叫监听&#xff0c;具体代码是哪观察者模式的需求衍变过程观察者是为什么是行为型 总结&#xff1a; 前言 在软件设计…

变道超车?中国首架电动垂直起降飞行器即将首飞,载人是亮点

根据御风未来的官方消息&#xff0c;他们的首架全国产电动垂直起降飞行器Matrix 1已经顺利完成了各项地面测试&#xff0c;并且即将迎来首次试飞。这款飞行器采用纯电能源&#xff0c;不需要跑道即可起降&#xff0c;并且具备智能化全自主飞行能力&#xff0c;无需飞行驾驶员操…