cci的名字叫, camera control interface, 他由两部分组成,一是i2c ,而另一个部分是 gpio。也就是说,cci 包含i2c。一般情况下,我们只是用到了i2c 部分,没有用到gpio 部分。

cci 在硬件上设计更加抽象,他使用命令的方式操作i2c,或 gpio, 而不是同常的寄存器方式。 这样的好处是对于一个硬件,我们使用的接口更加集中,硬件模块隐藏了具体的硬件细节。

比如cci, 他就有i2c的命令队列,我们只是需要把相关的命令写到命令队列中就可了。 如果写一个终止命令,复位命令, 写命令, 然后开始执行, 这样的硬件实现了软件

做的事情,驱动开发更加容易,也更加稳定,效率也更高。

cci 还有一个队列是gpio的队列,往这个队列中写cmd,可以控制gpio的配置。

可以想一下,这样的硬件模块,也更容易集成。或许是个趋势。