SMBus和MLX90614的通信
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SMBus和MLX90614的通信
1 范围
信。
ML__-__-位ADC和DSP和SMBus出精度为0.14 °C SMBusSMBus
1 相关EVB__目录
1 范围1 相关Melexis产品............................................................................................................................................. ...1 2 通用SMBus 协议描述. (2)
2.1 术语定义............................................................................................................................................. ........2 2.2 SMBus 概述............................................................................................................................................. .......2 2.3 SMBus器件的电学参数.................................................................................................................................5 2.4 超时............................................................................................................................................. ................6 2.5 受控器件超时的定义和状态.....................................................................................................................6 2.6 主控器件超时的定义和状
DC 说明书 (7)
2.8 高压DC 说明书 (7)
3 比较I2C 总线和SMBus...................................................................................................................................
10 3.1 超时和时钟速度差异...............................................................................................................................10 3.2 DC 说明差异............................................................................................................................................. ....10 3.3 其它差异............................................................................................................................................. ......10 4 SMBus 与ML__的通信...........................................................................................................................12 4.1 概述............................................................................................................................................. ..............12 4.2 时序............................................................................................................................................. ..............12 4.3 详细的通信描述 (13)
5 睡眠模
...............25 6 ML__应用SMBus 的电学考虑...............................................................................................................26 7 结论............................................................................................................................................. .......................28 附录C SMBus应用微芯片MCC18编译器对PIC18的杰出性能. (29)
2 通用SMBus 协议描述
2.1 术语定义
ACK C 接收器的确认
Address Resolution Protocol C 地址解析协议,一种用于在总线对址被列举和分配为不冲突的受控地址。
ASSP C 专用标准产品Bus Master C 任何初始化SMBus Bus Slave C 被相关控制器驱动的目标LSb C 最低有效位
Master-receiver C 在Master-transmitter -在MSb C 最高有效位NACK C OD C 开漏
PEC C 包裹错误代码PP C 推挽式
Repeated Start C 重复START 是一种位于SMBus的START条件,用于在复合格式协议(如字节标明)切换写模式和读模式的开关。
重复START总是跟随于接收器确认信号后,并且它标明地址位已开始Slave-receiver C 受控接受器是在SMBus 处理过程中,正在从总线主控器接受数据,命令或其它数据的总线受控器件
Slave-transmitter C 受控发送器是在SMBus 处理过程中,应总线主
控器要求,正在从总线传送数据的总线受控器件
2.2 SMBus 概述
只有两个总线是必需的;一个串行数据线(SDA)和一个串行时钟线(SCL)。
每个连接到总线的器件都是被一个唯一地址和无时不在的主/从关系软件地址化的。
主控器可视为主控发送器和主控接收器。
多重控制总线包括冲突检测和仲裁以防止有两个或两个以上控制器同时初始数据传送时的数据冲突。
串行,8-位,双向数据传送可以达到100 千比特/秒。
系统管理总线(SMBus)是一个两线接口,通过其不同系统元件可以互相通信。
它是基于I2C协议工作原理之上的。
多重器件,包括总线主控器和总线受控器,连接到SMBus部分。
通常,总线主控器初始化它和单个总线受控器的数据传送并提供时钟信号。
在初始化总线建立期间,单个主控器同时可能和多个受控器通信是个例外。
总线受控器可以接受主控器传来的数据或提供给主控器数据。
在任何时间只有一个器件可以控制总线。
由于不止一个器件试图作为主控器控制总线,SMBus协议提供一种仲裁机制,其依赖于所有SMBus器件接口到SMBus的线与连接。
器件可以由总线VDD供电或是另一个电源Vbus供电。
(图.1)
VDD 可以为3 到和SCL 的,两个线都为高电平能。
SMBus断器平。
为了将逻辑“1”拉电阻或电流源上拉为高电平。
如涉及更大的总线电容时,会用到一种更精密的电路来限制下拉吸收电流,同时在低到高转换过程中提供足够的电流以保持规定的上升时间。
大电容下的SMBus系统(如线)RPU=1.5k (VDD=5V,__=3.3mA)是适合的,否则RPU=22k (VDD=5V,__=227A) 被用于满足SMBus低电压DC
规格要求(见低和高电压DC规格书)
SMBus 1.1版本说明书介绍包裹误差校验机制以提高通信的可靠性。
包裹误差校验是SMBus器件的可选项。
包裹误差校验,通过附加在每条转移信息后来执行。
PEC用一个8位周期的冗余校验每个读或写总线处理以计算一个包裹误差代码(PEC)。
PEC可以用任何遵循多项式C(x) = x8 + x2 + x1 + 1代表的CRC-8 计算得到并且根据接收位的次序计算。
PEC计算结果包括传送的所有字节,地址,命令和数据。
PEC计算结果不包括ACK, NACK, START, STOP 或是重复START 位。
这意味着PEC是由第一个START条件开始的整个信息计算而得到的。
对于CRC的计算,用以下步骤实现:SMBus情况下, 用到的多项式为:
X8 + X2 + X + 1。
多项式的宽度为8 (X的最高次幂代表宽度) 且可被描述为1 0000 0111。
由于多项式的宽度为8,我们将CRC方法看为CRC-8。
一条信息可用一串扩展为M=8尾部为8个0的字节流描述。
扩展的字节流信息可用多项式1 0000 0111设计,剩余部分是CRC-8校验字节。
图.2 展示了CRC 计算结果流程:
图.2
更多关于CRC计算参见下面的文档:
图.3 所示为SMBus处理的普遍结构
图.3: SMBus处理
2.3 SMBus器件的电学参数
注1: 主控器不可以以低于最小fSMB的频率驱动时钟。
进而,由于受到受控器周期时钟扩展的影响,工作时钟频率不可以减少至小于fSMB 的数值。
这个限制不适用于总线空闲状态,并且它是独立于tLOW: SEXT 和tLOW: MEXT限制的。
例如,如果SCL在tHIGH,MAX一直为高电平,时钟周期不可以大于1/fSMB,MIN C fHIGH,MAX。
这个要求不适合用于处理接受字节的低电平扩展SCL,数据缓冲等大于100us的非周期方式数据处理的器件。
注2: 当任何单个时钟低电平的间隔大于t__,MIN时,参与传送的器件可以中止传送进程并释放总线。
一旦主控器检测到这种状态,它必须在传送进程中的当前数据字节或是随后字节里产生一个终止状态。
器件检测到此状态必须重新建立通信并且能在不超过t__,MAX的时间内接受一个新的START状态。
典型器件实例包括主机控制器,嵌入控制器和一些控制SMBus的器件。
一些简单的器件不包括时钟低电平驱动电路;这些简单的器件可能在开始或终止状态后重启通信端口。
超时状态只有当器件被迫SCL低电平并保持或更长时间下才能确保。
注3: tHIGH,MAXtHIGH,MAX时假设总线是空闲的。
注4: tLOW:SEXT STOP状态。
另一受控器件或是主控器件在复合时钟低电平扩展时间大于t
注5: tLOW:MEXT START-到-ACK, ACK到-ACK,或ACK-
展时间大于
t
LOW:MEXT
件而测量的。
注6: tR = (VIL,MAX - 0.15) to (VtF = (VIH,MIN + 0.15)to (V
注意7: 在ML__ 模型的第一次版本里,此数值大于500ns
2.4 超时
超时测量间隔显示了超时间隔的定义为tLOW:SEXT和tLOW:MEXT.
图.5: 超时测量间隔
2.5 受控器件超时受控器件超时的定义和状态超时的定义和状态
t__,MIN 是当一个主控器或受控器得到一个有缺陷的器件正在无限保持时钟信号低电平或是主控器故意试图驱动器件离开总线结论时给定的参数。
强烈建议当受控器件监测到任何时钟保持低电平时间大于t__,MIN 时,该器件释放总线。
(停止驱动总线并让SCL和SDA悬浮为高电平) 器件监测到这一状态必须重新启动通信并在时间t__,MAX内能够接收一个新的START状态。
违背tLOW:SEXT的受控器件不遵循此规格。
允许主控器终止违背tLOW:SEXT 或t__,MIN规格的处理进程。
2.6 主控器件超时主控器件超时的定义和状态超时的定义和状态
tLOW: MEXT 被定义为累积时间期间允许主控器件在信息的一个字节扩展它的时钟周期:START to ACK ACK to ACK ACK to STOP 系统主机或许未违背tLOW:MEXT 除非是由于将自身时钟扩展扩展相结合引起的。
允许主控器终止违背tLOW:SEXT 或t这可以通过主控器分配给传送字节结尾的STOP状态
注意:在仲裁期间评测tLOW:SEXT平。
在器件需要对SMBus ARP上,
用驱动以支持未能完全满足__T,MIN, 并不会由于复
2.7 低压DC
如下表格给出SMBus压DC参数符号
参数
低压数据,时钟输入
高压数据,时钟输入
低压数据,时钟输出
流过上拉电阻或电流源的电注2 流
DD总线电压
注1: 不论是通电还是断电下,器件必须满足规格书的要求。
然而,作为SMBus主机的微控制器漏电流不可以比ILEAK大10 A 。
注2: __,MAX 主要由提供给可移动SMBus器件的最大值为1.1K等效串联电阻决定的,器件如智能电池。
同时要维持总线VOL,MAX的电压。
__ ILEAK __
最小值- - 100 最大值DD0.4 ±5 350 单位V A A
注释
因为相当低的上拉电流,系统工程师必须确保总线上的负载维持在可接受的范围内。
其次,为了保证总线负载,任何在断电情况下连接在总线上的器件(Vcc0),必须满足漏电流规格书。
2.8 高压DC 说明书
高压SMBus说明如下。
高压说明书提供必需的强度,例如,能使SMBus穿过PCI连接器,因此允许在PCI附加卡上的SMBus器件和系统
版上的其它器件或是同一系统里PCI附加卡上的不同器件进行通信。
这些高压电学说明书是除上所述低压说明书外的另一选择,并且在必要的环境中应用。
连接到低压或高压SMBus部分的未上电器件必须提供,不论是在器件内还是通过界面电路,SMBus备用电源的保护。
2.9 位传送
与SMBus说明书一致,先传送Msb。
SMBus用固定电压分别去定义总线的逻辑“0”和逻辑“1”。
SDA的数据在时钟为“高”时是稳定的。
数据只在SCL低时改变。
每次传送以START起始,并以STOP结束。
(图.6) 如果一个主控接收机涉及到处理进程中,它必须通过产生被受控器时钟化的NACK最后一
个字节来信号化受控发射机的数据尾部。
受控发射机必须释放数据线以允许主控器产生一个STOP状态。
3 比较I2C 总线和SMBus
I2C总线和SMBus 是较广泛的两-线式总线,两者本身不相上下。
一般器,可以在两个总线之间自由互换。
两个总线有地址化的受控器件。
(虽配有所不同)总线以相同的速度工作,为100kHz ,但是I2C总线有和频率下,两者是可以兼容的。
以下是他们之间比较大的区别。
3.1 超时和时钟速度差异
超时和(作为超时结果)最小时钟速度是I2C 总线= DC (无超时)
SMBus = 10kHz (35mS 超时超时是当SCL持续时间,受控器件重置它的界面。
用超时也指示着时钟的最小速度,SMBus有最小时钟速度规
格。
比较而言,I2C总线可以无限期地进入I2C总线, 主控器或是受控器可以保持必需的时钟低电平去处理数据。
在I2C总线, 将SCL或SDA锁于低电平,错误恢复是不可能的。
极少有受控器件实质上有能力去保SCL。
结果是,最常见的总线错误是受控器以SDA低电平结尾。
在I2C总线,主控器通过在SDA变为高时,时钟SCL在STOP后分配START的方法完成错误恢复。
相比I2C总线, SMBus受控器当SCL低电平时间超过35ms 时需要重新设置他们的界面。
SMBus指定tLOW: SEXT 为受控器件的累积时钟低电平扩展时间。
I2C没有类似的说明。
SMBus指定tLOW: MEXT 为主控器件的累计时钟低电平扩展时间。
I2C没有类似的说明。
3.2 DC 说明差异
I2C和SMBus可以在固定输入或是和VDD相关的输入下运行多个器件。
当有多个器件时,I2C定义VDD为5V,有+/- 10%的偏差,固定电压为1.5 和 3.0 V。
代替将总线输入关联为VDD, SMBus 将它们定义为固定的0.8和2.1 V。
SMBus的说明书允许总线在VDD为3到5V,+/- 10%的范围内工作。
I2C 指定最大的漏电流为10 A,而SMBus1.0版本指定最大的漏电流为1 uA。
为了减低测试SMBus器件的成本,1.1 版本指定漏电流为5 A。
I2C定义最大总线电容为400pF,SMBus 没有指定最大的总线电容。
取而代之的是它指定了低压DC规格最大__为350A,高压DC规格最小为4mA。
总线电容可在考虑最大上升时间和__计算得到。
底下表格给出了I2C总线和SMBus规格的总结。
表4
高IC 依赖IC 固定SMBus
低IC 依赖VDD
IC 固定SMBus
0.7*VDD 3.0V
2.1V 0.3*VDD 1.5V 0.8V
3.3 其它差异
ACK 和NACK 使用方法:
用NACK总线信号的区别如下:
在I2C, 受控接受机允许不确认受控地址,例如如果因为它在执
行实时的任务而不能接受。
SMBus 除过状态前产
4 SMBus 与ML__的通信
4.1 概述
ML__只被用作受控器件。
通常,主控器件通过受控器件地址选择传送数据。
ML__满足SMBus规格说明(参照上面SMBusML__有32x17 只读存储器。
不可能给RAM数目的RAM寄存器是客户感兴趣的(见表6)。
32x16 EEPROM置和芯片ID。
整个EEPROM可以通过SMBus兼容界面读取。
一的。
(可以进入到校准模式) 在对EEPROM写数据之前,先入0。
擦除和写入有相同的读取限制。
注意到EEPROM的配置。
(同样包括进入和退出睡眠模式) ASIC 会对老的SA作出反应直到退出POR。
如
果ML__
被SMBus请求状态。
SMBus请求优先于OD/PP位,它用于配引脚为开漏NMOS或推挽式CMOS。
例如,ML__ 会根据请求状态将配PWM 转换为开漏SMBus 。
下图展示了在PWM使能时,转换为SMBus的方法。
PWM 输出在EEPROM配置里可以是POR 默认的。
应用指南SMBus和ML__的通信
__-__1402 Rev 004
Page 13 of 32
Jan-2022年
据数。
位始开复重有没者后于在别区的示指读和读。
信通止停会它,后节字个一第在,的义意有是个有只中据数位,时要需果如,回返后据数位在。
令命读为似类为行意注图考参择选来位写读过通是写读。
址地的元单取存是意注
考参器存寄它其的
求请释注元单值大最值小最数参号符表数参的序时了定给表5 tREQ SMBus tsuac (MD) tsuac(SD) thdac(MD) thdac(SD) 2 0.5 1.5 1.5 0.5 1 2 2 1 msssss 6000x __ 001x __ 1111 0000__ 1111 1111 *: __ __: RAM Access EEPROM Access Read Flags Enter SLEEP mode/ ML__ 16
5
和
关有。
器存寄。
表的要重最了述描表
7
RAM
令命的用所信通
述描述描述描述描
表与了述描表
6
述描信通的细详述
描信通的细详述描信通的细详述描信通的细详
4.3
ML__
/
RAM
EEPROM
图序时体具( PEC . 3) MD 16 4
Fig.8:ML__
令命令命令命令命
ML__。
值数的器存寄置配在复恢,后之程过个这在。
图见的程流算计度温次一第的里元单,启重分部字数,后之在器波滤于决取间时迟延的外额个这。
性确正的果结量测次一第证保以间时迟延的外额有要需前之度温取读,后之在的义意无的义意无应反址地对会应反址地对会应反址地对会应
反址地对会0x00
对写读位意注对写读位意注何任意注何任意注何任意注何任意注*: __: 位位送发送发位位送发送发或送发器控主取读或送发器控主取读或送发器控主取读或送发器控主取读位送发须必器控主节字高据数取读位送发须必器控主节字高据数取读位送发须必器控主节字高据数取读位送发须必器控主节字高据数取读位送发须必器控主节字低据数取读位送发须必器控主节字低据数取读位送发须必器控主节字低据数取读位送发须必器控主节字低据数取读位写读址地控受送发位写读址地控受送发位写读址地控受送发位写读址地控受送发位位复重送发复重送发位位复重送发复重送发令命送发令命送发令命送发令命送发位写读位写读如例址地控受送发如例址地控受送发位写读位写读如例址地控受送发如例址地控受送发位位送发送发位位送发送发据数读为址地从例实码代假据数读为址地从例实码代假据数读为址地从例实码代假据数读为址地从例实码代假式格度幅和号符。
位号符是据数器感传如例的据数始原在)高(示指误错个一是的取读从里和(式格度温化性线在到升上从度温体物当到从会址地,如例位号符的在于由,份为分被据数取读。
取读过通能只器贮存RAM TOBJ1 - RAM MSb( START ( 0x00*)+\__ (0b000x___+ 0b0000_0111 - 0b0000_0111) START+\__ ( ACK ) ( ACK ) PEC ( ACK NACK) STOP: IR1 RAM SMBus 2 0x07h 0x27ADh 0x7FFF TOBJ1, TOBJ2 Ta) RAM MSb ) ( ) 0x07 (Tobj1) RAM -70.01° C
(Sn)(+382.19° C)
式格的的取读从。
受接和送发始开以都节字有所RAM MSb SMBusTobj2 0x08
址地址地址地址地
度温体物化性线度温体物化性线度温境环化性线据数器感传据数器感传据数器感传境环字名字名字名字名IR 2 IR 1
表
1. 2. 3. 4. 5. 6. 7. 8. 9.
__-__1402 Rev 004
)
7
POR
FIR IIR=100%
ML__\ ML__
Tobj1
TA
.11
(
POR
0x07
0x03
0x04
0x05
0x06
(hexadecimal)
Page 14 of 32
ML__ IIR
SMBus和ML__的通信
EEPROM
应用指南
2..0
Jan-2022年
见应用指南”理解ML__片上数字信号滤波器” 理解怎样计算延迟时间,登录网站
读取RAM 模块图表
EEPROM里SMBus读数的格式:
应用指南SMBus和ML__的通信
__-__1402 Rev 004
Page 18 of 32
表图块模Jan-2022年
EEPROM
取读
写入EEPROM的SMBus 格式
:清除EEPROM地址0x0E 的数据(SMBus 地址)
1. 发送START 位
2. 发送受控器地址(如0x00*) + 读\-写位__
3. 发送命令(0b001x___ + 0b0000_1110 - 0b0010_1110)
4. 发送低字
节数据0x00 5. 发送高字节数据0x00 6. 发送PEC 0x6F 7. 发送STOP 位
8. 等候5ms (需要这段时间去擦除单元数据)
对EEPROM地址0x0E 写入数据0x5A (SMBus 地址)
1. 发送START 位
2. 发送受控器地址(如0x00*) + 读\-写位__
3. 发送命令(0b001x___ + 0b0000_1110 - 0b0010_1110)
4. 发送低字节0x5A
5. 发送高字节0x00 (EEPROM 地址0x0E 的高字节没有意义)
6. 发送PEC 0xE1
7. 发送STOP 位
8. 等候5ms (需要这段时间去擦除单元数据)
9.切断/重启电源以重启ML__ (此后ML__ 会对新的受控地址0x5A作出反应)__
注意* : 任何ML__ 会对地址0x00 作反应注意__: Rd\-Wr 位对于ML__无意义
注意__: 将ML__ 切入/切出睡眠模式可以重新设置ML__。