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

一篇短文让你彻底理解什么是串口通信1 并行与串行通信机器的通信方式有两种 分别是并行通信与串行通信 并行通信 并行通信是指多比特数据同时通过并行线进行传送 这样数据传送速度大大提高 但并行传送的线路长度受到限制 因为长度增加 干扰就会增加 数据也就容易出错 串行通信 串行通信是指使用一条数据线 将数据一位一位地依次传输 每一位数据占据一个固定的时间长度 其只需要少数几条线就可以在系统间交换信息 特别适用于计算机与计算机 计算机与外设之间的远距离通信 拿汽车通道来说 并行通信就是多车道 多辆车一起行驶 而串行通信就是单车道 只能一

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 接口。在串口通讯协议中,规定了数据包的内容,它由起始位、主体数据、校验位以及停止位组成,通讯双方的数据包格式要约定一致才能正常收发数据。

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

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

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

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

  • 奇校验:让主体数据加上校验位中的“1”的个数保持为奇数。
  • 偶校验:让主体数据加上校验位中的“1”的个数保持为偶数。
  • 0 校验:无论主体数据是什么,校验位保持为0。
  • 1 校验:无论主体数据是什么,校验位保持为1。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230216.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月11日 下午6:01
下一篇 2026年3月11日 下午6:22


相关推荐

  • OLS回归分析原理实战及结果解析-python3

    OLS回归分析原理实战及结果解析-python3OLS 回归变量之间存在着相关关系 比如 人的身高和体重之间存在着关系 一般来说 人高一些 体重要重一些 身高和体重之间存在的是不确定性的相关关系 回归分析是研究相关关系的一种数学工具 它能帮助我们从一个变量的取值区估计另一个变量的取值 OLS 最小二乘法 主要用于线性回归的参数估计 它的思路很简单 就是求一些使得实际值和模型估值之差的平方和达到最小的值 将其作为参数估计值 就是说 通过最小化误差的平方和寻找数据的最佳函数匹配 利用最小二乘法可以简便地求得未知的数据 并使得这些求得的数据与实际数据之间误

    2026年3月20日
    2
  • Shiro整合Springboot+themleaf

    Shiro整合Springboot+themleaf6 1 整合思路 6 2 配置环境创建项目引入依赖 引入 shiro 整合 Springboot 依赖 dependency groupId org apache shiro groupId artifactId shiro spring boot starter artifactId version 1 5 3 version dependency

    2026年1月20日
    2
  • 玩转n8n工作流(二):使用n8n创建第一个基础Ai工作流教程

    玩转n8n工作流(二):使用n8n创建第一个基础Ai工作流教程

    2026年3月12日
    3
  • 信息收集之——旁站、C段

    信息收集之——旁站、C段旁站和 C 段扫描 1 旁站的概念 旁站指的是同一服务器上的其他网站 很多时候 有些网站可能不是那么容易入侵 那么 可以查看该网站所在的服务器上是否还有其他网站 如果有其他网站的话 可以先拿下其他网站的 webshell 然后再提权拿到服务器的权限 最后就自然可以拿下该网站了 2 C 段 C 段指的是同一内网段内的其他服务器 每个 IP 有 ABCD 四个段 举个例子 192 168 0 1 A 段就是 192 B 段是 168 C 段是 0 D 段是 1 而 C 段嗅探的意思就是拿下它同一 C 段中的其中一台服务器 也就是说是 D 段 1 255

    2026年3月17日
    1
  • Mac搭建PHP环境[通俗易懂]

    Mac搭建PHP环境[通俗易懂]一、配置环境1启动APacheMac系统本身自带Apache,所以可以直接打开。以下为两种方式:打开“系统设置偏好(SystemPreferences)”->“共享(Sharing)”->“Web共享(WebSharing)”打开“终端(terminal)“,然后输入sudoapachectlstart,使Apache运行。开启Apache就是开启Web共享,这时输入“http://localhost”,就可以看到“Itworks!”的页面Apache默认根目

    2026年2月13日
    4
  • QT之Android下获取手机传感器数据学习笔记

    QT之Android下获取手机传感器数据学习笔记QT+=coreguisensorspositioning其中sensors是获取手机上传感器数据的组件,positioning是获取位置信息的组件1、获取陀螺仪传感器数据#include<QGyroscope>QGyroscope*gyroscope;QGyroscopeReading*reader;gyroscope=newQGyro…

    2022年7月13日
    18

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号