目录
一、UART总线通信协议
起始位:发送数据的开始信号,由发送器产生;
数据位:要发送的数据,先发送低位,再发送高位;
校验位:校准数据的,常用奇偶校验位;
奇校验:数据位和校验位中,1的个数之和为奇数;
eg : 假设数据位为0x55, 校验位自动补1;假设数据位为0x51, 校验位自动补0;
偶检验:数据位和校验位中,1的个数之和为偶数;
eg : 假设数据位为0x55, 校验位自动补0;假设数据位为0x51, 校验位自动补1;
停止位:一帧数据发送结束,最重要的功能是用来校准时钟的。
由于串口采用的是异步通信,通信的双方各自采用各自独立的时钟源,虽然要求时钟的频率保持一致,
但是也会存在一定的误差,每发送一个bit位数据之后,误差就会进行累积,因此发送一帧数据完成之后,
需要通过停止位校准时钟。
常用的串口协议为:8N1(8位数据位,没有校验位,1个停止位);
波特率(比特率):表示串口通信的数据的传输速率,每s钟传输数据的bit位数,单位为bps。
常用的波特率为:115200bps或者9600bps
二、IIC总线时序图
2.1IIC总线时序图
2.1.1起始信号和终止信号时序图
1> SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号
2> SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号
3> 起始和终止信号都是由主机发出,起始信号产生后,总线就处于占用的态;终止信号产生后,总线就处于空闲态。
2.2数据传输时序图
1> I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
2> 在SCL为低电平期间,发送器可以向数据线上写入输入,因此数据线上的数据允许发生变化;
3> 在SCL为高电平期间,接收器从数据线上读取数据,因此必须保持数据线上的数据保持稳定。
2.3字节传输和应答信号
1> 每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。
2> 在第9个时钟周期的低电平期间,接收器向数据线上写入数据,在第9个时钟周期的高电平期间,发送器从数据线上读取数据,如果读到的是高电平,则表示非应答信号;如果读到的是低电平,则表示应答信号。
3> 应答信号是由接收器产生的。
2.4I2C的寻址
1> I2C总线上传送的数据信号是广义的,既包括地址信号,又包括真正的数据信号。
2> 主机在起始信号后必须传送一个从机的地址(7位),第8位是数据的传送方向位(R/W),用“0”表示主机发送数据(W),“1”表示主机接收数据(R)。总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己被主机寻址,根据R/W位将自己定为发送器或接收器。
2.2IIC总线通信协议
2.2.1主机给从机发生一个字节的通信协议
”8位数据“ 被写到 “寄存器的地址” 中。
2.2.2主机给从机发生连续的多个字节的通信协议
第1个 ”8位数据“ 被写到 “寄存器的地址” 中。
第2个 ”8位数据“ 被写到 “寄存器的地址+1” 中。
第3个 ”8位数据“ 被写到 “寄存器的地址+2” 中。
..............(地址会自动增加1)
2.2.3主机从从机读一个字节的通信协议
从机将 “寄存器地址”中的数据发送给主机
从机只能被动的进行数据的收发,如果从机给主机发送一个字节数据之后,如果主机给从机发送应答信号之后,则从机会认为主机还想接收下一个字节的数据,因此从机会将下一个字节的数据再次发送给主机;如果从机收到的是非应答信号,则从机不会发送下一个字节的数据给主机。
2.2.4主机从从机读连续的多个字节的通信协议
第一次, 从机将 “寄存器地址”中的数据发送给主机;
第二次, 从机将 “寄存器地址+1”中的数据发送给主机;
..........
三、SPI总线通信协议
3.1SPI基本的通信协议
设备选择线/片选线 : CS SS NCS NSS
时钟线 : SCK SCL SCLK
串行输出数据线 : MOSI
串行输入数据线 : MISO
M : Master I : Input S : Slave O : Output
MOSI:主器件数据输出,从器件数据输入
MISO:主器件数据输入,从器件数据输出
SCLK :时钟信号,由主器件产生
/SS:从器件使能信号,由主器件控制(片选)
1> 起始信号: NSS信号线由高变低,是SPI通讯的起始信号
2> 结束信号:NSS信号线由低变高,是SPI通讯的停止信号
3> 数据传输:SPI使用MOSI及MISO信号线来传输数据,使用SCK信号线进行数据同步。
MOSI及MISO数据线在SCK的每个时钟周期传输一位数据,且数据输入输出是同时进行的。
SPI每次数据传输可以 8 位或 16 位为单位,每次传输的单位数不受限制。
SPI总线发送的数据既有地址信息,命令信息和数据相关的信息。
3.2SPI共有4种通信模式
在SPI操作中,最重要的两项设置就是时钟极性(CPOL)和时钟相位(CPHA)这两项即是主从设备间数据采样的约定方式。
3.2.1时钟极性CPOL : 设置时钟空闲时的电平的状态
当CPOL = 0 ,SCK引脚在空闲状态保持低电平;
当CPOL = 1 ,SCK引脚在空闲状态保持高电平。
3.2.2时钟相位CPHA :设置数据采样时的时钟边沿
当 CPHA=0 时,MOSI或 MISO 数据线上的信号将会在 SCK时钟线的奇数边沿被采样
当 CPHA=1时, MOSI或 MISO 数据线上的信号将会在 SCK时钟线的偶数边沿被采样