三种通讯协议的区别
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常见应用: UART:MAX3232,MAX232 电平转换芯片;MCU与电脑通讯;一些MCU都支持串口下载方 式。 I2C:我就知道是24C02这一类芯片 SPI:学单片机的时候都用过的TCL549;一般的LCD控制器接口;SD卡的SPI模式; NRF24L01模块;AT45DB161D这些SPI FLASH器件;
基本区别: UART:通用异步串行口。按照标准波特率完成双向通讯,速度慢。速度最慢。可以实现 全双工。 I2C:一种串行传输方式,2线接口,网上可找到其通信协议和用法的。速度居中。不可以实 现全双工。 SPI:高速同步串行口。3线接口,收发独立、可同步进行。速度最快。可以实现全双工。
详细区别: UART: UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据 终端设备接口,这样计算机就可以和调制解调器或其它使用RSLeabharlann Baidu232C接口的串行设备通信 了。作为接口的一部分,UART还提供以下功能: 将由计算机内部传送过来的并行数据转换为输出的串行数据流。将计算机外部来的串行数 据转换为字节,供计算机内部使用并行数据的器件使用。在输出的串行数据流中加入奇偶 校验位,并对从外部接收的数据流进行奇偶校验。在输出数据流中加入启停标记,并从接 收数据流中删除启停标记。处理由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设 备)。可以处理计算机与外部串行设备的同步管理问题。有一些比较高档的UART还提供输 入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算机需要处理数据前在其 缓冲区内存储16字节数据,而通常的UART是8250。现在如果您购买一个内置的调制解调 器,此调制解调器内部通常就会有16550 UART。 UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产 生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两 根线,一根用于发送,一根用于接收。 显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。当然,这种情况比 较少见。
三者都是通信协议,由于协议不同,决定了设备不同。针对不同的场合,我们要选择不同 的协议。针对不同的设备,我们要使用相应的协议
I2C: 能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C是多主控总线,所 以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无 二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。多路微控制器 能在同一个I2C总线上共存。 I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线 仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中, 传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。 如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还 需一个输出口(SCL)。
之前看到一个招聘信息,需要应聘者要熟悉这三种通讯协议。 故总结了一下。 UART,I2C,SPI 这三种通讯协议非常常用。很多人都用得很熟练的,可是对它们的概念, 区别,特点都熟练掌握的人不多。我整理了一下网上牛人的说法,还有书本上的资料。 大概总结如下:
SPI(Serial Peripheral Interface:串行外设接口) I2C(INTER IC BUS) UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)
SPI: 总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(MOSI)、串行数据输入 (MISO)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机 或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通 信,当有多个从设备时,还可以增加一条从设备选择线,实现四线。 如果用通用IO口模拟SPI总线,必须要有一个输出口,一个输入口,另一个口则视实现 的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口 即可,若只实现从设备,则只需输入口即可。