硬件(三) 通信方式、串口通信

一、通信类型

(一)并行通信

多个比特通过并行线同时传输,传输速率快,但会大量占用芯片资源,在对资源敏感的场景下不太适用。

(二)串行通信

把数据拆成单个比特,按顺序在一根总线上发送。它系统资源占用少、结构简单,是主机间通信常用方式。像 RS232、RS485、RS422 都属于串行通信,串口通信(Serial Port)也是串行通信的一种,且属于异步通信。

(三)单工模式

通信时一方固定发,另一方固定收,用一根总线传数据,只能单向传信息,就像只能听别人说,没法回应。

(四)半双工通信

数据能在两个方向交替传,但不能同时进行。通信双方能发也能收,不过不能同时干这两件事,好比和人交替说话、倾听,你说时对方听,对方说时你听,常用于对话类场景。

(五)全双工通信

数据可同时在两个方向传输,双方能同时发和收数据,实现双向通信,类似打电话,能同时说和听。

(六)串行的异步与同步通信

1. 异步通信

两个字符(8 位)之间时间间隔不固定,但一个字符内各位时间间隔固定。收发双方波特率得事先约定好。串口通信时,波特率若没约定好,数据传输会乱。发送和接收方各自 “计时”,只要误差不超 6% 左右就行,这就像打字,敲每个字母的时间自己控制,只要接收端能正确识别。

2. 同步通信

要求收发双方同频同相。设备间除数据线(SDA),还有时钟线(SCL),发送方控制时钟线变化,每发一个比特,时钟线都按规则改变,就像合唱团靠指挥员控制节奏,大家按节奏唱歌,IIC、SPI 都用这种方式。同步和异步串行通信的区别是有无时钟线,有就是同步,没有就是异步。

注:同步串行通信方式与异步串行通信方式的区别:存在时钟线的为同步串行

通信方式通信,没有时钟线的为异步串行通信方式。

二、串行口通信(全双工、异步)

(一)UART 协议

UART(通用异步收发器)是常用串行通信协议,用于设备间数据传输,通过 TXD(发送线)和 RXD(接收线)实现异步传输,TXD 发数据到另一设备,RXD 从另一设备收数据到本设备。

(二)串口通信时序

以 TTL 为例,不同主机间数据格式如下:

  • 空闲时:数据线为高电平。
  • 起始位:发送方发一个低电平作为起始位。
  • 数据位:按低位先行(第一个比特是最右边的最低位)发送。
  • 校验位:有奇校验、偶校验和无校验三种,可选择发或不发。奇校验要让数据位加校验位中 “1” 的总数为奇数;偶校验则让总数为偶数。
  • 停止位:校验位后发一个停止位(高电平),把两个数据分隔开,停止位也可以是 1.5 个或 2 个。
    简单说通信逻辑就是:空闲时数据线高电平,发数据先送低电平起始位,然后按低位先行发 8 个数据位,接着可选校验位,最后发高电平停止位。

(三)波特率

用波特率(bps)描述串口数据传输速率,指每秒传输的比特数。常见波特率有 1200、2400、4800、9600、115200 等。比如 9600bps,就是每秒传 9600 个比特,每个比特传输时间约 1.041×10⁻⁴秒。

三、三种串行通信的物理表现

主机间通信,导线内阻会导致电压衰减,TTL 电平还会因主机距离出现高电平衰减和串扰。

(一)TTL

芯片引脚产生的电压,和芯片有关,51 单片机下是 5V,2440 下是 3.3V 等。5V TTL 通信距离一般在 10 - 20 米,传输距离受限。逻辑 0 是 0V 低电压,逻辑 1 由芯片供电电压决定。

(二)RS232

为解决 TTL 传输距离短的问题,IEEE 颁布 RS232 标准。逻辑高电平(逻辑 1)在 - 3V 到 - 15V 之间,逻辑低电平(逻辑 0)在 + 3V 到 + 15V 之间。收发主机有收、发、地三根线,是全双工的,理论能传 20 - 30 米。

(三)RS485

用 A、B 两根信号线,通过比较两者电压差识别信息,+7V 到 + 12V 是逻辑 1,-7V 到 - 12V 是逻辑 0。差分传输抗干扰强,传输距离可达 1200 米,适用于大范围传输。因为传输时两根线都得用,所以是半双工的。

四、串行口寄存器

包括 SBUF(串行口数据缓冲寄存器)、SCON(串行口控制寄存器)、PCON(电源控制寄存器)等,这些寄存器用于配置和控制串行通信的相关参数与状态。

五、USB 下载电路模块相关

(一)xdata 的作用

不把内容存在芯片内部 RAM,而是存在扩展的 RAM 里,能扩展存储容量。

(二)定时器初值计算

公式为2^8−2^smod×focs/32/bps/12。其中 smod 是 PCON 的 B7 位(0 或 1,SMOD=1 时波特率翻倍),focs 是晶振频率(如 11.0592M),bps 是目标波特率(如 2400),2^8因用 8 位自动重装定时器工作方式。若 2400bps 且 smod=1,计算得初值 232。

六、MODBUS 通信协议

协议通过定义数组元素内容来规定通信帧结构。如图中主机与从机通信,帧包含起始字节、地址码、功能码、数据、校验码、结束码等。功能码区分功能(如点灯、数码管、蜂鸣器、测温等),从机到主机时功能码最高位会进行或 1 操作。

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

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

相关文章

vsan default storage policy 具体是什么策略?

vSAN Default Storage Policy(vSAN 默认存储策略)是 VMware vSAN 部署后自动创建的基础存储策略,其核心目标是在“通用性”和“可靠性”之间取得平衡,为大多数虚拟机提供默认的数据保护和存储服务,无需管理员手动创建策…

雨后阳光为何更强烈?

1. 降雨后的辐射是否会增强一般来说,降雨时天空多云,云层对太阳辐射有强烈削弱作用,所以降雨时的短波辐射显著下降。但雨后,空气湿度大、颗粒物被冲刷、天空转晴时,大气透明度会提高,短波辐射相较于降雨前往…

美团发布 | LongCat-Flash最全解读,硬刚GPT-4.1、Kimi!

一、导读 本报告解析了美团LongCat团队推出的LongCat-Flash模型,一个拥有5600亿参数的混合专家模型(Mixture-of-Experts, MoE)。面对大规模语言模型在计算资源和效率上的挑战,LongCat-Flash旨在实现计算效率与高级智能体&#xf…

Ubuntu 18.04 上升级 gcc 到 9.4

18.04 默认的源中可能没有 GCC-9.3 或更新版本,在终端运行以下命令来添加 PPA: sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update2.安装 GCC 和 G sudo apt install gcc-9 g-93.更新替代版本 如果系统中安装了多个 GCC 版本&#x…

.NET GcPDF V8.2 新版本:人工智能 PDF 处理

一、GcPDF 产品简介 GcPDF(GrapeCity Documents for PDF)是葡萄城(GrapeCity)推出的一款功能强大的 .NET PDF 开发组件,旨在为开发人员提供高效、灵活的 PDF 文档处理解决方案。无论是创建全新 PDF 文档、编辑现有 PD…

解锁桐果云零代码数据平台能力矩阵——赋能零售行业数字化转型新动能

在零售行业从“规模扩张”转向“精细运营”的当下,数据已成为优化库存、精准营销、防控风险的核心抓手。但多数零售企业仍面临“数据杂乱难治理、分析建模门槛高、场景适配性不足”等难题,导致大量订单、商品、交易数据沉睡,难以转化为经营决…

rabbitmq 入门知识点

RabbitMQ 是一个 消息队列中间件(Message Broker),实现了 AMQP 协议,常用于服务之间解耦、异步处理、流量削峰等场景。 我帮你分成两个部分来讲:核心原理 常见用法。🧩 一、核心原理 RabbitMQ 的核心是 生…

点控云智能客服:以AI重塑服务体验,登顶行业第一的革新之路

在数字化浪潮席卷全球的今天,客户服务已成为企业核心竞争力之一。智能客服作为连接企业与客户的重要桥梁,其效能与体验直接关系到企业的品牌形象与市场口碑。近日,权威机构发布的《中国智能客服市场竞争力报告》显示,点控云智能客…

9.5 IO-线程day5

信号量打印ABC#include <stdio.h> #include <string.h> #include <stdlib.h> #include <25061head.h> sem_t sem[1]; void *callback(void *arg) {while(1){sem_wait(&sem[0]);printf("A\n");sleep(1);sem_post(&sem[1]);}pthread_e…

老师如何高效收集学生学籍信息,完成收集工作?

开学的时光总是忙碌而充实&#xff0c;除了要热情地迎接新生、用心地备课&#xff0c;还有一件让人头疼不已的事情——学生学籍信息的收集。上学期开学&#xff0c;我承担起了收集班级新生信息的重任&#xff0c;满心以为提前准备好的纸质表格&#xff0c;在新生报到那天发给家…

JAVA层的权限与SELinux的关系

Java 层权限是应用程序级别的“门禁卡”&#xff0c;而 SELinux 是系统级别的“防火墙规则和强制访问控制”。即使你拥有进入大楼的“门禁卡”&#xff08;Java 权限&#xff09;&#xff0c;如果“防火墙规则”&#xff08;SELinux 策略&#xff09;不允许你的进程与目标服务或…

Screen 三步上手

好的&#xff0c;这是给同事的简洁版说明&#xff1a;Screen 三步上手 开新窗口&#xff1a;干活前先开个带名字的窗口&#xff0c;不怕断连。 screen -S 任务名看所有窗口&#xff1a;随时查看都有哪些任务在后台跑。 screen -ls重回窗口&#xff1a;断连后重新登录&#xff0…

flink 伪代码

import java.util.*; import java.util.concurrent.*;// 核心接口定义 interface StreamOperator {void open();void processElement(Object element);void close(); }interface SourceFunction extends StreamOperator {void run(SourceContext ctx); }interface SinkFunction…

一招快速识别你的电脑是机械硬盘还是固态硬盘

你是否经常觉得电脑开机慢、软件打开卡顿&#xff1f;其中一个关键原因&#xff0c;可能就在于你使用的是机械硬盘&#xff08;HDD&#xff09;还是固态硬盘&#xff08;SSD&#xff09;。固态硬盘读写速度快&#xff0c;能显著提升系统响应速度&#xff1b;而机械硬盘虽然容量…

52核心52线程,Intel下一代CPU憋了个大的

被逼急了的 Intel&#xff0c;可能正在憋大招&#xff01;如大伙儿所见&#xff0c;Intel 这两年日子已经不能用「惨」来形容。其过去引以为傲的 PC 处理器&#xff0c;特别是高性能桌面处理器领域&#xff0c;如今算是彻底被 AMD 打懵了。无他&#xff0c;己方产品是连年摆烂&…

【LeetCode 热题 100】1. 两数之和——(解法二)哈希表

Problem: 1. 两数之和 文章目录整体思路完整代码时空复杂度时间复杂度&#xff1a;O(N)空间复杂度&#xff1a;O(N)整体思路 这段代码旨在高效地解决 “两数之和” 问题。与 O(N^2) 的暴力枚举法相比&#xff0c;此版本采用了一种经典的 “空间换时间” 策略&#xff0c;利用 …

MySQL主从同步--主从复制进阶

MySQL支持一台主库同时向多台从库进行复制&#xff0c;从库同时也可以作为其他从服务器的主库&#xff0c;实现链状复制。1、MySQL支持的binlog二进制日志复制类型- 基于语句&#xff08;statement&#xff09;的复制在主服务器上执行SQL语句&#xff0c;在从服务器上执行同样的…

WPF外部打开html文件

注意&#xff1a;这是一份提供WPF外部浏览器打开html的方法&#xff0c;而不是WPF内部嵌入html 需要通过浏览器打开&#xff0c;否则无法使用地址栏拼接参数的形式操作html 下面是打开html的方法↓string localHtmlPath "C:\Users\pangb\Downloads\Help\帮助文档 - 副本.…

Go初级之十:错误处理与程序健壮性

Go初级之十&#xff1a;错误处理与程序健壮性为什么选这个主题&#xff1f; 错误处理是 Go 语言中一个非常独特且重要的设计哲学。它体现了 Go 的“显式错误处理”思想&#xff0c;与其它语言&#xff08;如 Java/Python&#xff09;的异常机制不同。在实际开发中&#xff0c;几…

Xsens解码人形机器人训练的语言

随着人形机器人在现实世界的应用中变得越来越普遍&#xff0c;了解实现其类似人类运动的技术至关重要。在Xsens我们满怀热情地探索这一领域&#xff0c;致力于为人形机器人训练开发最佳的动作捕捉解决方案。为了帮助您更好地理解所遇到的术语&#xff0c;我们创建了一份概述&am…