spi,iIC,uart,usart区别

FW_LYQ 2018-01-22 04:44:13
求各位大神帮我详解下标题四个的区别,感谢感谢;越详细越好
...全文
10567 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuhao2005 2019-05-08
  • 打赏
  • 举报
回复
这里怎么时间都是2018年的,本栏目不旺啊
qq_23181369 2018-10-31
  • 打赏
  • 举报
回复
就是不同的接口而已,需要什么就用什么,根据不同的协议写不同的代码
fly 100% 2018-06-30
  • 打赏
  • 举报
回复
协议不一样 ,信号数量不一样,速度不一样
SEAMAN_W 2018-06-29
  • 打赏
  • 举报
回复
不错,值得学习
whonee 2018-03-14
  • 打赏
  • 举报
回复
这里有详细的介绍: UART https://whonee.net/uart-interface-brief-introduction/ SPI https://whonee.net/spi-interface-brief-introduction/ i2C https://whonee.net/iic-interface-brief-introduction/
Jayce_Chen 2018-03-09
  • 打赏
  • 举报
回复
http://blog.csdn.net/ruixj/article/details/4084701
weixin_40026655 2018-03-01
  • 打赏
  • 举报
回复 2
引用 2 楼 of123 的回复:
SPI 和 I2C(IIC)是同步传输协议,特征是:设备有主机(master)和从机(slave)的区分;主机在通讯时发送时钟信号。 SPI 的信号: CS: 从机片选信号,表示主机将于该选定的从机通讯。低电平有效。在多从机的系统中,主机控制多条 CS 信号线,每条连接到一个从机。 SCK: 串行时钟线,从主机连接到每一个从机。 MOSI: 主出从入数据线。SPI 的数据线上,数据是单向的。因此需两条信号线。 MISO: 主入从出数据线。 在 SPI 系统中,只允许有一个主机。如果主机在工作时发现任何 CS 线被其他设备拉低,将报告一个系统错误,并退出运行。 I2C 的特点和信号: I2C 也可以是多从系统,它是通过地址信息来选择从机的。因此,它去了片选信号线。 I2C 允许在同一系统中有多个主机,他通过一套仲裁协议来解决主机的冲突。在一个系统中,允许设备在主机和从机间转换角色。 SCL: 时钟信号线。 SDA: 数据信号线。 I2C 通过复杂的协议减少了连接线,并允许多主多从。但它的代价是低的传输速度。 I2C 定义的传输模式: * 标准模式:最高 100kbit/s,双向; * 快速模式:最高 400kbit/s,双向,兼容标准模式; * 快速模式Plus:最高 1Mbit/s,双向,兼容前两种模式; * 超级快速模式:最高 5Mbit/s,单向(主机只发送),不兼容,不支持多主。 在实际使用中,主要是标准模式和快速模式。 UART 是一种异步串行通讯协议,它通过收发双方精准的本地时钟来定时采样或切换信号电平。 UART 的收发双方是一对一的,且无主从之分。任何一方都可以在任何时刻发送数据。 UART 的双方必须采用事先约定的相同“波特率”(定时标准)来通讯。目前也有一些接收方通过对固定信号的检测来确定波特率的技术,但应用不广泛。 UART 的信号: RXD: 接收信号线 TXD: 发送信号线 通讯的双方是将此二线交叉对接的。 USART 是对 UART 的扩展。它除了支持异步传输之外,也支持同步传输。但目前较少应用。
总结到位。
worldy 2018-01-23
  • 打赏
  • 举报
回复 1
引用 2 楼 of123 的回复:
SPI 和 I2C(IIC)是同步传输协议,特征是:设备有主机(master)和从机(slave)的区分;主机在通讯时发送时钟信号。 SPI 的信号: CS: 从机片选信号,表示主机将于该选定的从机通讯。低电平有效。在多从机的系统中,主机控制多条 CS 信号线,每条连接到一个从机。 SCK: 串行时钟线,从主机连接到每一个从机。 MOSI: 主出从入数据线。SPI 的数据线上,数据是单向的。因此需两条信号线。 MISO: 主入从出数据线。 在 SPI 系统中,只允许有一个主机。如果主机在工作时发现任何 CS 线被其他设备拉低,将报告一个系统错误,并退出运行。 I2C 的特点和信号: I2C 也可以是多从系统,它是通过地址信息来选择从机的。因此,它去了片选信号线。 I2C 允许在同一系统中有多个主机,他通过一套仲裁协议来解决主机的冲突。在一个系统中,允许设备在主机和从机间转换角色。 SCL: 时钟信号线。 SDA: 数据信号线。 I2C 通过复杂的协议减少了连接线,并允许多主多从。但它的代价是低的传输速度。 I2C 定义的传输模式: * 标准模式:最高 100kbit/s,双向; * 快速模式:最高 400kbit/s,双向,兼容标准模式; * 快速模式Plus:最高 1Mbit/s,双向,兼容前两种模式; * 超级快速模式:最高 5Mbit/s,单向(主机只发送),不兼容,不支持多主。 在实际使用中,主要是标准模式和快速模式。 UART 是一种异步串行通讯协议,它通过收发双方精准的本地时钟来定时采样或切换信号电平。 UART 的收发双方是一对一的,且无主从之分。任何一方都可以在任何时刻发送数据。 UART 的双方必须采用事先约定的相同“波特率”(定时标准)来通讯。目前也有一些接收方通过对固定信号的检测来确定波特率的技术,但应用不广泛。 UART 的信号: RXD: 接收信号线 TXD: 发送信号线 通讯的双方是将此二线交叉对接的。 USART 是对 UART 的扩展。它除了支持异步传输之外,也支持同步传输。但目前较少应用。
回复简洁经典准确,超赞
of123 2018-01-23
  • 打赏
  • 举报
回复 2
SPI 和 I2C(IIC)是同步传输协议,特征是:设备有主机(master)和从机(slave)的区分;主机在通讯时发送时钟信号。 SPI 的信号: CS: 从机片选信号,表示主机将于该选定的从机通讯。低电平有效。在多从机的系统中,主机控制多条 CS 信号线,每条连接到一个从机。 SCK: 串行时钟线,从主机连接到每一个从机。 MOSI: 主出从入数据线。SPI 的数据线上,数据是单向的。因此需两条信号线。 MISO: 主入从出数据线。 在 SPI 系统中,只允许有一个主机。如果主机在工作时发现任何 CS 线被其他设备拉低,将报告一个系统错误,并退出运行。 I2C 的特点和信号: I2C 也可以是多从系统,它是通过地址信息来选择从机的。因此,它去了片选信号线。 I2C 允许在同一系统中有多个主机,他通过一套仲裁协议来解决主机的冲突。在一个系统中,允许设备在主机和从机间转换角色。 SCL: 时钟信号线。 SDA: 数据信号线。 I2C 通过复杂的协议减少了连接线,并允许多主多从。但它的代价是低的传输速度。 I2C 定义的传输模式: * 标准模式:最高 100kbit/s,双向; * 快速模式:最高 400kbit/s,双向,兼容标准模式; * 快速模式Plus:最高 1Mbit/s,双向,兼容前两种模式; * 超级快速模式:最高 5Mbit/s,单向(主机只发送),不兼容,不支持多主。 在实际使用中,主要是标准模式和快速模式。 UART 是一种异步串行通讯协议,它通过收发双方精准的本地时钟来定时采样或切换信号电平。 UART 的收发双方是一对一的,且无主从之分。任何一方都可以在任何时刻发送数据。 UART 的双方必须采用事先约定的相同“波特率”(定时标准)来通讯。目前也有一些接收方通过对固定信号的检测来确定波特率的技术,但应用不广泛。 UART 的信号: RXD: 接收信号线 TXD: 发送信号线 通讯的双方是将此二线交叉对接的。 USART 是对 UART 的扩展。它除了支持异步传输之外,也支持同步传输。但目前较少应用。
faihung 2018-01-23
  • 打赏
  • 举报
回复 1
https://wenku.baidu.com/view/2aa1232fe2bd960590c6774a.html不用谢。
tianxj001 2018-01-22
  • 打赏
  • 举报
回复
详细的,你该自己去找资料看。 大概的是这样: SPI(Serial Peripheral Interface):典型的4线制全双工同步通信协议,数据输入、数据输出、时钟、片选。是三种通信总线里面速度最快的一种。外设扩充需要通过CS进行,貌似数量也不多。 I2C(Inter-IntegratedCircuit):二线制双向通信总线,同步通信、由双向数据线和时钟线构成,最高频率为400K,可挂设备128个。 UART也是二线制双向通信总线,RX、TX2条线,异步通信,通过约定波特率进行通信,对波特率误差要求高,误码率是三种里面最高的,总线理论上只是点对点通信,通过上层协议扩展,可以挂多个设备。由于标准出来比较早,因此目前控制设备最广泛用的协议之一。通过电平变换扩展,就变成485现场总线。也是传统上应用最多的工业现场总线之一。
第一个区别当然是名字: 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总线,则需一个输入口,一个输出口。 第三,从第二点明显可以看出,SPIUART可以实现全双工,但I2C不行; 第四,看看牛人们的意见吧! wudanyu:I2C线更少,我觉得比UARTSPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议。 quickmouse:I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。 1、UARTUSART两个别区说不出来,USART是新出的,不过区别在什么地方我也搞不清楚。UART就是两线,一根发送一根接收,可以全双工通信,线数也比较少。数据是异步传输的,对双方的时序要求比较严格,通信速度也不是很快。在多机通信上面用的最多。 2、SPI接口和上面UART相比,多了一条同步时钟线,上面UART的缺点也就是它的优点了,对通信双方的时序要求不严格不同设备之间可以很容易结合,而且通信速度非常快。一般用在产品内部元件之间的高速数据通信上面,如大容量存储器等。 3、I2C接口也是两线接口,它是两根线之间通过复杂的逻辑关系传输数据的,通信速度不高,程序写起来也比较复杂。一般单片机系统里主要用来和24C02等小容易存储器连接。

1,068

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧