UART作为硬件来看,它是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),是电脑硬件的一部分,将资料由串行传输(Serial communication)与并行传输(Parallel communication)间作传输转换。UART通常用在与其他通讯协定(如EIA RS-232)的连结上。
具体实物表现为独立的模块化芯片,或作为集成于微处理器中的周边设备。在开发板设计和测试阶段被用来控制CPU与其余部分的信息传送。
UART作为一种软件协议来看,是异步串口通信协议的英文缩写,它包括了RS232、RS499、RS423、RS422和RS485等接口标准规范和总线标准规范,即UART是异步串行通信口的总称。 而RS232、RS499、RS423、RS422和RS485等,是对应各种异步串行通信口的接口标准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容。实际上是属于通信网络中的物理层(最底层)的概念,与通信协议没有直接关系。而通信协议,是属于通信网络中的数据链路层(上一层)的概念。
COM口是指针对串行通信协议的一种端口,是PC上异步串行通信口的简写,大部分为9针孔D型。COM口里分RS232,RS422和RS485,传输功能依次递增。所以,RS485口也是9针孔D型。由于历史原因,IBM的PC外部接口配置为RS232,成为实际上的PC界默认标准。所以,现在PC机的COM口均为RS232。若配有多个异步串行通信口,则分别称为COM1、COM2...
RS232或者RS485,是指通信协议传输方式的类别之一,采用这类通信方式的,可以有多种协议,包括串行通信,现场总线方式等。想完成某个通信处理的,首先会问通信协议是什么,比如回答为串口、现场总线、以太网等;然后会确定该协议下的通信端口类型,比如回答:USB口,RS232,RS422,RS485。
总的来说,对于一项通信任务,通信协议可以使用UART协议,而UART协议可以通过COM端口来实现硬件连线,此协议下的传输方式可以选用RS232或者RS485等。
PS:注意使用电脑上的串口与微处理器通信时,首先要经过转压芯片(例如MAX232)来实现电平转化。
TTL 高电平1是>=2.4V,低电平0是<=0.5V(对于5V或3.3V电源电压);
RS232采用的是负逻辑,高电平1是-15V~-3V,低电平0是+3V~+15V;
CMOS电平以电源为参考,高电平1是>=0.7VCC,低电平0是<=0.2VCC。
串口通讯是电子工程师和嵌入式开发工程师面对的基本问题,RS232则是其中比较常用的通讯方式。但是初学者往往搞不清有关的名词如UART和RS232或RS485之间是什么关系,因为它们经常被放到语句中同等的位置使用。在百度搜索两者的区别,可以看到排在前面的答案充斥着混淆的概念。就此,谈谈我对这几个概念的理解,希望能帮初学者厘清它们之间的关系。