What’s the serial communication in Rust?
- It’s a communication mechanism that takes place using the asynchronous protocol.
- Two devices exchange data serially in this communication 1 bit at a time
- These 2 devices exchange data using 2 shared data lines and 1 common ground.
- The protocol is asynchronous because none of the shared lines carries a clock.
- But both (transmitter and receiver) have to agree prior to the communication that how fast data will be sent/received.
- This protocol allows duplex communication which means both can send data simultaneously.
Why we need this protocol? What’s the use-case?
We are using this protocol to exchange data between MCU and host computers for example our laptops.
Unlike ITM protocol, this protocol lets us send data from laptop to MCU
Now a question arises. How fast we may send data using this protocol?
- This protocol works with frames
- Each frame has 1 start bit, 1-2 stop bits, and 5-9 data bits
- Speed of protocol is known as baud rate and it’s quoted in baud per seconds (bps)
- Few baud rate examples are: 9600, 19200, 38400, 57600, and 115200 bps
- To actually answering the question
- With a common configuration of 1-start bit, 8-data bits, 1-stop bit, and a baud rate of 115200 bps
- Theoretically, we can send 11,520 frames per second
- Data rates will probably be lower due to processing time on the slower side of communication (the MCU) practically.
Now the problem is our laptops don’t support serial communication protocol!
- It means we can’t connect our laptop directly to the MCU
- Here is the serial module come in the picture
- Our module will sit between the 2 devices and expose a serial interface to the MCU and a USB interface to the laptop
- This is how both MCU and laptop will see each other as a serial device.
- We use Serial communication for all long-haul communication.
- All-out computer networks that the cost of cable and synchronization difficulties makes similar communication irrational.
- Serial computer buses are fetching additional common even at shorter distances.
- Technologies have begun to outweigh the parallel bus’s advantage of simplicity due to healthier signal reliability and transmission speeds in newer serial.
- A lot of communication systems were usually intended to connect two integrated circuits on the same printed circuit board.
- That board is connected by signal traces on that board rather than external cables.
- Combined circuits are more expensive when they have more pins.
- Many ICs use a serial bus to transfer data when speed is not important to reduce the number of pins in a package.
- A lot of serial communication systems were first designed to transfer data over comparatively large distances through some sort of data cable.
- Rather than in parallel, almost all long-distance communication transmits data one bit at a time as it decreases the cost of the cable.
- The cables that carry this data other than the serial cable and the computer ports they plug into are typically mentioned with an extra specific name to reduce confusion.
- Keyboard and mouse cables and ports are nearly always serial.