串行通信协议和串口相关概念梳理

您所在的位置:网站首页 通用串行总线接口又称为 串行通信协议和串口相关概念梳理

串行通信协议和串口相关概念梳理

2024-07-17 22:52| 来源: 网络整理| 查看: 265

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录 前言一、通信中的基本概念二、硬件接口三、RS232/RS422/RS485四、总结

前言

硬件开发离不开串口通信,但是一直分不太清楚串行通信标准、串口、UART、RS232、TTL等概念的区别和联系,网上很多资料也在混淆接口和协议的概念。查了一些资料并做了一些梳理,希望能够厘清相关概念和定义。

一、通信中的基本概念

1、串行通信和并行通信 串行通信:数据通过单根线一位一位的传输。 并行通信:通过多根线同时将数据的所有位一次传输完。 2、同步通信和异步通信

同步通信

通信双方必须先建立同步,即双方的时钟要调整到同一频率,收发双方不停地发送和接收连续的同步比特流,把所传送的数据以多个字节(100字节以上)为单位,在其前后添加标志。同步通信时阻塞模式。

异步通信

异步通信是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。因为一个字符中的比特位长度有限,所以需要的接收时钟和发送时钟只要相近就可以。异步通信是非阻塞模式。

二、硬件接口

UART、COM、I2C、SPI都属于硬件接口都是串行口。但是有同步串行口和异步串行口之分,其中UART是单片机串口的俗称,COM口是电脑串口的俗称,它们都是异步串行口;而I2C、SPI都属于同步串行口,相较于异步通信,物理上多了一根时钟线,传输效率更高(去掉了开始位、校验位、停止位等冗余数据)。 TTL、RS-232、RS422、RS-485区别于硬件接口,它们是指的电平标准(电信号),这些电平标准用于确定传输过来的数据是0还是1的问题。 COM口通常指电脑上的串口,一般使用DB9连接器,工控机主板上也提供插针式COM口,遵循RS-232标准(+3V~+15V对应0,-3V~-15V对应1)。单片机的串口是UART,遵循TTL电平。两者电平标准不一致,如果需要电脑与微控制器进行串口通信,需要使用MAX232之类的电平转换芯片将RS232电平转换位TTL电平。 UART属于硬件接口,Universal Asynchronous Receiver/Transmitter,通用异步收发传输器,是设备间进行异步通信的模块。UART负责处理数据总线和串行口之间的串/并、并/串转换,并规定了帧格式。,它是一种通用的串行、异步通信总线,RX、TX两条数据线,可以实现全双工的发送和接收,在嵌入式系统中常用于主机和辅助设备之间的通信。使用TTL电平,低电平为0(0V),高电平为1(3.3V或以上)。 UART帧格式

起始位:发送1位逻辑0(低电平),开始传输数据。 数据位:可以是5~8位的数据,先发低位,再发高位,一般常见的是8位( 校验位:奇偶校验,将数据位加上校验位,1的位数为偶数(偶校验),1的位数4为奇数(奇校验),可有可无。 停止位:停止位是数据传输结束的标志,可以是1/1.5/2位的逻辑1(高电平) 空闲位:空闲时数据线为高电平状态,代表无数据传输

但是,UART只是对信号的时序进行了定义,而未定义接口的电气特性;UART通信时一般直接使用处理器使用的电平,即TTL电平,但不同的处理器使用的电平存在差异, 所以不同的处理器使用UART通信时一般不能直接相连;UART没有规定不同器件连接时连接器的标准, 所以不同器件之间通过UART通信时连接很不方便。

三、RS232/RS422/RS485

RS-232标准接口(又称EIA RS-232)是常用的串行通信接口标准之一,它是由美国电子工业协会(Electronic Industry Association,EIA)联合贝尔系统公司、调制解调器厂家及计算机终端生产厂家于1970年共同制定,其全名是“数据终端设备( DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。该标准规定采用一个DB-25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定,后来IBM将其简化为DB-连接器,后来成为事实标准,现在工业控制的RS232接口一般只是用RXD、TXD、GND三条线。

RS232采用负逻辑传送,规定逻辑“1”的电平为-5V~-15 V,逻辑“0”的电平为+5 V~+15 V。选用该电气标准的目的在于提高抗干扰能力,增大通信距离。RS -232的噪声容限为2V,接收器将能识别高至+3V的信号作为逻辑“0”,将低到-3 V的信号作为逻辑“1”。

虽然很多处理器中都会集成UART控制器,但处理器产生的信号一般都是TTL信号并不是符合RS232标准的信号,所以一般还需要在处理器外部去添加电路对信号的电平进行转换。

RS485是为了解决RS232通信距离的问题。RS485 是美国电子工业协会(Electronic Industries Association,EIA)于1983年发布的串行通信接口标准,经通讯工业协会(TIA)修订后命名为 TIA/EIA-485-A。RS485 是一种工业控制环境中常用的通讯协议,其中RS 是 Recommended Standard 的缩写。RS485 是 半双工异步 串行通信。

232通信距离比较短。485主要是以一种差分信号进行传输,只需要两根线,+,-两根线,或者也叫A,B两根线。A,B两根线的差分电平信号就是作为数据信号传输。 RS422就是把RS232的RX分成两根线,RX+,RX-,把TX分成TX+,TX-。这样就可以同时发送和同时接收了,还可以像485这样,有较远的传输距离。

UART就相当于车站,而RS232/RS485/RS422则对应于公路的规则。**RS232/RS485/RS422是物理层面的电气接口要求,也就是说,是对电气特性以及物理特性的规定,作用于硬件传输通路上,不含有对数据的处理方式,解决0和1的可靠传输。**更具体的,电气的特性也决定了线路的连接方式,比如RS232,规定用电平表示数据,因此线路就是单线路的,用两根线才能达到全双工的目的;而RS485, 使用差分电平表示数据,因此,必须用两根线才能达到传输数据的基本要求,要实现全双工,必需用4根线。但是,无论使用RS232还是RS485,它们与UART是相对独立的,但是由于电气特性的差别,必须要有专用的器件和UART连接,才能完成数据在线路和UART之间的正常流动。属于通信网络中的物理层(最底层)的概念,与通信协议没有直接关系。

四、总结

1、串口、COM口指的是物理接口形式(硬件);UART是通用异步收发传输器,是一个要完成特定功能(数据的串行与并行转换)的硬件,本身并不是协议,且此硬件没有规定的连接器标准和电气特性(直接使用CPU的TTL电平),但规定了传输时的数据帧格式。 2、RS232/RS485是两种不同的电气协议 ,是对电气特性以及物理特性的规定,作用于数据的传输通路上,它并不内含对数据的处理方式。 3、无论使用RS232还是RS485,它们与UART是相对独立的,但是由于电气特性的差别,必须要有专用的器件和UART转换,才能完成数据在线路和UART之间的正常流动。从某种意义上说,线路上存在的仅仅是电流,RS232/RS485规定了这些电流在什么样的线路上流动和流动的样式;在UART那里电流才被解释和组装成数据,并变成CPU可直接读写的形式。

参考: https://blog.csdn.net/qq_53144843/article/details/123513135 https://blog.csdn.net/luopeng12345/article/details/108885032 https://blog.csdn.net/MQ0522/article/details/128559845



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3