IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32学习USART之基础篇 -> 正文阅读

[嵌入式]STM32学习USART之基础篇

今天分享USART设计前的基础知识。

下面我们先来了解一下有关通信的基本概念:

通信:两个设备之间进行数据交换时,称这个过程为两个设备间的通信。

并行通信:设备之间的数据是以一位一位的二进制数进行传输的,并行通信的方式就是传输的二进制数同时从主机发送,然后同时到达从机,其优点就是传输速度快、效率高,但当需要传输很多位数据时,就需要很多根数据线,造成成本偏高,还有就是其传输距离不远。

早期的打印机就使用并口来传输数据。下图为并口数据线:
在这里插入图片描述
串行通信:两设备之间的数据是一位一位的从主机发送,然后一位一位的到达从机,数据传送可在一根线上进行传输,其传输速度相对并行通信较慢,但其优点是成本低,可以远距离传输。下图为9针串口数据线。

在这里插入图片描述
串行通信的分类:当在串行通信方式下,发送数据是在时钟的控制下进行的,当主机和从机都用同一时钟(时钟的相位和幅值均相同)来进行数据传输时,称这种方式为同步串行通信。当主机和从机不使用同一时钟来进行数据传输时,称这种方式为异步串行通信方式。

主机:两个设备进行通信时,对另一个设备发送数据的设备称为主机。
从机:两个设备进行通信时,接收数据的设备称为从机。

我们已经知道并行通信方式虽然传输速度快,但传输数据位数多时,其所需要的数据线就很多,成本偏高,传输距离远,然而串行通信因其成本低,需要数据线少,传输距离远,而且随着技术的发展串行通信的数据传输速度也变得很快了,有些甚至比并行通信传输速度更快了,所以基于这些优点,串行通信的方式被广泛的使用。下面我们重点介绍串行通信。

串行通信

串行通信因其优势突出,被广泛运用,因此产生了一些串行通信的接口标准,如RS-232标准、RS-485标准、RS-422标准等,各个标准在使用过程中又衍生出了一些子标准,如RS-232标准下又有RS-232C类型等,因其各个标准特点不同,所以使用场合也就不同了,但相对于其他标准,RS-232使用较广泛(如大家的台式电脑主机后都有一个RS-232接口),所以下面我们就以RS-232为例给大家进行介绍。

RS-232是串行通信的一种标准,在RS-232标准中主要规定了其通信接口、信号的电平标准、信号的用途。下图描述了基于RS-232标准的两设备之间的通信原理图:
在这里插入图片描述
从上图我们可以了解两个串口设备1和设备2之间使用RS-232标准进行通信的原理,因为控制器1/2使用TTL电平标准(正逻辑标准,逻辑“0”为0V,逻辑“1”为5V),但RS-232标准使用的是电平标准是负逻辑标准(逻辑“0”为+3至+15V,逻辑“1”为-3至-15V),所以当使用RS-232标准对这两个串行设备进行数据传输时,就需要在RS-232接口与控制器之间接一个电平转换芯片,两设备之间通过RS-232接口线连接(有25针或9针接口),这样才能确保两设备正常通信。下面我们分别介绍一下RS-232标准的接口标准和电平标准。

1. 接口标准

RS-232标准有两种接口定义,一种为DB25接口,一种为DB9接口,DB25接口现已很少使用,大多数都使用DB9接口,下面我们对这两种接口进行介绍:
DB25接口
在这里插入图片描述
接口的各个引脚含义如上图所示,其中第2脚和第3脚分别为数据发送和接收脚,第7脚为信号地,其他脚为一些状态标志引脚,在使用时,将接口线对应接在两个设备上,即可正常通信。

DB9接口
在这里插入图片描述
从上图可以看出,DB9接口对DB25接口进行了简化,同样也能传输数据,且DB9被广泛使用,下面我们对DB9的各个引脚功能进行简要说明。
第一脚(DCD):

该引脚为接收线路信号检测,该信号是从发送设备->接收设备,用于告知接收设备是否收到载波信号。

第二脚(RXD):

数据接收引脚,用于接收数据。

第三脚(TXD):

数据发送引脚,用于发送数据。

第四脚(DTR):

数据终端准备就绪引脚,用于告知接收设备,发送设备是否准备就绪。

第五脚(SG):

信号地,用于给两个设备共地,因为两个设备之间地电位可能不一致,不一致就会影响数据收发的电平信号,所以必须给两设备进行共地,保证数据的正确传输。

第六脚(DSR):

数据准备好引脚,该信号用于接收设备告知发送设备数据发送准备就绪,随时可以发送数据。

第七脚(RTS):

请求发送引脚,该信号用于发送设备请求向接收设备发送数据。

第八脚(CTS):

清除发送引脚,该信号用于接收设备告知发送设备是否可以发送数据。

第九脚(RT):

振铃提示,表示接收端与线路已经接通。

在两个设备通信时,发送设备的TXD应该接接收设备的RXD,发送设备的RXD应该接接收设备的TXD,SG接SG,在现在的串口通信中,一般就使用这三根线来传输数据信号,具体接线图如下所示:
在这里插入图片描述
按上图对应接线正确,两设备就可正常通信。
2. 电平标准

前已提及,RS-232采用的是负逻辑电平标准,所以两设备(使用TTL电平)之间进行串口通信时,必须外加一个电平转换芯片(如MAX232),才能保证通信成功,下面我们介绍RS-232的电平标准。

RS-232标准规定:

逻辑“1”电平为:-5—-15V或-3—-12V

逻辑“0”电平为:+5—+15V或+3—+12V

TTL电平规定(5V):

逻辑“1”电平为:+2.4—+5V

逻辑“0”电平为:0—0.5V

当用不同电平表示同一逻辑信号时,可用下图对比:
在这里插入图片描述
上面讲了两个设备进行串口通信的硬件支持部分,那么两个设备间传输数据应该遵守一些规定,如开始和停止条件、传输数据的位数、传输数据的快慢(波特率)、数据校验等等,只有双方都遵循这些规定,才能使传输数据不容易出错,更加能保证通信过程的顺利进行。因此我们需要对这些规定有一定的了解。

  1. 串行通信的分类
  1. 同步通信

这种通信方式要求发送设备和接收设备的工作时钟频率一致,发送数据时一般要有一至两个同步字符,保证两设备时钟频率一致后然后开始传输数据,最后为校验位。该种方式可用下图表示:
在这里插入图片描述
2) 异步通信

这种通信方式不要求发送设备和接收设备的工作时钟频率一致,发送数据要有一个开始位,然后为数据位,后面有一个校验位和停止位,相邻两个数据之间常会有空闲位,其方式可用下图描述:
在这里插入图片描述
4.串行通信的方式

  1. 单工通信:

两个设备之间数据传输时,数据只能从一个设备发送到另一个设备,收发固定,不能互换。可用下图表示上述传输过程:

在这里插入图片描述
2) 半双工通信:

两个设备之间数据传输时,两个设备都可以作为发送方或接收方,但同一时刻数据只能从一个设备发送到另一个设备。其数据传输线可以是一条或者两条。可用下图表示上述传输过程:

在这里插入图片描述
3)全双工通信:

两个设备之间进行数据传输时,双方都可以作为发送方或接收方,双方可同时双向传输数据,有两条数据传输线。可用下图表示上述传输过程:
在这里插入图片描述
5.数据传输协议

因串行同步通信方式对时钟要求很高,若两个设备间时钟频率稍有不一致,则会造成数据错误,所以我们一般都使用串行异步通信,这样对时钟要求就没那么严格,可以为我们使用,前已提及,两个设备间进行数据传输时,需要遵守一些约定,这样能保证数据正确发送,那么下面我们就来介绍一下这个约定。

  1. 波特率

波特率为每秒钟传送二进制数码的位数,也称为比特率,单位为b/s,位/秒,它反映了数据传输的速度,波特率越高,数据传送越快,两设备进行数据传输时,需要把发送设备波特率和接收设备波特率设为一致,这样才能保证发送数据的速度和接收数据的速度一致,从而保证通信的正确进行。

我们常用的波特率为300b/s、600b/s、1200b/s、2400b/s、4800b/s、9600b/s、115200b/s。

  1. 起始位

两设备要传输数据时,发送方要先发一个起始位告知对方我要发数据了,这样接收方才知道发送方要发数据了,就准备接收数据。起始位为一位二进制位,规定逻辑“0”为起始位。

  1. 数据位

当发送一个起始位之后,接收方知道发送方要发送数据了,准备好之后,发送方就开始发数据了,数据位可以是5个二进制位或者6/7/8个二进制位,我们常取8个二进制位作为数据位,发送数据时,先发送低位后发送高位。

  1. 校验位

数据发送完之后,需要判断数据是否和发送方发送的一致,用一个二进制位表示校验位,常用的校验方式有奇校验、偶校验等,奇校验要求数据位和校验位“1”的个数为奇数,偶校验要求数据位和校验位“1”的个数为偶数,校验位可一定程度解决数据出错问题,但也会有误差,当然也可以不设定校验位。

  1. 结束位

当一次数据发送完毕后,发送方需要告知接收方这一次数据发送完毕,常用1位或2位二进制位表示,用逻辑“1”表示停止位。

当双方达成约定后,两个设备就可以进行数据传输了。

【资料分享】给大家分享一些stm32学习资料,感兴趣的点击下方链接即可学习:
学习交流群:454923484
(stm32 USART串口应用)
PWM脉宽调制技术
基于STM32讲解串口操作
通过Z-stack协议栈实现串口透传
通信协议 - UART串口协议
stm32之SPI通信
SPI通信协议驱动norFlash
stm32 如何用DMA搬运数据
智能小车设计

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-05-11 16:35:53  更:2022-05-11 16:37:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 1:33:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码