通信方式

一、串行、并行、同步、异步区别

串行通信:利用一条数据线将数据一位一位的顺序传送,特点是通信线路简单,成本低,适合于长距离传送

并行通信:利用多条数据线将数据的各位同时传送,特点是传输速度快,适合于短距离传送

串行通信包含异步通信和同步通信
异步:在一个字符的传输时间范围内保持同步即可(起始位,停止位,校验位)
同步:在数据传输过程中,需要一根时钟线同步,I2C总线,SPI总线(教官喊口号一起走,距离太远容易出错)

二、I2C接口与串行接口比较

I2C 两线式串行总线

UART 通用串行异步收发器 串口
UART是串行异步通信接口,它包括RS232、RS485、RS423、RS422和RS499等接口规范和 标准规范,
即 UART是串行异步通信口的总称。

1、I2C接口是”器件间”接口,是在一块板子之内传输数据,RS232串行接口是”设备间”接口,更多的是用于两台设备之间传输数据。

2、从传输数据的距离来说,应该是RS232传输的距离较远

3、串口是一根线传送数据,一根线接收数据
I2C是一根线是时钟线,一根线是数据线,数据线是双向的,可以接收,也可以发送。

4、协议不同,波特率不同
串行接口,像单片机,时钟由内部MCU提供,而I2C接口要由器件来决定,不能太快。

5、I2C是同步串行传输,RS232(或称UART,通用异步收发器)是异步串行传输。

6、同步方式必须有一根时钟线连接传输的两端,i2c里的scl就是这根时钟线。因为同步方式不用花费额外的开销对数据进行开始、停止和校验的操作,一旦检查到帧同步字符,数据到达就接收,所以其传输速率一般比异步方式高。

三、总线接口 UART I2C SPI USB比较

1、UART 通用异步串行口,速率不快,可全双工,结构上一般由波特率产生器、UART发送器、UART接收器组成,
硬件上两线,一收一发。

2、SPI 高速同步串行口,高速,可全双工,收发独立,同步接口,可实现多个SPI设备互联,硬件4条线。

3、I2C 双向、两线、串行、多主控接口标准。速率不快,半双工,同步接口,具有总线仲裁机制,非常适合器件间
近距离经常性数据通信,可实现设备组网。

4、USB 通用串行总线,高速,半双工,由主机、hub、设备组成。设备可以与下级hub相连构成星型结构。

四、串口通信:UART、SPI、I2C比较

UART (Universal Asynchronous Receiver Transmitter:通用异步收发器):按照标准波特率完成双向通讯,速度慢
SPI (Serial Peripheral Interface:串行外设接口):3~4线接口,收发独立、可同步进行
I2C (INTER IC BUS:意为IC之间总线) :能用于替代标准的并行总线,能连接的各种集成电路和功能模块。
在这里插入图片描述
通信速率:SPI > I2C > UART

1、同步通信>异步通信;
2、同步通信时必须有一根时钟线连接传输的两端;
3、三者都是串行通信方式,并行通信用于内部存储间的通信,如flash;
4、适合 传输的距离和通信速率成反比 关系;

UART: 2数据线、1地线/串行 异步 通信全双工 传输距离比I2C长(UART是 “设备间”接口,更多的用于两台设备之间传输数据)
SPI: 2数据线、1时钟线、1CS(设备片选线)/串行 同步 通信全双工
I2C: 1数据线、1时钟线/串行 同步 通信半双工 传输距离比UART短 (I2C接口是“器件间”接口,是在一块板子之内传输数据)

1、UART就是两线,一根发送一根接收,可以全双工通信,线数也比较少。数据是异步传输的,对双方的时序要求比
较严格,通信速度也不是很快。在多机通信上面用的最多。

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

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

在电气信号线上的区别:

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总线,则需一个输入口,一个输出口

五、GPIO,I2C,SPI,UART,USART,USB的简单区别

1) GPIO(General Purpose Input Output )为通用输入/输出,通用端口,总线扩展器, 利用工业标准I2C、SMBus™或SPI™接口简化了I/O口的扩展。当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。

2) SPI(Serial Peripheral Interface:串行外设接口);是一种标准的四线同步双向串行总线,SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。

3) I2C(INTER IC BUS:意为IC之间总线):由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。

4)UART(Universal Asynchronous Receiver Transmitter:通用异步收发器):通用异步接收/发送装置。

5) USART:通用同步异步收发器;

6)USB:Universal Serial BUS(通用串行总线)

7)CAN:现场总线
在这里插入图片描述

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值