串行总线和并行总线
串行通信 : 指的是同一时刻只能收或发一个bit位信息。因此只用1根信号线即可。
并行通信 : 指的是同一时刻可以收或发多个bit位的信息,因此需要多根信号线才行
单工、半双工、全双工
单工 : 要么收,要么发,只能做接收设备或者发送设备。
半双工 : 可以收,可以发,但是不能同时收发。
eg : I2C/IIC USB2.0 485总线
全双工 : 可以在同一时刻既接收,又发送。
eg : UART SPI USB3.0
1.uart总线的通信协议
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。它将要传输的资料在 串行通信]与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上 。
1> 起始位:发送器线数据线上写入0,接收器从数据线上读取数据,表示起始位。
2> 数据位:发送器一个时钟周期线数据线上写入数据,同时接收器从数据线上读取数据,表示发送1个bit位数据完成。
3> 校验位:判断接收的数据时候正确,常用的校验位位奇偶校验。
奇校验:数据位和校验位的1的个数之和为奇数。
eg: 数据位为0x55,校验位自动补1;数据位为0x51, 校验位自动补0.
偶校验:数据位和校验位的1的个数之和为偶数。
eg: 数据位为0x55,校验位自动补0;数据位为0x51, 校验位自动补1.
4> 停止位:一帧数据发送完成。停止位可以用来校准时钟。
为什么要通过停止位校准时钟?
串口是采用的异步的通信,通信双方采用各自独立的时钟源,虽然在时钟的速率上保持一致,但是依然会存在一定的误差,每发送一个bit位的数据,时钟的误差就会累积,因此在发送一帧数据结束之后需要校准时钟。
8N1 : 8位数据位,没有校验位,一个停止位。8N1串口协议是常用的串口的协议。
波特率/比特率 : 每s钟发送数据的bit位数,单位bps. 常用的波特率为115200bps,9600bps.