嵌入式开发,电路开发常见的几种通讯方式(串行,并行,同步,异步)

文章转载资源来自:https://blog.csdn.net/qq_36629451/article/details/76038673

阅读大纲:

  1. 串行通讯和并行通讯的概念

  2. 同步通信和异步通讯的区别

  3. spI,uart,I2C基本常见通讯解析

1.首先弄懂串行通信和并行通信以及串口通信和并口通信的概念。

串行通行:它是一个概念,它是指数据一位一位地顺序传送,其特点就是通信线路简单,只要一对传输线就可实现双向通信,适用于远距离通信,但传输速度慢。它包括普通的串口通信,I2C,SPI,UART...

  1. 串口通信:是一种实际通信方式,但是我们可以几乎看成一样.
  2. 串行接口:简称串口,或串行通信接口,或串行通讯接口(通常指com口)。
  3. 并行通信:如果一组数据的各数据位在多条线上同时被传输,那么就是并行通信。
  4. 并口接口:就是一种接口,各数据位同时被传输,传输速度快,效率高,一边可用于MCU。

1.1串行通信又可分为单工,半双工和全双工

  1. 单工:信息只能单向传送。
  2. 半双工:信息能双向传送但不能同时。
  3. 全双工:信息能同时双向传送。

1.2串行通信还可分为同步通信和异步通信

同步通信(两根线):是把许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为信息帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。同步方式下,发送方除了发送数据,还要传输同步时钟信号,信息传输的双方用同一个时钟信号确定传输过程中每1位的位置

异步通信(一根信号线,没有时钟线):是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。当然,接收端必须时刻做好接收的准备。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)

2.同步通信与异步通信区别:

  • 1.同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时不要求接收端时钟和发送端时钟同步,发送端发送     完一个字节后,可经过任意长的时间间隔再发送下一个字节。
  • 2.同步通信效率高;异步通信效率较低。
  • 3.同步通信较复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。
  • 4.同步通信可用于点对多点;异步通信只适用于点对点。

3.单片机中的SPI、UART、I2C


3.1、SPI

       SPI允许单片机和外围设备或者单片机之间高速同步数据传输,SPI可以有主机和从机模式之选,通信的主从机之间通过移位寄存器同时交换数据。目前自己用的以主机模式居多。SPI需要四线:SS,MISO,MOSI,SCK。

        通信过程:在设置好SPI的工作模式:包括SCK频率(数据传输速率),工作速度,主从模式,以及数据接收发送对应的时钟极性。在主模式下,将SS拉低表示通信的开始,然后通过向SPI数据寄存器中写入一字节的数据后自动启动时钟SCK开始进行一次通信,通信完成后会产生相应的中断标志,标志一个字节数据的传送完成。通信完成后将SS脚拉高,表示通信过程已经结束。

       注意SS引脚的设置:当设置为从机模式时,SS引脚应设置为输入,拉低的时候SPI才能起作用,拉高的话是消极的SPI模式;在主机模式下,SS引脚可以设置,一般应设置为输出,如果设置为输入的话应保持为高,否则将不能进行正常的主机模式操作。

2、USART

       USART的操作比较简单,主要是设置波特率,数据格式,以及中断允许位等,值得至于的是其USART IN SPI MODE,在SPI模式下的USART的操作跟SPI操作差不多,主要是Clock的设置,然后发送数据还是通过USART的中断进行

3、I2C

       I2C接口是简单强大的通信接口,只需要两根双向总线(时钟和数据线),SCL和SDA,即可实现一个主机和最多128个从机进行通信。模拟I2C接口的过程:启动I2C,一般是在SCL为高时将SDA拉低启动数据发送,SDA只有在SCL为低时才能拉高拉低有效,在SCL为高时拉高拉低SDA只是用于停止启动I2C通信

     I2C总线是内部总线,用来连接内部系统内的芯片。
串口通信是用来和系统外部的设别通信的。比如设备和设备之间通信。
SPI,UAR,I2C都是串行通信方式,并行通信方式一般用的少,因为只适合短距离,一般用于MCU比较多,因为MCU它对数据的传输速度有要求,而且与他相连的芯片一般会比较近。

      MCU 他的属性要比CPU(这里指单片机,其他地方应该也是) 强,它包括CPU的性能,且还有CPU没有的性能。
--------------------- 
作者:Oligay 
来源:CSDN 
原文:https://blog.csdn.net/qq_36629451/article/details/76038673 
版权声明:本文为博主原创文章,转载请附上博文链接!

发布了34 篇原创文章 · 获赞 16 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/xuxudeta/article/details/83119033
今日推荐