在理解RS485和RS232之前,必须要明白串口通讯,RS485和RS232本质上就是串口通讯
串口通讯(UART)
UART(Universal Asynchronous Receiver/Transmitter),通用异步收发器。
异步和同步的区别:
同步是指发送方发出数据后,需要等待接收方接收到数据,然后发回接收响应后,再继续发送数据,是阻塞的;
异步是指发送方发出数据后,不需要等待接收方的响应,直接继续发送数据,是非阻塞的。
像RS485,RS232这些通信方式就是异步的,而像I2C,SPI就属于同步的。
两个芯片之间的串口通讯只需要使用三根线:TX RX GND。
一帧的串口数据是由1个起始位8个数据位1个停止位组成
波特率:波特率是指在一秒内串口发送多少个高低电平,如常用的115200就是在1s内串口发送115200个高低电平,一个高低电平就是一个数据位,串口的高电平为5v到2.4v,低电平为0到0.4v,所以使用串口通信时很容易受到干扰,其通讯距离必须保持在很短的范围内,那么为了解决这个问题,就出现了RS232和RS485
RS232
RS232采用全双工通信,也是使用三根线TX RX GND即可实现通信。
RS232通信的实现依靠一个电平转换芯片,如MX232,单片机给MX232发送5v,MX232输出-12v,单片机给MX232发送0v,MX232输出12v,这样压差就达到了24v,而且当mx232接收到3v到12v的电压会向单片机发送0v,接收到-12v到-3v会向单片机发送5v,大大提高了数据通信的可靠性。RS232的传输距离可达15米,但当面对更远距离的传输时,RS232就会显得力不从心了,这时RS485就诞生了
RS485
RS485是半双工通信,它的实现也需要借助一个电平转换芯片,如SP3485。
当单片机向SP3485发送一个电平信号,SP3485会将这个信号转换为一个差分信号,SP3485接收到一个差分信号后也能将该差分信号转换为TTL电平信号,所以使用RS485通讯只需要使用两根线。这种通信方式的抗干扰能力极强,当受到干扰时,两根线的电压差值基本不变,其传输距离可达1200米。
由于RS485是半双工通讯,同一时间只能由一方发送数据一方接收数据,所以使用RS485可以实现一主多从的组网通讯,而串口通信和RS232只能点对点通信。