串行通信、串口、UART、RS232、RS485,不知道你第一次看到这些概念的时候是否一头雾水,然后在简单的接触了一段时间后,对这些概念还是不怎么准确的说出它们之间的区别,至少我是这样的,然而今天我就压将其彻底弄懂。本文主要是区分这几个概念,并不会涉及到相关协议的具体代码编写。
首先对串口通信和串口进行解析,我们先来看一下百度百科对这两者的解释:
?串行通信作为计算机通信方式之一,主要起到主机与外设以及主机之间的数据传输作用,串行通信具有传输线少、成本低的特点。
?串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。
然后我对串行通信的概念进行一点展开。
串行通信:计算机的通信方式有两种串行通信和并行通信。串行通信简单说来就是将数据一位一位的发送,就像珠子串起来从一端发送到另一端一样,另外串行通信下还会分为同步通信和异步通信(这里只做提及,由于与本文关系不大故不再详细说明)。而并行通信则可简单理解为数据并行的发送,并行就是并排着,也可理解为多车道。
那么,现在我们对串行通信和串口来做一些简单的认识,利用最简单的语文知识,我们可以简单的进行这样的理解:串行通信是一种通信方式,串口是一种接口。通信方式决定的是你选择什么样的方式发送数据,是一个车道还是多个车道,接口是物理接口,是硬件,有具体的形状,通常它的样子是这样。
图一:9针的RS232接口
下面我们继续分析UART,RS232,RS485,还是一样的先看一下百度百科对它们各自的定义:
?UART:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。它将要传输的资料在串行通信与并行通信之间加以转换。
?RS232:RS-232标准接口(又称EIA RS-232)是常用的串行通信接口标准之一,它是由美国电子工业协会(EIA)联合贝尔系统公司、调制解调器厂家及计算机终端生产厂家于1970年共同制定,其全名是“数据终端设备( DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。
?RS485:RS485是一个定义平衡数字多点系统中的驱动器和接收器的电气特性的标准,该标准由电信行业协会和电子工业联盟定义。
同样的我们对这三个概念做一遍阅读理解将其简化 :1. UART是一个传输器。2. RS232是一个标准。3.RS485也是一个标准。
然后我们将简化的概念做一下展开(这不是多此一举哦):
- ?UART是一个“器”,很明显这是一个硬件,一个需要完成某些特殊功能的,它本身并不是什么协议,其完成的基本功能主要是串并转换。 ?RS223/RS485是电气标准,是两种不同个的电气协议,其规定的是电气特性以及物理特性。我们知道计算机中所有的数据都是由“0”和“1“来进行表达的,这两个电气标准规定的就是数据在电缆或更直白的说在用来连接连个设备的电线中,什么样的电平(可以理解为某个电压范围下)传输的数据是“0”或者“1”。
注1:像RS232还对接口的具体形式做了规定,有DB9和DB25。常用的为DB9,它只有9个引脚,外观如图一。
注2:有些人可能会把RS223/RS485称为通信协议,这其实是一种错误的说法,它们只是对电气标准和机械特性做了相关的规定,属于网络协议中的物理层。
为了对这三个概念(其实是两个,RS223和RS485是一类)理解得更加清晰,可以用一下例子来辅助理解:
- ?将UART理解为车站,它规定的是发多少趟车,每次发车间隔多久,以及确认什么时候发、什么时候结束、一次装多少人等等。 ?将RS223/RS485理解为道路上的协议,或者说“交通规则”,不同的道路有不同的规则,与车站无关,比如可以规定汽车靠左行驶代表“0”,靠右行驶代表“1”,同时它还可以规定汽车的具体形状。
本文最后可以浓缩为一下几点:
- ?串口通信是一种通信方式。 ?串口是一种接口,像耳机接口一样,它是一个“口”需要线连起来。 ?UART是一个“传输器”,是一个“车站”,这个车站会有一些自己的规定。 ?RS223/RS485是电气标准,规定的是电气特性与机械特性,它们不是通信协议。