文章目录
前言
本文档是对B站视频-5种嵌入式总线协议的笔记记录,若文档内容涉及侵权请私聊我。
1、RS232、RS485和UART的关系
RS232和RS485并非如串行端口(Serial Port)或I2C(Inter-Integrated Circuit)那样,构成独立的通信协议。实际上,它们属于电气层面的协议,主要在物理层和电气层进行规范。尽管RS232和RS485协议依赖于串行通信接口,但在编程和实现过程中,主要使用的仍是UART(通用异步收发传输器)技术。然而,这两种协议在电气层面进行了特殊处理,从而显著增强了信号的抗干扰能力,延长了传输距离,并提升了数据传输速率。
2、UART存在的问题
2.1 电气接口不统一
电气特性:是指电子设备在电气层面的性能和行为,它通常包含两个主要方面:一是电气连接的物理标准,例如连接器和插头的设计;二是电气信号的规范,包括信号的发送时序和电平标准。
举例:以家用电器为例,其配备的插头和插座必须符合国家标准才能确保安全和兼容性。对于串行通信接口(UART)而言,其主要规定了数据传输的信号时序和逻辑电平,但并未对不同设备间的电气连接标准做出具体规定。这导致在不同设备通过UART进行通信时,其连接过程可能较为复杂和不便。
此外,串行通信接口仅定义了高电平代表逻辑“1”,低电平代表逻辑“0”,但并未明确指出具体的电压值。这意味着,尽管信号的逻辑状态得到了定义,但其具体的电气参数,如高电平和低电平的确切电压水平,并未在标准中得到明确。这种电气特性的不确定性可能会对设备间的兼容性和通信的可靠性造成影响。
在实际应用中,例如涉及到51系列单片机与STM32系列单片机之间的通信问题,必须明确两者对于高低电平的定义标准。通常情况下,这些单片机会采用与其中央处理单元(CPU)兼容的电平标准。具体来说,51系列单片机可能将高电平定义为5V,而低电平定义为0V。相对地,STM32系列单片机则可能将高电平定义为3.3V,低电平同样定义为0V。
因此,需要强调的是,不同的处理器往往采用各自特有的电平标准。这种电平标准通常被称为TTL电平。在设计和实现跨单片机通信系统时,了解和正确处理这些电平差异是至关重要的,以确保系统能够稳定可靠地运行。
很少直接使用串行通信接口(UART)进行通信的两个原因:
(1)电平标准不一致:不同处理器可能采用不同的电平标准,导致它们之间无法直接通过UART通信。
(2)硬件接口不一致:不同处理器的UART硬件接口可能存在差异,使得直接连接不可行。
2.2 抗干扰能力差、通信距离极短…
3、RS232协议
3.1 RS232协议、接口及信号
3.2 电平转换
3.3 RS232存在的问题
4、RS485协议
4.1 RS485协议、接口及信号
以单片机为例,其电源系统包含一个接地(GND)参考点。在此基础上,高电平信号,如3.3V,是相对于接地参考点定义的。无论是串行通信接口(UART)还是RS-232标准,均采用单线传输机制,通过该线上的电压高低状态来表示二进制数据0和1。尽管RS-232和UART在电平标准上存在差异——UART通常采用TTL电平,而RS-232则使用±15V的电平——但它们的基本原理是相同的,即利用单根传输线上的电压变化来编码信息。
然而,这种基于电压变化的信号传输方式容易受到共模干扰的影响。共模干扰是指影响信号线上所有导体的相同噪声电压,这可能会对信号的完整性和准确性造成负面影响。因此,在设计和实现通信系统时,必须采取适当的措施来减少共模干扰的影响,确保信号传输的可靠性和稳定性。
对差分的理解:差分信号传输是一种采用两根导线来表示单一信号的技术。在这种传输方式中,不再使用单根信号线来传输二进制数据0和1,而是通过两根导线——通常标记为L(Low,低电平)和H(High,高电平)——来描述信号状态。
假设在单片机系统中需要发送二进制数据,差分信号传输机制将利用L线和H线的电压差来表示数据。例如,当H线的电压为5V而L线的电压为0V时,两者之间的电压差(V(H) - V(L) = 5V)落在2V至6V的区间内,这表示二进制数据1。相反,如果H线的电压降至0V而L线的电压升至5V,那么电压差(V(H) - V(L) = -5V)则位于-2V至-6V的区间,代表二进制数据0。
通过比较两根信号线上的电压差,差分信号传输能够有效地区分并表示二进制数据0和1。这种传输方式因其抗干扰能力强和信号完整性高而广泛应用于各种通信系统中。
4.2 电平转换
4.3 RS485的优势
一些注意点:
(1)RS485传输速度较快通常得益于较强的抗干扰能力,这使得系统能够采用更高的波特率进行数据传输。
(2)RS232接口在实现网络化连接方面存在困难,这是由于其电气特性所限,而RS-485接口由于采用差分信号传输,更适合构建网络。这种差异主要是由两者在电气设计上的本质区别造成的。
(3)对于RS485接口,尽管编程基础仍然是串行通信,但需注意其半双工通信特性,即发送与接收操作不能同时进行。
(4)RS485通常采用主从架构,要求正确地将A线与A线、B线与B线相连,而RS-232则直接将接收线连接到发送线,反之亦然。
(5)RS-232和RS-485这类接口一般被称为物理层协议,因为它们规定了电气信号的传输方式。
(6)RS485四线是RS422。
(7)RS-485的主从机制主要通过软件编程来实现,参考如I2C协议的通信管理方式,可以确保主机对从机的有效控制。