STM32学习 通信相关基本概念

一些基本概念

串行/并行

串行:数据逐位按顺序传输,一个位一个位的传输。并行:数据各位通过多条线同时传输。这个好理解看下面的图就很清晰。

单工/半双工/全双工

单工:数据只能有一个传输方向。半双工:数据可以沿两个方向进行传输,但要在不同时间进行。全双工:数据可以同时双向传输。如下面图所示

同步/异步通信

同步通信:发送方和接收方共用同一条时钟收发数据。这样可以确保数据在发送方和接收方之间进行同步。

异步通信:没有时钟信号,他通过在数据前后加入起始位或者终止位,通过纠错编码,解码等方式保证数据正确性。

注意这里是某种方式,存在多种异步通信方式

波特率

比特率:每秒传输的比特数,bit/s。波特率:每秒传输的码元数,Baud

这里通俗的解释一下码元,码元就是一个脉冲信号,但是这个脉冲信号可能携带多个bit的数据,可能1,可能2等。这里举个例子,比如你想传递2种信息(2进制),那么需要1bit就行,因为0和1;每个码元占据1个bit位;比如你想传递4种信息(4进制),那么需要2bit,因为00,01,10和11;每个码元占据2个bit位。官方点就是4种不同的振幅或者频率或者相位,因为实际的信息传输都是用振幅,频率,相位等来表示信息的。码元说白了就是你以怎样的形式去定义你要发的信息,传输多个bit,还是一个码元。 M进制码元,携带log2(M)比特信息。

比特率=波特率*log2(M),这个公示也就很好解释了,每秒传输的码元数*每个码元的bit数=每秒传输的bit数

常见的串行通信接口

这个是视频里面所讲的

串口通信协议

数据是按照数据帧的形式传输的,一个数据帧包括起始位+数据位+(检验位)+停止位。起始位标志一个数据帧的开始,固定是低电平,持续一个位的时间;数据位是有效的数据,根据情况传0传1;检验位是检测发送的数据的,有奇偶校验位等;停止位是高电平,隔开数据帧之间。

注意,传输时是低位先行,高位后行,比如发送0x55,1010 1010,那么发送是 起始位 0101 0101 停止位

这里看一下手册上的协议示意图

这里可以看到,除了正常的数据帧还有空闲帧和断开帧,空闲帧就是恒1,如果持续了一个数据没有发送数据,也就是空闲帧,就是告诉接收方发送数据完毕了,这里有一种空闲中断,就是使用空闲帧对数据及时处理。断开帧通常被发送者用来表示通信的中止或者终止。这种帧可以让接收者知道通信已经结束,并且可以停止等待进一步的通信。

串口外设

如上图所示,左边的引脚部分就是TX和RX,还有一些别的功能的引脚,右边就是相关的寄存器,可以看到数据寄存器DR,这里看TDR和RDR的数据手册。

可以知道,实际上DR是分开的两个寄存器,一个TDR,一个RDR,同一个地址但是硬件上是分开的。并且可以看到,数据寄存器和移位寄存器之间是并行的,按照前面的并行来理解。移位寄存器在接收和发送时是串行接收的,这个要注意一下,不要混淆。

这几个寄存器也涉及到一些状态的寄存器操作

参考视频

第2讲 串口(RS-232)_哔哩哔哩_bilibili

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值