最近在完成一个modbus网关的项目需要将服务端下发的数据流用485接口和从机进行通讯。
带485接口的物联网网关
作为一枚入行两年的资深小白,开发的第一步当然是打开Demo,拷贝它学习它。
从注释来看样例程序使用的是自动方向控制模式(AUD)。再看一下DataSheet的介绍,我了解到IC的UART控制器本身支持的模式共三种:RS-485 普通多点操作模式(NMM),RS-485 自动地址识别模式(AAD),还有本文将要介绍的自动方向控制模式。
想继续看懂DataSheet中专业的寄存器描述,我们需要先热热身--了解一下什么是485。
485原理图
首先485不是一种软件协议而是一种硬件上的串行通讯标准。
485的电气特性为逻辑"1":+(2v~6v)压差,逻辑"0":-(2v~6v)压差。RS485有两种接线一种是四线制一种是两线制。原因在于485的传输信号为差分信号,即使在某时刻单向传输也需要两个引脚共同作用,想要全双工就得比RS232多两根线用四线制。
除了两个引脚产生差分信号,485通信过程中还需要两个引脚进行流控制。这两个引脚的功能相当于门卫。它们一个负责放行自己人外出,大名CTS(clear to send,发送允许);一个允许别人进入,名号RTS(require to send,发送请求)。CTS是输入信号,CTS检测到有效电平时说明本设备可发送数据出去;RTS为输出信号,RTS输出有效电平来告知其他设备自己可以接受数据。