TopSemic · 10月11日

USART的同步和异步区别?

TopSemic嵌入式交流群里,有个群友问了一个关于串口同步和异步通信的问题,引起了大家激烈的讨论,在此分享给大家。

wm

各位,我用stm32的串口来给电脑传输数据,到底用的同步通讯还是异步通讯?

Mr.杜

异步

wm

@Mr.杜 何以见得?

.舒灿

分清同步和异步的本质,你就会有见得了

wm

我知道他们的区别,但是我不知道哪儿控制着他们

0114 0112 0127

cubemx 配置

蓝色雨

串口无论怎么控制都是异步的啊

wm

@蓝色雨,USART可以进行同步通讯

蓝色雨

先理解一下同步和异步的概念,不传输时钟的通讯都是异步的

0114 0112 0127

@蓝色雨,这个跟站的角度有关,不是这么说的。

我们暂且不关注如何配置同步和异步工作方式,先关注到底什么是同步与异步,对此大家已经有不同的理解。

这个问题,其实这么多年,我也没搞清楚。

wuya

串口同步、异步,我也没搞清楚过,用的都是异步。有用过同步的大神吗?

APaul

刚毕业时,面试的问我异步电路和同步电路哪个更好?工作十年后,再次被面试的问同步通信的事情,我说光纤这个没时钟信号应该是异步的,他说这是同步的,后来关于同步还是异步的理解就变复杂了。

扬帆起航

我也被问过,一直就没弄明白

看来不清楚这个问题的人大有存在。

APaul

一根线的通信隐含时钟,其实要本地时钟采样对齐才能得到数据,一般是过采样或相位偏移采样处理的,这个FPGA中做通信的用的多。一般的串口通信要波特率一样,也是接收端要16倍采样处理的,这些有人说是同步的,因为这是基于频率的,也有人说是异步的,因为没有一个时钟线用来边沿采样。

那么STM32这个串口的具体例子来说,一般说串口不带时钟线就是异步的,而SPI那种带时钟线就是同步的。UART也可配成带时钟线的用法,类似SPI,也就成了同步串口了,这么说大家都可以理解。

wuya

什么情况下 stm32 串口需要带时钟线呢?

APaul

一般不用,因为所有的串口,尤其是计算机的串口,都没时钟线。

只有那种非要把它当SPI来用的情况,才配成同步的,这是可能是波特率可以高很多吧

带时钟线的串口,就是类似SPI的,比如接收端上升沿采样,发送端下降沿改变输出,一次传一个字节等等

异步通信,或者说是隐含时钟的同步通信,没单独的时钟线,发送方和接收方的本地时钟频率肯定有差异,这需要过采样后根据多倍的01变化来解决频率差的问题。串口波特率是有个误差范围的,接收方 可以在一定范围内承受频率差异。

HQY

@Apaul,大佬,通俗易懂。

之前搞了那么多年,只是知道USART 和 UART 是有同步区别的,这么一说才发现差差异点有一个CLK,竟然从没注意过

wm

只有带clk 显得才能说同步啊

Guo

我觉得用数据恢复的时钟不能叫同步。

同步应该收发用同一个时钟。

APaul

可以这么简单的说,但在一些通信上,比如光纤,或者基于bit流的RS485通信,都会说是隐含时钟的同步通信。

wm

@APaul 隐含时钟具体是指用过采样来确定每一位么

APaul

差不多这意思吧

蓝色雨

有种正交编码的方式,数据线上隐含时钟信号。

MIPI的LP模式就是这样的

wm

那这样说所有的通信都是同步

APaul

宽泛的理解就是双方必须基于相同的频率才能通信,不然任何方法都不能正确判断出bit来,这就是同步

蓝色雨

就像CAN通讯里有同步域和位填充来保证时钟同步,但是本质上还是异步通讯的

wm

@Apual,相同的频率指什么?

APaul

频率的一定范围内的误差,可以通过边沿重对齐,过采样去抖动来解决,这样就要求数据必须不断的变化,变化才能隐含时钟。

要是给个直流电平过去,告诉它我这发的是一串1,它打死也认不出这是多少个1来,变化的隔间大到一定程度,时钟对齐就失效了,哪怕错了1个bit,往往导致一帧数据都错了,所以由误码率的说法,也有帧同步的概念。

相同的频率就是那个约定好的波特率

总结一下:

1. USART中的同步通信,需要发送方和接收方共用一个clock。换句话说,发送方提供一个clock或其他timing signal,接收方从而知道什么时候去读取下一位数据。

在同步传输方式下,数据在一条线上传输,clock在另外一条线上传输。

同步通信通常效率更高,因为只传输实际数据,而无需其他bits,像start bit、stop bit 等。

2. USART中的异步通信,不需要发送方发送时钟信号即可通信。但是需要收发双方事先在某些方面做好约定,以用于同步,比如增加起始位、结束位、奇偶校验位等,需要事先知道波特率。

3. 不管哪种通信方式,其实都涉及到同步的概念,从这个角度来说,也都可宽泛的称之为同步通信。

作者:wuyage
来源:https://mp.weixin.qq.com/s/EuLqRWD6UmVUdwCZ3Z8ekQ
aijishu_TopSemic_1.jpg

推荐阅读

更多芯片嵌入式电子技术分享请关注Topsemic嵌入式极术专栏
4 阅读 283
推荐阅读
0 条评论
关注数
3218
内容数
20
让芯片使用更简单。 专注分享:嵌入式,单片机,STM32,ARM,RTOS,Linux, 软硬件,半导体,电子技术等相关内容。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
Arm中国学堂公众号
关注Arm中国学堂
实时获取免费 Arm 教学资源信息
Arm中国招聘公众号
关注Arm中国招聘
实时获取 Arm 中国职位信息