通信与接口电路——串口通信的硬件电路
一、UART相关内容回顾
1、串口通信的硬件电路连接方式
(1)简单双向的串口通信有两根通信线TX(发送端)与RX(接收端),两线交叉连接。
(2)当只需单向的数据传输时,可以只接一根通信线。
2、UART存在的问题
(1)电气接口不统一:
①UART只是对信号的时序进行了定义,而未定义接口的电气特性。
②UART通信时一般直接使用处理器使用的电平,即TTL电平,但不同的处理器使用的电平存在差异,所以不同的处理器使用UART通信时一般不能直接相连。
③UART没有规定不同器件连接时连接器的标准,所以不同器件之间通过UART通信时连接很不方便。
(2)UART一般直接使用TTL信号来表示0和1,但TTL信号的抗干扰能力较差,数据在传输过程中很容易出错。因为TTL信号的抗干扰能力较差,所以其通信距离也很短,一般只能用于一个电路板上的两个芯片之间的通信。
二、RS232、RS485的基本概念
1、串口的电平标准
(1)电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种:
①TTL电平:+3.3V或+5V表示1,0V表示0。(电平单端信号,单片机常用)
②RS232电平:-3~-15V表示1,+3~+15V表示0。(电平单端信号,大型机器中常用)
③RS485电平:两线压差+2~+6V表示1,-2~-6V表示0。(电平差分信号,抗干扰能力强,传输距离远)
(2)当电平标准不一致时,需要加电平转换芯片。
2、RS232标准
(1)RS232协议是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家、计算机终端生产厂家共同制定的用于串行通讯的标准,该标准规定采用一个标准的连接器,标准中对连接器的每个引脚的作用加以规定,还对信号的电平加以规定。
(2)该标准规定采用一个25引脚的DB-25连接器,标准中对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定,后来IBM的PC机将RS232简化成了DB-9连接器,后来成为事实标准;现在工业控制的RS-232接口一般只使用RXD、TXD、GND三条线。
(3)下图所示的是RS232接口的引脚定义,公口与母口的区别仅在于TXD和RXD不同,其它引脚定义均一致。
(4)该标准规定逻辑“1”的电平为-5V到-15V,逻辑“0”的电平为+5V到+15V,选用该电气标准的目的在于提高抗干扰能力、增大通信距离,其传送距离一般可达15m。
(5)虽然很多处理器中都会集成UART控制器,但处理器产生的信号一般都是TTL信号,并不是符合RS232标准的信号,所以一般还需要在处理器外部去添加电路对信号的电平进行转换,如MAX232。
(6)RS232存在的问题:
①接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容,所以需要使用电平转换芯片才能与TTL电路连接。
②通信速度较低(最高可达19.2kbps,不过这是标准定义的,实际设备的波特率,一般都会高于标准的19.2kbps)。
③易产生共模干扰,抗噪声干扰性偏弱。
④传输距离较短(15m)。
3、RS485标准
(1)RS485标准由电信行业协会和电子工业联盟定义,使用该标准的通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号。
(2)RS485采用两线制,这种接线方式为总线式拓扑结构,在同一总线上可以同时存在多个节点,允许连接多个收发器,即具有多站能力,可以利用单一的RS485接口建立一个设备网络。因为采用两线制,数据的发送和接收都要使用这对差分信号线,发送和接收不能同时进行,所以只能采用半双工的方式工作,编程时也需要加以处理(不能同时收发)。
(3)下图所示的是RS485接口的引脚定义。
(4)RS485标准规定采用差分信号进行数据传输,两线间的电压差为+2V到+6V表示逻辑“1”,两线间的电压差为-2V到-6V表示逻辑“0”。
①使用差分信号能有效地减少噪声信号的干扰,延长通信距离,RS485的通信距离可以达到1500m。
②RS485接口信号的电平比RS232低,不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便地与TTL电路连接。
(5)虽然很多处理器中都会集成UART控制器,但处理器产生的信号一般都是TTL信号,并不是符合RS485标准的信号,所以一般还需要在处理器外部去添加电路,将TTL信号转换成差分信号。
(6)RS485的优势:
①接口的信号电平值较低,不易损坏接口电路的芯片,且与TTL电平兼容,不需要使用电平转换芯片。
②通信速度较高(最高通信速率受传输距离影响,最高可达10Mbps)。
③抗噪声干扰性强。
④传输距离较远(1500m)。
⑤可实现多节点组网,但需要由主机管理总线。
三、RS232、RS485原理图设计
1、RS232收发器应用
(1)以SIT3232E为例进行介绍,它使用3.3V供电,提供两个电平转换通道(每路单独使用),最高支持120kbps的波特率。SIT3232E的T1IN/T2IN内部没有上拉电阻,如果不使用通道,需要将它们与VCC或GND连接。
(2)SIT3232E的引脚定义:
PIN | SYMBOL | DESCRIPTION |
1 | C1+ | 充电泵电容C1的正极引脚 |
2 | V+ | 双电压端子(连接电容) |
3 | C1- | 充电泵电容C1的负极引脚 |
4 | C2+ | 充电泵电容C2的正极引脚 |
5 | C2- | 充电泵电容C2的负极引脚 |
6 | V- | 双电压端子(连接电容) |
7 | T2OUT | T2通道输出(RS232电平) |
8 | R2IN | R2通道输入(RS232电平) |
9 | R2OUT | R2通道输出(TTL/CMOS电平) |
10 | T2IN | T2通道输入(TTL/CMOS电平) |
11 | T1IN | T1通道输入(TTL/CMOS电平) |
12 | R1OUT | R1通道输出(TTL/CMOS电平) |
13 | R1IN | R1通道输入(RS232电平) |
14 | T1OUT | T1通道输出(RS232电平) |
15 | GND | 接地引脚 |
16 | VCC | 接3.3V电源引脚 |
(3)参考原理图设计如下图所示,其中ESD0402用于保护电路,防止带电插拔接口引起的浪涌电流损坏电路元件。
2、RS485收发器应用
(1)以SIT3485E为例进行介绍,它使用3.3V~5V供电,最多允许256个器件连接到总线,最高支持12Mbps的波特率。
(2)SIT3485E的引脚定义:
PIN | SYMBOL | DESCRIPTION |
1 | RO | 接收器输出端 当RE为低电平时,若A-B≥200mV,RO输出为高电平;若A-B≤-200mV,RO输出为低电平 |
2 | /RE | 接收器输出使能控制 当/RE接低电平时,接收器输出使能,RO输出有效;当/RE接高电平时,接收器输出禁能,RO为高阻态 当/RE接高电平且DE接低电平时,器件进入低功耗关断模式 |
3 | DE | 驱动器输出使能控制 当DE接高电平时驱动器输出有效,当DE为低电平时输出为高阻态;当/RE接高电平且DE接低电平时,器件进入低功耗关断模式 |
4 | DI | DI驱动器输入 DE为高电平时,DI上的低电平使驱动器同相端A输出为低电平,驱动器反相端B输出为高电平;DI上的高电平将使同相端输出为高电平,反相端输出为低 |
5 | GND | 接地引脚 |
6 | A | 接收器同相输入和驱动器同相输出端 |
7 | B | 接收器反相输入和驱动器反相输出端 |
8 | VCC | 接3.3V~5V电源引脚 |
(3)参考原理图设计如下图所示。
①ESD0402用于保护电路,防带电插拔接口引起的浪涌电流损坏电路元件。
②三极管Q1实现发送模式和接收模式的硬件自动仲裁(无需软件干预):
[1]UART_TX为高电平“1”时Q1导通,RE#和DE引脚电平被拉低,对应接收模式(总线空闲时自动切换为接收模式);UART_TX为低电平“0”时Q1截止,RE#和DE引脚电平被拉高,对应发送模式。
[2]如果设备发送逻辑“1”,ESD0402确实会回到接收模式,但由于在 A、B 线上预先加了上下拉偏置电阻(在A线上拉、B 线下拉),总线上的电压会被电阻强制拉到A高于B的状态,这个差分电压恰好就对应了逻辑“1”,不会影响数据发送。
[3]在发送逻辑“1”时,总线是靠电阻上拉的,这比推挽驱动慢,速率越高,这个上升沿就越“缓”,波形可能变形,因此,使用三极管做自动切换模式的方案不适合高于115200bps的通信速率,对于高速通信,建议使用MCU的GPIO直接控制模式切换。
