如上图是串口通讯采样的时序, 根据串口的采样特点,不难看出,在最后一个位采样时,允许极限偏移为50%,假如用1个起始位+9个数据位+2个停止位来计算,最多12位,那么,每位偏差最高为:

±50% / 12 = ±4.16%-----(1)

串口通信,要涉及到两端,当一端为0误差,另一端最大误差可到4.16%,如果两端误差相同,如式(2),每端的最大误差就只能是2.08%。

±4.16% / 2 = ±2.08%-----(2)

因此,对于串口通信来说,我们认为,当时钟误差小于±2%时,通信是比较可靠的。

对于客户实际的应用系统,考虑到UART是一个异步通讯,通讯的稳定性取决于双方的时钟精度,不是说只有一方的精度满足要求,系统就能正常工作,所以需要系统去考虑。

总结:

1. 串口稳定通讯和双方的时钟精度有关,总误差不能超过4%;

2. 串口稳定通讯和波特率无关;

3. 串口稳定通讯和数据长度有关;

4. 串口稳定通讯和通讯的数据长度有关;