UART,通用异步接受、发送设置,是并行输入,串行输入的芯片,连接PC与串口设备。需要设置波特率,数据位,停止位,校验位,流控设置。
RS232是异步串口,全双工通信,一发一收。比I2C和SPI两种同步串口要复杂,一般由波特率产生器(产生的波特率是传输的16倍)、串口接收器、串口发送器组成,硬件上两根线,TX和RX,分别负责发送和接收。
RS422和RS485是半双工串行通信,差分信号。两根线,A和B(DATA+、DATA-),根据AB线上的电压差表示0和1。可挂载的设备和相应的芯片等硬件设备有关。
485有两种协议,自由协议和MODBUS协议,其中MODBUS协议又有两个,MODBUS RTU和MODBUS ASCII,其中MODBUS RTU是现在普遍使用的,MODBUS ASCII已经很少使用了。自由协议是用户自己定义的协议,没有主从机制,总线上的每个设备都是主机,也都是从机。一个设备发送消息,每个设备都会收到,不能指定发送。MODBUS RTU协议是规定好的协议,用户需要严格按照该协议收发数据,有主从机制,一条总线上只有一个主机,其余的都是从机,总线上的所有设备都有自己唯一的标识地址,通过该地址来确认是给谁发和谁接受,虽然主机发送消息时,每个从机都会收到,但是标识地址会区分是不是自己的消息,如果不是,不处理,如果是,设备会进行相应的处理,具体里面协议怎么做的没有深究,和CAN的仲裁协议类似。MODBUS RTU协议一条总线上最多可以搭载的节点数量和使用的RS485转换器芯片、电缆品质等有关,一般都是32个,