UART、SPI、IIC复习总结

一、UART

1、UART和USART的异同?

相同点

  • 基本功能:都是用于串行通信的数据收发设备,能够实现数据在不同设备之间的传输。在异步通信模式下,二者的工作方式相似,都使用起始位、数据位、校验位(可选)和停止位来构成数据帧进行数据传输。
  • 全双工通信:都支持全双工通信,即可以同时进行数据的发送和接收23。

不同点

  • 通信模式
    • UART:只支持异步通信模式,数据发送方和接收方不需要共享时钟信号,依靠预先设定的波特率来同步发送和接收数据。
    • USART:既支持异步通信模式,也支持同步通信模式。在同步模式下,数据的发送和接收通过共享时钟信号来同步。
  • 时钟信号
    • UART:没有时钟信号引脚,通信双方通过事先约定好的波特率来同步通信。
    • USART:在同步模式下,使用一个共享的时钟信号来同步数据传输,需要额外的时钟引脚(如 SCK)。USART 还可以通过外部时钟源来提供时钟信号,或者通过内部时钟生成。
  • 硬件支持
    • UART:一般接口硬件设计较为简单,只有发送(TX)和接收(RX)两个基本功能引脚,适用于异步串行通信场合。
    • USART:除具备 UART 的功能外,还支持同步通信,其硬件能直接与时钟信号协作,可提高数据传输的稳定性和速度,适合长距离或者高速通信。
  • 应用场景
    • UART:常用于较低速、较短距离的通信,如计算机与外设之间的通信、设备配置等简单数据传输场景。
    • USART:适用于更为复杂的通信场景,特别是需要同步传输数据、进行高速通信的应用,如 SPI 或 I2S 等协议的硬件实现。
  • 引脚数量
    • UART:通常只需两个引脚,即 TX(发送)和 RX(接收)。
    • USART:在同步模式下使用时,除了 TX 和 RX 引脚外,还需要额外的时钟引脚(如 SCK)来同步数据的传输。
  • 速度与稳定性
    • UART:速度相对较低,在高波特率下,由于没有时钟信号支持,可能会出现误差或时序问题。
    • USART:由于有同步模式,在高速度和长距离传输时能保持数据的稳定性,减少误码率。

2、什么是UART?

        通用异步接收器/发送器,通常称为UART,是一种广泛应用于嵌入式领域的串行异步、全双工通信协议。 

3、物理连线 

        UART 通道有两条数据线。每个设备上都有一个 RX 引脚和一个 TX 引脚(RX 用于接收,TX 用于发送)。每个设备的 RX 引脚都连接到另一个设备的 TX 引脚。

注:没有共享时钟线!这是通用异步接收方发送方的“异步”通信! 

4、通信协议 

(1)工作原理:逐位传输传输数据的每个二进制位 

(2)信号线上的状态为高时:代表“1”;当信号线上的状态为低时:代表“0”。

(3)串行通信:指利用一根传输线逐位依次传输数据,也可以用两根信号线组成全双工通信。

(4)异步通信:以一个字符为传输单位。两包数据的间隔时间可以不同,但是数据每个位的间隔时间是固定的。比如传输0x02,0000 0010,1和0之间的间隔时间就可以根据设置的波特率,每两个位之间的传输速率就是1/波特率。一般来说,两个UART设备之间的通信不需要时钟线。此时,需要在两个UART设备上指定相同的传输速率,以及空闲位起始位奇偶校验位结束位,即遵循相同的协议。

(5)数据传输速率以波特率表示,即每秒传输的位数。例如,如果数据传输速率为960个字符/秒,每个字符为10位(1个起始位、7个数据位、1个校验位、1个停止位),则其传输的波特率为10×960 = 9600 个字符/秒 = 9600 波特率 

5、数据通信格式

(1)起始位:每次通信开始时,发送方发送一个逻辑“0”信号(VOL),表示传输字符的开始。由于总线空闲时为高电平,因此在开始通信时先发送一个与空闲状态明显不同的信号,即VOL。

(2)数据位:起始位之后是我们要传输的数据。数据位可通常是8位。首先发送最低位,最后发送最高位。用低电平 表示“0”,高电平表示“1”

(3)奇偶校验位:将该位添加到数据位后,“1”位的个数应为偶数(偶校验)或奇数(奇校验),以验证数据传输的正确性。

a、奇校验:如果数据位中“1”的个数为偶数,则奇偶校验位为“1”,如果“1”的个数为奇数,则奇偶校验位为“0”。

b、偶校验:如果数据中“1”的个数为偶数,则奇偶校验位为“0”,如果数据中“1”的个数为奇数,则奇偶校验位为“1”。

(4)停止位:它是字符数据的结束标记。它可以是 1 位、1.5 位或 2 位 VOH。

 

 

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

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

相关文章

PostGIS实现矢量数据转栅格数据【ST_AsRaster】

ST_AsRaster函数应用详解:将矢量数据转换为栅格数据 [文章目录] 一、函数概述 二、函数参数与分组说明 三、核心特性与注意事项 四、示例代码 五、应用场景 六、版本依赖 七、总结 一、函数概述 ST_AsRaster是PostGIS中用于将几何对象(如点、线…

Linux 线程(上)

前言:大家早上中午晚上好!!今天来学习一下linux系统下所谓的线程吧!!! 一、重新理解进程,什么是进程? 1.1 图解 其中黑色虚线部分一整块就是进程,注意:一整…

Java API学习笔记

一.类 1. String 类 不可变性:String对象创建后不可修改,每次操作返回新对象 String str "Hello"; str.length(); str.charAt(0); str.substring(1, 4); str.indexOf("l"); str.equals("hel…

医疗信息系统安全防护体系的深度构建与理论实践融合

一、医疗数据访问系统的安全挑战与理论基础 1.1 系统架构安全需求分析 在医疗信息系统中,基于身份标识的信息查询功能通常采用分层架构设计,包括表现层、应用层和数据层。根据ISO/IEC 27001信息安全管理体系要求,此类系统需满足数据保密性…

5.18本日总结

一、英语 复习list3list28 二、数学 学习14讲部分内容,1000题13讲部分 三、408 学习计网5.3剩余内容 四、总结 计网TCP内容比较重要,连接过程等要时常复习;高数学到二重积分对定积分的计算相关方法有所遗忘,需要加强巩固。…

MATLAB2025新功能

截至2023年9月,MATLAB官方尚未公布2025版本的具体更新内容。根据历史更新规律和技术发展趋势,未来版本可能会在以下方面进行优化: AI与深度学习增强 可能新增自动化模型压缩工具强化生成式AI模型支持改进的ONNX格式转换接口 性能提升 矩阵运…

算法题(149):矩阵消除游戏

审题: 本题需要我们找到消除矩阵行与列后可以获得的最大权值 思路: 方法一:贪心二进制枚举 这里的矩阵消除时,行与列的消除会互相影响,所以如果我们先统计所有行和列的总和,然后选择消除最大的那一行/列&am…

Uniapp、Flutter 和 React Native 全面对比

文章目录 前言Uni-app、Flutter 和 React Native 跨平台框架对比报告1. 性能对比2. 跨平台能力3. 学习曲线4. 社区生态与第三方库5. 原生能力扩展6. UI 渲染能力7. 企业支持与典型使用场景8. 开发效率与工具链 前言 将对 Uniapp、Flutter 和 React Native 进行全面对比&#x…

JAVA SE 多线程(上)

文章目录 📕1. Thread类及常见方法✏️1.1 创建线程✏️1.2 Thread 的常见构造方法✏️1.3 Thread 的几个常见属性✏️1.4 启动一个线程---start()✏️1.5 中断一个线程---interrupt()✏️1.6 等待一个线程---join()✏️1.7 获取当前线程引用✏️1.8 休眠当前线程 &…

Linux云计算训练营笔记day10(MySQL数据库)

Linux云计算训练营笔记day10(MySQL数据库) 目录 Linux云计算训练营笔记day10(MySQL数据库)ifnull别名聚合函数group byHAVING 子查询关联查询 ifnull 在DQL语句中可以使用函数或表达式 函数 IFNULL(arg1,arg2) 如果arg1为NULL,函…

上位机知识篇---流式Web服务器模式的实现

文章目录 前言 前言 本文简单介绍了流式Web服务器模式的实现。

Dify与n8n全面对比指南:AI应用开发与工作流自动化平台选择【2025最新】

Dify与n8n全面对比指南:AI应用开发与工作流自动化平台选择【2025最新】 随着AI技术与自动化工具的迅速发展,开发者和企业面临着多种平台选择。Dify和n8n作为两个备受关注的自动化平台,分别专注于不同领域:Dify主要面向AI应用开发&…

day19-线性表(顺序表)(链表I)

一、补充 安装软件命令: sudo apt-get install (软件名) 安装格式化对齐:sudo apt-get install clang-format内存泄漏检测工具: sudo apt-get install valgrind 编译后,使用命令 valgrind ./a.out 即可看内存是…

AI:人形机器人一定是人的形状吗?

本文将从技术角度分析人形机器人是否必须是人的形状,以及人形与非人形机器人在适用场合、优缺点上的差异。以下是详细解答: 人形机器人一定是人的形状吗? 不,人形机器人(Humanoid Robot)在技术上通常指外…

布隆过滤器和布谷鸟过滤器

原文链接:布隆过滤器和布谷鸟过滤器 布隆过滤器 介绍 布隆过滤器(Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数,检查值是“可能在集合中”还是“绝对不在集合中” 空间效率高&a…

无需配置光猫,使用网管交换机配合路由器的IPTV功能实现单线复用

一、背景 弱电箱和电视柜只预留了一根网线,路由器放在电视柜,想实现既可以上网又可以正常观看iptv,本文提供了一种方法。 二、准备工作 1、带iptv功能的路由器;2、水星sg105pro网管交换机;3、网线若干; …

深入理解SpringBoot中的SpringCache缓存技术

深入理解SpringBoot中的SpringCache缓存技术 引言 在现代应用开发中,缓存技术是提升系统性能的重要手段之一。SpringBoot提供了SpringCache作为缓存抽象层,简化了缓存的使用和管理。本文将深入探讨SpringCache的核心技术点及其在实际业务中的应用场景。…

2025认证杯数学建模A题思路+代码+模型:小行星轨迹预测

2025认证杯数学建模A题思路代码模型,详细内容见文末名片 近地小行星( Near Earth Asteroids, NEAs )是轨道相对接近地球的小行 星,它的正式定义为椭圆轨道的近日距不大于 1.3 天文单位( AU )的小行星。 …

LeetCode Hot100刷题——轮转数组

56. 轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: …

「Mac畅玩AIGC与多模态41」开发篇36 - 用 ArkTS 构建聚合搜索前端页面

一、概述 本篇基于上一节 Python 实现的双通道搜索服务(聚合 SearxNG 本地知识库),构建一个完整的 HarmonyOS ArkTS 前端页面。用户可在输入框中输入关键词,实时查询本地服务 http://localhost:5001/search?q...,返…