UART、RS232、RS485协议


在电脑之间,我们常用RS232来通讯;在工业上,我们经常会用到RRS485总线。这RS232和RS485到底是什么东西?它与常用的串口通信有什么联系吗?下面我们就来看看他们之间的联系。

一、UART

1.1 UART帧格式

在这里插入图片描述

1.2 UART电路的连接

在这里插入图片描述

1.3 串口存在的问题

串口会存在什么问题?
串口传输距离近,容易受到干扰。在一般的项目中,很少用到串口通信的去实现两台不同的机器间的通信。
具体的问题如下:

  1. 电气接口不统一
      UART只是对信号的时序进行了定义,而未定义接口的电气特性;
      UART通信时一般直接使用处理器使用的电平,即TTL电平,但不同的处理器使用的电平存在差异,所以不同的处理器使用UART通信时一般不能直接相连;
      UART没有规定不同器件连接时连接器的标准,所以不同器件之间通过UART通信时连接很不方便;

  2. 抗干扰能力差
      UART一般直接使用TTL信号来表示0和1,但TTL信号的抗干扰能力较差,数据在传输过程中很容易出错。
    在这里插入图片描述

  3. 通信距离极短
      因为TTL信号的抗干扰能力较差,所以其通信距离也很短,一般只能用于一个电路板上的两个不芯片之间的通信

注意:stm32串口的数据位是包含校验位的。
在这里插入图片描述

二、RS232协议

2.0 RS232协议介绍

RS232协议
  RS232协议是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家、计算机终端生产厂家共同制定的用于串行通讯的标准。
  该标准规定采用一个标准的连接器。标准中对连接器的每个引脚的作用加以规定,还对信号的电平加以规定;
在这里插入图片描述
在这里插入图片描述

  • RS232接口
      该标准规定采用一个25引脚的DB-25连接器,标准中对连接器的每个引脚的信号内容加以规定)还对各种信号的电平加以规定;后来IBM的PC机将RS232简化成了DB-9维接器,后来成为事实标准;现在工业控制的RS-232接口一般只使用RXD、TXD、GND三条线;

  • 信号
      该标准规定逻辑“1”的电平为-5v到-15v逻辑“0”的电平为+5v到+15v,选用该电气标准的目的在于提高抗干扰能力,增大通信距离,其传送距离一般可达15m;

2.1 RS232的帧格式

RS232帧格式与UART串口通信一样。他们只是在电气的特性上不同。

2.2 RS232电路连接

在这里插入图片描述
在这里插入图片描述

  虽然很多处理器中都会集成UART控制器,但处理器产生的信号一般都是TTL信号并不是符合RS232标准的信号,所以一般我们还需要在处理器外部去添加电路对信号的电平进行转换;经过芯片的电平转换后,TTL信号就变成了RS232信号。我们想要发送的信息就以RS232的信号的方式发送给接收方,接收方也需要一个RS232转TTL电平的电平转换器,把RS232信号转换位TTL电平。
  现在的电脑上,一般也很少用RS232了,现在电脑上主要是以USB为主。但是在嵌入式中,RS232还是经常使用的

2.3 RS232存在的问题

  RS232相当于串口来说,只是电气的层面不同,在帧格式上都是相同的,即软件编程都是相同的。

RS232存在以下几个问题:

  • 容易烧坏芯片
      接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容,所以需要使用电平转换芯片才能与TTL电路连接
  • 通信速度较低
  • 易产生共模干扰,抗噪声干扰性弱
  • 传输距离较短(15m)

三、RS485协议

3.0 RS485协议介绍

  为了解决RS232的通信易受到干扰,传输距离短问题,又定义了一种新的协议-RS485协议。

  该标准由电信行业协会和电子工业联盟定义;使用该标准的通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号。该标准允许连接多个收发器,即具有多站能力,这样可以利用单一的RS485接口方便地建立起一个设备网络。
  RS485在工业上经常使用到。

在这里插入图片描述

在这里插入图片描述

  • 信号
      RS485标准规定采用差分信号(差分信号是指用两根线的电平差表示0、1)进行数据传输,两线间的电压差为+2v到+6v表示逻辑“1”两线间的电压差为-2v到-6v表示逻辑“0”;
      使用差分信号能有效地减少噪声信号的干扰(因为如果受到干扰,两根线都会受到相同的干扰,所以受到干扰后这两根线的电平差仍然能正确的表示0或1),延长通信距离,RS485的通信距离可以达到1500m;RS485接口信号的电平比RS232降低了,所以不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便地与TTL电路连接
  • 接口
      RS485采用两线制,这种接线方式为总线式拓扑结构,在同一总线上可以同时存在多个节点;
      因为采用两线制,数据的发送和接收都要使用这对差分信号线,发送和接收不能同时进行,所以只能采用半双工的方式工作,编程时也需要加以处理。
      这两根线采用双绞线,这样更加减少干扰。
    在这里插入图片描述

3.1 RS485帧格式

  RS485都是基于串口的,帧格式与串口的相同。与串口和RS232只是电气的特性不同,软件的编程都是差不多的。
  由于采用了差分信号,RS485 只能采用半双工的方式工作,只能同一时间发送数据或者接收数据。在编程48时,需要注意这一点。

3.2 RS485电路连接

  虽然很多处理器中都会集成UART控制器,但处理器产生的信号一般都是TTL信号并不是符合RS485标准的信号,所以一般我们还需要在处理器外部去添加电路将TTL信号转换成差分信号;
  RS485的接口是A对A,B对B。
在这里插入图片描述
在这里插入图片描述

3.3 RS485的优势

  • 安全,不易烧芯片
      接口的信号电平值较低,不易损坏接口电路的芯片,且与TTL电平兼容,可方便地与TTL电路连接
  • 通信速度快
  • 抗噪声干扰性强
    使用了差分信号,双绞线
  • 传输距离较远(1500m)
  • 可实现多节点组网
    在RS485总线上可以挂多个设备。

四、RS485编程。

4.1 收发器SP3485及其电路连接

收发器SP3485

我们开发板采用SP3485作为收发器,该芯片支持3.3V供电,最大传输速度可达10Mbps,支持多达32-个节点,并且有输出短路保护。该芯片的框图如图
在这里插入图片描述

  • 图中A、 B总线接口,用于连接485总线。
  • RO是接收输出端,DI是发送数据收入端,。
  • RE是接收使能信号(低电平有效),DE是发送使能信号(高电平有效)

收发器SP3485的电路连接

在这里插入图片描述

  • 一个引脚决定RS485数据收发
      RS485是半双工的方式,RE、DE可以连接在一起,MCU用一个引脚来控制RS485的收发
      如上图:RS485_RE=1,表示发送数据。RS485_RE=0,表示接收数据。
  • A、B口接偏置电阻,保证空闲电压差大于200mV
      R14和R17是两个偏置电阻,用来保证总线空闲时,AB之间的电压差都会大于200mV,避免总线空闲时压差不定逻辑混乱。
  • 两个485接口连接,A连接A,B连接B。
    在这里插入图片描述

4.2 代码

代码网络上都有,
注意串口波特率得设置相同,不然接收到的数据都是00
在这里插入图片描述

RS485遇到的问题

  1. 首先,有些RS485的电平处理模块区分写模式、读取模式
    故需要在写模式时,控制该RS485电平处理模块进入写模式后,方可把数据发送出去。
  2. 串口发送完数据后,需要等待几毫秒让RS485电平处理模块把最后几位数据发送出去。
  3. stm32中,若串口数据设置了校验位,stm32串口的数据位要加1
    如 串口原本数据位为8bit, 设置使用奇偶校验位后, 串口的数据位需要设置成9bit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值