089-62441081

数字温度传感器系统接口:SPI、I2C、SMBus如何选2021-01-19 02:38

对于必须常常展开数据流传输的系统数据,SPI是选用,因为它享有较慢的时钟速率,速率可从几兆赫兹到几十兆赫兹。然而,对于系统管理活动,如加载温度传感器的读数和查找多个从器件的状态,或者必须多个主器件并存于同一系统总线上(系统校验常会拒绝这一点),或者面向低功耗应用于,这时I2C或SMBus将是选用模块。  图1:数字温度传感器修改框图  下面几部分将讲解每种串行总线及其优缺点。  1.SPI  SPI是一种四线制串行总线模块,居多/从结构,四条导线分别为串行时钟(SCLK)、主出从入(MOSI)、主入从出有(MISO)和从中选(SS)信号。主器件为时钟提供者,可发动读书从器件或写出从器件操作者。这时主器件将与一个从器件展开对话。当总线上不存在多个从器件时,要发动一次传输,主器件将把该从器件自由选择线纳较低,然后分别通过MOSI和MISO线启动数据发送到或接管。

数字温度传感器系统接口:SPI、I2C、SMBus如何选

  SPI时钟速度迅速,范围可从几兆赫兹到几十兆赫兹,且没系统支出。SPI在系统管理方面的缺点是缺少流控机制,无论主器件还是从器件皆不对消息展开证实,主器件无法告诉从器件否挤迫。因此,必需设计聪慧的软件机制来处置证实问题。同时,SPI也没多主器件协议,必需使用很简单的软件和外部逻辑来构建多主器件架构。每个从器件必须一个分开的从自由选择信号。总信号数最后为n+3个,其中n是总线上从器件的数量。因此,导线的数量将随减少的从器件的数量按比例快速增长。某种程度,在SPI总线上加到新的从器件也不方便。对于额外加到的每个从器件,都必须一条新的从器件自由选择线或解码逻辑。图2表明了典型的SPI读/写出周期。在地址或命令字节后面跟有一个读书/写位。数据通过MOSI信号载入从器件,通过MISO信号自从器件中朗读。图3表明了I2C总线/SMBus以及SPI的系统框图。  图2:SPI典型读书/写出周期  图3:(a)I2C总线/SMBus系统模块;(b)SPI系统模块  2.I2C总线  I2C是一种二线制串行总线模块,工作在主/从模式。二线通信信号分别为开漏SCL和SDA串行时钟和串行数据。主器件为时钟源。数据传输是双向的,其方向各不相同读书/写位的状态。每个从器件享有一个唯一的7或10位地址。主器件通过一个接续位发动一次传输,通过一个暂停位中止一次传输。接续位之后为唯一的从器件地址,再后为读/写位。  I2C总线速度为从0Hz到3.4MHz。它没SPI那样慢,但对于系统管理器件如温度传感器来说则十分理想。I2C不存在系统支出,这些支出还包括接续位/暂停位、证实位和从地址位,但它因此享有流控机制。主器件在已完成接管来自从器件的数据时总是发送到一个证实位,除非其打算中止传输。从器件在其接管来临自律器件的命令或数据时总是发送到一个证实位。当从器件并未准备好时,它可以维持或延伸时钟,直到其再度准备好号召。  I2C容许多个主器件工作在同一总线上。多个主器件可以精彩实时其时钟,因此所有主器件皆使用同一时钟展开传输。多个主器件可以通过数据仲裁检测哪一个主器件正在用于总线,从而防止数据毁坏。由于I2C总线只有两条导线,因此新的从器件只需终端总线才可,而需要可选逻辑。  3.SMBus  SMBus是一种二线制串行总线,1996年第一版规范开始商用。它大部分基于I2C总线规范。和I2C一样,SMBus不须要减少额外插槽,创立该总线主要是为了减少新的功能特性,但只工作在100kHz且专门面向智能电池管理应用于。

数字温度传感器系统接口:SPI、I2C、SMBus如何选

它工作在主/从模式:主器件获取时钟,在其发动一次传输时获取一个接续位,在其中止一次传输时获取一个暂停位;从器件享有一个唯一的7或10位从器件地址。  SMBus与I2C总线之间在时序特性上不存在一些差异。首先,SMBus必须一定数据维持时间,而I2C总线则就是指内部缩短数据维持时间。SMBus具备超时功能,因此当SCL太低而多达35ms时,从器件将废黜正在展开的通信。忽略,I2C使用硬件废黜。SMBus具备一种警报号召地址(ARA),因此当从器件产生一个中断时,它会立刻清理中断,而是仍然维持到其接到一个由主器件发送到的所含其地址的ARA为止。SMBus只工作在从10kHz到最低100kHz。低于工作频率10kHz是由SMBus超时功能要求的。  总结  SPI有较慢的速度,但是不能单主多从,管理线比较复杂。  I2C等速度比较慢,数据较为臃余,但是主从管理好,也省电省掌控管脚。