串行通信方式

常用串行通信方式

串行通信是指利用一条传输线将数据一位位地顺序传送,特点是相对并行通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信。常用的串行通信接口:IIC,UART,SPI,PCIE,SGMII等。
以下简单介绍一下这些串行通信接口。

UART

uart全称是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),在以前调试单片机时通常称其为串口,是一种异步全双工的串行通信方式。uart在实际电路中一般结合RS232或者RS485接口头使用。串口也是我们平时工作中接触最多的一种通信接口。

接口信号线

uart有两根数据线:RX和TX,分别用于接收数据和发送数据。接口图如下:
串行通信方式_第1张图片

工作原理

uart作为异步串口通信协议的一种,工作原理是将传输数据的每一个字符按照ASCII码一位一位地传输,将数据按照低位在前、高位在后依次发送。uart的每一帧数据组成依次为:起始位、数据位、奇偶校验位、停止位。起始位是1位,停止位可以是1、1.5或者2位,数据位可以是4至8位,奇偶校验位是1位,奇偶校验位可以选择没有。

发送过程:空闲状态时,TX线路处于高电平;当收到发送指令后,拉低线路一个数据位的时间(即起始位的低电平),接着数据按低位到高位依次发送,数据发送完毕后,接着发送奇偶校验位和停止位,一帧数据发送完成。

接收过程:空闲状态时,RX线路处于高电平;当检测到线路的下降沿时,表明线路有数据传输,按照约定的波特率从低位到高位依次接收数据,数据接收完毕后,接着接收并比较奇偶校验位是否正确,如果正确则通知后续设备接收数据或存入缓冲。标准的10位异步串行通信协议(1个起始位、1个停止位和8个数据位)收发时序图如下:

串行通信方式_第2张图片

IIC

IIC又称I2C,是一种双向二线制同步串行总线,只需要两根线即可在连接于总线上的器件之间传送数据,属于同步半双工串行通信方式。在一些E2PROM等存储芯片和实时时钟芯片中应用较多。

接口信号线

IIC的接口信号线有两根:数据线SDA、时钟线SCL。数据线SDA是双向的。SDA和SCL在实际使用时都需要通过上拉电阻接到VCC,实际电路中常见接口原理图如下:

串行通信方式_第3张图片

IIC是一种多向控制总线,多个设备器件可以连接到同一总线结构下,同时每个器件都可以作为实时数据传输的控制源。为了保证数据可靠地传送,任一时刻总线只能由某一个主机控制,各器件应该在总线空闲时发送启动数据,为了妥善解决多个器件同时发送启动数据的传送(总线控制权)冲突,IIC中有总线仲裁机制,决定哪个器件此时刻拥有总线控制权。为避免多个从器件的冲突。每个器件都有一个唯一的地址号,便于主机寻访,决定与哪个器件之间通信。

工作原理

IIC的工作原理也是将要传送的数据的每一个字符一位一位地传输。主器件发送开始信号,然后传输数据,从器件发送应答信号给主器件,数据发送完成主器件发送停止信号。
主要时序有:开始信号、停止信号、从器件应答信号、传输数据信号。

开始信号:在空闲状态时SDA和SCL都是高电平,主器件让SCL时钟保持高电平,然后让SDA数据信号由高变低就表示一个开始信号。

停止信号:主器件让SCL时钟保持高电平,然后让SDA数据信号由低变高就表示一个停止信号。

开始和停止信号时序如下图所示:

串行通信方式_第4张图片

应答信号:接收数据的从器件在接收到8bit数据后,向主器件发出特定的低电平脉冲,表示已收到数据。

传输数据信号:SDA上的数据只能在SCL为低电平期间翻转变化,在SCL为高电平期间必须保持稳定,IIC设备器件只在SCL为高电平期间采集SDA数据。

应答和传输数据时序图如下:

串行通信方式_第5张图片

所有数据发送完成则释放总线控制权,SDA和SCL都恢复成高电平。

SPI

SPI全称串行外设接口(Serial Peripheral Interface),是一种同步全双工串行外设总线接口,它可以使MCU与各种外围设备以串行方式进行通信。SPI总线可与多种标准外围器件相连,例如FLASH、网络控制器、LCD显示驱动器、A/D转换器和MCU等。

接口信号线

SPI有4条信号线:串行时钟线SCLK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI、片选线CS。实际电路的原理图如下:

串行通信方式_第6张图片

其中CS有时写为ss低电平有效,是控制从器件是否被选中的,只有片选信号为预先规定的使能信号时,从器件的操作才有效,这就使得一个MCU可以通过控制CS线在同一总线上连接多个SPI设备,与多个从设备通信。

工作原理

SPI是串行通信总线,数据也是一位一位地传输的,先传输高位,要传输的数据预先放在寄存器buff中。由SCLK提供时钟脉冲,MOSI和MISO则基于此时钟完成数据传输。对于主机来说,在SCLK上升沿(也可以设置成下降沿模式)时通过MOSI线输出移位寄存器buff中的最高位,整个buff相当于左移一位,最低位不确定;在紧接着的下降沿读取MISO线的电平,作为buff最低位的数值。这样每个时钟周期相当于buff都左移一位,与从机的buff交换了1bit数据。在经历8个时钟周期后,主机中的数据寄存器buff和从机中的buff完成了一个字节数据的交换。同理,从机也通过这种方式发送数据给主机,形成全双工通信。传输时序图如下:

串行通信方式_第7张图片

PCIE

PCIE即PCI-Express(peripheral component interconnect express),是一种高速串行计算机扩展总线。在数据传输的模式上,采用LVDS串行传输方式,一条PCIE通道由2对LVDS差分信号线来实现发送和接收。是一种高速全双工串行通信方式。

命名含义

PCIE1.0和PCIE2.0采用了8b/10b的编码方式,即每个字节8bit都用10bit来传输;PCIE3.0和PCIE4.0采用了128b/130b的编码方式;其中1.0代表时钟频率是2.5GHz,2.0代表时钟频率5GHz,3.0代表8GHz,4.0代表16GHz。PCIEx4表示这个PCIE接口有4组差分信号线(每组包括一对发送和一对接收),后面的数字代表着差分信号线的组数,即每个时钟周期能发送接收数据的bit数。

接口信号线

常使用的是PCIEx1接口,PCIEx1的数据线是4根即2对差分线:一对发送差分信号线TX+与TX-,一对接收差分信号线RX+与RX-;以及一些其它的辅助信号线。PCIE接口原理图如下:

在这里插入图片描述

PCIE引入了嵌入式时钟的技术,即发送端不再向接收端发送时钟,但是接收端可以通过8b/10b的编码从数据通路中恢复出时钟,所以传输数据接口中没有CLK时钟线。

SGMII

SGMII是在MII(媒体独立接口)基础上发展过来的,称为串行吉比特媒体独立接口,是一种高速的全双工串行通信总线接口。
SGMII跟PCIEx1接口很相似,也是采用2对差分信号线来实现数据的发送和接收,即一组接口信号线为RX+/RX-,TX+/TX-这2对,且不需要同步的时钟线CLK。SGMII也是采用8b/10b的编码方式,速率为1.25GHz。
SGMII在以太网传输中用来作为连接PHY与MAC之间的接口,接口原理图如下:

串行通信方式_第8张图片

SGMII和PICE其实都是一种SERDES通信技术。SERDES全称串行器解串器,在发送端利用串行器将并行数据转化为串行数据发送出去,在接收端利用解串器将串行数据在转化成并行数据,在串行传输数据时采用差分信号传输,相对传统的同步并行传输来说,可以大大提高传输频率,且节省了线路数目,减少了高频干扰。

你可能感兴趣的:(串行通信方式)