在时钟的“高”时段稳定。只有当SCL低时,数据才能更改状态。每个
传输开始于起始位,结束于终止位(图5)。
图5 SMBus字节格式
当SCL为高时,起始位由SDA线的高到低转换定义。
停止位由SDA线的低到高转换定义,而SCL是高的。
每个字节由8位组成。总线上传输的每个字节后面都必须有一个应答
比特。与确认相关的时钟脉冲由主机(ACK时钟)生成。发射机,
主或从,在确认时钟周期期间释放SDA线路(高)。为了
确认一个字节,接收器必须在时钟的高周期内将SDA线拉低
脉冲符合SMBus定时规范。一个想要接收一个字节的接收器必须让
在确认时钟脉冲期间,SDA线路保持高电平。SMBus设备必须始终
确认(ACK)自己的地址。
SMBus从设备可以决定在下面的地址字节以外的字节进行NACK
情况:
从设备正忙于执行实时任务,或者请求的数据不可用。
检测到NACK条件时,主机必须生成停止条件以中止
转移。注意,作为替代方案,从设备可以延长时钟低周期
在规格范围内完成任务并继续转移。
从设备检测到无效命令或无效数据。在这种情况下,从设备
必须对接收到的字节进行NACK。主机在检测到这种情况时必须生成
停止条件并重试事务。如果主接收者参与了交易
必须通过在最后一个字节上生成NACK来向从发送器发送数据结束信号
那是奴隶打卡的。从发送器必须释放数据线以允许
生成停止条件的主机。
5个。I2C总线与SMBus的比较
I2C总线和SMBus是流行的2线总线,它们基本上与每个
其他。通常,主设备和从设备可以在两条总线之间自由交换。
两个总线都具有可寻址的从机(尽管特定的地址分配在
两个)。
总线以相同的速度运行,最高可达100khz,但I2C总线同时具有400khz和2mhz
版本。两条总线之间的完全兼容性仅在100 kHz以下得到保证。这是
探讨了I2C和SMB之间的显著差异。
SMBus与TSM的通信
5.1超时和时钟速度差异
超时和(由于超时)最小时钟速度是最重要的
I2C总线和SMBus之间的差异。
I2C总线=直流(无超时)
SMBus=10 kHz(>35毫秒超时)
超时是从设备在SCL变低超过
超时,通常为35毫秒。使用超时还规定了时钟的最低速度,因为它
永远不能静止。因此,SMBus具有最小时钟速度规范。相比之下
I2C总线可以无限期地静止。在I2C总线中,主或从可以将时钟保持在
只要有必要处理数据。在I2C总线中,如果从机锁定并保持SCL或SDA
低,错误恢复是不可能的。很少有从设备能够真正保存SCL。作为一个
结果,最常见的总线错误是从设备,这些设备最终处于SDA低的状态。
在I2C总线中,主机通过对SCL进行时钟控制,直到SDA高,然后
先开始后停止。与I2C总线不同,SMBus从设备需要重置
当SCL低于SMBus规范中指定的超时时间时,它们的接口
35毫秒。SMBus将tLOW:SEXT指定为从设备的累积时钟低扩展时间。
I2C没有类似的规格。SMBus指定tLOW:MEXT为累积时钟低
延长主设备的时间。同样,I2C没有类似的规格
5.2直流规范差异
I2C和SMBus都能够在具有固定输入电平的混合设备上运行
(如智能电池)或与VDD相关的输入电平。混合设备时,I2C规范
将VDD定义为5.0伏+/-10%,将固定输入电平定义为1.5伏和3.0伏。而不是
将总线输入电平与VDD相关联,SMBus将其定义为固定在0.8和2.1伏。这个
SMBus规范允许总线实现,VDD范围为3到5伏+/-10%。
I2C指定最大泄漏电流为10μA,而指定SMBus版本1.0
最大泄漏电流为1uA。SMBus规范的版本1.1缓解了泄漏
要求为5μA,以降低SMBu的测试成本要求为5μA,以降低SMBus设备的测试成本。
当I2C定义最大总线电容400 pF时,SMBus未指定最大总线
电容。相反,它在低功率直流规范中规定了最大电流为350μA,并且
大功率直流电规格至少4毫安。母线电容的计算可考虑
考虑最大上升时间和升程。
高I2C VDD依赖0.7*VDD
I2C固定3.0V
SMBus 2.1伏
低I2C VDD依赖0.3*VDD
I2C固定1.5V
SMBus 0.8伏
SMBus与TSM的通信
德克斯特研究中心•美国密歇根州德克斯特市休伦河大道7300号,邮编48130•电话:+1(734)426-3921©_
8675版本NC SMBus App Note.doc 2010年7月35日第14页
5.3其他差异
ACK和NACK用法:
使用NACK总线信令的区别如下:
在I2C中,允许从机接收器不承认从机地址,例如
无法接收,因为它正在执行一些实时任务。SMBus要求设备
始终确认自己的地址,作为检测可移动设备的
出现在总线上(电池、扩展底座等)。I2C指定从设备,
尽管它可能承认自己的地址,但在转让的一段时间后,它可能会决定
它无法接收更多的数据字节。I2C规定,设备可以指示
这是通过在接下来的第一个字节上生成not acknowledge来实现的。除了表示奴隶
设备忙,SMBus也在使用NACK机制来指示接收
指无效的命令或数据。因为这种情况可能发生在
传输,要求SMBus设备能够生成不确认
在每个字节的传输之后和事务完成之前。这很重要
因为SMBus不提供任何其他重发信号。
有关I2C和SMBus之间差异的更多信息,请访问:
http://www.maxim-ic.com/appnotes_frame.cfm/appnote_number/476
http://www.smbus.org/specs/
6。SMBus与TSM的通信
6.1概述
TSM只能用作从设备。一般来说,主机启动数据的启动
通过从机地址(SA)选择从机进行传输。SMBus上的每个TSM必须具有
唯一SA,在插入SMBus之前必须预先编程。德克斯特有TSM
评估工具包MD-0004,可用于将新的从机地址预编程到每个TSM。
TSM满足SMBus的所有定时规范(参考
上面的SMBus设备)。来自TSM的信息是通过其32 x 17 RAM位置获得的。这是不可能的
写入内存。它只能被读取,只有有限数量的RAM寄存器是
对客户的兴趣(见下表4)。RAM读数格式在更详细的描述中
以及在TSM数据表中。32 x 16 EEPROM可用于保持校准
数据、芯片配置和芯片标识。整个EEPROM可通过SMBus兼容
接口。一些EEPROM位置有写保护(可通过进入校准进行访问
模式)。在写入EEPROM之前,必须进行擦除。擦除只是将零写入
电可擦可编程只读存储器。擦除操作与写入操作具有相同的访问限制。
注意,EEPROM的变化将导致在POR之后重新配置TSM(还包括
进入和退出睡眠模式)。
例如,可以在EEPROM中更改从机地址,但TSM将响应旧SA
直到POR退出。如果TSM配置为PWM输出模式,SMBus请求条件为
需要。SMBus请求覆盖将SDA/PWM引脚配置为打开的OD/PP位
漏极NMOS或推拉CMOS。例如,为PP-PWM配置的TSM将切换到OD
SMBus请求条件下的SMBus。下图说明了切换到SMBus的方式
如果启用了脉宽调制。如果在EEPROM中配置,则可以将PWM输出作为POR默认值。
SMBus与TSM的通信
下图显示了如果启用了PWM(工厂编程),切换到SMBus的方式
TSM的POR默认值为SMBus,禁用PWM)。注意,SCL引脚需要保持在
命令使用脉宽调制。
图6从PWM模式切换到SMBus模式。
TSM的SMBus请求条件要求强制将SCL板降低的时间长于
请求时间树。在这种情况下,将忽略数据行值。一旦禁用了脉宽调制,它只能
通过关闭电源或退出睡眠模式启用。
6.2时间安排
TSM的SMBus中的特定计时是:SMBus请求(tREQ)是SCL应该
强制低,以便将TSM从PWM模式切换到SMBus模式;Tsuac(SD)是
SCL的第八个下降沿,TSM将强制PWM/SDA低,以确认最后收到的
字节。泰达 |