PS700 电池监控器 21760f_cn
PS700
3.4
SMBus/I2C 接口
3.4.2
SMBus 数据传输
PS700 支持双线制双向总线以及与基于 I2C接口的业界标准SMBus V1.1完全兼容的数据传输协议。该接口用来完成针对片内寄存器以及EEPROM的数据读写操作。器件响应同一SMBus从地址以实现对所有功能的访问。以下将简要介绍PS700中SMBus/I2C的操作实现过程。有关该业界标准接口的具体操作细节参见SMBus v1.1规范。用户可从SMBus实现者论坛网址下载该技术规范。
发送数据至SMBus的器件被定义为发送器而接收数据
的器件为接收器。对报文进行控制的器件被称为“主器件”。由主器件控制的器件为“从器件”。主器件对SMBus进行控制,负责产生串行时钟(SCL)、控制总线访问以及产生起始和停止条件。PS700 在两线制总线上作为从器件。器件通过开漏I/O 引脚SDA和 SCL与总线连接。
SMBus依据下面的总线协议进行工作:
数据传输只有当总线非忙时才可被启动。
数据传输过程中,当时钟线为高电平时,数据线必须保持稳定。时钟线为高电平时,数据线的电平变化将被解读为控制信号。SMBus技术规范对以下总线状态进行了定义:总线非忙: 数据和时钟线都保持高电平。
起始数据传输: 时钟线为高电平时,数据线的状态从高电平变化到低电平将被定义为一个起始条件。停止数据传输: 时钟线为高电平时,数据线从低电平到高电平的跳变将被定义为一个停止条件。
数据有效: 起始条件后,如果数据线状态保持稳定且持续时间等于时钟信号高电平时间,则数据线状态为有效数据。只有当时钟信号处于低电平时,才能对数据线上的数据进行改变。数据中每一位都对应一个时钟脉冲信号。每一数据的传输都由一个起始条件来启动并由一个停止条件来终止。起始条件和停止条件间的传输数据字节数由主器件决定,数目不限。信息以整字节传输,每一个接收器都将产生一个第九位接收确认信息。确认:任何被寻址的接收器件在接收完每一个字节后都将产生一个确认位。主器件应产生一个与确认位相关的额外时钟脉冲。
在确认时钟脉冲期间,进行确认的器件应将SDA线下拉为低电平,使确认时钟脉冲的高电平期间SDA线可保持稳定的低电平状态。当然,应考虑设置时间和保持时间。主器件对从器件数据线移出的最后一个字节不产生应答位,以向从器件表明数据结束。此时, 从器件让数据线保持其原有的高电平以使主器件能够产生停止条件。
3.4.1SMBus概述
SMBus 为双线多主总线,即允许一个以上具备总线控制能力的器件接入总线。主器件启动总线传输并提供时钟信号。从器件可接收主器件发送的数据或发送数据对主器件作出应答。
由于可能存在一个以上的器件试图作为主器件控制总线, 因此SMBus提供了基于 I2C的仲裁机制并依赖接入总线的所有SMBus器件进行“线与”连接解决这个问题。当两个或更多主器件试图将信息发送到总线时,如果其余器件产生“0”,则第一个产生 “1” 的器件将仲裁失败而失去对总线的控制。
仲裁期间的时钟信号是各SMBus主器件提供的时钟信号的“线与”组合。来自某个主器件的时钟信号只能通过时钟加宽的方法、或通过其它主器件才能被改变,且只能在总线仲裁期间被改变。除总线仲裁外,SMBus采
2
用时钟低扩展的IC方法来解决同一总线上器件速度不同的问题。
SMBus 版本1.1可在3 至 5伏±10%的电压下实现。 器
。件可采用总线VDD或自备电源供电(例如智能电池)
只要它们符合SMBus电气规范,即可实现无误的接入操作。
DS21760F_CN 第10页 2004 Microchip Technology Inc.