一、总线相关的概念
1.1 串口总线相关的概念
总线:连接多个部件的信息传输线,是各部件共享的传输介质。
UART:通用的异步接收器和发送器,串口主要是被用来实现两个设备之间通信的。
1.2 串行总线和并行总线
串行通信:指的是同一时刻只能收或发一个bit位信息。因此只用1根信号线即可。
并行通信:指的是同一时刻可以收或发多个bit位的信息,因此需要多根信号线才行。
在实际的开发中具体使用的是串行还是并行根据实际的需要进行选择。
串行:UART,IIC,SPI,USB,485,CAN
并行:硬盘,内存条,TF卡,SD卡,MIPS LCD,摄像头
1.3 单工,全双工,半双工总线
单工:要么收,要么发,只能做接收设备或者发送设备。
半双工:可以收,可以发,但是不能同时收发。
全双工:可以在同一时刻既接收,又发送。
半双工:IIC,USB 2.0,485,CAN
全双工:UART,SPI,USB3.0
1.4 同步总线和异步总线
同步通信:
一般情况下同步通信指的是通信双方根据同步信号进行通信的方式。
比如通信双方有一个共同的时钟信号,大家根据时钟信号的变化进行通信。
一个时钟周期收发一个bit位的数据。
异步通信:
是指数据传输速度匹配依赖于通信双方有自己独立的系统时钟,大家约定好通信的速度。
异步通信不需要同步信号,但是并不是说通信的过程不同步。
二、串口总线的硬件连接
UART:通用的异步串行全双工总线
三、串口总线的通信协议
通信协议:通信双方约定好通信的固定的格式,比如约定通信的速率,开始通信和结束通信的标志。
学习任何一种总线,首先要学习的是总线的通信的协议。
1> 起始位:发送器给接收器发送数据的开始信号;
2> 数据位:要发送的数据,先发送低地址,再发送高位;
3> 校验位:奇偶校验位
奇校验:数据位和校验位1的个数之和为奇数;
如果发送的数据为0x55,校验位自动补1;如果发送的数据为0x51,校验和自动补0。
偶校验:数据位和校验位1的个数之和为偶数;
如果发送的数据为0x55,校验位自动补0;如果发送的数据为0x51,校验位自动补1。
4> 停止位:一帧数据发送结束,校准时钟。
为什么要校准时钟?
串口采用的是异步总线,各自采用各自独立的时钟源,虽然要求时钟的频率保持一致,但是时钟也会存在一定的误差,再发送数据的过程中误差会进行累积,因此发送一帧数据结束之后需要校准时钟。
5> 波特率/比特率:单位bps,1s中发送数据的bit位数,常用的波特率为115200bps,9600s。
6> 8N1:8位数据位,没有校验位,1个停止位。