通讯协议学习之路:USART协议理论

通讯协议之路主要分为两部分,第一部分从理论上面讲解各类协议的通讯原理以及通讯格式,第二部分从具体运用上讲解各类通讯协议的具体应用方法。

后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374)

一、uart和usart的区别

UART与USART都是单片机上的串口通信,他们之间的区别如下:

首先从名字上看:

UART:universal asynchronous receiver and transmitter通用异步收/发器

USART:universal synchronous asynchronous receiver and transmitter通用同步/异步收/发器

从名字上可以看出,USART在UART基础上增加了同步功能,即USART是UART的增强型,事实也确实是这样。但是具体增强到了什么地方呢?

其实当我们使用USART在异步通信的时候,它与UART没有什么区别,但是用在同步通信的时候,区别就很明显了:大家都知道同步通信需要时钟来触发数据传输,也就是说USART相对UART的区别之一就是能提供主动时钟。如STM32的USART可以提供时钟支持ISO7816的智能卡接口。

  1. 同步与异步:USART支持同步和异步传输,而UART只支持异步传输。同步传输使用外部时钟信号来同步数据传输,而异步传输使用起始位、数据位、停止位等来标识数据的开始和结束。
  2. 时钟信号:USART可以使用外部时钟信号来同步数据传输,这使得它可以在高速传输中实现更高的可靠性和精确性。UART没有内置的时钟信号,只能使用异步传输。
  3. 传输速率:由于USART支持同步传输,因此它可以在更高的传输速率下工作。UART通常用于较低的传输速率,如串口通信。
  4. 数据格式:USART支持多种数据格式,包括数据位数、校验位和停止位的配置。UART通常只支持固定的数据格式,如8个数据位,无校验位和1个停止位。
  5. 错误检测:由于USART支持同步传输和校验位,因此它可以提供更可靠的错误检测和纠正。UART通常没有内置的错误检测机制。

总的来说,USART相对于UART具有更高的灵活性和可靠性,适用于更高速的数据传输和更复杂的通信需求。UART则更简单、更常见,适用于低速的串口通信。选择使用USART还是UART取决于具体的应用需求和硬件支持。

二、USART协议

USART(Universal Synchronous/Asynchronous Receiver/Transmitter)是一种通用的串行通信协议,支持同步和异步传输。它可以用于在计算机和外部设备之间进行数据传输。

USART协议定义了数据的传输格式和通信参数,包括数据位数、校验位、停止位、波特率等。下面是USART协议的一些关键特点:

1. 数据格式:USART可以配置不同的数据位数,通常支持5、6、7或8个数据位。可以选择是否使用校验位来检测数据的完整性。可以选择使用1或2个停止位来标识数据的结束。

2. 传输模式:USART支持同步和异步传输。同步传输使用外部时钟信号来同步数据传输,可以实现更高的可靠性和精确性。异步传输使用起始位、数据位、停止位等来标识数据的开始和结束。

3. 波特率:USART的波特率定义了数据传输的速率,表示每秒传输的位数。常见的波特率包括9600、115200等。波特率的选择需要考虑通信双方的硬件支持和传输距离等因素。

4. 通信模式:USART可以配置为全双工或半双工模式。全双工模式允许同时进行发送和接收操作,而半双工模式只允许发送或接收操作。

5. 错误检测:USART可以提供一些错误检测机制,如奇偶校验、帧错误检测等。这些机制可以帮助检测和纠正数据传输中的错误。

USART通常用于串口通信,可以连接各种外部设备,如传感器、显示器、无线模块等。它在嵌入式系统、通信设备、工业控制等领域得到广泛应用。使用USART进行通信需要双方设备的串口配置相匹配,以确保正确的数据传输。

三、USART怎么实现同步通信

要实现USART的同步通信,需要使用外部时钟信号来同步数据传输。下面是一种常见的同步通信方式:

1. 配置USART为同步模式:首先,需要将USART配置为同步模式。这通常涉及设置USART的控制寄存器,以选择同步模式和设置其他通信参数,如数据位数、校验位和停止位等。

2. 连接外部时钟信号:在同步模式下,需要连接外部时钟信号到USART的时钟引脚。这个时钟信号将用于同步数据传输。

3. 数据传输:在同步模式下,数据的传输是通过时钟信号来同步的。发送方在每个时钟周期中将数据位发送到USART的数据引脚,接收方在相同的时钟周期中读取数据位。发送方和接收方必须使用相同的时钟信号来保持同步。

4. 时钟信号的配置:时钟信号的频率和相位需要在发送方和接收方之间进行协商和配置。发送方和接收方必须使用相同的时钟频率和相位来保持同步。这通常需要在通信双方之间进行协商和配置。

需要注意的是,同步通信需要外部时钟信号的支持,并且在配置时需要确保发送方和接收方使用相同的时钟频率和相位。同步通信可以提供更高的可靠性和精确性,适用于一些对数据传输要求较高的应用场景。但是,同步通信也需要更复杂的硬件支持和配置,相对于异步通信来说更为复杂。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/139939.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习笔记|串口通信实战|简易串口控制器|sprintf函数|STC32G单片机视频开发教程(冲哥)|第二十一集(下):串口与PC通信

目录 3.串口通信实战实操简易的工作原理Tips:sprintf函数简介 总结课后练习 3.串口通信实战 做一个简易串口控制器。发送对应指令,让板子做相应的事情,或者传输数据(文本模式下发送,不要选择HEX)。 1.串口发送字符Ax\…

【爬虫教程】2023最详细的爬虫入门教程~

初识爬虫 学习爬虫之前,我们首先得了解什么是爬虫。 来自于百度百科的解释: 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则&a…

手机抬手亮屏解锁,用到了哪些硬件?

随着时代发展,智能手机以丰富的功能及便利性,成为了人们必不可少的物品,其中人脸解锁功能是非常有用的功能,广受年轻人的喜爱,那么你知道她是如何实现吗?今天凡小亿带你们探索! 手机抬手亮屏解锁…

论文阅读:Image-to-Lidar Self-Supervised Distillation for Autonomous Driving Data

目录 摘要 Motivation 整体架构流程 技术细节 雷达和图像数据的同步 小结 论文地址: [2203.16258] Image-to-Lidar Self-Supervised Distillation for Autonomous Driving Data (arxiv.org) 论文代码:GitHub - valeoai/SLidR: Official PyTorch implementati…

什么是CSGO大行动,2023年CSGO大行动时间预测

什么是CSGO大行动,2023年CSGO大行动时间预测 什么是CSGO大行动,2023年CSGO大行动时间预测 那天群里在提大行动,不明所以的新同学在问,什么是大行动,是不是官方红锁大行动要来了?当然不是,别自己…

AI系统ChatGPT源码+详细搭建部署教程+支持GPT4.0+支持ai绘画(Midjourney)/支持OpenAI GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统,支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…

[python] pytest

在写一个项目前, 可以先编写测试模块 测试模块中包含了一个个最小的功能 当每一个功能都完善正确时 再将这些功能转换成项目运行的功能 多个项目运行的功能就组成了一个模块 多个模块就组成了一个项目服务 pytest 是一个 Python 测试框架,它提供了简单易用的语…

Python中的循环语句Cycle学习

二、循环语句 1、什么是循环语句 一般编程语言都有循环语句,为什么呢? 那就问一下自己,我们弄程序是为了干什么? 那肯定是为了方便我们工作,优化我们的工作效率啊。 而计算机和人类不同,计算机不怕苦也不怕累,也不需要休息,可以一直做。 你要知道,计算机最擅长就…

github 终端克隆操作,以及对 https/ssh 的理解

前言 最近瞎搞 github 的一些配置,结果搞得有一段时间克隆不了仓库。不过经历了这次风波后,我对 github 的一些原理有了更清楚的了解。所以想稍微写一小篇文章总结输出一下,也欢迎有疑问的读者与博主进一步交流,我的理解还是有限…

Android Studio SDK manager加载packages不全

打开Android Studio里的SDK manager,发现除了已安装的,其他的都不显示。 解决方法: 设置代理: 方便复制> http://mirrors.neusoft.edu.cn/ 重启Android Studio

Uniapp 电子签名 包含 返回 撤回 颜色 线条等功能

请观看 使用教程 第一步 引入图标 在项目中的App.vue内添加下面代码 <style>/*引入图标路径 */import uni_modules/TC-qianming/libs/css/iconfont.css; </style> 第二步 引入组件即可 <template><view><TC-qianming></TC-qianming>&l…

云安全—分布式基础

0x00 前言 云必然是依赖于分布式技术来进行实现的&#xff0c;所以有必要学习和来了解分布式相关的内容 0x01 分布式计算 1.基本概述 分布式计算的定义&#xff1a;通过网络互联的计算机都具有一定的计算能力&#xff0c;他们之间互相传递数据&#xff0c;实现信息共享&…