在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8437|回复: 6

[原创] I3C SDR 字数据

[复制链接]
发表于 2017-8-10 08:19:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

I3C SDR模式,数据字仅仅在长度上是相似的,都是9bitI3C SDR 数据字与I2C在三方面有很大的差异。

1.
ACKSDR Master 写数据的握手有差异:当执行SDR写时,从Slave地址头ACKMaster数据的首bit二者有差异。I2C使用的Open-Drain模式,所以重叠的ACK低电平和数据首bit并无太大问题。相反I3C是使用Push-Pull来传输数据,所有这一段握手协议有严格规定。

2.
SDR Master 的第9bit作为校验位:I2C中数据字的第9bitSlaveMaster的应答。相反,I3CMaster写的第9bit是前8bit数据的校验位。因此,I3CSDRMaster写的时候,Slave不应在第9bit驱动SDA线。SDR术语中,写入数据的第9bit称作T-Bit

地址头的ACKSDR Master的写数据

地址头的最后是一个或多个设备的Open-Drain ACK/NACK

l
如果地址是7’h7E,那么ACKBUS上所有I3C Slave

l
如果地址是特定Slave的,那么ACK是对应设备发来的

当地址头得到ACK,且消息是SDR Master写过来的,SDA线必须在传输第一个bit时从Open-Drain切换到Push-Pull模式。为了安全得转换,I3C SDR对此进行明确说明:

1.
I3C Slave 先保持SDA Low一段时间。

2.
I3C Slave收到SCL上升沿时候,将SDA线置为High-Z

3.
SCL上升沿后,I3C MasterSDA线驱动为Low。结果是,MasterSlave双方共同将SDA线拉低一段时间。SCL高电平时期可以取的很短。

4.
SCL下降沿,I3C Master开始将数据用Push-Pull驱动到SDA线上。

当地址头的收到NACK时候,Master可以:

1.
通过产生一个Repeated START继续传输

2.
产生一个STOP以重新引导总线

SDR Master数据字的第9bit校验

I3C Master数据字的第9bit 是数据的校验位,采用的计算方法为奇校验。校验位可以用于监测线上噪声带来的干扰。校验位的值为1同前8bitXOR结果。

校验位应在SCL的高电平期保持有效。由于T-Bit是数据字的最后一位,因此写的时候应在SCL高电平时期保持有效,当下一个SCL下降沿到来时根须需要再改变SDA的值,为产生Repeated STARTSTOP准备。

SDR Slave返回数据的第9位作为End-of-Data

I2C协议从Slave数倍读取数据时候有一个问题,只有Master才能终止数据的读取,Slave没有控制数据数量的权利。相反的,I3C SDR模式提供了Slave控制传输数据数量的能力;也同样允许I3C Master在必要的时候终止数据读出过程。

这一机制完全依赖于I3C Slave发来的SDR数据字的第9位。Slave以下述三种方式之一返回第9bit

1.
I3C Slave返回第9bit 0

a.
Slave应该在SCL下降沿时候将SDA设置为0

b.
在接下来的SCL上升沿Slave应将SDA设置为High-Z

c.
I3C Master应在SCL的上升沿驱动SDA为低电平,这样形成一段重叠

d.
接下来I3C Master应发送STOP或是RepeatedSTART

2.
I3C返回第9bit 1,意味着继续传输

a.
Slave应当在SCL的下降沿将SCL设置为高电平

b.
在接下来的SCL下降沿,Slave应当将SDA设置为High-Z,这样Bus便停在了SCL高电平状态

l
如果Master可以继续响应Slave,则不需要做任何事情,弱上拉电阻可以保持SDASCL高电平期保持高电平

l
如果I3C Master希望终止传输,则应当在SCL上升沿后将SDA拉低,这样就通过在总线上产生了一个Repeated START将消息传输终止了。I3C Master也在接下来的SCL下降沿接管了总线。Master应该SCL上升沿过后有足够的延时再拉低SDA以免竞争出现。为了达到这一延时,Master可能延长SCL高电平期。因为这是一个RepeatedSTARTMaster可能发送一个新的地址或是在下个周期发送STOP。但是在混合总线上,Master应该延长SCL低电平期,以保证任何I2C设备的低通滤波器能够被充分得泄放

3.
Slave应该在SCL的下降沿监测SDA的电平

l
如果SDA为高电平,则传输继续

l
如果SDA为低电平,则传输终止

 楼主| 发表于 2017-8-10 08:23:55 | 显示全部楼层
发表于 2017-10-21 22:25:50 | 显示全部楼层
学习学习
发表于 2017-11-6 16:20:40 | 显示全部楼层
没有原始spec。可惜。。。
发表于 2018-11-27 18:51:18 | 显示全部楼层
学习中。。。。
发表于 2019-7-20 23:51:01 | 显示全部楼层
论坛这个审核机制甚是烦人呀
发表于 2022-11-14 19:58:16 | 显示全部楼层
very good
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-4 16:11 , Processed in 0.019907 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表