串口、IIC、SPI 通信协议比较

串口: 

全双工

异步

串行发送

发送端 tx  ,接收端 rx

数据帧: 1位起始位  8位数据位  1位奇偶校验位  1位停止位




IIC:

半双工

串行通信

时钟线SCL ,数据线SDA

数据格式: 起始信号 设备地址  从机响应    ...    停止信号

SCL为低时,改变SDA信号,SCL为高时,保持SDA信号稳定供采集

主机如果需要从从机接收一位数据: SDA口切换为输入模式,SCL先拉底持续一段时间,然后再拉高,持续一段时间,开始读取SDA线的信号,为高则代表1,为低则代表0

在标准模式下,SCL的低电平时间tLOW和高电平时间tHIGH需要满足最小要求,比如tLOW≥4.7μs,tHIGH≥4μs,而快速模式下可能分别为1.3μs和0.6μs

因此有些直接把高低电平都取5us

只要SCL的高/低电平时间满足从设备的最小要求,通信即可正常进行,占空比是否对称并不影响协议本身

下面自己画了一个时序图:

标准模式:≤ ‌100 kHz          传感器、EEPROM

快速模式:≤ ‌400 kHz          显示器、高速传感器





SPI

全双工

串行通信

MISO  MOSI   CS  SCK

环形缓冲区  导致   主机发一位的同时也接一位

主机想从从机接收一位数据,则需要往从机发送一位任意数据即可

时钟极性和时钟相位

边沿切换和采集数据

SPI时钟占空比由主设备配置决定,协议未强制要求50%,仅需满足最小高/低电平时间‌

低速设备‌:几十kHz 至 1MHz(如传感器、EEPROM)

中速设备‌:1MHz 至 10MHz(如显示屏、ADC/DAC)

高速设备‌:10MHz 至 100MHz+(如高速Flash存储器)   如: W25Q128时钟达80M 





FR:徐海涛(hunkxu)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值