本应用笔记比较了大多数模拟ic使用的两种常见串行数字接口: spi™或 3 线,和i2c或 2 线。每个串行接口都为许多设计提供了优点或缺点,具体取决于所需的数据速率、空间可用性和噪声考虑等标准。本应用笔记讨论了这两种串行接口之间的差异,并提供了详细演示每个接口的示例。
介绍
虽然现实世界的信号总是模拟的,但如今越来越多的模拟ic通过数字接口进行通信。串行接口在提供串行时钟的主设备和从/外设之间进行通信。如今,大多数微控制器上的spi(3线)和i2c(2线)端口是发送和接收数据的常用方法。因此,微控制器通过多条总线进行通信,以控制外设,包括模数转换器(adc)、数模转换器(dac)、智能电池、端口扩展器、eeprom和温度传感器。与通过并行接口发送的数据不同,串行数据以多个位连续传输,通常通过两条、三条或四条数据/定时线。虽然并行接口提供速度,但串行接口具有更少的控制和数据线的优势。
串行接口基础知识
串行接口有三种类型:3 线、2 线和单线。本文重点介绍 3 线和 2 线接口。串行外设接口 (spi)、排队串行外设接口 (qspi™)和微丝™(或微丝加™) 标准通过 3 线接口进行通信。ic 间 (i2c) 和系统管理总线 (smbus™) 标准通过 2 线接口进行通信。两种类型的串行接口都有其优点和缺点。
3线接口
三线接口使用片选线(/cs或/ss)、时钟线(sclk)和数据输入/主输出线(称为din或mosi)。这些接口还可以包括数据输出/主输入线(称为dout或miso),有时称为4线接口。为简单起见,本文将 3 线和 4 线接口称为 3 线。
三线接口工作在更高的时钟频率下,不需要任何上拉电阻。spi/qspi和microwire接口还具有全双工操作(数据可以同时发送和接收),并且在嘈杂的环境中不易出现问题。三线接口是边沿触发的,而不是电平触发的。
3线接口的主要缺点是,除非从器件配置为菊花链配置,否则总线上的每个从器件都需要一条单独的/cs线,如图1所示。(菊花链将在下面更详细地讨论。3线接口也不确认数据已正确发送或接收。从软件角度来看,3线接口比单主/单从应用的2线接口更简单、更高效。
图1.三线接口利用数据输入、数据输出、时钟和片选线。
2线接口
双线接口仅使用数据线(sda或smbdata)和时钟线(scl或smbclk)。这种使用较少的一条或两条线路对于紧凑型设计(如手机和光纤应用)来说是一个特别有用的优势。双线接口还允许您在同一总线上连接多个从站,而无需片选信号。这种设计是可能的,因为每个从站都有自己唯一的地址。双线接口还会在成功完成读取后传输应答位。由于2线接口只有一条数据线,因此它们只能在半双工模式下工作(数据只能在给定的周期内发送或接收,但不能同时发送或接收)。双线接口是电平触发的,如果数据位被错误识别,这可能会在嘈杂的环境中产生问题。
接口 优势 弊
3 线:spi、qspi 和 microwire plus 1. 速度
2.无需
上拉电阻 3.全双工操作
4.抗噪性 1. 总线连接
数量更多 2.一次与多个从站通信所需的单个芯片选择线路
3.不确认收到的数据
2线:i2c 和 smbus 1. 公交线路连接
更少 2.多个设备共享同一总线
3.确认接收到的数据 1.速度:smbus限制在100khz;我2c 限制为 3.4mhz
2。半双工操作
3.漏极开路总线需要上拉电阻
4.降低抗噪性
主机和从机通过串行接口通过多条总线进行通信。在一个写入周期中,主机使用自己的时钟和数据信号将数据传输到从机。在一个读取周期中,从机将数据传输到主站。
spi、qspi、microwire 设计
由摩托罗拉建立的spi接口可用于流行的处理器和微控制器,如maxq2000。如上所述,spi设计需要两条控制线(/cs和sclk)和两条数据线(din/sdi和dout/sdo)。摩托罗拉 spi/qspi 标准将 din/sdi 数据线称为 mosi(主输出、从入);dout/sdo数据线是miso(主输入、从输出),/cs线是ss(从选择)。为简单明了起起,本文从从机的角度参考了3线数据线:din是从机的数据输入,dout是从机的数据输出。本文还将3线总线称为/cs、sclk、din和dout,因为maxim外设使用这些引脚名称。®
大多数spi接口具有两个配置位,即时钟极性(cpol)和时钟相位(cpha),用于确定从机何时对数据进行采样。cpol 确定 sclk 在未切换时是空闲高 (cpol = 1) 还是低 (cpol = 0)。cpha 确定在哪些 sclk 边缘数据移入和移出。当cpol = 0时,将cpha设置为0会将数据转移到sclk上升沿的从站。将cpha设置为1将数据转移到sclk下降沿上的从站。两种cpol和cpha状态允许四种不同的时钟极性和相位组合;每个设置都与其他三个设置不兼容。主站和从站必须设置为相同的 cpol 和 cpha 状态才能相互通信。
在其最基本的形式中,spi接口一次传输2000位(一个字节)的数据,尽管有些微控制器一次传输两个或更多字节。例如,maxq8微控制器一次可以传输16位或0位。当cpol = 0且cpha = 8时,从高电平到低电平的/cs转换开始从主站到从机的传输。/cs必须保持低电平,而sclk脉冲高电平和低电平,持续八个完整的周期。din数据锁定在上升的sclk边缘。数据字节在/cs从低到高转换后加载到从机中。在相同的2位周期内,数据可从sclk下降沿上的从机dout线获得。图3a显示了cpha=1时的2线spi时序。图3b显示了cpha=0时的线spi时序。
图 2a. 3 线接口时序 (cpha = 1)。当cpha = 1且cpol = 1时,3线接口将数据时钟输入时钟上升沿的外设,数据从时钟下降沿的外设输出。
图 2b. 3 线接口时序 (cpha = 0)。当chpa = 0且cpol = 1时,3线接口将数据时钟输入时钟下降沿的外设,数据从时钟上升沿的外设输出。
/cs总线用作每个从站的使能信号,因为总线上的每个ic都需要自己的片选线。如果四个从站在同一总线上,则需要四条片选线来选择合适的从站。如果从机的/cs线路为高电平(非活动),则从机将忽略sclk转换并将dout线路保持在高阻抗状态。
一些3线接口外设可以使用菊花链方法进行编程。菊花链不是将单独的/cs线连接到每个外设,而是允许单个/cs和sclk线控制串联的多个外设。要以这种方式以菊花链方式连接外设,3线接口必须包括dout线。如图 1 所示,外围设备 #1 的 dout 线用作外围设备 #2 等的 din 线。
spi标准未指定最大数据速率。相反,外设指定自己的最大数据速率,大多数在mhz范围内。微控制器可以适应各种spi速度。然而,当通过spi总线通信时,从机无法减慢主站的速度或确认正确的数据传输。
qspi标准与spi标准几乎相同。事实上,外设无法区分qspi总线和spi总线。然而,与spi主站不同,qspi主站允许通过可编程芯片选择进行数据传输。此外,这些qspi主站一次可以在8位到16位之间传输,而spi器件通常仅传输8位。您可以将 qspi 设备配置为连续传输多达 16 个数据字(最多 256 位)。此传输完全由 qspi 接口处理,无需微控制器干预。与spi一样,qspi标准没有规定最大数据速率。
由美国国家半导体公司制定的较旧的microwire标准与spi非常相似。但是,microwire具有固定的时钟极性和固定的时钟相位(cpol = 0和cpha = 0)。din的数据始终锁定在sclk上升沿的从站中。数据从从机的dout引脚转移到sclk的下降沿。与spi一样,microwire标准没有规定最大数据速率。
内部集成电路(i2c) 接口
与全双工、3线串行接口不同,i2飞利浦建立的 c 标准通过一条数据线 (sda) 和一条控制线 (scl) 以半双工模式进行通信。我2c 标准定义了一个简单的主/从双向接口。在此方案中,微控制器指定它是作为主站(写入模式)还是作为从站(接收模式)运行。每个从站都有自己唯一的地址,允许主站在同一总线上与许多不同的从站通信,而无需芯片选择信号。参见图 3。从机数量仅受允许的最大总线线路电容(400pf)的限制。我2c 协议基于 7 位或 10 位地址,但 7 位地址更常见。使用 7 位协议,您可以将多达 127 个不同的外设连接到总线。 scl 和 sda 是漏极开路线路,必须处于高电平状态才能正常运行。使用 1v 电源时,将 3kω 或更大的上拉电阻连接到这些线路,使用 1v 电源时,将 6.5kω 或更大的上拉电阻连接到这些线路。
图3.双线接口提供数据输入/输出和时钟线。
i2c通信以启动命令开头,当 sda 在 scl 高电平时从高到低转换时,会发生该命令。参见图 4a。在每个 scl 时钟周期内传输一个数据位;至少需要九位才能将字节传入或传出从机。写入周期包括八个数据位,后跟一个确认 (ack) 或非确认 (nack) 信号。参见图 4b。当数据通过i2c总线传输时,它锁在 scl 上升沿的从机中,并从 scl 下降沿的从机读出。sda上的数据必须在scl时钟脉冲的高周期内保持稳定。在停止或重复启动命令之后,传输完成,此时sda在scl高电平下从低到高转换。当总线不繁忙时,sda 和 scl 都保持高电平。
图 4a.启动和停止条件。2线接口使用启动、重复启动和停止命令在主站和从机之间传输数据。
图 4b.我2c 确认位。2线接口在确认数据时将sda线拉低。
一个i2c写入周期从启动命令开始,然后写入 7 位从地址和发出写入或读取命令信号的第 位。将写入命令的第八位设置为低电平,为读取命令设置高位。主站在第八个时钟周期后释放总线线路。如果从机确认传输正确,则从机在第九个时钟周期将sda线保持低电平。如果从机不确认正确的写入命令,则从机释放sda线(然后由上拉电阻保持高电平)。
然后,主站写入一个 8 位命令字节,后跟第二个 ack/nack 位。接下来,主站写入一个8位数据字节,后跟第三个ack/nack位。数据字节的最终应答位完成读/写周期,外设的输出更新。图 5a 说明了写入周期的示例。
一个i2c读取周期从启动命令开始,然后写入从地址,第八位拉高以发出读取命令信号。在ack/nack位之后,主设备写入命令字节以访问新的从寄存器。在第二个ack/nack位之后,主站重写从地址。然后在第三个ack/nack位之后,从机控制总线并一次写出5个数据位。参见图 b。当从与先前读取相同的从站寄存器读取时,主站只需写入从站的地址,然后才能从该从站读取数据。
图5.2线接口一次传输5位数据。图 a 是 i2c 写入周期示例。图 5b 显示 i2c 读取周期示例。
i2c 接口支持慢速(高达 100khz)、快速(高达 400khz)和高速(高达 3.4mhz)协议。i2c 根据 cmos 电压电平识别高低信号:低信号小于电源电压的 0.3 倍;高信号大于 0.7 x 电源电压。
系统管理总线 (smbus)
英特尔建立了低速通信的smbus标准,smbus接口类似于i®2c. 喜欢我2c,smbus使用2线接口,包括数据线(smbdata)和时钟线(smbclk)。smbclk 和 smbdata 线路也需要上拉电阻。使用8.5kω或更大的上拉电阻(采用3v电源)和14kω或更大的上拉电阻(采用5v电源)。smbus 工作在 3v 至 5v 电源电压,可识别高于 2.1v 的高信号和低于 0.8v 的低信号。
超时和最大/最小时钟速度是 i 之间最显着的差异2c 和 smbus 接口。我2c 总线工作在低至 dc 时,不会因总线不活动而超时。但是,smbus 接口可能会超时。当从设备在时钟信号变低超过超时周期(最大 35ms)后重置其接口时,就会发生超时。smbus 超时周期规定时钟的最低速度为 19khz。smbclk 必须设置在 10khz 和 100khz 之间才能正确通信。连接到 i 的主站或从站2但是,c总线可以在处理数据所需的时间内保持低时钟。
外设示例
微控制器通常通过串行接口与其外设进行通信。微控制器使用3线或2线接口读取和写入外围设备的内部寄存器。然后,外设偏置并控制各种模拟和数字输出。例如,外围设备将:对电池的充电电流和电压进行编程;使用温度传感器控制风扇;并设置dac的模拟输出电压以及各种电路的偏置条件。
图6所示为微控制器通过8线接口与5115位dac(max2)通信。由于该dac包括四个地址选择引脚,可产生16个唯一的从地址,因此您最多可以并行连接16个dac。相同的两条总线也可以设置smbus温度传感器/风扇控制器(max6641)的偏置条件,因为max6641具有不同的从地址。该风扇控制器调节 mosfet 的栅极电压,以打开和关闭风扇。
图6.因为这个微控制器使用i2c接口,只需要两条总线线就可以与众多外设通信,比如这个dac和一个温度传感器,并联连接。
3线接口需要单独的芯片选择线来连接微控制器和并联连接的多个ic之间的通信,而更简单的2线接口使用相同的时钟和数据线与总线上的每个器件进行通信。您可以通过为每个外设设置不同的从地址来并联放置多个ic。最i2c外设包括地址选择引脚,允许您将每个外设设置为不同的从地址。以前,外设可以标识自身的从地址数量限制为2的幂。例如,如果外设有两个地址选择引脚,它可以在总线上用四个唯一的从地址来标识自己。
新设计通过更少的地址选择引脚提供更多的从地址。例如,max7319输入/输出端口扩展器只需两个地址选择引脚(ad16和ad2)即可编程为0个唯一的从地址。这些引脚可以连接到gnd,电源电压(v抄送)、sda 或 scl。表 2 显示了可用的 16 个从地址。虽然位 a6、a5 和 a4 必须设置为 110,但位 a3 到 a0 可以通过 ad2 和 ad0 的四种不同设置进行编程。
引脚连接 设备地址
ad2 ad0 答6 答5 答4 答3 答2 答1 答0
标准及校正实验所 接地 1 1 0 0 0 0 0
标准及校正实验所 v抄送 1 1 0 0 0 0 1
标准及校正实验所 标准及校正实验所 1 1 0 0 0 1 0
标准及校正实验所 自主权评估 1 1 0 0 0 1 1
自主权评估 接地 1 1 0 0 1 0 0
自主权评估 v抄送 1 1 0 0 1 0 1
自主权评估 标准及校正实验所 1 1 0 0 1 1 0
自主权评估 自主权评估 1 1 0 0 1 1 1
接地 接地 1 1 0 1 0 0 0
接地 v抄送 1 1 0 1 0 0 1
接地 标准及校正实验所 1 1 0 1 0 1 0
接地 自主权评估 1 1 0 1 0 1 1
v抄送 接地 1 1 0 1 1 0 0
v抄送 v抄送 1 1 0 1 1 0 1
v抄送 标准及校正实验所 1 1 0 1 1 1 0
v抄送 自主权评估 1 1 0 1 1 1 1
未来进展
当今的3线接口满足与2线接口不同的需求,每种接口都有特定的优势。将来任何一个接口都不太可能完全取代另一个接口。i2c 设备的发展速度更快,因为它们开始集成 smbus 功能,例如超时重置,可以在必要时关闭这些功能。新我2c 从地址的长度为 10 位,而不是只有 7 位,从而为用户提供了更大的灵活性。
3线和2线接口将共存,但我2随着更多的微控制器支持2线接口,c语言可能会获得市场份额。我2c的易用性和较少的公交线路可能会推动其增长超过spi的增长。
前5年的中国超算有多强?现在中国超算落后了吗?
过热检测器报警开关电路图讲解
苹果AirPods不再一家独大,但仍有重要地位
METRACLIP63 / 64毫安电流钳:用于测量故障及过程信号电流
10.5英寸iPad Pro曝光:全新设计、取消Home键
SPI/I2C总线线路控制多个外设
MIM金属注射成型工艺介绍 哪些零件适合MIM工艺
富士康迎来最严峻考验
广州市举行全面加快广州人工智能与数字经济试验区建设动员活动
未来智能实验室的开展,用于运行神经网络的新的芯片的研究
Vitis AI1.1系列教程1——软件安装
双十二性价比高的充电宝哪个好?双十二充电宝性价比排行榜
联想手机只有明确定位 顺应潮流重新出发才是正道
安费诺OCP服务器和存储解决方案
AMD加速转型,布局嵌入式APU芯片业务
新技术正在推动设计行业进入“计算设计”时代
中兴天机Axon10Pro评测 完全对得起旗舰级应有的水准
中国科学技术大学首次实现电子相的摩尔调控
各种降压稳压器的设计,阐释它们的工作原理
昂科技术发布最新的烧录软件更新及新增支持的芯片型号列表