AD2428W手册解读之事件控制 下

简介: AD2428W手册解读之事件控制 下

AD2428W手册解读之事件控制 下


3.6、A2B通信和位错误

A2B通信及误码如下:

               1、HDCNTERR ( A2B_INTTYPE = 0):SCF和SRF字段包含一个2位字段CNT。在SCF中,CNT字段从上一个超帧中使用的值取4模加1。在SRF中,SCF中CNT字段的接收值被传输回主节点。HDCNTERR表示当前节点检测到报头计数错误。对于主节点,这意味着同步响 应帧具有与预期不同的CNT值。对于从节点,这意味着同步控制帧与预期值不同。

               2、DDERR ( A2B_INTTYPE = 1):DDERR错误表示在A2B总线上差分曼彻斯特数据流中缺少时钟边缘。仅在特定节点正在使用的数据槽上报告数据解码错误。SCF/SRF中的数据解码错误会导致CRC误,并且不会引发数据解码错误。

               3、CRCERR ( A2B_INTTYPE = 2):CRCERR错误表示从节点在接收到的SCF字段中 检测到CRC错误。对于主节点,该错误表示接收到的SRF字段CRC错误。

               4、DPERR ( A2B_INTTYPE = 3):A2B总线上的数据槽由奇偶校验位保护。DPERR错 误只在特定节点使用的数据槽上报告。节点不检查刚刚通过它的槽位的奇偶校验。

               5、BECOVF ( A2B_INTTYPE = 4):A2B_BECCTL.THRESHLD字段配置误码数

(HDCNTERR、DDERR、CRCERR、DPERR和ICRCERR)在A2B_INTPND0之前计数。

BECOVF位已设置。如果不希望为每一个比特错误发送中断信号,这个阈值是有用的。阈值可以基于可接受的噪声和在特定时期内的鲁棒性来设置。应定期清除误码计数器。过多的误码设置A2B_INTPND0。BECOVF位和信号中断。误码阈值可以在主节点和从节点上独立设置。

               6、SRFERR ( A2B_INTTYPE = 5):SRFERR错误表示在本地定时窗口过期之前没有收到后面节点的SRF,受影响的节点生成自己的SRF,并将其上传到前面的节点。该错误对主节点和从节点都有效。

               7、SRFCRCERR ( A2B_INTTYPE = 6):SRFCRCERR 错误表示当前从节点在SRF字段检测到CRC错误。通常,当从节点检测到SRF中的CRC错误时,它会标记该节点的 SRFCRCERR错误位。从站不会试图纠正错误,而是按照原样向上传递SRF。但例外的是,在响应命令的情况下,从节点插入自己的SRF,包括CRC。在主节点中,CRCERR字段用于表示SRF中的CRC错误。

               8、 PWRERR ( A2B_INTTYPE = 9-15):PWRERR是来自DLPS(数字线路电源开关)块 的错误掩码位,LDO2在内部用于驱动DLPS块。

3.7、从中断处理

       本节描述主节点如何在内部处理从节点中断。当一个中断发生在一个从节点上时,下面的事件序列会响应:

               1、从机中断后,从机收发器的A2B_INTPND0、A2B_INTPND1和A2B_MBOX0STAT寄存器的相关位被设置。

               2、如果A2B_INTSTAT.IRQ位低,它就会被设置。然后将优先级最高的暂挂中断类型写入A2B_INTTYPE寄存器。

               3、从节点开始在SRF的中断域中发出IRQ信号。任何没有活动中断的上游从机都将此字段传递给上游。

               4、当主节点接收到一个具有有效CRC和IRQ字段的中断字段时,主节点设置它的A2B_INTSTAT.IRQ位,如果该位尚未设置。然后,主服务器用从服务器号更新A2B_INTSRC寄存器,并将A2B_INTTYPE寄存器设置为0x80。此时,主节点的IRQ引脚被驱动为活动的。

               5、主服务器自动从相应的从服务器读取A2B_INTTYPE寄存器,并更新它的

       A2B_INTTYPE寄存器。如果应用了一个新的结构(A2B_CONTROLNEWSTRCT设置在最近5个超级帧内),或者如果需要发送远程I2C停止命令。

               6、一旦读取A2B_INTTYPE,主机自动执行写入到适当的从机以清除中断。如果应用了 一个新的结构,或者需要发送远程I2C停止命令,则会延迟。此时,从站停止在SRF中发送中断信号。

               7、当主节点的IRQ引脚作为从节点中断的结果被断言时,主机处理器读取

A2B_INTSTAT和A2B_INTTYPE寄存器以确定中断类型并确定哪个从节点引发了中断。

       如果主机在步骤4之后,但在步骤5完成之前从主机读取A2B_INTTYPE,主机可能从A2B_INTTYPE读取0x80。如果从节点不退出总线,A2B_INTTYPE字段最终会更新。

       当主机读取A2B_INTTYPE = 0x80时,建议对A2B_INTTYPE寄存器进行额外的读取,以确认中断类型。如果一个从属机发出中断信号,然后从总线上掉下来(可能是由于交换机故障),下一个上游从属机在错过32帧srf后最终转换为最后一个从属机。此时,如果主节点(不是主处理器)仍然在内部尝试从丢失的从节点读取A2B_INTTYPE,最新的从节点会发送一个特殊的SRF,向主节点表明读取无法通过。这会导致A2B_INTTYPE被设置为0xFD,中断识别进程终止。由于错过的SRF超时是32超级帧(在此之后上游节点成为最后一个节点),错误类型0xFD是不可能的。

       换句话说,从机A2B_INTTYPE读错误(0xFD)发生在当主机试图根据接收到的中断从从机读取A2B_INTTYPE时,但是收到了上游从机的响应,表明从机现在是最后一个从机。A2B_INTTYPE = 0xFD和A2B_INTTYPE = 0x80之间的主要区别是,当主机仍然试图读取A2B_INTTYPE时,

A2B_INTTYPE = 0x80可以看到,因此它可能随后解析,而A2B_INTTYPE 0xFD无法解析。

       如果一个从站只是向主站报告一个中断,而在那之后没有任何附加的线路故障。如果在第4步之后,主机读取A2B_INTTYPE的速度过快,它会读取A2B_INTTYPE = 0x80,导致IRQ被清除。如果在从服务器更新寄存器值之前读取了A2B_INTTYPE寄存器,那么主服务器不会重新声明IRQ。

       如果主机读取A2B_INTSRC寄存器,那么在看到IRQ之后A2B_INTTYPE寄存器(这是推荐的),那么A2B_INTTYPE值是有效的(除非有行错误)。

       如果没有挂起中断的从站从总线的其余部分断开连接,上游从站将在32个连续的超级帧中生成SRFERR。

3.8、错误管理登记

       当A2B数据槽不能被正确接收(通过校验错误或数据解码错误检测槽中的任何位),该槽的最后一个良好样本被重复接收。A2B_ERRMGMT寄存器还控制在I2S/TDM接口上指示坏数据槽的三种方式。

       当设置A2B_ERRMGMT.ERRLSB位后,每个数据槽位的LSB表示该数据槽位是否正确接收。例如,在上行槽位大小为24位的主节点上,通过DTX0或DTX1发送的第24位数据有效时为低,无效时为高。这种方法改变了接收到的I2S/TDM数据字中LSB的含义。

       当设置A2B_ERRMGMT.ERRSIG位后,每个数据槽的LSB以下的所有位都用来表示该槽位是否被正确接收。当槽位大小为24位时,每个32周期的数据槽中,有效数据后8位为低,无效数据后8位为高。如果没有设置A2B_ERRMGMT.ERRSIG位,额外的8位总是低的。该方法保留了接收到的I2S/TDM数据字中LSB的含义,但数据字的大小必须小于数据通道的大小。数据通道宽度通常为32位,但也可以编程为16位。

       当设置A2B_ERRMGMT.ERRSLOT位后,A2B总线上生成的槽位数加1。在主节点中,协议引擎通常在每个超帧中将A2B_UPSLOTS写入帧缓冲区。从节点写入的槽位数通常为A2B_LDNSLOTS+ A2B_BCDNSLOTS。使用这种方法启用的附加数据槽被附加到配置的A2B通信量的末尾,并包含该超帧中前面每个数据槽的一个比特错误信息。多余槽位MSB表示数据槽位0出错。下一位表示数据槽1有错误,依此类推。例如,0x80000000表示0号槽位有错误,而0xffffff00表示0到23号槽位都有错误。如果设置A2B_I2SGCFG.TDMSS位为通道大小为16位,只有前16个数据通道可以被报告。如果A2B_I2SGCFG.TDMSS位设置为通道大小为32位,最多可报告32个数据通道的错误。

3.9、误码控制寄存器

       A2B_BECNT寄存器控制误码计数,包括2n的中断阈值,其中n的范围是1到8。它选择哪些通信错误进入计数器,以及在哪个计数器阈值产生中断请求。使用此特性,某些单比特通信错误不必产生中断,除非它们在A2B_BECNT寄存器最后一次清除时显著累积。

4、测试与调试

为了测试和调试,收发器允许使用A2B_RAISE和产生错误A2B_GENERR寄存器产生中断和误码。

4.1、A2B_RAISE

A2B_RAISE寄存器允许主机通过软件在系统的任何节点上产生中断。寄存器必须通过A2B总线写入,因为从本地I2C端口写入寄存器是无效的。

4.2、生成错误寄存器(A2B_GENERR)

1、0x01 报头计数错误(A2B_GENERR.GENHCERR)

              1)、当主节点产生报头计数错误时:

主节点仅为一帧改变SCF中的2位CNT字段。在随后的帧中,它发送正确的CNT字段。

因为每个从节点都接收到SCF,所以所有从节点都检测到(A2B_INTPND0.HDCNTERR)错误。

               2)、当从节点产生报头计数错误时:

从节点改变SRF中2位的CNT字段。一般情况下,从节点将接收到的来自下游从节点的SRF按原样传递。在这种情况下(因为从节点正在帧中接收对A2B_GENERR命令的写入),它已经用自己的SRF生成了一个响应,但是用了错误的CNT字段,正如命令所指出的那样。

虽然上游从节点收到了SRF,但不检查CNT字段是否正确。从节点只生成A2B_INTPND0.HDCNTERR检查SCF。因此,当从节点产生此错误时,只有主节点能检测到。

2、0x02 数据解码错误(A2B_GENERR.GENDDERR) 产生数据解码错误需要将曼彻斯特编码违例应用于数据槽,而不是应用于SCF和SRF字段。

               1)、当主节点产生数据解码错误时:

主节点诱导下游第一个数据槽(仅0号槽)出现曼彻斯特编码错误。它不会在任何其他数据槽上注入错误。由于节点仅在使用的数据槽上报告数据解码错误,所以只有使用槽0的从节点在主节点生成错误时检测到错误。当一个从节点通过(不消耗)下行数据时,它发送与它接收到的相同的位流,并且没有检测到错误。

               2)、当从节点产生数据解码错误时:

从节点在它贡献的第一个上游数据槽上诱导曼彻斯特编码错误,而不是在任何通过的数据槽上。如果从器贡献了一个以上的上游槽,它只在第一个槽上引起误差。从节点不会诱导下游数据的编码错误。

由于数据解码错误只在被消费的数据槽上报告,只有消费第一个贡献的upslot的上游节点检测到错误。如果上游从节点或主节点不使用第一个贡献的数据槽,那么它不会检测到错误。

3、0x04 CRC错误(A2B_GENERR.GENCRCERR)

1)、当主节点生成CRC错误时:

主节点导致SCF的CRC域仅对一帧产生误差。因为每个从节点都接收到SCF,所以 所有从节点都检测到CRC中的错误。

2)、当从节点生成CRC错误时:从节点仅对一帧的SRF的CRC域产生错误。因为所有的上游从节点都收到了SRF并检查了CRC,所以当任何下游从节点产生这个错误时,所有的上游从节点都检测到这个错误。从节点报告A2B_INTPND0.SRFCRCERR字段中的SRF CRC错误。但这些错误不被误码计数器计算。如果启用,主节点检测到错误为A2B_INTPND0.CRCERR和增加误码计数器。

4、0x08 数据奇偶校验错误(A2B_GENERR.GENDPERR)

1)、当主节点产生数据解码错误时:

主节点诱导下游第一个数据槽位(槽位0)的数据校验错误,不诱导其他数据槽位的数据校验错误。当主节点产生数据奇偶校验错误时,只有使用0号槽位的从节点会检测到它。没有消耗0号槽位的从节点不会检测到0号槽位。

2)、当从节点产生数据解码错误时:

从节点只在它贡献的第一个上游数据槽上诱发数据奇偶校验错误。它不会在超框架的下游部分引起误差。当从节点生成错误时,所有使用第一个贡献槽位的上游节点都将检测到它。如果上游从节点或主节点没有使用第一个贡献的数据槽位,它就不会检测到它。

5、0x10 中断帧CRC错误(A2B_GENERR.GENICRCERR)

               1)、主节点无法产生中断帧CRC错误。

               2)、当从节点产生中断帧CRC错误时,只有主节点能够检测到该错误。其他上游从节点不检查中断帧中的CRC。

5、惟一的ID

       每个收发器包含一个48位的唯一ID。通过A2B_CHIPID5寄存器读取A2B_CHIPID0以获得唯一的ID。如果读取唯一ID失败,会产生一个中断(A2B_INTTYPE = 0xFC),该唯一ID无法恢复。如果发生这种情况,请将收发器返回到模拟设备。

相关文章
|
6月前
|
数据安全/隐私保护
AD 入门
AD 入门
60 13
AD2428W手册解读之概述 下
AD2428W手册解读之概述 下
AD2428W手册解读之概述 下
|
安全 网络协议 虚拟化
安装和使用AD DS管理工具
安装和使用AD DS管理工具
378 0
|
传感器 资源调度 开发工具
AD2428W手册解读之概述 上
AD2428W手册解读之概述 上
AD2428W手册解读之概述 上
|
资源调度 芯片 数据格式
AD2428W手册解读之概述 中
AD2428W手册解读之概述 中
AD2428W手册解读之概述 中
|
芯片 块存储
AD2428W手册解读之操作与配置 中
AD2428W手册解读之操作与配置 中
AD2428W手册解读之操作与配置 中
|
存储 监控 索引
AD2428W手册解读之操作与配置 下
AD2428W手册解读之操作与配置 下
AD2428W手册解读之操作与配置 下
|
存储 编解码 监控
AD2428W手册解读之操作与配置 上
AD2428W手册解读之操作与配置 上
AD2428W手册解读之操作与配置 上
AD2428W手册解读之其他发现流程示例
AD2428W手册解读之其他发现流程示例
AD2428W手册解读之其他发现流程示例

热门文章

最新文章