数据通信方式有两种:串行通信与并行通信
一、串行通信
串行通信是指数据的各位在同一根数据线上逐位发送和接收。如下图所示。它可以按照数据传送方向和通信方式来划分。
如果按照数据传送方向分类,则分为以下方式:
单工:
数据传输只支持数据在一个方向上传输
半双工:
允许数据在两个方向上传输,但是,在某一时刻,只允许数 据在一个方向上传输。实际上是一种切换方向的单工通信;
全双工:
允许数据同时在两个方向上传输,因此,全双工通信是两个 单工通信方式的结合,它要求发送设备和接收设备都有独立
的接收和发送能力。
如果按照通信方式分类,则可分为和同步串行通信方式和异步通信方式。
同步串行通信
同步通信是指发送端和接收端必须使用同一时钟,是一种连续传送数据的通信方式,一次通讯传送多个字符数据(一帧数据)。SPI,IIC通信都是带时钟同步信号传输。下图是同步串行通信帧格式:
那么同步串行通信就是把许多字符组成一个信息组(信息帧),每帧的开始用字符来指示。并且发送和接收的双方必须采用同一时钟,这样接收方就可以通过时钟信号来确定每个信息位。
同步串行通信帧:是将许多字符组成一个信息帧,字符可以一个接一个传输。但是,需要在每帧信息的开始加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。
同步串行通信的特点:必须有同步时钟,传输信息量大,传输速率高,但是传输设备则为复杂,技术要求高。
异步串行通信
异步通信是指发送和接收端使用的是各自的时钟,并且它是一种不连续的传输通信方式,一次通信只能传输一个字符数据(字符帧)。字符帧之间的间隙可以是任意的,在STM32中USART就是使用的是异步通信方式,下图是异步串行通信帧格式:
异步串行通信方式:是指通信双方以一个自读(包括特定附加位)作为数据传输单位且发送方传送字符的间隔时间是不定的,具有不规则数据段传输特性,下图是异步串行通信:
异步串行同信帧:将一个字节数据加上起始位、校验位以及停止位构成字符帧。由于异步通信没有同步时钟,所以接收端要时刻处于接收状态。
起始位:在没有数据传送时(空闲状态),此时通信线上为逻辑“1”。当发送端要发送一个数据时,首先发送一个逻辑“0”,这个低电平就是帧格式的起始位。作用是告诉接收端要开始发送一帧数据。接收端检测到这个低电平之后,就准备接收数据信号。
数据位:在起始位之后,发送端发出的就是数据位,数据位的位数没有严格限制(5-8位都可以)。低位在前,高位在后。由低位向高位逐位发送。
校验位:数据位发送完成之后,可以发送以为用来校验数据在传送过程中是否出错。校验位是收发双方预先约定好的有限制差错检验的方式之一(可不用)。
停止位:字符帧格式的最后部分是停止位,逻辑“1”有效,它的占位有1/2位、1位或者2位。停止位表示传送一帧信息的结束,也作为发送下一帧数据信息做准备。
异步串行通信特点:不需要同步时钟,通信实现简单,设备简单。但是传输速率不高。
串行通信传输速率
比特率:每秒钟传送的二进制位数。bps
波特率:每秒钟调制信号变化的次数。Baud
串行通信常用波特率表示数据传输率。
波特率与比特率的关系为:
比特率 = 波特率x单个调制状态对应的二进制位数
单个调制状态对应1个二进制位时,或对于数字信号1或0直接用两种不同电压表示的基带传输,此时 比特率==波特率。串行通信双方识别位的时间间隔要相同,所以通信双方的波特率必须一致。
二、并行通信
是指数据的各位同时在多根数据线上发送或接收,如图
参考:
https://blog.csdn.net/Dingjiawang6/article/details/81093518
https://blog.csdn.net/newbie_xymt/article/details/76577191