好文档 - 专业文书写作范文服务资料分享网站

SPI、I2C、UART三种串行总线的原理、区别及应用

天下 分享 时间: 加入收藏 我要投稿 点赞

简单描述:

SPI 和 I2C 这两种通信方式都是短距离的,芯片和芯片之间或者其他元器件 如传感器和芯片之间的通信。 SPI 和 IIC 是板上通信 ,IIC 有时也会做板间通信 , 不过距离甚短 ,不过超过一米 ,例如一些触摸屏 ,手机液晶屏那些很薄膜排线很多 用 IIC,I2C 能用于替代标准的并行总线, 能连接的各种集成电路和功能模块。 I2C 是多主控总线, 所以任何一个设备都能像主控器一样

工作, 并控制总线。 总线上 每一个设备都有一个独一无二的地址, 根据设备它们自己的能力, 它们可以作为 发射器或接收器工作。 多路微控制器能在同一个 I2C 总线上共存这两种线属于低 速传输;

而UART是应用于两个设备之间的通信,如用单片机做好的设备和计算机的通 信。这样的通信可以做长距离的。UART和,UART就是我们指的串口,速度比上面 三者快,最高达100K左右,用与计算机与设备或者计算机和计算之间通信,但有 效范围不会很长,约10米左右,UART优点是支持面广,程序设计结构很简单,随着 USB的发展,UART也逐渐走向下坡;

SmBus有点类似于USB设备跟计算机那样的短距离通信。

简单的狭义的说SPI和I2C是做在电路板上的。而UART和SMBU是在机器外 面连接两

个机器的。

详细描述:

1、 UART(TX,RX就是两线,一根发送一根接收,可以全双工通信,线数也比较少。 数据是异

步传输的, 对双方的时序要求比较严格, 通信速度也不是很快。 在多机 通信上面用的最多。

2、 SPI(CLK,I/O,O,CS)接口和上面UART相比,多了一条同步时钟线,上面 UART 的缺点

也就是它的优点了, 对通信双方的时序要求不严格不同设备之间可以很容 易结合,而且通信速度非常快。 一般用在产品内部元件之间的高速数据通信上面, 如大容量存储器等。

3、 I2C(SCL,SDA)接口也是两线接口,它是两根线之间通过复杂的逻辑关系传输 数据的,通信速度不高, 程序写起来也比较复杂。 一般单片机系统里主要用来和 24C02等小容易存储器连

接。

SPI :高速同步串行口。 3?4线接口,收发独立、可同步进行 UART通用异步串行口。按照标准波特率完成双向通讯,速度慢

SPI: 一种串行传输方式,三线制,网上可找到其通信协议和用法的 3 根线实现数据双向传输

串行外围接口 Serial peripheral interface UART通用异步收发器

UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了

RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用 RS-232C接口的串行设备通信了。作为接口的一部分, UART还提供以下功能:

将由计算机内部传送过来的 并行数据转换为输出的 串行数据流。将计算机外部来 的串行数据转

换为字节, 供计算机内部使用并行数据的器件使用。 在输出的串行 数据流中加入奇偶校验位, 并对从外部接收的数据流进行奇偶校验。 在输出数据 流中加入启停标记, 并从接收数据流中删除启停标记。 处理由键盘或鼠标发出的 中断信号(键盘和鼠票也是串行设备) 。可以处理计算机与外部串行设备的同步 管理问题。有一些比较高档的 UART还提供输入输出数据的缓冲区,现在比较新 的UART是 16550,它可以在计算机需要处理数据前在其缓冲区内存储 16字节数 据,而通常的UART是 8250。现在如果您购买一个内置的调制解调器,此调制解 调器内部通常就会有 16550 UART。

I2C:能用于替代标准的并行总线,能连接的各种集成电路和功能模块。 I2C是 多主控总线, 所

以任何一个设备都能像主控器一样工作, 并控制总线。 总线上每 一个设备都有一个独一无二的地址, 根据设备它们自己的能力, 它们可以作为发 射器或接收器工作。多路微控制器能在同一个 I2C 总线上共存。

I2C 总线:

I2C 总线最主要的优点是其简单性和有效性。

由于接口直接在组件之上, 因此 I2C 总线占用的空间非常小, 减少了电路板的空 间和芯片管脚的数量,降低了互联成本。总线的长度可高达 25英尺,并且能够 以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多 主控(multimasteri ng),其中任何能够进行发送和接收的设备都可以成为主总 线。一个主控能够控制信号的传输和时钟频率。 当然,在任何时间点上只能有一 个主控。

UART:

单端,远距离传输。大多数计算机包含两个基于 RS232的串口。串口同时也是仪 器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232 口。同时,串 口通信协议也可以用于获取远程采集设备的数据。 串口通信的概念非常简单, 串 口按位(bit )发送和接收字节。尽管比按字节(byte )的并行通信慢,但是串 口可以在使用一根线发送数据的同时用另一根线接收数据。 它很简单并且能够实 现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过 20米,并且任意两个设备间的长度不得超过 2米;而对于串口而言,长度可达

1200米。

具体的适用范围就可多了,军用,医疗 ... 到处到能用。 第一个区别当然是名字:

SPI(Serial Peripheral Interface :串行外设接口 ); I2C(INTER IC BUS :意为 IC 之间总线)

UART(Universal Asynchronous Receiver Transmitter :通用异步收发器 ) 第二,

区别在电气信号线上:

SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行 数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟 的 SPI 设备为 SPI 主机或主设备 (Master) ,其他设备为 SPI 从机或从设备 (Slave) 。主从设备间可以实现全双工

通信,当有多个从设备时,还可以增加一 条从设备选择线。

如果用通用IO 口模拟SPI总线,必须要有一个输出口(SDO), —个输入口 (SDI) ,另

一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输 出口,若只实现主设备,

则需输出口即可, 若只实现从设备, 则只需输入口即可。

I2C 总线是双向、两线(SCL、SDA)串行、多主控(multi-master )接口 标准,具有总线仲

裁机制, 非常适合在器件之间进行近距离、 非经常性的数据通 信。在它的协议体系中, 传输数据时都会带上目的设备的设备地址, 因此可以实 现设备组网。

如果用通用IO 口模拟I2C总线,并实现双向传输,则需一个输入输出口 (SDA),另外还

需一个输出口 (SCL)。(注:I2C资料了解得比较少,这里的描述 可能很不完备)

UART 总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一 般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART 发送器组成,硬件上由两根

线,一根用于发送,一根用于接收。

显然,如果用通用IO 口模拟UART总线,则需一个输入口,一个输出口。

第三,从第二点明显可以看出,SPI和UAR■可以实现全双工,但I2C不行; 第四,看看牛人们的意见吧!

wudanyu : I2C 线更少,我觉得比 UART、 SPI 更为强大,但是技术上也更加 麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能 力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。 SPI 实现 要简单一些,UARTS要固定的波特率,就是说两位数据的间隔要相等,而 SPI

则无所谓,因为它是有时钟的协议。

quickmouse : I2C 的速度比 SPI 慢一点,协议比 SPI 复杂一点,但是连线 也比标准的 SPI 要少。

SPI、I2C、UART三种串行总线的原理、区别及应用

简单描述:SPI和I2C这两种通信方式都是短距离的,芯片和芯片之间或者其他元器件如传感器和芯片之间的通信。SPI和IIC是板上通信,IIC有时也会做板间通信,不过距离甚短,不过超过一米,例如一些触摸屏,手机液晶屏那些很薄膜排线很多用IIC,I2C能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C是多主控总线,所以任何一
推荐度:
点击下载文档文档为doc格式
5ns2973d4f00kc5204u903ypi6bk1500izz
领取福利

微信扫码领取福利

微信扫码分享