linux下i2c體系結構大致可以分為三層:
1,i2c總線驅動層(硬件實現層),該層通過i2c時序控制數據的傳輸,主要包含i2c適配器數據結構i2c_adapter,i2c適配器的algorithm數據結構。是和i2c控制器直接打交道的一層。
2,i2c核心層,該層次為具體的設備驅動提供註冊註銷方法,通訊方法,方便具體驅動程序的編寫。常用接口如下:
EXPORT_SYMBOL(i2c_add_adapter);
EXPORT_SYMBOL(i2c_del_adapter);
EXPORT_SYMBOL(i2c_del_driver);
EXPORT_SYMBOL(i2c_attach_client);
EXPORT_SYMBOL(i2c_detach_client);
EXPORT_SYMBOL(i2c_transfer);
3,i2c設備驅動層
主要為應用程序提供文件操作接口,例如open,read,write, ioctl等
![Linux下i2c體系結構](http://p2.ttnews.xyz/loading.gif)
更詳細的分層結構如下圖
![Linux下i2c體系結構](http://p2.ttnews.xyz/loading.gif)
閱讀更多 AIOT小學生 的文章