RS485 Bus is a serial communication bus with differential signal travel along the bus and sends the information from one point to another point. The maximum length of the bus is around 1000 m. The bus is allowing multi-master or single master, as long as only one point is sending data at a time on half duplex network.
Since RS485 is a multi-drop point bus, a communication protocol is needed between the units. The bus protocol normally starts with the address byte of the receiver, then follow by the data bytes. The address byte will trigger the receiver with the right address to receive the data bytes.
Referencing to our MMS Kit, the onboard NXP SC16IS752 Bridge IC has dual UART engine. One of the UART port is connected to the ADI ADM2486 RS485 iCoupler transceiver IC. This component is configured with RS485 multi-drop topology and it can support up to 50 other ports in the bus system.
The WPG MMS Kit’s RS485 transceivers have to be connected in daisy chain topology. The master will initialize or start the communication by sending a request to the particular client unit. The client unit has to response to the master requests packet. The Receive Address byte has parity bit or the bit-9 is 1, while the consequently data bytes have the parity bit or the bit-9 is 0. This is the byte format for multi-drop UART. There are 11bits in the multi-drop UART format. Below is the message or packet format travel along the bus.
|Rcv Address||- Receiver address.|
|nByte||- number of byte in the packet.|
|Sender Address||- Sender address|
|Command||- refer to certain action to the receiver, such as, request for data.|
|Data bytes||- contain the data bytes that request by the requester.|
|CheckSum||- Checksum for the packet.|
The master also can send a broadcast message to all clients, normally the clients will not respond to the broadcast message. All the clients will instead receive and decode the address byte of which the bit-9 being a 1. If the Receive Address byte is the address assigned for the particular client, the RS485 engine of that client will be activated to continue to receive the data bytes (bit-9 is 0).
The master starts the communication by sending out the “request” to the client. If the client has no data to send, it replies with “no data to send”. The master will then send “request” to another client. If there is data available, it feedback with “has data to send” signal to master. Subsequently the master informs the client with the “ready to receive” message when it is ready to receive data from the client. After the client received the “ready to receive” message from master, it replies with the data payload packet to the host. The master acknowledge with “ACK” for the data payload packet.
Although RS485 communication has been around for a while, it is still seen as an effective way of interconnecting different digital application for network communication. While the higher end of wired communication is replaced by Ethernet, RS485 is still useful as simple solution to industrial applications. We will continue to see extension of life for this technology.