数字系统设计复习笔记:第十一篇
I2C通信
我觉得不是重点。看一遍就行。
什么是I2C
I2C(Inter Integrated Circuit),双向二线制串行总线协议。它只要两根线:SCL、SDA。显然,它的优点就是节约资源:只要两个IO口就行了。此外,它的协议也很轻量,便于移植。
缺点也很明显:传输速度较慢——至少比SPI慢得多。
和SPI相比呢?
I2C:
- 优点:
- 简单性:I2C总线结构相对简单,使用两根信号线(SDA和SCL)进行通信。
- 多主设备:I2C支持多主设备,允许多个设备在同一总线上通信。
- 地址方案:每个I2C设备都有唯一的七位设备地址,便于识别。
- 适合短距离通信:I2C在短距离通信和连接多个设备时表现良好。
- 劣势:
- 速度较慢:最快的I2C速度仅为1 Mbps,通常为400 Kbps。
- 不适合长距离传输:I2C不适合长距离传输,因为信号衰减和干扰可能成为问题。
SPI:
- 优点:
- 高速传输:SPI通信速度快,适用于高速数据传输场景。
- 灵活性:SPI通信相对灵活,适用于不同类型的设备。
- 稳定性:SPI通信稳定,对时序要求较高。
- 劣势:
- 复杂性:SPI通信需要建立连接,协议较复杂。
- 占用引脚多:SPI需要多根引脚,相对于I2C占用更多CPU端口。
- 不适合长距离传输:与I2C一样,SPI也不适合长距离传输。
题外话
我玩的墨水屏全都是SPI通讯协议的,但是OLED屏幕却是I2C。可能因为墨水屏更复杂点:LUT、刷新波形啥的。
协议实现
只有在总线处于“非忙”状态时,数据传输才能开始。在数据传输期间,只要SCL时钟线为高电平,数据线都必须保持稳定,否则数据线上的任何变化都被当作“启动”或“停止”信号
- SCL高电平,SDA下降沿:启动传输
- SCL高电平,SDA上升沿:关闭传输
EEPROM
很难想得到这东西究竟该怎么考。我倾向于不考,所以根本不复习。考RISC-V的概率都比这玩意大。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Esing的小站!
评论
WalineGitalk