单片机中的几种通信方式

2019-04-15 18:27发布

首先弄懂串行通信和并行通信以及串口通信和并口通信的概念。 串行通行:它是一个概念,它是指数据一位一位地顺序传送,其特点就是通信线路 简单,只要一对传输线就可实现双向通信,适用于远距离通信,但传输速度慢。 包括普通的串口通信,I2C,SPI,UART... 串口通信:是一种实际通信方式,但是我们可以几乎看成一样. 串行接口:简称串口,或串行通信接口,或串行通讯接口(通常指com口)。 并行通信:如果一组数据的各数据位在多条线上同时被传输,那么就是并行通信。 并口接口:就是一种接口,各数据位同时被传输,传输速度快,效率高,一边可用于MCU。
串行通信又可分为单工,半双工和全双工 单工:信息只能单向传送。 半双工:信息能双向传送但不能同时。 全双工:信息能同时双向传送。 串行通信还可分为同步通信和异步通信 同步通信(两根线):是把许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是, 在每组信息(通常称为信息帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符, 因为同步传输不允许有间隙。同步方式下,发送方除了发送数据,还要传输同步时钟信号, 信息传输的双方用同一个时钟信号确定传输过程中每1位的位置
异步通信(一根信号线,没有时钟线)是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间 间隔可以是任意的。当然,接收端必须时刻做好接收的准备。发送端可以在任意时刻开始发送字符, 因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够 正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。
同步通信与异步通信区别: 1.同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时 不要求接收端时钟和发送端时钟同步,发送端发送     完一个字节后,可经过任意长的时间间隔再发送下一个字节。
2.同步通信效率高;异步通信效率较低。 3.同步通信较复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。
4.同步通信可用于点对多点;异步通信只适用于点对点。 单片机中的SPI、UART、I2C 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没有的性能。