SPI,UART,I2C

SPI(串行外围接口):高速,全双工,同步串行口
管脚:4条线,时钟线,数据输入线(主入从出),数据输出线(主出从入),从设备选择线
SPI的通信协议
:实际上每次通信时主从设备进行数据交换,也就时说发送一个数据必然会接受到一个数据
SPI4种工作方式分别是CPOL=0(极性),CPHA=0(相位)
;CPOL=0;CPHA=1; CPOL=1,CPHA=1;CPOL=1;CPHA=0;

CPOL=0,CHPA=0:空闲状态为低电平,上升沿捕捉数据,当下一个下降沿时下一位数据上线
CPOL=1,CHPA=0:空闲状态为高电平,下降沿捕捉数据,当下一个上升沿时下一位数据上线
CPOL=0,CHPA=1:空闲状态为低电平,上升沿数据上线,当下一个下降沿时捕捉数据
CPOL=1,CHPA=1:空闲状态为高电平,下降沿数据上线,当下一个上升沿时下一位数据上线
因为CHPA=1时候数据线上的MSB位要和时钟线的第一个边沿同步,当CHPA=0时在时钟第一个跳变边沿采样,为1时在时钟第二个跳变边沿采样
数据传输顺序高位在前低位在后

I2C:串行,同步,半双工,低速率,非差分
管脚:2条线:时钟线,数据线
通信方式:以多个msg形式进行数据的传输:每个msg包含:从机地址的二进制地址帧(用来选择 从机)+数据帧(一个或多个)+开始/停止条件+读/写位+ACK/NACK(判断是否接受到数据)
启动条件:时钟线处于高电平,数据线从高电平跳变到低电平,
停止条件:时钟线处于高电平,数据线从低电平跳变到高电平
地址帧:每个从属设备唯一的7位或10位序列用于主从设备间识别
ACK/NACK:每个消息帧后都带有一个ACK/NACK,用来判断是否收到数据,接受成功地址帧或
数据帧返回ACK,失败返回NACK
读写位:地址帧的最后一位是读/写位
数据帧:每个数据帧都是一个字节(8位)每个数据帧后都有一个ACK/NACK,当主机检测到从机的ACK后就可以开始发送第一个数据帧,主机可以向从机发送停止条件来终止通信
时钟线的用处:时钟线为低电平时候,把数据传输到数据线上,时钟线高电平时将数据从数据线读出来并且存储
数据线:默认条件是高电平(因为有个上拉电阻),数据接收方正确接收数据后,数据接收方会将数据线拉低,表示正确应答。(注意正确应答)
数据传输顺序大端传输

UART:异步 全双工 串口
通信协议
一帧数据的构成起始位+数据位+校验位+停止位
数据传输顺序先传送数据低位
传输数据大小
空闲位:空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示线路处于空闲状态,必须由高电平填充。
起始位:起始位必须是持续一个bit时间的逻辑0电平,标志一个字符的开始,开始进行数据传输时发送方要先发出一个低电平’0’来表示传输字符的开始。因为空闲位一直是高电平所以开始第一次通讯时先发送一个明显区别于空闲状态的信号即为低电平。
数据位:起始位之后就是要传输的数据,数据可以是5,6,7,8,9位,构成一个字符,一般都是8位。先发送最低位最后发送最高位。通常ASCII码是7位(0-127),扩展ASCII是8位(0-255);
奇偶校验位:仅占一位,数据位传送完成后,要进行奇偶校验,并不是必须的,如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位,串口校验分几种方式:
1.无校验(no parity)
2.奇校验(odd parity):如果数据位中’1’的数目是偶数,则校验位为’1’,如果’1’的数目是奇数,校验位为’0’。比如一个 8 位长的有效数据为:01101001,此时总共有 4 个“1”,为达到奇校验效果,校验位为“1”,最后传输的数据将是 8 位的有效数据加上 1 位的校验位总共 9 位
3.偶校验(even parity):如果数据为中’1’的数目是偶数,则校验位为’0’,如果为奇数,校验位为’1’。比如数据帧: 11001010,此时数据帧“1”的个数为 4 个,所以偶校验位为“0”。
4.mark parity(1校验):校验位始终为1
5.space parity(0校验):校验位始终为0

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值