I2C和SPI是MCU和板载芯片之间最常用的通讯方式,现在先介绍下I2C总线。I2C的基本原理也很简单,只需要两根线(时钟线SCL和信号线SDA)即可实现挂载在I2C总线上设备之间的相互通讯。I2C协议并未规定I2C总线上哪个是主机?哪个是从机?,即每个I2C节点设备都可以做主机发号施令,也可以作为从机服从指挥。但是一般情况下,我们习惯将MCU作为主机,将I2C总线上挂载的其它芯片当做从机。
RT-Thread中引入了I2C设备的设备驱动框架,该驱动框架提供了基于芯片GPIO进行模拟的和基于芯片片内I2C外设实现的两种底层硬件接口。因为不同系列芯片的片内I2C外设使用会有所差异,因此常用GPIO模拟的方式实现I2C通讯。
RT-Thread
提供了一套
I/O
设备管理框架,它把
I/O
设备分成了三层进行处理:应用层、I/O
设备管理层、底层驱动。
I/O
设备管理框架给上层应用提供了统一的设备操作接口