通信与接口电路——串口通信的硬件电路 一、UART相关内容回顾1、串口通信的硬件电路连接方式1简单双向的串口通信有两根通信线TX发送端与RX接收端两线交叉连接。2当只需单向的数据传输时可以只接一根通信线。2、UART存在的问题1电气接口不统一①UART只是对信号的时序进行了定义而未定义接口的电气特性。②UART通信时一般直接使用处理器使用的电平即TTL电平但不同的处理器使用的电平存在差异所以不同的处理器使用UART通信时一般不能直接相连。③UART没有规定不同器件连接时连接器的标准所以不同器件之间通过UART通信时连接很不方便。2UART一般直接使用TTL信号来表示0和1但TTL信号的抗干扰能力较差数据在传输过程中很容易出错。因为TTL信号的抗干扰能力较差所以其通信距离也很短一般只能用于一个电路板上的两个芯片之间的通信。二、RS232、RS485的基本概念1、串口的电平标准1电平标准是数据1和数据0的表达方式是传输线缆中人为规定的电压与数据的对应关系串口常用的电平标准有如下三种①TTL电平3.3V或5V表示10V表示0。电平单端信号单片机常用②RS232电平-3~-15V表示13~15V表示0。电平单端信号大型机器中常用③RS485电平两线压差2~6V表示1-2~-6V表示0。电平差分信号抗干扰能力强传输距离远2当电平标准不一致时需要加电平转换芯片。2、RS232标准1RS232协议是在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。6RS232存在的问题①接口的信号电平值较高易损坏接口电路的芯片又因为与TTL电平不兼容所以需要使用电平转换芯片才能与TTL电路连接。②通信速度较低最高可达19.2kbps不过这是标准定义的实际设备的波特率一般都会高于标准的19.2kbps。③易产生共模干扰抗噪声干扰性偏弱。④传输距离较短15m。3、RS485标准1RS485标准由电信行业协会和电子工业联盟定义使用该标准的通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号。2RS485采用两线制这种接线方式为总线式拓扑结构在同一总线上可以同时存在多个节点允许连接多个收发器即具有多站能力可以利用单一的RS485接口建立一个设备网络。因为采用两线制数据的发送和接收都要使用这对差分信号线发送和接收不能同时进行所以只能采用半双工的方式工作编程时也需要加以处理不能同时收发。3下图所示的是RS485接口的引脚定义。4RS485标准规定采用差分信号进行数据传输两线间的电压差为2V到6V表示逻辑“1”两线间的电压差为-2V到-6V表示逻辑“0”。①使用差分信号能有效地减少噪声信号的干扰延长通信距离RS485的通信距离可以达到1500m。②RS485接口信号的电平比RS232低不易损坏接口电路的芯片且该电平与TTL电平兼容可方便地与TTL电路连接。5虽然很多处理器中都会集成UART控制器但处理器产生的信号一般都是TTL信号并不是符合RS485标准的信号所以一般还需要在处理器外部去添加电路将TTL信号转换成差分信号。6RS485的优势①接口的信号电平值较低不易损坏接口电路的芯片且与TTL电平兼容不需要使用电平转换芯片。②通信速度较高最高通信速率受传输距离影响最高可达10Mbps。③抗噪声干扰性强。④传输距离较远1500m。⑤可实现多节点组网但需要由主机管理总线。三、RS232、RS485原理图设计1、RS232收发器应用1以SIT3232E为例进行介绍它使用3.3V供电提供两个电平转换通道每路单独使用最高支持120kbps的波特率。SIT3232E的T1IN/T2IN内部没有上拉电阻如果不使用通道需要将它们与VCC或GND连接。2SIT3232E的引脚定义PINSYMBOLDESCRIPTION1C1充电泵电容C1的正极引脚2V双电压端子连接电容3C1充电泵电容C1的负极引脚4C2充电泵电容C2的正极引脚5C2充电泵电容C2的负极引脚6V双电压端子连接电容7T2OUTT2通道输出RS232电平8R2INR2通道输入RS232电平9R2OUTR2通道输出TTL/CMOS电平10T2INT2通道输入TTL/CMOS电平11T1INT1通道输入TTL/CMOS电平12R1OUTR1通道输出TTL/CMOS电平13R1INR1通道输入RS232电平14T1OUTT1通道输出RS232电平15GND接地引脚16VCC接3.3V电源引脚3参考原理图设计如下图所示其中ESD0402用于保护电路防止带电插拔接口引起的浪涌电流损坏电路元件。2、RS485收发器应用1以SIT3485E为例进行介绍它使用3.3V~5V供电最多允许256个器件连接到总线最高支持12Mbps的波特率。2SIT3485E的引脚定义PINSYMBOLDESCRIPTION1RO接收器输出端当RE为低电平时若A-B≥200mVRO输出为高电平若A-B≤-200mVRO输出为低电平2/RE接收器输出使能控制当/RE接低电平时接收器输出使能RO输出有效当/RE接高电平时接收器输出禁能RO为高阻态当/RE接高电平且DE接低电平时器件进入低功耗关断模式3DE驱动器输出使能控制当DE接高电平时驱动器输出有效当DE为低电平时输出为高阻态当/RE接高电平且DE接低电平时器件进入低功耗关断模式4DIDI驱动器输入DE为高电平时DI上的低电平使驱动器同相端A输出为低电平驱动器反相端B输出为高电平DI上的高电平将使同相端输出为高电平反相端输出为低5GND接地引脚6A接收器同相输入和驱动器同相输出端7B接收器反相输入和驱动器反相输出端8VCC接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直接控制模式切换。