串口通信(1)-硬件知识

news2024/11/23 7:22:59

本文讲解串口通信的硬件知识。让读者快速了解硬件知识,为下一步编写代码做基础。

目录

一、概述

二、串口通信分类

2.1信息的传送方向进行分类

2.2同步通信和异步通信

三、串口协议

3.1 RS232

3.1.1 电气特性

3.1.2 连接器的机械特性

3.1.3 连接类型

3.1.4 传输电缆

3.1.5 设置参数

3.1.6 握手信号

3.1.7 RS-232标准缺点

3.2 RS485

3.2.1 RS-485的电气特性

3.2.2 传输速率与传输距离

3.2.3 网络拓扑

3.2.4 连接器

3.3 RS422


一、概述

计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。

并行通信:一条信息的各位数据被同时传送的通信方式称为并行通信。

并行通信的特点是:各数据位同时传送,传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通信。

 串行通讯是指仅用一根接收线和一根发送线就能将数据以位进行传输的一种通讯方式。

 

尽管串行通讯的比按字节传输的并行通信慢,但是串口可以在仅仅使用两根线的情况下就能实现数据的传输。由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。

串行通讯和并行通讯对比

在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。在通信和计算机科学中,串行通信(Serial Communication)是一个通用概念,泛指所有的串行的通信协议,如RS232、RS422、RS485、USB、I2C、SPI等。

二、串口通信分类

2.1信息的传送方向进行分类

串行通信可以进一步分为单工、半双工和全双工三种。信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。

 

2.2同步通信和异步通信

串行通信又分为异步通信和同步通信两种方式。主要使用异步通信方式。

同步就是双方有一个共同的时钟,当发送时,接收方同时准备接收。

异步双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,结束时有停止位。

1)异步通信方式的特点:

异步通信是按字符传输的。每传输一个字符就用起始位来进来收、发双方的同步。不会因收发双方的时钟频率的小的偏差导致错误。

这种传输方式利用每一帧的起、止信号来建立发送与接收之间的同步。特点是:每帧内部各位均采用固定的时间间隔,而帧与帧之间的间隔时随即的。接收机完全靠每一帧的起始位和停止位来识别字符时正在进行传输还是传输结束。(使用串口USART中的串行异步通信是一个代表)

2)同步通信方式的特点:

进行数据传输时,发送和接收双方要保持完全的同步,因此,要求接收和发送设备必须使用同一时钟。

优点是可以实现高速度、大容量的数据传送;缺点是要求发生时钟和接收时钟保持严格同步,同时硬件复杂。(SPI总线是一个典型代表)

3)相似处:

可以这样说,不管是异步通信还是同步通信都需要进行同步,只是异步通信通过传送字符内的起始位来进行同步,而同步通信采用共用外部时钟来进行同步。所以,可以说前者是自同步,后者是外同步。

三、串口协议

RS-232、RS-422与RS-485都是串行数据接口标准,RS-232是PC机与通信中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯,而RJ45接口通常用于数据传输,最常见的应用为网卡接口。

通讯问题,和交通问题一样,也有高速、低速、拥堵、中断等等各种情况。如果把串口通讯比做交通,UART比作车站,那么一帧的数据就好比汽车。汽车跑在路上,要遵守交通规则。如果是市内,一般限速30、40,而高速公路则可以到120。而汽车走什么路,限速多少,就要看协议怎么规定了。常见的串口协议有RS-232、RS-422、RS-485等

3.1 RS232

RS232个人计算机上的通讯接口之一。   

RS-232-C接口(又称EIARS-232-C)是目前最常用的一种串行通讯接口。

RS-232-C是美国电子工业协会EIA(ElectronicIndustryAssociation)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数,代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。

3.1.1 电气特性

EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定。

在TxD和RxD上:逻辑1(MARK)=-3V~-15V

逻辑0(SPACE)=+3~+15V

在RTS、CTS、DSR、DTR和DCD等控制线上:

信号有效(接通,ON状态,正电压)=+3V~+15V

信号无效(断开,OFF状态,负电压)=-3V~-15V

图 一

以上规定说明了RS-323C标准对逻辑电平的定义。对于数据(信息码):逻辑“1”(传号)的电平低于-3V,逻辑“0”(空号)的电平告语+3V;对于控制信号;接通状态(ON)即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于-3V,也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3~+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义,因此,实际工作时,应保证电平在±(3~15)V之间。

EIA-RS-232C与TTL转换:EIA-RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。

目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换。MAX232芯片可完成TTL←→EIA双向电平转换,图1显示了1488和1489的内部结构和引脚。MC1488的引脚(2)、(4,5)、(9,10)和(12,13)接TTL输入。引脚3、6、8、11输出端接EIA-RS-232C。MC1498的14的1、4、10、13脚接EIA输入,而3、6、8、11脚接TTL输出。具体连接方法如图2所示。图中的左边是微机串行接口电路中的主芯片UART,它是TTL器件,右边是EIA-RS-232C连接器,要求EIA高电压。因此,RS-232C所有的输出、输入信号都要分别经过MC1488和MC1498转换器,进行电平转换后才能送到连接器上去或从连接器上送进来。

图二

3.1.2 连接器的机械特性

连接器:由于RS-232C并未定义连接器的物理特性,因此,出现了DB-25、DB-15和DB-9各种类型的连接器,其引脚的定义也各不相同。下面分别介绍两种连接器。

DB-25

 PC和XT机采用DB-25型连接器。DB-25连接器定义了25根信号线,分为4组:

1异步通信的9个电压信号(含信号地SG)2,3,4,5,6,7,8,20,22

220mA电流环信号 9个(12,13,14,15,16,17,19,23,24)

3空6个(9,10,11,18,21,25)

4保护地(PE)1个,作为设备接地端(1脚)

DB-25型连接器的外形及信号线分配如图所示。注意,20mA电流环信号仅IBM PC和IBM PC/XT机提供,至AT机及以后,已不支持。

DB-9连接器

在AT机及以后,不支持20mA电流环接口,使用DB-9连接器,作为提供多功能I/O卡或主板上COM1和COM2两个串行接口的连接器。它只提供异步通信的9个信号。DB-25型连接器的引脚分配与DB-25型引脚信号完全不同。因此,若与配接DB-25型连接器的DCE设备连接,必须使用专门的电缆线。

电缆长度:在通信速率低于20kb/s时,RS-232C所直接连接的最大物理距离为15m(50英尺)。

最大直接传输距离说明:RS-232C标准规定,若不使用MODEM,在码元畸变小于4%的情况下,DTE和DCE之间最大传输距离为15m(50英尺)。可见这个最大的距离是在码元畸变小于4%的前提下给出的。为了保证码元畸变小于4%的要求,接口标准在电气特性中规定,驱动器的负载电容应小于2500pF。

3.1.3 连接类型

 

连接类型1

连接类型2

3.1.4 传输电缆

RS-232-C标准规定的数据传输速率为每秒50、75、100、150、300、600、1200、2400、4800、9600、19200波特,驱动器允许有2500pF的电容负载,通信距离将受此电容限制。

例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。

3.1.5 设置参数

链路层在RS-232标准中,字符是以一系列位元来一个接一个的传输。最长用的编码格式是异步起停asynchronousstart-stop格式,它使用一个起始位后面紧跟7或8个数据比特,这个可能是奇偶位,然后是两个停止位。所以发送一个字符需要10比特,带来的一个好的效果是使全部的传输速率,发送信号的速率以10分划。

串行通信在软件设置里需要做多项设置,最常见的设置包括波特率、奇偶校验和停止位。

波特率

波特率是指从一设备发到另一设备的波特率,即每秒钟多少比特bitspersecond(bit/s)。典型的波特率是300、1200、2400、9600、19200等bit/s。一般通信两端设备都要设为相同的波特率,但有些设备也可以设置为自动检测波特率。

奇偶校验Parity

奇偶校验Parity是用来验证数据的正确性。奇偶校验一般不用,如果使用,那么既可以做奇校验也可以做偶校验。奇偶校验是通过修改每一发送字节(也可以限制发送的字节)来工作的。如果不作奇偶校验,那么数据是不会被改变的。在偶校验中,因为奇偶校验位会被相应的置1或0(一般是最高位或最低位),所以数据会被改变以使得所有传送的数位(含字符的各数位和校验位)中“1”的个数为偶数;在奇校验中,所有传送的数位(含字符的各数位和校验位)中“1”的个数为奇数。奇偶校验可以用于接受方检查传输是否发送生错误——如果某一字节中“1”的个数发生了错误,那么这个字节在传输中一定有错误发生。如果奇偶校验是正确的,那么要么没有发生错误要么发生了偶数个的错误。

停止位

停止位是在每个字节传输之后发送的,它用来帮助接受信号方硬件重同步。

在串行通信软件设置中D/P/S是常规的符号表示。8/N/1(非常普遍)表明8bit数据,没有奇偶校验,1bit停止位。数据位可以设置为7、8或者9,奇偶校验位可以设置为无(N)、奇(O)或者偶(E),奇偶校验位可以使用数据中的比特位,所以8/E/1就表示一共8位数据位,其中一位用来做奇偶校验位。停止位可以是1、1.5或者2位的(1.5是用在波特率为60wpm的电传打字机上的)。

 

3.1.6 握手信号

传输控制当需要发送握手信号或数据完整性检测时需要制定其他设置。公用的组合有RTS/CTS,DTR/DSR或者XON/XOFF(实际中不使用连接器管脚而在数据流内插入特殊字符)。

接受方把XON/XOFF信号发给发送方来控制发送方何时发送数据,这些信号是与发送数据的传输方向相反的。XON信号告诉发送方接受方准备好接受更多的数据,XOFF信号告诉发送方停止发送数据直到知道接受方再次准备好。XON/XOFF一般不赞成使用,推荐用RTS/CTS控制流来代替它们。

XON/XOFF是一种工作在终端间的带内方法,但是必须两端都支持这个协议,而且在突然启动的时候会有混淆的可能。

XON/XOFF可以工作于3线的接口。RTS/CTS最初是设计为电传打字机和调制解调器半双工协作通信的,每次它只能一方调制解调器发送数据。终端必须发送请求发送信号然后等到调制解调器回应清除发送信号。尽管RTS/CTS是通过硬件达到握手,但它有自己的优势。

3.1.7 RS-232标准缺点

RS-232标准的不足经过许多年来RS-232器件以及通信技术的改进,RS-232的通信距离已经大大增加。由于RS-232接口标准出现较早,难免有不足之处,主要有以下四点:

(1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。

(2)传输速率较低,在异步传输时,波特率为20Kbps。现在由于采用新的UART芯片16C550等,波特率达到115.2Kbps。

(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。

(4)传输距离有限,最大传输距离标准值为50米,实际上也只能用在15米左右。

3.2 RS485

针对RS-232串口标准的局限性,人们又提出了RS-422,RS-485接口标准。RS-485/422采用平衡发送和差分接收方式实现通信:发送端将串行口的TTL电平信号转换成差分信号A、B两路输出,经过线缆传输之后在接收端将差分信号还原成TTL电平信号。由于传输线通常使用双绞线,又是差分传输,所以又极强的抗共模干扰的能力,总线收发器灵敏度很高,可以检测到低至200mV电压。故传输信号在千米之外都是可以恢复。

3.2.1 RS-485的电气特性

驱动器能输出±7V的共模电压

接收器的输入电阻RIN≥12kΩ

输入端的电容≤50pF在节点数为32个,配置了120Ω的终端电阻的情况下,驱动器至少还能输出电压1.5V(终端电阻的大小与所用双绞线的参数有关)发送端:逻辑"1"以两线间的电压差为+(2至6)V表示;逻辑"0"以两线间的电压差为-(2至6)V表示。接收器的输入灵敏度为200mV(即(V+)-(V-)≥0.2V,表示信号"0";(V+)-(V-)≤-0.2V,表示信号"1")

3.2.2 传输速率与传输距离

RS-485的数据最高传输速率为10Mbps,最大的通信距离约为1219M,传输速率与传输距离成反比,在10Kb/S的传输速率下,才可以达到最大的通信距离。

但是由于RS-485常常要与PC机的RS-232口通信,所以实际上一般最高115.2Kbps。又由于太高的速率会使RS-485传输距离减小,所以往往为9600bps左右或以下。

3.2.3 网络拓扑

RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。RS-485采用半双工工作方式,支持多点数据通信。

RS-485总线网络拓扑一般采用终端匹配的总线型结构。即采用一条总线将各个节点串接起来,不支持环形或星型网络。如果需要使用星型结构,就必须使用485中继器或者485集线器才可以。RS-485/422总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。

 

3.2.4 连接器

RS-485的国际标准并没有规定RS485的接口连接器标准、所以采用接线端子或者DB-9、DB-25等连接器都可以。

3.3 RS422

RS-422的电气性能与RS-485近似一样。主要的区别在于:

(1)RS-485有2根信号线:发送和接收都是A和B。由于RS-485的收与发是共用两根线,所以不能够同时收和发(半双工)。

(2)RS-422有4根信号线:两根发送(Y、Z)、两根接收(A、B)。由于RS-422的收与发是分开的,所以可以同时收和发(全双工)。

(3)支持多机通信的RS-422将Y-A短接作为RS-485的A、将RS-422的Z-B短接作为RS-485的B可以这样简单转换为RS-485。

很多人往往都误认为RS-422串行接口是RS-485串行接口的全双工版本,实际上,它们在电器特性上存在着不少差异,共模电压范围和接收器输入电阻不同使得该两个标准适用于不同的应用领域。RS-485串行接口的驱动器可用于RS-422串行接口的应用中,因为RS-485串行接口满足所有的RS-422串行接口性能参数,反之则不能成立。对于RS-485串行接口的驱动器,共模电压的输出范围是-7V和+12V之间;对于RS-422串行接口的驱动器,该项性能指标仅有±7V。RS-422串行接口接收器的最小输入电阻是4KΩ;而RS-485串行接口接收器的最小输入电阻则是12KΩ。

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

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

相关文章

08.仿简道云公式函数实战-逻辑函数-IF

1. IF函数 IF 函数可用于判断一个条件能否满足;如果满足返回一个值,如果不满足则返回另外一个值。 2. 函数用法 IF(logical_test,value_if_true, value_if_false) 其中各参数的含义如下: logical_test:必需&#…

JVM虚拟机系统性学习-对象存活判断算法、对象引用类型和垃圾清除算法

垃圾回收 在 JVM 中需要对没有被引用的对象,也就是垃圾对象进行垃圾回收 对象存活判断算法 判断对象存活有两种方式:引用计数法、可达性分析算法 引用计数法 引用计数法通过记录每个对象被引用的次数,例如对象 A 被引用 1 次&#xff0c…

被迫搬家,宽带迁移怎么办?

广州一栋违建烂尾楼,13年里从未停止出租,年年住满人。这栋楼没有贴外墙,裸露的水泥表面都被雨水腐蚀,很多阳台没有建好,只是简单加装了护栏,存在巨大安全隐患。 为什么烂尾楼年年满人呢? 因为它…

STL--关联式容器底层实现

关联式容器从底层实现分为两类:①红黑树:set、map、multiset和multimap ②哈希:unordered_set、unordered_map、unordered_multiset和unordered_multimap。 一、红黑树 它是⼀种特殊的⼆叉查找树。红⿊树的每个节点上都有存储位表示节点的颜…

Java入门项目--蚂蚁爱购

简介 这是一个靠谱的Java入门项目实战,名字叫蚂蚁爱购。 从零开发项目,视频加文档,十天就能学会开发JavaWeb项目,教程路线是:搭建环境> 安装软件> 创建项目> 添加依赖和配置> 通过表生成代码> 编写Ja…

vue3项目中使用vue-cropper实现截图效果

前言: 自用!!! 插件文档链接: https://www.npmjs.com/package/vue-cropper 使用步骤: 1、安装 npm install vue-cropper 2、项目中引入(全局引入);文档中有介绍如何局…

深度学习——第3章 Python程序设计语言(3.7 matplotlib库)

3.7 matplotlib库 目录 1 matplotlib库简介 2 pyplot的plot函数 3 matplotlib基础绘图函数示例 数据可视化有助于深度理解数据。 本节介绍绘制图形的基本方法。 1. matplotlib库简介 matplotlib官网 1.1 matplotlib库概述 matplotlib是Python优秀的数据可视化第三方库&a…

ChatGPT/GPT4+AI绘图+论文高效写作结合到底有多强大?你可以躺赢了

2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

LLM之RAG实战(三):LlamaIndex解锁自定义LLM关键步骤分块、索引、查询介绍

一、LLamaIndex介绍 LLamaIndex是一个由Jerry Liu创建的Python库,它可以使用语言模型对大型文档集进行高效的文本搜索和摘要。开发人员可以使用LLamaIndex快速添加私有/自定义数据,以增强现有的LLM。它不需要对大模型进行再训练,即可提供个性…

Todesk、向日葵等访问“无显示器”主机黑屏问题解决

我的环境是 ubuntu 22.04 安装 要安装 video dummy,请在终端中运行以下命令: sudo apt install xserver-xorg-video-dummy配置 video dummy 的配置文件请自行搜索 使用任何文本编辑器打开此文件。 我的是 /etc/X11/xorg.conf 默认配置文件包含以下内…

每日一练【长度最小的子数组】

一、题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 二、题目解析 经…

在我们日常生活有哪些东西是激光切割机做的

激光加工技术是当前最先进的切割技术,在工业生产中,能解决许多常规方法无法解决的难题,而且应用非常广。让人意想不到的是,很多生活中常见的物品,都是靠激光切割完成的。 它具备精密制造、柔性切割、异形加工、一次成型…

数据取证工具MemProcFS

MemProcFS 是一种将物理内存视为虚拟文件系统中的文件的简便方法。简单的点击内存分析,无需复杂的命令行参数!通过安装的虚拟文件系统中的文件或通过功能丰富的应用程序库访问内存内容和工件以包含在您自己的项目中。 链接GitHub - ufrisk/MemProcFS: M…

nodejs+vue+微信小程序+python+PHP的外卖数据分析-计算机毕业设计推荐django

构建一种完全可实现、可操作的开放源代码信息收集系统,帮助记者完成工作任务。采编人员仅需输入所收集到的网址及题目即可迅速启动收集工作并进行信息归类。 2.根据新的数据收集要求,采用云计算技术实现新的收集器的迅速部署。对于资料采集点的改版&…

深度学习 Day11——T11优化器对比实验

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 文章目录 前言一、我的环境二、代码实现与执行结果1.引入库2.设置GPU(如果使用的是CPU可以忽略这步)3.导入数据4.查…

WordPress插件你好多莉( Hello Dolly )可否卸載

什么是你好多莉Hello Dolly WordPress插件 你好多莉是 WordPress插件 简单的预装在 WordPress 上。 如果您激活后者,它将显示出名曲的歌词“ 你好,多莉 “要 路易斯阿姆斯特朗. 您可能已经注意到,在阅读插件说明时,还不够清楚。 …

系列十五、搭建redis集群

一、概述 上篇文章介绍了redis集群的相关知识,本章实战演示redis的集群环境的详细搭建步骤。如果帮助到了你,请点赞 收藏 关注!有疑问的话也可以评论区交流。 二、搭建步骤 2.1、预备知识 判断一个集群中的节点是否可用,是集群…

办公教程分享:网址/文本/电子名片如何批量生成二维码?

日常办公时,我们经常会需要批量生成很多二维码,比如做会议问卷调查、为同事制作名片,再比如策划市场活动、制作设备标签…等都会需要用到大量的二维码。这时候,如果手动一个一个生成二维码,会非常浪费时间和精力。 为…

香港高才通计划申请被拒了?很可能是因为这五个原因!

香港高才通计划申请被拒了?很可能是因为这五个原因! 据统计,截止今年10月31日,香港各项输入人才计划共收到超过18万宗申请,超过11万宗已被批准,已有7万人到港。其中,高才通计划一共收到约55,000…

在Java中如何实现一个呼吸动画效果

前言 这里用到了数学中的正弦函数, y s i n ( x ) y sin(x) ysin(x),sin的周期为2pi 下面的类中实现了一个圆,圆的半径根据 s i n ( x ) sin(x) sin(x)函数的值不断变化和修改,x取值范围[0-2pi],onTick方法负责修改…