串口通信协议
I2C
总线有两根双向数据线,一根是数据线 SDA,一根是时钟先 SCL
空闲: SDL SCL都是高电平
起始信号 SCL 高 SDL由高变低的跳变
停止信号 SCL 高 SDL由低变高的跳变
主设备在SCL线上产生一个时钟脉冲,将SDL线上传输一个数据位,当一个字节数据传输完之后,从设备将拉低SDA线,回传给主设备一个应答位,这就是一个字节的真正传输
系统中的外围设备都有一个七位的从器件地址,通过这个地址来选择从设备
一般操作
1、主机给从机发数据
发送开始条件START和从机地址
发送数据
发送停止条件STOP结束
主机从从机读取数据
发送开始条件START和从机地址
发送要读取的地址
读取数据
发送停止条件STOP结束
开始和结束条件
当SCL高,SDA从高变低,就是START
当 SCL 高,SDA从低变高,就是STOP
SPI
四条线
SCLK :串行时钟,用来同步数据传输,由主机输出
MOSI: 主机输出从机输入数据线,通常先传输MSB
MISO:主机输入从机输出数据线,通常先传输LSB
SS:片选,低电平有效,由主机输出
数据传输
在SPI一个周期内,完成如下操作
1、主机通过MOSI线发生1位数据,从设备通过这根线读取这1位数据
2、从机通过MISO线发送1位数据,从设备通过这根线读取这1位数据
3、时钟使能线,当要和某个从设备通信就将之使能
这是通过移位寄存器实现的,主机和从机各有一个移位寄存器,且二者连接成环
UART
没有时钟线,异步传输
数据包的内容由起始位、主体数据、校验位、停止位组成,通讯双方的数据包格式以及波特率要约定一样
·1、接口
UART仅通过两条TXD和RXD用于数据发和收
数据格式
1、起始位
数据线空闲状态为高电平,要发送数据时将其拉低一个时钟周期表示起始位
2、数据位
使用校验位时,数据位可以有5~8位,如果不使用校验位,数据位可以达9位
3、校验位
奇偶校验,保证校验位和数据位在内所有位中1的个数为偶数
4、停止位
为了表示数据包的结束,发送端需要将信号线从低电平变成高电平,并且保持2个时钟周期
优缺点
1、只使用两条信号线,不需要时钟线,有校验位进行错误检测
2、传输速率比较慢