【原创】串口通讯基本原理(概述简析)


如图一所示,开发板串口引脚和PC机引脚相连,如果PC机没有串口,可能需要使用USB,需要有一块串口转USB的电平芯片。

如图二所示,假如发送1byte的数据(无校验位总位数为10位,如果有校验位总位数为11位),数据位是8位再加上1位开始位,1位停止位,共10位。在T1时刻串口拉低电平,将第一位数据registerData[0]写入txD[0],T2时刻拉高电平。此时T2和T3之间拉高电平期间,PC机通过引脚读取txD[0]的值到PC的rxD[0](这种读写时机的把握,需要PC和开发板之间进行事先约定,暂且理解为本质上为时钟同步).
            开发板和PC机之间时刻的约定需要通过波特率/位数/校验的设置。譬如波特率为51200位/秒,51200/N/1(N表示无校验位,不为N则可能是奇数或偶数校验位),传输1个比特位占用时间为t=1/51200,传输10个比特位占用时间T=10/51200,那么1秒中传输多少个10比特位呢 1/(10/51200)个,即5120个10比特位。但真实的用户数据是8比特一个字节,后来的10位或11位是传输时需要添加的。所以对于用户数据来说,波特率51200位/秒每秒钟能传输5120字节的用户数据。

如图三所示,数据在L1传送都是二进制形式也就是高低电平信号,譬如byte test = 0x26,在8位registerData中的二进制形式为00100110,对应的电平信号就是低低高低低高高低电平。譬如在电平芯片设计上,电压输入低于5V即为低电平,电压输入高于5V即为高电平。

猜你喜欢

转载自blog.csdn.net/m0_37570820/article/details/81706618