通讯协议:UART、RS232、RS484、USB、TTL、COM、SPI、I2C等

区分UART、RS系列、TTL、COM等

第一个关键:理解通信网络的结构。下面给出一种计算机网络体系架构:

Created with Raphaël 2.1.0 Open System Interconnection (OSI) model 开放式通信系统开放参考模型 应用层 应用层 表示层 表示层 会话层 会话层 传输层 传输层 网络层 网络层 数据链路层 数据链路层 物理层 物理层 HTTP FTP DNS begin-1 2 3 TCP 4 IP Ethernet 5 UART end-6 RS232 TTL

OSI模型是由ISO(国际标准化组织)制定的一种用于计算机网络通讯的架构体系。这个模型的各个层面都有各种各样的协议,定义了某一层面的通讯方式。图中也给出了每一层面的典型例子。可以直观地看到,从定义上严格来说UART属于数据链路层,RS232是物理层。
会话层和表示层没有查到协议示例,等查到稍后补充。


第二个关键:区分软件和硬件不同方面上的UART(涉及一些既定的工业标准)。

  • UART(Universal Asynchronous Receiver/Transmitter),即通用异步收发传输器。从软件层面上说,UART代表了一种通讯协议(即主机与从机之间进行串并通讯的信号通讯方式)。这个是UART的严格定义。
  • 在工业界或者器件场合,UART又是TTL接口标准的通信协议芯片的代称。这是硬件层面,也是约定俗成。
    • 如果要在硬件上实现这种通讯协议(即做成芯片,并且拥有一些IO口,这些IO口就是UART的接口),就需要定义硬件的接口的特性(包括电气特性—电压标准、电流标准、驱动能力、传输距离等等,电气特性的概念我还没考察过,这里是按自己理解说的)。
    • 可能由于通讯协议设定初期,很多公司都参与了其标准的制定,所以最后出现了各种各样的UART接口特性。发展到现在,这些接口标准就主要剩下了RS系列(RS232、RS484等)、TTL。RS系列是负逻辑电平的接口:5V~12V为低电平,-5V~-12V为高电平。TTL:5V或者3.3V。通常如果在一款芯片中直接提到UART接口,指的是TTL标准的UART。很多外设/电脑接口需要RS232系列的电平,这时候就需要TTL转RS232芯片。

TTL之间可能会有转换:5VTTL转3.3VTTL芯片(用于适应不同电平标准的单片机之间的通讯);
TTL与RS系列可能会有转换:TTL转RS232等;
TTL与USB可能会有转换:TTL转USB(这里涉及USB的协议和硬件,在下一部分讲解。这个USB口就可以直接和电脑USB口相连很方便。)等等。


最后一个概念:COM,即在电脑上识别UART的特定名称,异步串口通讯的简称。

具体指的是如果你连接了一个UART(我们也通常叫做串口/串口通讯)在电脑上(不管是转换后还是转换前),电脑会把这个UART识别为一个COM口,通常叫做COM1、COM2、COM3等等(可以在电脑设备管理器里查看串口名称)。如果连接了不止一个UART,比如两个,那么你就有了两个COM口。

总结一下,UART就是通用异步收发通讯协议。从软件上理解,就是一种通讯协议(定义了通讯口的针数、IO定义、收发数据的周期、命令等等)。从硬件上看,就特指的是TTL电平级的UART硬件接口。
不管是TTL还是RS系列,仅仅区别在UART的接口电平/电气特性不同。其通讯协议的收发方式等本质是不变的。
COM口是电脑识别出UART口的代称,通常是COM3/COM4,可以有很多个,可以在设备管理器查看,可以通过软件调用,比如说MATLAB~。另外,如果不安装驱动,当然你就看不到咯。


UART、SPI、I2C、USB等

这一类都是通讯协议。主要的区别在软件上的通讯协议的本质不同,但是硬件上的电平标准也各有特点。
…未完待续…

你可能感兴趣的:(通讯协议)