当前位置: 首页 > news >正文

硬件基础:串口通信

数据传输方式(按位传输方式)

并行通信

通过多条数据线同时传输多个数据位,速度较快但成本高,抗干扰能力弱,适用于短距离通信,如早期的打印机接口。

串行通信

通过单条或少数数据线逐位传输数据,线路简单、成本低、抗干扰强,适用于中长距离通信,如UART、USB等。

通信方向(按收发能力)

单工通信

数据只能单向传输,无法交互,如广播或遥控器。

半双工通信

数据可双向传输但不能同时进行,需分时切换方向,如对讲机或RS-485总线。

全双工通信

数据可同时双向传输,需独立收发线路,如电话或UART串口。

串口通信(UART)

采用异步全双工通信方式,无时钟线,通过预设波特率同步传输。

数据帧包含起始位、数据位(5~8位)、可选校验位及停止位。

典型应用包括单片机与PC、传感器等设备的通信。

校验方式(数据完整性检测)

奇校验

数据位中“1”的总数需为奇数,不足时校验位补“1”。

例如:01001000(2个“1”)需补“1”使总数为3。

偶校验

数据位中“1”的总数需为偶数,不足时校验位补“1”。

例如:01001000(2个“1”)校验位补“0”保持总数不变。

实际通信中也可选择无校验以减少开销。

同步通信与异步通信(按同步方式)

同步通信

依赖时钟信号同步,数据连续传输,无起始/停止位,效率高但需额外时钟线,如SPI或I2C。

异步通信

通过波特率和帧结构同步,数据以独立帧传输,硬件简单但效率较低,如UART或RS-232。

串口通信基础概念

串口通信是一种通过单条或少数线路逐位传输数据的通信方式,适合中短距离设备交互(如单片机与PC)。其核心是异步时序,典型代表为UART协议。

UART通信时序

空闲状态:通信线保持高电平(逻辑1)。

起始位:1位低电平(逻辑0),标志数据传输开始。

数据位:5~8位有效数据(常见8位),低位在前传输。

校验位(可选):奇/偶校验或无校验,用于简单检错。

停止位:1~2位高电平(逻辑1),标志帧结束。

波特率与速率配置

串口通信速率由波特率(Baud Rate,单位bit/s)决定,收发双方必须一致。

常见波特率

标准值包括:1200、2400、4800、9600、19200、38400、57600、115200、230400等。

代码示例
通过定时器配置波特率(如8051单片机):

TH1 = 0xFD;  // 波特率9600(假设晶振11.0592MHz)
TL1 = 0xFD;

物理层标准对比

TTL电平

电平范围

5V TTL:逻辑1≈5V,逻辑0≈0V。

3.3V TTL:逻辑1≈3.3V,逻辑0≈0V。

特点:传输距离短(<3米),抗干扰弱,直接连接芯片引脚。

RS232

电平范围:逻辑1=-3~-15V,逻辑0=+3~+15V。

特点:通过电平转换芯片(如MAX232)与TTL互转。

传输距离≤15米,点对点全双工通信,常见于DB9接口。

RS485

差分信号:逻辑1(A>B),逻辑0(A<B)。

特点:抗干扰强,传输距离≤1200米。支持多节点(最多32设备),半双工通信,用于工业总线(如Modbus)。

应用场景

标准距离节点数典型场景
TTL<3米点对点单片机与传感器直连
RS232≤15米点对点旧式PC与外设通信
RS485≤1200米多节点工业现场总线(PLC等)

Modbus协议

工业领域主从式通信协议,支持设备间数据交互。

Modbus RTU

二进制模式,帧结构包括地址码、功能码、数据区及CRC校验。

功能码如0x03(读寄存器)、0x06(写单个寄存器)。

采用CRC16校验确保数据完整性。

Modbus ASCII

文本模式,数据以ASCII字符传输,帧结构包含起始符、地址码、功能码、数据区及LRC校验。

校验采用LRC(纵向冗余校验)。

协议简单开放,支持RS-232/485及以太网(Modbus TCP)等物理层。

 

http://www.xdnf.cn/news/1467667.html

相关文章:

  • P1106 删数问题
  • 鼓励员工提出建议,激发参与感——制造企业软件应用升级的密钥
  • 02-Media-5-mp4demuxer.py 从MP4文件中提取视频和音频流的示例
  • 敏捷开发-Scrum(上)
  • 硬件(三) 通信方式、串口通信
  • K8S-Pod(上)
  • 2025国赛C题创新论文+代码可视化 NIPT 的时点选择与胎儿的异常判定
  • 与优秀者同行,“复制经验”是成功的最快捷径
  • CAD【xplode】和【explode】功能的区别
  • 电磁波成像(X射线、CT成像)原理简介
  • 【AI产品思路】AI能力展示中心:产品设计与体验优化方案
  • shell简单使用(-)判断
  • 在Windows中已经启动的容器(比如xinference),如何设置让其在每次Docker启动时能自动启动
  • Java对象在内存中的布局详解
  • 【mysql】SQL查询全解析:从基础分组到高级自连接技巧
  • 如何将联系人从 iPhone 转移到 Redmi 手机
  • 亲戚关系计算器,秒懂全家称呼!
  • 基于YOLO目标检测模型的视频推理GUI工具
  • 超越自动化:为什么说供应链的终局是“AI + 人类专家”的混合智能?
  • Web服务与Nginx详解
  • 【服务器】英伟达M40显卡风冷方案心得
  • Git 工具的「安装」及「基础命令使用」
  • 从零到上线:Docker、Docker Compose 与 Runtime 安装部署全指南(含实战示例与应用场景)
  • 小团队如何高效完成 uni-app iOS 上架,从分工到工具组合的实战经验
  • DL3382P6平替RClamp3382P.TCT
  • JavaWeb —— 异常处理
  • iPhone17全系优缺点分析,加持远程控制让你的手机更好用!
  • Ubuntu 18.04 上升级 gcc 到 9.4
  • 敏捷开发-Scrum(下)
  • 服务器为啥离不开传感器?一文看懂数据中心“隐形守护者”的关键角色