单片机学习笔记9--常见的通信方式(基于百问网STM32F103系列教程)

第九章 常见的通信方式

通信即数据传输,不同模块之间进行数据的发送或接收。所以通信方式也可以认为是数据传输方式。常用的通信方式有以下几种。

一、串行和并行通信

串行和并行简单的区别就是数据传输的线是一条还是多条。

1、串行通信

串行通信就是用一条线进行数据传输,所有的数据被串在一条线上,类似电路中的串联。

在这里插入图片描述

一个时钟传输一个数据,对于上图0x5ABC来说,要16个时钟才能发送完成。

串行通信优点是使用到的资源少,只需要一根线即可,成本低。缺点是传输速度慢,一个时钟只能传递一个bit,但随着技术的发展,现在串行通信的速度也越来越快,能够满足大部分场景使用,所以在实际开发中,大家更倾向于串行通信。但是串行通信也可能发生数据丢失的现象。

2、并行通信

并行通信是用多条线进行数据传输,一个时钟通过多条线传输多个数据,类似电路中的并联。

在这里插入图片描述

上图是8条线的并行通信,一次可以传输8个bit,这样同样是传输0x5ABC,只需要两个时钟周期就行了。

并行通信优点是传输速度快。缺点是成本高,无法进行远距离场景的使用,而且并行线多了会导致信号干扰。

二、同步和异步通信

同步和异步之间的区别就是看发送方和接收方的工作频率步调是否一致,一致就是同步,不一致就是异步。简单理解就是双方是是否在同一个时钟标准下进行数据传输,也就是看双方之间是否有时钟线相连。

1、同步通信

双方在同一个时钟信号的控制下,进行数据的接收和发送,来一个时钟,发送端发送,接收端接收,他们彼此之间的工作状态是一致的。

同步通信的数据帧组成一般是:同步信号+若干数据。在最前面是个同步信号,接收端接收数据分析出同步信号之后,就认为后边的数据都是实际传输的数据了。理论上来说同步通信一个数据帧里面的若干数据的位数是不受限制的。

同步通信中,数据之间是不能有间隔的,因为双方在同一个时钟下工作,这边接收的,必然是另一边发送的。在同步信号之后,认为所有的数据都是实际数据,所以当没有信息要传输是,同步信号要填上空字符。

2、异步通信

异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。因为每一帧的数据都有开始和停止位,他们之间的数据位才是实际数据。所以接收方评判数据是否为完整的一帧数据的方式就是分析这一堆数据中的开始位和停止位。

发送端可以在任意时刻开始发送字符,接收端必须时刻做好接收的准备。

因为每传输一个数据帧都会有一个开始位和一个停止位,实际数据一般只占到5-8位,这就导致了异步通信的传输效率较低。

三、单工、半双工、全双工通信

他们三个的区别就是在同一时刻,设备能否既发送又接收数据。

1、单工

设备只能进行发送数据或者接收数据。也就是说他只有一种功能,要么只能发送数据,要么只能就收数据。类似收音机,他只能接收外部的数据而不能向外界发送数据。

2、半双工

半双工说明设备有两种功能,既能发送数据,又能接受数据,但是在同一时刻他只能使用其中一个功能,在发送数据的时候不能接收数据,在接收数据的时候不能发送数据。类似对讲机,听和说是分开的,在同一时间只能选择讲话还是听别人讲话。

3、全双工

全双工一看名字就知道和上面两种相比,它是最厉害的。全双工的通信模式下,设备在同一时刻,既能发送数据又能接收数据。类似手机,在说话的同时也能听到别人的声音。

四、通信速率

对于同步通信,通信速率取决于时钟信号,时钟信号越快,通信速度越快。

对于异步通信,收发双方要同一通信速率,否则会导致数据乱码。比如1S内,发送端发送了100个数据,但是接收方1S内只能接收50个数据,这样就丢失了50个数据。

描述通信速率的单位通常有两个,比特率和波特率。

比特率是系统子啊单位时间内传输的bit的个数,用Rb表示,单位是bit/s,缩写为bps

波特率是系统在单位时间内传输的码元的个数,用RB表示,单位是波特Bd。

码元就是一条数据线上的电平值,比如一条数据线上只有0V和5.5V两种状态,则码元就有2种状态;有0V,3.3V,5V三种状态时,码元就有3种状态。

比特率和波特率关系式: x i 2 x_i^2 xi2Rb = RB * log2(N);N为码元的状态。

五、常见的通信协议

在这里插入图片描述

在实际开发中,根据产品需求从性能、成本、稳定性等多方面因素考虑。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F103C8T6是一款基于ARM Cortex-M3内核的单片机,它是STMicroelectronics公司推出的一款高性能、低功耗的微控制器。下面是对STM32F103C8T6单片机学习的介绍: 1. 硬件特性:STM32F103C8T6单片机具有64KB的Flash存储器和20KB的SRAM,工作频率可达到72MHz。它还拥有多个通用输入输出引脚、模拟输入输出通道、定时器、串口通信接口等丰富的外设资源。 2. 开发环境:为了学习STM32F103C8T6单片机,你需要准备相应的开发环境。STMicroelectronics提供了免费的集成开发环境(IDE)——STM32CubeIDE,它集成了编译器、调试器和一系列的软件库,方便开发者进行代码编写、调试和下载。 3. 编程语言:STM32F103C8T6单片机可以使用多种编程语言进行开发,包括C语言和汇编语言。C语言是最常用的开发语言,它具有良好的可移植性和易于理解的特点。 4. 学习资源:学习STM32F103C8T6单片机可以参考官方提供的文档和教程,例如官方的参考手册、用户手册和应用笔记。此外,还有许多在线教程、视频教程和开发者社区可以供你参考和交流。 5. 实践项目:为了更好地掌握STM32F103C8T6单片机的应用,建议你进行一些实践项目。例如LED闪烁、按键控制、PWM调光等简单的实验,逐步深入学习各种外设的使用和驱动编程。 希望以上介绍对你有所帮助!如果你还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值