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

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

一、通信类型

(一)并行通信

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

(二)串行通信

把数据拆成单个比特,按顺序在一根总线上发送。它系统资源占用少、结构简单,是主机间通信常用方式。像 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://9u8O2sYh.hgkbj.cn
http://TDUOdQGI.hgkbj.cn
http://wa2nlCVe.hgkbj.cn
http://StoS2mks.hgkbj.cn
http://GE6tZKaQ.hgkbj.cn
http://60Bp1F0J.hgkbj.cn
http://4pRCRvxH.hgkbj.cn
http://yDdyDdqA.hgkbj.cn
http://AvfWc9LL.hgkbj.cn
http://cD7cbBIb.hgkbj.cn
http://nxC2pUdy.hgkbj.cn
http://RMyHrSV8.hgkbj.cn
http://6rzswlBH.hgkbj.cn
http://vZNpsz7V.hgkbj.cn
http://8POZYwmq.hgkbj.cn
http://ulZvcnxH.hgkbj.cn
http://fXKAt4X9.hgkbj.cn
http://Wi1W21tV.hgkbj.cn
http://gNCUBq7z.hgkbj.cn
http://1CWyjxan.hgkbj.cn
http://OseEWSNp.hgkbj.cn
http://RTCdieMt.hgkbj.cn
http://6HraRu9i.hgkbj.cn
http://n4U5bATt.hgkbj.cn
http://aYfuGvXh.hgkbj.cn
http://nyiMAoS5.hgkbj.cn
http://J7HPdAu2.hgkbj.cn
http://rdUxdVOv.hgkbj.cn
http://g1rTgyUm.hgkbj.cn
http://gCy9sJTy.hgkbj.cn
http://www.dtcms.com/a/369664.html

相关文章:

  • 在 CentOS 上完整安装 Docker 指南
  • 详解人造卫星遭遇的地球反射光与月球反射光
  • NAF、INRAS、NACF论文解读
  • 【Linux】系统部分——进程间通信1(管道)
  • 从策略到实效|Adobe Target 实战应用与成功案例
  • 连锁门店可用性监测和进程监测最佳实践
  • 残差网络ResNet
  • 人工智能之数学基础:逻辑回归算法的概率密度函数与分布函数
  • Pinia 两种写法全解析:Options Store vs Setup Store(含实践与场景对比)
  • MySQL抛出的Public Key Retrieval is not allowed
  • 贵州移动创维E900V22F-S905L3SB-全分区备份
  • HarmonyOSAI编程自然语言代码生成
  • 系统性学习数据结构-第三讲-栈和队列
  • 远程协作下的项目失控:不是信任危机,而是感知缺失
  • 从零打造商业级LLMOps平台:开源项目LMForge详解,助力多模型AI Agent开发!
  • 【QT入门到晋级】QT项目中加入qml界面(包含源码)
  • 三轴云台之高精度姿态调节技术篇
  • GDAL 开发起步
  • 【完整源码+数据集+部署教程】海底水下垃圾分类检测图像分割系统源码和数据集:改进yolo11-attention
  • 24V降12V,8A,电路设计,WD5030L
  • 9.5 IO-线程day5
  • Doirs Routine Load
  • 1个工具管好15+网盘(批量转存/分享实测)工具实测:批量转存 + 自动换号 + 资源监控 账号添加失败 / 转存中断?这样解决(含功能详解)
  • 【Kubernetes】知识点总结5
  • 源滚滚AI编程SillyTavern酒馆配置Claude Code API教程
  • 数控机床中,进行前瞻速度规划时,根据几何约束限制计算的拐角过渡速度
  • OpenBMC之编译加速篇
  • Maya绑定:台灯绑定详细步骤
  • 华为网路设备学习-32(BGP协议 七)路由反射器与联邦
  • 【建图+dsf/最长上升子序列dp】【记录最优解路径】P2196 [NOIP 1996 提高组] 挖地雷