本文通过分析I2C和SCCB协议内容,说明为何I2C可以用于驱动SCCB设备,并给出了Zephyr下的实现代码。
本文所介绍的I2C和SCCB协议内容只是为了说明为何I2C可以驱动SCCB设备,这些内容只是其原本协议的一小部分,更多详细的内容请参考文后链接。
I2C和SCCB
由于SCCB在数据传输上几乎和I2C一致,大多数情况下大家都将SCCB当作I2C来使用,其实质上二者还是有一定区别的。
I2C
I2C是飞利浦推出的一种总线协议,最早是在使用在电视上的设备,后面被推广到其它设备。I2C总线由SDA和SCL两条线组成,SDA传输数据信号,SCL传输时钟信号,数据在Master和Salve进行双向同步传输。
I2C的基本信号
起始位:Master发送,开始一次传输,SCL高,SDA从高到底
结束位:Master发送,结束一次传输,SCL高,SDA从低到高
数据位:Master/Salve发送,有效数据bit,SCL高时,SDA的数据有效