RS485 和RS232

RS485 和RS232

参考:B站创客学院视频
这两个协议是物理层的协议,依赖于uart。它只是在物理层做了一个改变(增加了TTL和232电平转换的芯片,以达到减少信号干扰,提高传输距离的目的)。

RS232

RS232产生的背景

直接使用串口会有一些问题:
电器接口不统一——串口只规定了时序(起始位和终止位之类),但是并没有规定电器接口。uart一般用得是板子上的(处理器电平)TTL电平,不同的板子的TTL电平是不一样的。有5V,有3.3V,(这个和芯片的生产厂家有关系)。
抗干扰能力比较差——UART一般使用TTL电平表示0和1,TTL信号的抗干扰能力比较差,数据传输的过程中很容易出错。3米5米这样的距离都有可能出错。

232协议

232协议是一个标准,规定采用标准的连接器。
针对UART存在的问题,对接口(9针)和电平做了统一。
当电平在-5V—— -15V ——> 逻辑“1”;
电平在+5V ——+15V ——>逻辑“0”;
这样主要是出于电器上面的考虑。通信能力变强,可以达到15m。全双工,因此对写程序没有任何影响

做项目用得比较多的就是RX TX GND,在电脑上之前被用过,后来被淘汰,现在就是在嵌入式里面用得稍微多一些。

开发板上232接口一般会有TTL转232 的芯片。

RS232存在的问题:

接口的电平信号值比较高,容易损坏接口电路的芯片;
通信速度比较低;
易产生共模干扰;

RS485

和RS232一样,都是基于UART的一个协议。主要解决的问题是,远距离,噪声大的场合下通信问题。(RS485传输距离可以达到1500米)。RS485允许连接多个收发器(因此有主机和从机的概念)。(RS232和串口都是点对点的传送)。
RS485 和RS232

RS485通信协议

采用差分信号(用两根线的电压差来表示高电平和低电平,可以有效减少共模干扰。)由于需要用到两根线去表示高低电平,所以两线RS485变成了半双工(写程序要注意,发送接收不能同时进行)<和IIC写程序机制类似,只是IIC规定好了通信协议,但是RS485没有规定好>,发送和接收不能同时进行。
两线之间的电压 -2V到-6V——>逻辑“0”;
+2V到+6V——>逻辑“1”
接口电压比RS232降低,不容易损坏芯片。而且和TTL电平是兼容的。