1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > USART串口全双工与SPI全双工通信的区别!

USART串口全双工与SPI全双工通信的区别!

时间:2022-10-31 11:02:49

相关推荐

USART串口全双工与SPI全双工通信的区别!

目录

1.背景知识

2.SPI的全双工同通信

3.串口USART的全双工通信

背景知识

首先我们先来区分一下单工、半双工、全双工模式。

单工:数据传输只支持数据在一个方向上传输

半双工:允许数据传输在两个方向传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信。

全双工:允许数据同时在两个方向上传输,它要求发送设备和接收设备都有独立的接收和发送能力;在同一时间可以同时接受和发 送信息,实现双向通信。

现在我们进入今天的主题:串口的全双工与SPI的全双工有什么区别?

SPI的全双工同通信

SPI内部结构

仔细观察上图,可以看到

一个SPI接口中只有一个移位寄存器

SPI通信双方

由于一个SPI接口只有一个移位寄存器的原因,主机在将移位寄存器的数据一位位传输到从机的移位寄存器的同时,从机也将自己移位寄存器里的数据一位位传输到主机的移位寄存器中。这就是一个全双工模式的数据传输过程,主要原因就是因为一个SPI中只有一个移位寄存器(你传输的数据进入从机的移位寄存器,将它的数据一位位“挤”了出来)。

串口USART的全双工通信

单片机的串口是有全双工模式的,但是,注意了(敲黑板了)!

单片机的串口的全双工模式并不是真正意义上的全双工,它的串口不能同时实现双向的数据传输,但它的通信双方的连线同全双工是一样的(你的RX—我的TX,我的TX—你的RX)。这类似与可切换传输方向的半双工通信。

造成这种现象的原因是什么呢?

串口内部结构

仔细观察图片,我们可以看到

一个串口接口中有2个移位寄存器:发送移位寄存器和接收移位寄存器。

有两个单独的移位寄存器,数据就不会同时双向的传递了。A发送的数据通过自己的发送移位寄存器传输给B的接受移位寄存器,由于B的发送与接受移位寄存器是独立的,所以B就不会把自己发送移位寄存器的数据传输给A的接受移位寄存器。

我们上面说过,SPI全双工传输的主要原因是因为它的内部只有一个移位寄存器(发送与接受共用一个移位寄存器,所以就会出现“挤”的过程)。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。