i2c學習總結

2021-10-23 19:03:06 字數 2280 閱讀 5944

i2c匯流排驅動框架詳解

i2c的驅動主要分為三個部分:裝置驅動層,核心驅動層和匯流排驅動層

裝置驅動層(i2c-dev.c)是使用者的介面,主要作用就是定義資料傳輸的內容,但是不知道傳輸資料的機制

核心區動層(i2c-core.c)是開發程式設計的介面,i2c核心提供了i2c匯流排驅動(介面卡)和裝置驅動的註冊、登出方法,i2c通訊方法(」algorithm」)上層的,與具體硬體無關的**以及探測裝置檢測裝置位址的上層**等。

匯流排驅動層(i2c-***.c), 他的主要作用就是初始化硬體,同時定義資料傳輸機制

1、三大組成部分

(1)i2c核心(i2c-core):i2c核心提供了i2c匯流排驅動(介面卡)和裝置驅動的註冊、登出方法,i2c通訊方法(」algorithm」)上層的,與具體硬體無關的**以及探測裝置檢測裝置位址的上層**等。。

(2)i2c匯流排驅動(i2cadapter):i2c匯流排驅動是i2c介面卡的軟體實現,提供i2c介面卡與從裝置間完成資料通訊的能力。i2c匯流排驅動由i2c_adapter和i2c_algorithm來描述i2c介面卡是soc中內建i2c控制器的軟體抽象,可以理解為他所代表的是乙個i2c主機。

(3)i2c裝置驅動(i2cclient driver):包括兩部分:裝置的註冊和裝置驅動的註冊

2、i2c子系統的主要目標是:讓驅動開發者可以在核心中方便的新增自己的i2c裝置的驅動程式,讓核心統一管理i2c裝置,從而可以更容易的在linux下驅動自己的i2c介面硬體。

=相關結構體

**********=

struct i2c_adapter是用來描述乙個i2c介面卡,在soc中的指的就是內部外設i2c控制器,當向i2c核心層註冊乙個i2c介面卡時就需要提供這樣的乙個結構體變數。

1 struct i2c_adapter
struct i2c_algorithm結構體代表的是介面卡的通訊演算法,在構建i2c_adapter結構體變數的時候會去填充這個元素。

1 struct i2c_algorithm ;
1 struct i2c_client ;
1 struct i2c_driver ;
1 struct i2c_board_info ;

12 13

14 15 struct i2c_devinfo ;

呼叫框架:

i2c_add_driver()

└── i2c_register_driver

└── driver_register

├── driver_find

│ ├── kset_find_obj

│ ├── kobject_put

│ └── to_driver

└── bus_add_driver

└── driver_attach

└── bus_for_each_dev

├── next_device

└── __driver_attach

└─ driver_match_device

└── i2c_device_match

├── acpi_driver_match_device

├── i2c_match_id

└── of_driver_match_device

└── of_match_device

└── of_match_node

└── __of_match_node

└── __of_device_is_compatible

i2c_add_driver()

└── i2c_register_driver

└── driver_register

├── driver_find

│ ├── kset_find_obj

│ ├── kobject_put

│ └── to_driver

└── bus_add_driver

└── driver_attach

└── bus_for_each_dev

├── next_device

└── __driver_attach

├── driver_match_device

└── driver_probe_device

└── really_probe

└── i2c_device_probe

└── i2c_match_id

I2C學習記錄

i2c inter integrated circuit 匯流排是由philips公司開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置。是微電子通訊控制領域廣泛採用的一種匯流排標準。通過序列資料 sda 線和序列時鐘 scl 線在連線到匯流排的器件間傳遞資訊。通過序列資料 sda 線和序列時鐘 ...

I2C匯流排學習

i2c的時序圖,如下所示 匯流排應當時序圖 i2c時序要求 空閒狀態 scl和sda都是處於高電平。起始訊號 在scl時鐘線為高電平期間,sda輸出下降沿。停止訊號 在scl時鐘線為高電平期間,sda輸出上公升沿。應答訊號 傳送器每傳送乙個位元組,就在時鐘scl第9個脈衝釋放資料線,由接收器反饋乙個...

i2c學習筆記

1.1 i2c匯流排知識 1.1.1 i2c匯流排物理拓撲結構 i2c 匯流排在物理連線上非常簡單,分別由sda 序列資料線 和scl 序列時鐘線 及上拉電阻組成。通訊原理是通過對scl和sda線高低電平時序的控制,來產生i2c匯流排協議所需要的訊號進行資料的傳遞。在匯流排空閒狀態時,這兩根線一般被...