常用的接口与协议
PC机常用的按照接口数量细分为A型(15针),B型(25针),C型(37针),D型(50针),E型(9针)。其中,串行通信常用的是RS232——9针的DB9接口,显示器用的是VGA——15针的DB15接口。现在的笔记本电脑都已取消这种接口,一方面是因为这种接口比较笨重、逐渐被市场淘汰,另一方面,也有了更好的USB口来完美替代他,而某些需要RS232的场景也可用通过USB转RS232驱动来实现,所以顺其自然的RS232接口也就被淘汰了。 此外,我们电脑打开设备管理器,看到的端口设备(COM1、COM2…)等就是串行通讯端口,简称串口,老款的设备大多是用RS232接口,现在我们使用的鼠标、键盘、打印机等都以使用更高速、方便的USB口了。下面我们进行详细的介绍。
1. UART
在通信和计算机科学中,Serial communication是一个通用概念,泛指所有的串行的通信协议,如RS232、USB、I2C、SPI、1-Wire、Ethernet等。这里的串行(serial),是相对并行通信(parallel communication)来说的,只将准备发送的一长串0/1电平跳变信号以串行的方式发送出去。
理解了串行通信后,还需要知道一组概念,即同步通信和异步通信,这里只介绍串行的同步和异步通信。
- 同步串行通信:发送端在发送串行数据的同时,提供一个时钟信号,并按照一定的约定(例如在时钟信号的上升沿的时候,将数据发送出去)发送数据,接收端根据发送端提供的时钟信号,以及大家的约定,接收数据。I2C、SPI等有时钟信号的协议,都属于这种通信方式。
- 异步串行通信:发送端在数据发送之前和之后,通过特定形式的信号(例如START信号和STOP信号),告诉接收端,可以开始(或者停止)接收数据了。与此同时,收发两方会约定一个数据发送的速度(这就是波特率),发送端在发送START信号之后,就按照固定的节奏发送串行数据,与此同时,接收端在收到START信号之后,也按照固定的节奏接收串行数据。
我们所提到的串口通信(UART)便是使用的异步串行通信方式,而我们电脑上所谓的COM口,便是针对串口通信而设计的一种端口。UART更多关注规定编码格式的标准,如波特率(baud rate)、帧格式和波特率误差等等,而将要介绍的RS232、USB、RS485等这类串行通信接口则更多关注的是电平标准和电压。还有一点需要注意的是UART已经包含了TTL电平的串口,也包含了RS232电平的串口。
2. RS232
RS-232C 标准(协议)的全称是 EIA-RS-232C 标准,其中EIA (Electronic Industry Association)代表美国电子工业协会, 是常用的串行通信接口标准之一。
引脚定义(实际只用到2、3、5三个脚):
9芯 | 缩写 | 描述 |
---|---|---|
1 | CD | 载波检测 |
2 | RXD | 接收数据 |
3 | TXD | 发送数据 |
4 | DTR | 数据终端准备好 |
5 | GND | 信号地 |
6 | DSR | 通信设备准备好 |
7 | RTS | 请求发送 |
8 | CTS | 允许发送 |
9 | RI | 响铃指示器 |
电气特性:
- 最远通信距离是50英尺(15m)
- 全双工通讯,最高传输速率20kbps
- 传送的数字量采用负逻辑,且与地对称,逻辑1:-3 ~-15V ; 逻辑0:+3~+15V
优缺点:
-
接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
-
传输速率较低,在异步传输时,波特率为20Kbps;
-
接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
-
传输距离有限,且需要双方的RXD和TXD线交叉连接,注定只能进行点对点连接。
3. RS485
针对RS232出现的缺点和不足,新接口RS-485便应运而生,该接口有效的减弱了共模干扰,利用A、B两个信号线进行平衡传输。RS-485同样负责在设备和物理传输介质之间传输原始数据,并没有复杂的协议栈,是一种利用差分传输进行串口通信的半双工接口。它具有以下特点:
引脚定义:
DB9 | 缩写 | 描述 |
---|---|---|
1 | RS-485(A+) | 非反向信号 |
2 | RS-485(B -) | 反向信号 |
3 | 空 | - |
4 | 空 | - |
5 | GND | 信号地 |
电气特性:
- 接口使用差分信号,逻辑1:+2V to +6V;逻辑0:-6V to -2V。
- 半双工通信,速率可高达10Mbit/s
- 理论通讯距离可达1200米,具有良好的抗噪声性能,不需要考虑总线电压衰减问题
优缺点:
- 使用差分信号传输。长距离布线会有信号衰减,而且引入噪声和干扰的可能性更大,在线缆A和B上的表现就是电压幅度的变化,但是,采用差分线的好处就是,差值相减就会忽略掉干扰依旧能输出正常的信号,把这种差分接收器忽略两条信号线上相同电压的能力称为共模抑制。
- 高低电平由最小差分电压决定。RS-485不需要使用特定的总线电压,在较长的电缆长度上,接收器接收到的电压可能会降低到+/- 200 mV,这对于RS-485仍然是完全可以接受的。RS-485标准中提到:若是逻辑1,线路B信号电压比线路A高;若是逻辑0,线路A信号电压比线路B高;
- RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,多采用的是两线制接线方式,这种接线方式为总线拓扑结构,在同一总线上最多可以挂接32个节点。
- 接口信号电平降低,不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。
- 利用RS485为半双工通信方式,即每一时刻只能有一个发送者,且有RS485组成的总线网络没有CSMA/CD机制,因此大多数时候适合从机处于接收状态,等待主机向指定的从机发送数据。
- RS485接口传输的信号虽然是差分信号,但仍需要使用转换器转换为TTL串口将信号送去微控制器中。
4. TTL
TTL(Transistor Transistor Logic)即晶体管-晶体管逻辑,TTL电平信号由TTL器件产生。TTL器件是数字集成电路的一大门类。TTL与RS485、RS232最大的区别便是TTL接口属于并行方式传输数据的接口,而后两者则遵循的是串行通信协议。
接口定义:
TTL输出接口可分为,单路6bit TTL输出接口、双路6bit TTL输出接口、双路8bit TTL输出位接口等等几类,驱动板的TTL输出接口通常包括:RGB数据信号、时钟信号和控制信号这三大类信号。例如单路6bit TTL输出接口,便共有18条RGB数据线,每个基色信号采用6bit数据(R0~R5,G0~G5,B0~B5),由于基色RGB数据为18bit,因此,也称18位或18bit TTL接口。
电气特性:
- 逻辑"1":+5V/3.3V;逻辑"0":0V,对TTL电平的器件来说,当输入电压高于2V时,会被识别为逻辑1,输入的低电平低于1.2V时,会被识别为0。
- 全双工通信,传输速率要高于串行传输
- 传输距离理论上为10英尺(5米),抗噪声性能差。
优缺点:
- 并行传输,全双工通信,传输速率极快
- 电平信号为5V,与主控芯片之间连接不需要额外的电平转换电路,大多数使用在微控制器与外设IO之间的短距离通信上。
- 信号电压高、连线多,因此抗电磁干扰性能也较差,并不适合长远距离传输。
除了TTL接口外,还有一点极易混淆的是:我们常用的USB转TTL、RS232转TTL指的是将不同接口的电平信号转为TTL电信号,而不是将串行转换为并行,也就是是说转换后仍然是串口通信。
5. USB
USB的全名为通用串行总线(Universal Serial Bus),它的出现是为了解决计算机系统接口复杂的弊端,因为早期计算机外设接口各不相同,例如键盘的插口为圆形串口,而打印机需要DB9或25的并行接口,鼠标使用的是DB9或25的串行接口,这些接口不仅复杂,每次插拔都需要系统重启来启动驱动,基于此,USB接口横空出世,它的特点就是将所有外设接口都设计为统一规格,而且支持即插即用。
所谓总线(Bus),一般指通过分时复用的方式,将信息以一个或多个源部件传送到一个或多个目的部件的一组传输线。是电脑中传输数据的公共通道。
引脚定义:
引脚 | 描述 |
---|---|
VCC | +5V |
D+ | 数据线 |
D- | 数据线 |
GND | 信号地 |
电气特性:
- USB接口的输出电压和电流是: +5V, 500mA ,误差不得超过0.2V。USB使用D+和D-输出一对差分信号。
- 最新一代USB4传输速率为40Gbit/s,半双工通信,最大供电100W
- 传输距离不超过5m
基本特性:
- USB采用四线电缆,其中两根是用来传送数据的串行通道,另两根为下游(Downstream)设备提供电源,对于高速且需要高带宽的外设,USB(USB1.1)以全速12Mbps的传输数据;对于低速外设,USB则以1.5Mbps的传输速率来传输数据,USB总线可以根据情况实现自动切换。
- USB支持使用HUB扩展,理论上可以扩展127个接口,支持热插拔
- USB规范定义了四种数据类型:控制传输、中断传输、同步传输、批量传输,支持鼠标、键盘、打印机等多种场景。
5. RJ45
RJ45是布线系统中信息插座(即通信引出端)连接器的一种,连接器由插头(接头、水晶头)和插座(模块)组成,插头有8个凹槽和8个触点。RJ是Registered Jack的缩写,意思是“注册的插座”。
RJ45即我们常说的网口,主要应用于以太网络中,和上述几种接口不属于同一类型,这里不做介绍。