简单几句讲明白UART、COM、485、RS232、I2C、SPI区分

文章目录

  • 1、前言
  • 2、UART、COM、I2C、SPI(硬件接口)
  • 3、RS232/RS485/RS422(规定了电气特性表示传输方式)
  • 4、总结


1、前言

  加深对UART,COM、I2C、SPI、RS232, RS485此类概念的理解


2、UART、COM、I2C、SPI(硬件接口)

  UART、COM、I2C、SPI都属于硬件接口都是串行口。但是有同步串行口和异步串行口之分,其中UART是单片机串口的俗称,COM口是电脑串口的俗称,它们都是异步串行口;而I2C、SPI都属于同步串行口,再者TTL、RS-232、RS-485区别于硬件接口,它们是指的电平标准(电信号)。

同步异步知识普及:
UART:通用异步收发器,异步通信的协议。规定好通信双方的波特率、数据长度、校验位、停止位等参数即可发送数据和接收数据。
I2C、SPI:同步通信:相较于异步通信,物理上多了一根时钟线,传输效率更高(去掉了开始位、校验位、停止位等冗余数据)。

  电脑COM口使用DB9连接器,遵循RS-232标准,RS-232规定了通信口的电气特性(比如多少伏为逻辑“1”)和接口机械特性(形状,针脚定义)等内容。COM口多见于旧式电脑,用于连接鼠标,调制调解器等设备,现在已被USB取代。
简单几句讲明白UART、COM、485、RS232、I2C、SPI区分_第1张图片

  • 一般老式电脑的串口是COM口,单片机的串口是UART/USART,既然单片机有串口(UART/USART),电脑也有串口(COM口),那么两者就可以通过串口进行通信。由于电脑的COM口使用的RS-232电平跟单片机的UART/USART使用的TTL电平不一样,这时就需要使用MAX232之类的电平转换芯片,将TTL电平转换成RS-232电平,连接示意如下:
          电脑COM口 <------> MAX232 <—> 单片机UART/USART
  • UART属于硬件接口,叫通用异步收发传输器,传输器就表明中这是一种装置属于硬件层面,特性:两根线,全双工,异步传输,UART有4个pin(VCC, GND, RX, TX), 用的TTL电平, 低电平为0(0V),高电平为1(3.3V或以上)。
  • RS232以及RS485是物理层面的电气接口要求,结合上面对硬件接口的定义。

  我们可以说硬件接口UART可以使用RS232或者RS485标准进行通讯,也可以说RS232、RS499、RS423、RS422和RS485等,是对应各种异步串行通信口的接口标准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容。实际上是属于通信网络中的物理层(最底层)的概念,与通信协议没有直接关系。

2.1 串口通信主要为分232,485,422 通信三种方式:
  232 通信主要是由RX,TX,GND三根线组成。RX与TX,TX接RX,GND接GND。这样还是比较好理解吧。因为发送和接收分别是由不同的线处理的,也就是能同时发送数据和接收数据,这就是所谓的全双工。串口通信还有一个功能叫做全功能串口通信,也叫标准串口。因为在两个设备间进行数据传输,有些设备处理速度比较快,有些数据比较慢。为了保证数据能正常传输,在RX,TX的基础上,还增加了几个控制引脚,本来好端端就R,T,G,三根线,凑着就凑齐了9个引脚,召唤出了DB9这个东西
  485是为了解决232通信距离的问题。232通信距离比较短。485主要是以一种差分信号进行传输,只需要两根线,+,-两根线,或者也叫A,B两根线。A,B两根线的差分电平信号就是作为数据信号传输。
  422就是把232的RX分成两根线,RX+,RX-,把TX分成TX+,TX-。这样就可以同时发送和同时接收了,还可以像485这样,有较远的传输距离。

3、RS232/RS485/RS422(规定了电气特性表示传输方式)

  UART就相当于车站,而RS232/RS485/RS422则对应于公路的规则。RS232,RS422,RS485的关系这三种接口都是属于串口通信,主要有几个方面的区别。

1.通讯距离,RS232接口通讯距离为15米,而RS422/485最大通讯距离可以达到1200米。

2.所连设备数,RS232只能连接一个设备,而RS485可以同时连接多个设备。

3.端口定义,RS232为标准接口,一般为D型9针的DB9头,接口信号一般为标准默认的。


  RS232/RS485是两种不同的电气协议,也就是说,是对电气特性以及物理特性的规定,作用于数据的传输通路上,它并不内含对数据的处理方式。更具体的,电气的特性也决定了线路的连接方式,比如RS232,规定用电平表示数据,因此线路就是单线路的,用两根线才能达到全双工的目的;而RS485, 使用差分电平表示数据,因此,必须用两根线才能达到传输数据的基本要求,要实现全双工,必需用4根线。但是,无论使用RS232还是RS485,它们与UART是相对独立的,但是由于电气特性的差别,必须要有专用的器件和UART连接,才能完成数据在线路和UART之间的正常流动。

   总的来说,对于一项通信任务,通信协议可以使用UART协议,而UART协议可以通过COM端口来实现硬件连线,此协议下的传输方式可以选用RS232或者RS485等。其中COM口是指针对串行通信协议的一种端口,是PC上异步串行通信口的简写,大部分为9针孔D型。COM口里分RS232,RS422和RS485,传输功能依次递增) 即串行通讯端口来实现硬件连接,此协议下的传输方式可以选用RS232或者RS485,RS422等等。

4、总结

  从某种意义上,可以说,线路上存在的仅仅是电流,RS232/RS485规定了这些电流在什么样的线路上流动和流动的样式;在UART那里,电流才被解释和组装成数据,并变成CPU可直接读写的形式。然而我们常用的645协议以及698协议都是再此基础上赋予CPU直接读写01以全新的解释。

  • 串口、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的电平标准(电信号)。
  • 接设备的时候,一般只接GND RX TX。不会接Vcc或者+3.3v的电源线,避免与目标设备上的供电冲突。
  • PL2303、CP2102芯片是 USB 转 TTL串口 的芯片,用USB来扩展串口(TTL电平)。
  • MAX232芯片是 TTL电平与RS232电平的专用双向转换芯片,可以TTL转RS-232,也可以RS-232转TTL。
  • TTL标准是低电平为0,高电平为1(+5V电平)。RS-232标准是正电平为0,负电平为1(±15V电平)。

参考:
https://blog.csdn.net/weixin_31898831/article/details/112115192
https://blog.csdn.net/fpga_verilog_sky/article/details/103525706
知乎-图文详解RS-485

你可能感兴趣的:(UART)