UART devices and serial debugging are used almost ubiquitously in embedded development. We wrote a guide (https://blog.conduitlabs.com/uart-serial-debugging/) to demystify both terms and learn how to use them:
First of all, thank you for the beautiful introductory write-up on UART Port. Next, my observation is as follows:
We call the UART Protocol as an asynchronous; is it so because there is no synchronization clock or because the data frame may arrive at any time whose timing is not known to the receiver -- the asynchronous arrival?
Asynchronous because there is no incoming clock associated with it to tell the receiver when the data is valid. The receiver waits until the middle of a bit to capture it and decide if it is high or low. The receiver does something like 16 clocks per bit based on the selected data rate, so when it sees the start bit, it counts 8 clocks to get to the middle of the start bit, and then every 16 after that it captures a high or a low for the next bit.