串口通信以及USART和UART以及IIC和SPI-学习笔记

串行通讯与并行通讯

  1. 串行通讯是指设备之间通过少量数据信号线(一般8根以下)、地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式,串行通讯同一时刻只能传输一个数据位的数据,但通讯距离比并行通讯远、抗干扰能力比并行通讯强,成本较低
  2. 并行通讯指使用8、16、32及64根或更多的数据线进行传输的通讯方式。并行通讯可传输多个数据位的数据,传输速率相比于串行通讯较高

全双工、半双工及单工通讯

  1. 全双工就是同一时刻两个设备间可同时收发数据;半双工同一时刻不能同时收发数据但设备间可进行数据收发;单工表示随时但只能进行一个方向的通讯,设备向另一个设备发送和接收都是固定的。

同步通讯和异步通讯

  1. 根据是否使用到时钟信号简单可区分;

USART

  1. 具体名称:通用同步/异步串行接收/发送器;
  2. 特点:全双工通用同步/异步串行收发模块;
  3. 注意:它只是一种通信方式;不具体到串口名称;

UART

  1. 具体名称:通用异步串行接收/发送器;
  2. 特点:全双工通用异步串行收发模块;
  3. 串口通信的接收和发送方无统一的时钟信号,故也可算为异步通信;
  4. 串口通信使用电平信号传输:电平信号是用信号线电平减去参考线电平得到的电压差,此电压差决定了传输值为0或1(逻辑值);
  5. RS232电平和TTL电平以及RS485电平:RS232电平中-15-3V表示值为1,+3V+15V表示0;而TTL电平中+2.4V+5V表示1,0V0.5V表示0;RS485中+2V+6V表示逻辑1,-6V-2V表示逻辑0;注意:它们都是一种逻辑电平的表示方式,算是一个电平标准。
  6. 串口通信为了使双方正常通信,所以需要事先约定号通信格式对应参数值,比如波特率(指串口通信速率,9600波特率表示每秒传输一个二进制位需要1/9600=104us),需要注意通信时双方必须设置相同的波特率才可通信
  7. 其他参数:起始位:表示发送方发送一个通信单元;数据位:是一个通信单元中发送的有效信息位,一般可选6、7、8、9,一般为8位;校验位、停止位(一般可设1、1.5、2);
  8. 232通信主要由RX、TX和GND三根线组成,设备间发送接接收,接收连发送,地线接地线,为了保证数据传输增加至九个引脚,也叫DB9;
  9. 485通信时主要为了解决232通信距离问题,它以一种差分信号进行传输,只需要两根线,A和B作为数据信号传输。
  10. 422就是把232的RX分为RX+、RX-,TX分为TX+、TX-,确保可以同时发送和接收,传输距离也比较长。(RS232接口通讯距离小于等于15m,只能连接一个设备,而RS422和485接口通讯距离最大可达1200m并且可连接多台设备。)
  11. 参考地址

SPI和IIC总线

  1. SPI总线

SPI总线是一种全双工的串行通信总线,由一个主设备(Master)和一个或多个从设备(Slave)组成。SPI总线通常由四根线构成:
SCLK(Serial Clock):时钟线,由主设备产生,并用于同步数据传输。
MOSI(Master Out Slave In):主设备输出从设备输入的数据线。
MISO(Master In Slave Out):主设备输入从设备输出的数据线。
SS(Slave Select):从设备选择线,用于选择从设备进行通信。
SPI总线的工作方式如下:
主设备通过SS线选择目标从设备。
主设备发送数据到MOSI线。
主设备从MISO线读取从设备的响应数据。
在每个时钟周期中,主设备和从设备都会在各自的数据线上同时发送和接收数据。
SPI总线具有以下特点:
高速:SPI总线通常可以达到很高的数据传输速率,适用于对速度要求较高的应用。
灵活性:SPI总线可以连接多个从设备,并且可以通过SS线选择目标设备。
简单性:SPI总线协议相对简单,易于实现和调试。
SPI总线广泛应用于许多领域,如存储器芯片、传感器、显示屏等。例如,存储器芯片可以使用SPI总线来读取和写入数据。
20. I2C总线

I2C总线是一种双线制的串行通信总线,由一个或多个主设备和一个或多个从设备组成。I2C总线通常由两根线构成:
SCL(Serial Clock):时钟线,由主设备产生,并用于同步数据传输。
SDA(Serial Data):数据线,用于传输数据。
I2C总线的工作方式如下:
主设备通过SCL线产生时钟信号驱动通信。
主设备通过SDA线发送起始位(Start Bit)和从设备地址,并指定读取或写入操作。
主设备或从设备通过SDA线传输数据,每个字节都会由接收方发送一个应答位(ACK)作为确认。
通信结束后,主设备发送停止位(Stop Bit)结束通信。
I2C总线具有以下特点:
多设备连接:I2C总线支持多个主设备和从设备的连接,通过地址选择实现通信。
低速:相对于SPI总线,I2C总线的数据传输速率较低。
简单性:I2C总线协议较为简单,易于实现和调试。
I2C总线广泛应用于许多领域,如存储器芯片、传感器、温度监测器、电源管理芯片等。例如,传感器可以使用I2C总线来传输测量数据,而电源管理芯片可以使用I2C总线来控制和监测电源的状态。
注意:由于SPI总线采用全双工模式,数据可以同时在主设备和从设备之间传输,因此SPI总线通常具有较高的数据传输速率。而I2C总线采用半双工模式,数据只能在一个方向上传输,因此其数据传输速率相对较低。
参考地址

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

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

相关文章

关于springboot跨域与拦截器的问题

今天写代码的时候遇到的一个问题,在添加自己设置的token拦截器之后,报错: “ERROR Network Error AxiosError: Network Error at XMLHttpRequest.handleError (webpack-internal:///./node_modules/axios/lib/adapters/xhr.js:112:14) at Axi…

基于微信小程序实现信阳毛尖茶叶商城系统设计与实现

作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,…

FPGA开发verilog语法基础1

文章目录 主体内容1.1 逻辑值1.2 数字进制格式1.3 数据类型1.3.1 寄存器类型1.3.2 线网类型1.3.3 参数类型1.3.4 存储器类型 参考资料 主体内容 1.1 逻辑值 1,逻辑0,表示低电平 2,逻辑1,表示高电平 3,逻辑X&#xff0…

Java阶段三02

第3章-第2节 一、知识点 面向接口编程、什么是spring、什么是IOC、IOC的使用、依赖注入 二、目标 了解什么是spring 理解IOC的思想和使用 了解IOC的bean的生命周期 理解什么是依赖注入 三、内容分析 重点 了解什么是spring 理解IOC的思想 掌握IOC的使用 难点 理解IO…

Android Preference浅析(设置Setting)

各位,好久不见,最近时间较为充裕,更新一下博客。 本篇在我的理解、认识范围内,讲述一下Android中的Preference(破粉斯~)这玩意,常用于项目中的设置模块中。在工作中我也主要负责了设置模块相关…

鸿道Intewell操作系统架构介绍之Intewell-Hyper I 虚拟化构型

鸿道Intewell-Hyper I 虚拟化构型是鸿道Intewell-V虚拟化架构下的构型体系!鸿道Intewell-V是科东软件自主研发的实时虚拟化操作系统,包括鸿道Intewell-Hyper I 和鸿道Intewell-Hyper II。鸿道Intewell-V可以实现多个操作系统在同一物理硬件上并行运行&am…

讲一讲 kafka 的 ack 的三种机制?

大家好,我是锋哥。今天分享关于【K讲一讲 kafka 的 ack 的三种机制?】面试题?希望对大家有帮助; 讲一讲 kafka 的 ack 的三种机制? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Kafka的消息确认机制&…

多租户系统的应用架构

大家好,我是汤师爷~ 我们看下多租户系统的应用架构是如何从一层层构建起来的。 1、应用层设计 应用层的主要作用是为具体的用户场景提供应用服务,帮助用户在特定场景下完成操作。通过编排领域层的各项能力,实现SaaS产品的核心功能。应用层包…

波兰喜嘎嘎

之前做的一个项目,需要用c写一个服务去访问和控制硬件。这个服务是同事写的,今年年中离职了,很自然地,轮到我接手。 一、认知 我捣鼓了几天,勉强读懂一点原来的代码,并在原来基础上,做了一些修…

基于LORA的一主多从监测系统_4G模块上巴法云

临时添加一个更新,更换云平台为巴法云,事情的起因是因为阿里云这个老六,早上睡了一觉起来发短信告诉我云平台给我停了,得交钱,好嘛,不过也没办法现在这基本都收费,当然还有onenet可以用&#xf…

.NET Core WebApi第4讲:控制器、路由

一、控制器是什么? 1、创建一个空的API控制器:TestController.cs 2、里面有一个类叫TestController,把它叫做控制器 因为它继承了ControllerBase类,ControllerBase类里提供了一系列的方法,使得TestController这个类具…

Java面试经典 150 题.P55. 跳跃游戏(009)

本题来自:力扣-面试经典 150 题 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台https://leetcode.cn/studyplan/top-interview-150/ 题解: class Solution {public boolean canJump(int[] nums) {int…

计算机网络网络层笔记

互联网提供的两种服务 1.虚电路服务 2.数据报服务 需要记住的是现在只用第二种也就是数据报服务 网际协议IP 物理层的中断系统:转发器(hub) 链路层的中断系统:交换机 网络层的中断系统:路由器 网络层以上:网关 如上图所示,网关是用来访问其他的网段的一个接口,网关的地…

【热门主题】000015 大数据治理:开启数据价值新纪元

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【热…

CentOS8.5.2111(4.1)数据中心主DNS部署

【背景】 某公司的数据中心DC,要架设DNS服务器负责解析“学生姓名缩写.cqie”的域名解析工作。DNS服务器的FQDN(完全正式域名标识)为dns.姓名.cqie,IP地址为192.168.学号.66。要求为以下域名实现正反向域名解析服务。&#xff08…

【C/C++】模拟实现strlen

学习目标: 使用代码模拟实现strlen。 逻辑: strlen 需要输入一个字符串数组类型的变量,并且返回一个整型类型的数据。strlen 需要计算字符串数组有多少个元素。 代码1:使用计数器 #define _CRT_SECURE_NO_WARNINGS 1 #include&…

渗透测试-百日筑基—SQL注入篇时间注入绕过HTTP数据编码绕过—下

day8-渗透测试sql注入篇&时间注入&绕过&HTTP数据编码绕过 一、时间注入 SQL注入时间注入(也称为延时注入)是SQL注入攻击的一种特殊形式,它属于盲注(Blind SQL Injection)的一种。在盲注中,攻击…

Linux 文件内容显示

文件内容显示 浏览普通文件 文件内容查看 cat 命令 作用:查看文件内容,适合数据量较少 格式: cat -参数 文件名 参数: -n :显示行号,加上 -b :文件中所有非空行增加行号&#xff0…

ALIGN: Tuning Multi-mode Token-level Prompt Alignment across Modalities

文章汇总 当前的问题 目前的工作集中于单模提示发现,即一种模态只有一个提示,这可能不足以代表一个类[17]。这个问题在多模态提示学习中更为严重,因为视觉和文本概念及其对齐都需要推断。此外,仅用全局特征来表示图像和标记是不…