串口通信小结

1、电脑上自带的DB9串口都是RS232,如果要与485串口的设备通信,需要用到232转485转换器

2、RS232是单站通讯能力,上位机的一个RS232串口只能接一个RS232设备,要接多个RS232设备就要多个串口。RS485是多站通讯能力,一根总线可以用并联的方式(正极与正极相连,负极与负极相连)接入多个RS485设备。

3、RS232是全双工的,可以同时接收和发送数据,RS485是半双工的,可以接收也可以发送,但是同一时间总线只能处于接收或者发送状态。对于485总线上的多个设备来说,如果都随意的收发数据,必定会造成总线冲突。为了避免总线冲突,485通讯通常采用主从模式,一台设备为主机(通常是上位机),其他设备都是从机,只有主机允许主动发送数据给从机,从机在收到主机的数据后,如果要求响应,才向主机发送数据。因此485总线是依靠通讯协议来避免总线冲突的。

4、485总线上任意一个设备发送的数据,其他设备都会收到,如何让指定的设备处理这条数据而其他设备不做反应呢,同样的,也是依靠通讯协议来解决。首先每个接入485总线的设备都应该设置一个唯一标识符(地址),然后规定所有设备发出的逻辑包都应该指定要送达的目标设备的地址,这样每个设备在解析收到的逻辑包之后,只有目标地址等于自己的地址的逻辑包才处理,不等于自己的地址则直接丢弃。

5、485总线切换接收和发送状态是需要时间的,通常为 1/波特率 秒,也就是说设备在接收到数据后,要等待一点时间再发送数据,因为存在时钟误差,这个等待时间要稍稍大于 1/波特率 秒,如果不等待而立即发送,有可能会失败。


推荐一篇介绍串口通讯基础的好文章:http://www.gkquan.com/article/detail/5138

主要讲了串口通信基础知识、DB9标准端口、RS232与RS485区别、接线方式等内容,图文并茂,简洁实用,属于无废话系列文章


你可能感兴趣的:(网络通信)