一篇短文让你彻底理解什么是串口通信

51单片机串口波特率计算 本文简单的讲解了51单片机的串口通信的波特率和它的计算方法 阅读详情
AI摘要

本文详细解析了并行与串行通信的区别,重点介绍了异步与同步串行通信、单工、半双工与全双工通信模式,以及波特率与比特率概念。还涵盖了TTL与RS-232电平标准,DB9接口及其在串口通讯中的应用,以及数据包的构成和常见协议。

1 并行与串行通信

机器的通信方式有两种,分别是并行通信与串行通信。

并行通信:并行通信是指多比特数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错。

串行通信:串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。

拿汽车通道来说,并行通信就是多车道,多辆车一起行驶,而串行通信就是单车道,只能一辆一辆车通过。

以下是两者之间特性的对比:

2 异步与同步串行通信

串行通信有两种,分别是异步串行通信与同步串行通信。

异步串行通信:异步串行通信是指通信双方以一个字符(包括特定附加位)作为数据传输单位且发送方传送字符的间隔时间不一定,具有不规则数据段传送特性的串行数据传输。

同步串行通信:同步串行通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这就保证了通信双方在发送和接收数据时具有完全一致的定时关系。

两种串行通信不同就只有时间,在发送字符时,异步可以是不同时间间隔发送,但同步只能以固定的时间间隔发送。

3 单工、半双工与全双工串行通信

串行通信制式有单工串行通信,半双工串行通信,全双工串行通信三种。

单工串行通信:单工串行通信信道是单向信道,发送端和接收端的身份是固定的,发送端只能发送信息,不能接收信息;接收端只能接收信息,不能发送信息,数据信号仅从一端传送到另一端,即信息流是单方向的。

半双工串行通信:半双工串行数据传输指数据可以在一个信号载体的两个方向上传输,但是不能同时传输。例如,在一个局域网上使用具有半双工传输的技术,一个工作站可以在线上发送数据,然后立即在线上接收数据,这些数据来自数据刚刚传输的方向。像全双工传输一样,半双工包含一个双向线路(线路可以在两个方向上传递数据)。

全双工串行通信:全双工串行通信是指在同一时刻信息可以进行双向传输,和打电话一样,说的同时也能听,边说边听。这种发射机和接收机分别在两个不同的频率上(两个频率差有一定要求)能同时进行工作的双工机也称为异频双工机。

三种通信制式很容易理解,对照上图看,单工串行通信不就是单方面通信,只能发出指令或接收指令。半双工串行通信就是能接收又能发送,但是不能同时进行。全双工串行通信就最厉害,可以同时发送和接收指令。

4 比特率与波特率

衡量通讯性能的一个非常重要的参数就是通讯速率,通常以比特率(Bitrate) 来表示,即每秒钟传输的二进制位数,单位为比特每秒(bit/s)。

容易与比特率混淆的概念是 “波特率”(Baudrate),它表示每秒钟传输了多少个码元。而码元是通讯信号调制的概念,通讯中常用时间间隔相同的符号来表示一个二进制数字,这样的信号称为码元。

如常见的通讯传输中,用0V 表示数字0,5V 表示数字1,那么一个码元可以表示两种状态0 和1,所以一个码元等于一个二进制比特位,此时波特率的大小与比特率一致;如果在通讯传输中,有0V、2V、4V 以及6V 分别表示二进制数00、01、10、11,那么每个码元可以表示四种状态,即两个二进制比特位,所以码元数是二进制比特位数的一半,这个时候的波特率为比特率的一半。

因为很多常见的通讯中一个码元都是表示两种状态,人们常常直接以波特率来表示比特率,虽然严格来说没什么错误,但希望我们还是了解它们的区别。

5 TTL与RS-232电平标准

根据通讯使用的电平标准不同,串口通讯可分为TTL 标准及RS-232 标准,电平标准如下表:

可见RS-232使用负逻辑电平,规定(-3V ~ -25V)为逻辑“1”,规定(+3V ~ +25V)为逻辑“0”,(-3V ~ +3V)是未定义的过渡区。

我们知道常见的电子电路中常使用TTL 的电平标准,理想状态下,使用5V 表示二进制逻辑“1”,使用0V 表示逻辑“0”;而为了增加串口通讯的远距离传输及抗干扰能力,它使用-15V 表示逻辑“1”,+15V 表示逻辑“0”。

6 RS-232信号线与DB9接口

在最初的应用中,RS-232 串口标准常用于计算机、路由与调制调解器(MODEN,俗称“猫”)之间的通讯 ,在这种通讯系统中,设备被分为数据终端设备DTE(计算机、路由)和数据通讯设备DCE(调制调解器)。我们以这种通讯模型讲解它们的信号线连接方式及各个信号线的作用。

在旧式的台式计算机中一般会有RS-232 标准的COM口(也称DB9 接口)。

我们看到接线口以针式引出信号线的称为公头,以孔式引出信号线的称为母头。在计算机中一般引出公头接口,而在调制调解器设备中引出的一般为母头,使用上图中的串口线即可把它与计算机连接起来。通讯时,串口线中传输的信号就是使用前面讲解的RS-232 标准调制的。

对于调制解调方面的内容,有兴趣可以查找高频电子线路与通信方面的相关资料,这里不再赘述。

DB9 接口中的公头及母头的各个引脚的标准信号线接法:

每个口的具体作用如下表:

上表中的是计算机端的DB9 公头标准接法,由于两个通讯设备之间的收发信号(RXD与TXD)应交叉相连,所以调制调解器端的DB9 母头的收发信号接法一般与公头的相反,两个设备之间连接时,只要使用“直通型”的串口线连接起来即可。

串口线中的RTS、CTS、DSR、DTR 及DCD 信号,使用逻辑 “1” 表示信号有效,逻辑“0”表示信号无效。例如,当计算机端控制DTR 信号线表示为逻辑“1” 时,它是为了告知远端的调制调解器,本机已准备好接收数据,“0” 则表示还没准备就绪。

在目前的其它工业控制使用的串口通信中,一般只使用RXD、TXD 以及GND 三条信号线,直接传输数据信号,而RTS、CTS、DSR、DTR 及DCD 信号都被裁剪掉了,这主要是考虑到近程通信与远程通信问题。

7 数据包

串口通讯的数据包由发送设备通过自身的TXD 接口传输到接收设备的RXD 接口。在串口通讯协议中,规定了数据包的内容,它由起始位、主体数据、校验位以及停止位组成,通讯双方的数据包格式要约定一致才能正常收发数据。

在串行异步通讯中,由于没有时钟信号(如前面讲解的DB9
接口中是没有时钟信号的),所以两个通讯设备之间需要约定好波特率,即每个码元的长度,以便对信号进行解码,上图中用虚线分开的每一格就是代表一个码元。常见的波特率为4800、9600、115200 等。

串口通讯的一个数据包从起始信号开始,直到停止信号结束。数据包的起始信号由一个逻辑“0” 的数据位表示,而数据包的停止信号可由0.5、1、1.5 或2 个逻辑“1” 的数据位表示,只要双方约定一致即可。

在数据包的起始位之后紧接着的就是要传输的主体数据内容,也称为有效数据,有效数据的长度常被约定为5、6、7 或8 位长。

在串行通讯所发送数据的最后一位,用来粗略的检验数据在传输过程中是否有出错。校验一般有以下几种:

  • 奇校验:让主体数据加上校验位中的“1”的个数保持为奇数。
  • 偶校验:让主体数据加上校验位中的“1”的个数保持为偶数。
  • 0 校验:无论主体数据是什么,校验位保持为0。
  • 1 校验:无论主体数据是什么,校验位保持为1。
HC-05蓝牙模块主从配对与串口通信实战指南 本文详细介绍了HC-05蓝牙模块的主从配对与串口通信实战指南,涵盖模块初始化、角色分配、安全配对、波特率优化及故障排查等关键步骤。通过AT指令配置和串口助手调试,帮助开发者快速实现蓝牙设备间的稳定通信,特别适合智能家居和机器人项目应用。 阅读详情

相关推荐

LoRaSerial无线数传模块:超远距离串口通信实战与配置指南

无线串口通信是物联网和嵌入式系统中实现设备间数据交换的基础技术,其核心在于将串行数据通过无线信道进行可靠传输。LoRa(远距离无线电)技术通过独特的扩频调制方式,在低功耗下实现了超远距离通信,其技术价值在于解决了传统无线方案在穿透性和抗干扰性上的不足。在工程实践中,LoRa模块广泛应用于环境监测、远程控制和资产追踪等场景。本文聚焦于LoRaSerial这类即插即用型模块,它封装了复杂的射频参数配置,用户可通过简单的AT命令进行设置,并支持点对点与广播两种工作模式。文中结合【硬件接口】连接要点与【AT命令】配

anjichan4261的博客 432

什么是调试串口和普通串口

从通信的角度,没什么区别,只是调试串口用来打印调试信息,普通串口用于和其他设备通信

aa804738534的博客 2865

基于STC89C52RC的温湿度显示与按键可调的时钟显示

温湿度参数的检测已经成为人们日常生产生活中的一个重要的参数指标。温度和湿度是两个最基本的环境参数,人们生活与温湿度息息相关。在工农业生产、环保、科研、化工业、制药业等地方,都经常需要对环境温度和湿度进行测量。随着社会的发展和人民生活水平不断提高,温湿度作为两个基本的环境参数也逐渐深入到人们生活水平中。因此,对于环境温湿度检测的研究有着非常重要的意义。本论文讲述了一种以单片机STC89C52为主控器,DHT11为温湿度传感器,通过0.96OLED来显示温湿度。

Systemcall名屋 2903

【单片机基础】I2C通信-基于STC89C52RC

总线上所有的从机接收的该字节数据后都将这7位地址与自己地址进行比较,如果相同,则认为自己被主机寻址,然后根据第八位将自己定义为发生器还是接收器。主机发送起始信号必须先发送一个字节数据,该数据的高7位为从机地址,最低位表示后续字节传送方向,‘0’表示主机发送数据,‘1’表示主机接收数据。IIC总线上发送数据是广义的,既包括地址,又包括真正的数据。2、主机发送一个字节数据指明从机地址后续字节传送的方向。基于EEPROM向4单元存数据(主机向从机写数据)3、被寻址的从机发送应答信号回应主机。

小途的博客 3616

C# RFID开发实战:从UID读取到扇区读写防坑指南

高频RFID技术被广泛应用于门禁、签到、产线识别等场景,但很多C#开发者对接RFID读卡器时,常常卡在卡片内部结构、命令帧格式和通信时序上。理解RFID读写原理,首先要建立扇区、块与密钥的认知:以最常见的M1卡为例,每张卡有16个扇区,业务数据存放在扇区的块中,访问前必须完成KeyA或KeyB认证。C#通过串口与读卡器模块交互时,既要关注波特率、字节缓冲区等基础通信问题,也要遵循寻卡、选卡、认证、读写、休眠的完整时序。本文以工程实践视角,拆解从UID读取到扇区数据写读的全流程,梳理串口帧协议、块地址映射、访

weixin_29189363的博客 272

C#短信发送程序:PDU编码与串口AT指令实现

短信发送并非把文本直接写入串口,而是要先完成PDU编码:将短信中心号码、被叫号码、UCS2正文、长度字段等按协议组包,再通过串口AT指令与GSM模块交互。UCS2解决中文编码,UDH分段支撑长短信,长度字段和回执超时则直接影响发送成功率。把协议层与通信层解耦,可让PDU组包独立单测、串口重试与队列化更易落地,广泛用于设备报警、验证码下发、工控现场通知。C# pdu_class以纯代码封装PDU编解码与AT指令流程,为短信猫/GSM模块集成和二次开发提供可复用的工程基础。

weixin_30074763的博客 317

串口、COM、UART、TTL、RS232(485)区别详解

调试测试时,往往会遇到各式各样的接口、转接板,感觉对它们似懂非懂,知其形而不解其意;这里主要是对串口、COM口、UART口、TTL、RS-232、RS-485作详细说明。 串口、UART口、COM口、USB口是指的物理接口形式(硬件);TTL、RS232、RS485是指的电平标准(电信号)。串口的通信方式有两种:串行通信和并行通信。串口是一个泛称,UART、TTL、RS232、RS485都遵循类似的通信时序协议,因此都被称为串口。COM口,(cluster communication port);COM口,

执迷不悟 1万+

C#直连短信猫串口发短信:PDU协议硬核实现

短信猫是一种基于AT指令的串口通信设备,其底层依赖RS232/USB转串口协议与GSM网络交互。理解AT指令时序、PDU编码原理及串口异步收发机制,是实现稳定短信发送的关键技术基础。PDU模式通过十六进制字节流精确控制SMSC地址、目标号码、编码类型(GSM-7/UCS2)和时间戳,规避Text模式中文乱码与兼容性缺陷;而SerialPort类的超时配置、缓冲区管理与事件驱动模型,则直接决定工业场景下的实时性与鲁棒性。本文聚焦C#环境下绕过云API、直驱硬件的离线短信方案,涵盖长短信拆包、状态机流程控制、失

weixin_42116058的博客 263

一篇短文让你彻底理解什么是串口通信_串口通信和数字量通信区别(1)

如常见的通讯传输中,用0V 表示数字0,5V 表示数字1,那么一个码元可以表示两种状态0 和1,所以一个码元等于一个二进制比特位,此时波特率的大小与比特率一致;如果在通讯传输中,有0V、2V、4V 以及6V 分别表示二进制数00、01、10、11,那么每个码元可以表示四种状态,即两个二进制比特位,所以码元数是二进制比特位数的一半,这个时候的波特率为比特率的一半。例如,在一个局域网上使用具有半双工传输的技术,一个工作站可以在线上发送数据,然后立即在线上接收数据,这些数据来自数据刚刚传输的方向。

2401_85013081的博客 806

毕业设计文本分类实战:清洗、向量化与评估避坑指南

文本分类是机器学习入门的关键应用场景,其核心在于将非结构化中文文本转化为可计算的特征向量。原理上需理解清洗归一化、分词适配性、TF-IDF稀疏表示及类别不平衡对评估的影响。技术价值体现在轻量级模型(如LinearSVC、MultinomialNB)在小样本下的鲁棒性与可解释性,避免盲目套用BERT等重型方案。典型应用场景包括高校课程作业归类、学生反馈摘要分类、论坛问答意图识别等真实教育数据任务。本文聚焦毕业设计高频痛点——数据清洗不彻底、jieba分词失准、TfidfVectorizer参数误设、评估仅看准

weixin_29056865的博客 191

2025年最新Cesium学习示例:Cesium-Examples

2025年最新Cesium学习示例:Cesium-Examples

2403_88103571的博客 1008

一篇短文让你彻底理解什么是串口通信_串口通信和数字量通信区别(2)

同步串行通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这就保证了通信双方在发送和接收数据时具有完全一致的定时关系。两种串行通信不同就只有时间,在发送字符时,异步可以是不同时间间隔发送,但同步只能以固定的时间间隔发送。

2401_85013211的博客 403

Fluent 中多相流模型全面解析

3.颗粒或液滴在连续相中的运动:若关注颗粒或液滴在连续相中的运动轨迹、分布规律以及与连续相的相互作用,如喷雾干燥、气力输送等过程,Eulerian-Lagrangian 模型则是最佳选择。Eulerian-Eulerian 模型可以准确模拟气体在固体颗粒中的流动情况,包括颗粒的流化状态、气体与颗粒之间的传热传质过程,为气固流化床的优化设计和操作提供依据。通过该模型,可以了解混合器内不同位置的混合程度、颗粒的运动轨迹以及液固相间的相互作用,从而改进混合器的结构和操作条件,提高混合效率。

khhdp的博客 3084

简单的arduino实验理解串口通信(uart为例)独立硬件的信息交互

通过查看串口信息传输理解硬件和信息交互

weixin_43794311的博客 1137

在Unity3d使用yolov8的onnx模型

输出OUTPUTS是float32[1,35,8400],表示它会输出一个大小为[1, 35, 8400]的浮点数张量。这个输出张量的维度表示了检测到的目标的数量、每个目标的预测参数以及网格单元的数量。输出张量的第一个维度1表示检测到的目标数量。每个目标由35个值组成,表示目标的类别、置信度、边界框的坐标及10个特定点的位置。要取得8400个数据中置信度最高的数据,然后获取该数据其他channel的数据。运行结果:(蓝色是检测手的边框,红点是自定义的点),其中的四个数字分别表示不同的维度。

shenqingyu0605202324的博客 5601

Carsim2019与Simulink (Matlab2018b)联合仿真成功(超详细)

Carsim与Simulink联合仿真成功

强强的博客 3万+

串口、COM口、UART、RS-xxx、TTL傻傻分不清?一篇短文让你聊天装逼更自信./

本文澄清了串口、COM口、UART、RS和TTL等常见通信术语的混淆与误用。串口(Serial Interface)指数据按位顺序传输的通信方式,UART是其一种异步协议;COM口是物理通信端口;RS系列是UART的电平标准,TTL则是另一种数字电路电平标准。文章比较了串行与并行通信的优劣,解释了全/半双工通信概念,并详细说明了UART异步协议的工作原理,包括起始位、数据位和停止位的时序要求。作者指出这些基础概念常被混淆,希望通过本文提供准确的技术说明。

m0_70470290的博客 1553

wimdows11 eplan安装过程及遇到的问题

eplan 安装 我的资源里的下载地址,当然也可以有其他渠道下载 https://download.youkuaiyun.com/download/weixin_45529296/85061161 安装1 打开“Electric P8 2.7.3.11418”目录,运行“setup.exe”开始安装,选择系统和程序 接受许可协议,下一步 自己配置安装的各种路径,下一步 安装这个没什么问题,直到完成就行; 安装2 ...

csdn-1122 2万+

基于Arduino与蓝牙模块的无线LCD显示系统:从串口通信到物联网终端实践

串口通信是嵌入式系统与外部设备进行数据交换的基础方式,它定义了数据帧格式、波特率等关键参数,实现了设备间的可靠数据传输。其原理是通过TX(发送)和RX(接收)引脚,按照时序逐位传输数据。这项技术的核心价值在于其简单、稳定且易于实现,是单片机开发的基石。随着物联网的发展,无线通信技术将串口通信的能力从有线延伸至无线领域,催生了丰富的应用场景,如远程监控、智能家居控制和无线数据采集。本文聚焦于一个典型的工程实践:利用Arduino UNO微控制器,结合HC-05蓝牙模块的串口透传功能,构建一个低成本的无线LCD

weixin_29745609的博客 307

1、世界级模拟电路设计指南

本文详细探讨了模拟电路设计的各个方面,从基础概念到实际应用,涵盖了元件选择、滤波器设计、反馈系统、噪声问题以及SPICE仿真的优缺点。文中还提供了设计实例和无计算机设计方法,旨在帮助工程师提升模拟电路设计的效率与可靠性。

s1t2u3的博客 97

Intellij IDEA 使用教程(一)Jdk安装和配置

一.JDK下载 这里下载的是Java SE 8u181 64位版本。可以根据自己电脑配置来选择不同版本。 官网下载JDK 二.安装JDK 双击运行jdk-8u181-windows-x64.exe安装程序 选择安装目录,然后点击下一步 等待安装 安装JRE,就是java的运行环境,可以安装在java目录下 等待安装 安装完成。点击关闭。 三.java环境变量配置 关于环境变量的配置,...

岁月不饶人,我亦未曾饶过岁月 4052

【亲测免费】 基于Qt的XModem和YModem协议实现:高效稳定的串口文件传输解决方案

基于Qt的XModem和YModem协议实现:高效稳定的串口文件传输解决方案 【下载地址】Qt实现的XModem和YModem协议源码 本资源提供了一个基于Qt框架实现的XModem和YModem协议的源码。XModem和YModem是串口通信中广泛使用的异步文件传输协议,适用于在调制解调器之间进行文件传输。本实现已经通...

gitblog_09707的博客 507

2025.05.30【转录组】|Ribo-seq数据流程详解(一 质量控制)

本文详细介绍了Ribo-seq数据的质控分析流程,重点讲解了使用fastp进行原始数据质控的关键步骤和参数设置。作者通过Snakemake自动化流程示例,展示了如何去除接头序列、过滤低质量reads、生成质控报告等操作。文章强调高质量的Ribo-seq数据对转录后调控和翻译动态研究的重要性,并提供了兼顾数据质量和下游分析需求的参数配置建议。该流程有助于研究人员规范高效地完成Ribo-seq数据质控,为后续分析提供可靠数据基础。

784

工具 | 虚拟串口软件的使用分享

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看嵌入式笔记!大家端午假期愉快!这两天看文的人比较少,先来分享一篇非常简单的关于虚拟串口软件的使用的小短文。在编写串口上位机时,需要进...

嵌入式大杂烩 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

LiuJuan20260223Zimage集成STM32开发:嵌入式AI应用从零到一

本文介绍了如何在星图GPU平台上一键自动化部署LiuJuan20260223Zimage镜像,快速构建云端AI推理服务。基于此,文章详细阐述了如何通过设计通信协议,让STM32等嵌入式设备将采集的传感器数据(如音频、图像)上传至该云端服务进行分析,并将结果返回以控制执行器,从而实现一个典型的“云-边”协同AI应用原型,例如语音控制或视觉分拣。

weixin_42360846的博客 38

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

基于Arduino的手机控LED屏项目应用

通过Arduino实现手机控制led显示屏的智能应用,结合蓝牙模块与移动App,轻松完成文字显示远程操控,适合DIY爱好者和物联网入门实践。

weixin_35749440的博客 756

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: STC89C52RC单片机额外篇 | 02 - 认识串行通信、波特率以及数据包
下一篇: Rockchip | Rockusb工具
嵌入式逍遥
嵌入式逍遥 领域专家: 嵌入式与硬件开发技术领域 领域专家: 嵌入式与硬件开发技术领域
博客等级 码龄9年 7万+粉丝 237原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式逍遥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值