【STM32】STM32学习笔记-USART串口协议(25)

00. 目录

01. 串行通讯与并行通讯

按数据传送的方式,通讯可分为串行通讯与并行通讯,串行通讯是指设备之间通过少量数据信号线(一般是8根以下), 地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。而并行通讯一般是指使用8、16、32及64根或更多的数据线进行传输的通讯方式, 它们的通讯传输对比说明见图 并行通讯与串行通讯的对比图 ,并行通讯就像多个车道的公路, 可以同时传输多个数据位的数据,而串行通讯,而串行通讯就像单个车道的公路,同一时刻只能传输一个数据位的数据。
在这里插入图片描述

很明显,因为一次可传输多个数据位的数据 ,在数据传输速率相同的情况下,并行通讯传输的数据量要大得多, 而串行通讯则可以节省数据线的硬件成本(特别是远距离时)以及PCB的布线面积, 串行通讯与并行通讯的特性对比见表 串行通讯与并行通讯的特性对比。

在这里插入图片描述

不过由于并行传输对同步要求较高,且随着通讯速率的提高,信号干扰的问题会显著影响通讯性能,现在随着技术的发展,越来越多的应用场合采用高速率的串行差分传输。

02. 全双工、半双工及单工通讯

根据数据通讯的方向,通讯又分为全双工、半双工及单工通讯,它们主要以信道的方向来区分,见图 全双工-半双工及单工通讯 及表 通讯方式说明。

在这里插入图片描述

仍以公路来类比,全双工的通讯就是一个双向车道,两个方向上的车流互不相干;半双工则像乡间小道那样,同一时刻只能让一辆小车通过, 另一方向的来车只能等待道路空出来时才能经过;而单工则像单行道,另一方向的车辆完全禁止通行。

在这里插入图片描述

03. 同步通讯与异步通讯

根据通讯的数据同步方式,又分为同步和异步两种,可以根据通讯过程中是否有使用到时钟信号进行简单的区分。

在同步通讯中,收发设备双方会使用一根信号线表示时钟信号,在时钟信号的驱动下双方进行协调, 同步数据,见图 同步通讯。 通讯中通常双方会统一规定在时钟信号的上升沿或下降沿对数据线进行采样。

在这里插入图片描述

在异步通讯中不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些同步用的信号位,或者把主体数据进行打包, 以数据帧的格式传输数据,见图 某种异步通讯 ,某些通讯中还需要双方约定数据的传输速率,以便更好地同步。

在这里插入图片描述

在同步通讯中,数据信号所传输的内容绝大部分就是有效数据,而异步通讯中会包含有帧的各种标识符,所以同步通讯的效率更高, 但是同步通讯双方的时钟允许误差较小,而异步通讯双方的时钟允许误差较大。

04. 通讯速率

衡量通讯性能的一个非常重要的参数就是通讯速率,通常以比特率(Bitrate)来表示,即每秒钟传输的二进制位数, 单位为比特每秒(bit/s)。容易与比特率混淆的概念是“波特率”(Baudrate),它表示每秒钟传输了多少个码元。 而码元是通讯信号调制的概念,通讯中常用时间间隔相同的符号来表示一个二进制数字,这样的信号称为码元。 如常见的通讯传输中,用0V表示数字0,5V表示数字1,那么一个码元可以表示两种状态0和1,所以一个码元等于一个二进制比特位, 此时波特率的大小与比特率一致;如果在通讯传输中,有0V、2V、4V以及6V分别表示二进制数00、01、10、11, 那么每个码元可以表示四种状态,即两个二进制比特位,所以码元数是二进制比特位数的一半,这个时候的波特率为比特率的一半。 因为很多常见的通讯中一个码元都是表示两种状态,人们常常直接以波特率来表示比特率,虽然严格来说没什么错误,但希望您能了解它们的区别。

05. 通信接口

通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统

通信协议:制定通信的规则,通信双方按照协议规则进行数据收发

在这里插入图片描述

06. 串口通信

•串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信

•单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大地扩展了单片机的应用范围,增强了单片机系统的硬件实力

在这里插入图片描述

07. 硬件电路

•简单双向串口通信有两根通信线(发送端TX和接收端RX)

•TX与RX要交叉连接

•当只需单向的数据传输时,可以只接一根通信线

•当电平标准不一致时,需要加电平转换芯片

在这里插入图片描述

08. 电平标准

•电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种:

•TTL电平:+3.3V或+5V表示1,0V表示0

•RS232电平:-3~-15V表示1,+3~+15V表示0

•RS485电平:两线压差+2~+6V表示1,-2~-6V表示0(差分信号)

09. 串口参数及时序

•波特率:串口通信的速率

•起始位:标志一个数据帧的开始,固定为低电平

•数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行

•校验位:用于数据验证,根据数据位计算得来

•停止位:用于数据帧间隔,固定为高电平

在这里插入图片描述

10. 串口时序

在这里插入图片描述

11. 附录

参考: 【STM32】江科大STM32学习笔记汇总

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-01-08 12:10:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-08 12:10:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-08 12:10:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-08 12:10:01       18 阅读

热门阅读

  1. 编写一个简单的服务和客户端(C++)

    2024-01-08 12:10:01       34 阅读
  2. 设计模式之过滤器模式

    2024-01-08 12:10:01       32 阅读
  3. 15.三数之和(双指针,C解答附详细分析)

    2024-01-08 12:10:01       39 阅读
  4. C++ 具名要求-全库范围的概念

    2024-01-08 12:10:01       31 阅读
  5. 极智AI | 谈谈AI发展第六篇:AI大模型应用

    2024-01-08 12:10:01       31 阅读
  6. ajax请求假数据的方法

    2024-01-08 12:10:01       37 阅读
  7. 智能合约安全之Solidity重入攻击漏洞的深入理解

    2024-01-08 12:10:01       36 阅读
  8. 关于TCP vegas算法杂谈

    2024-01-08 12:10:01       40 阅读
  9. 浅谈前端工程化

    2024-01-08 12:10:01       32 阅读
  10. CComboBox重载在CListCtrl中使用

    2024-01-08 12:10:01       34 阅读
  11. 入门使用mybatis-plus

    2024-01-08 12:10:01       27 阅读
  12. 【WPF.NET开发】为控件中的焦点设置样式

    2024-01-08 12:10:01       40 阅读
  13. 每日一练:LeeCode-641. 设计循环双端队列【设计】

    2024-01-08 12:10:01       36 阅读