亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

S5PV210-arm-裸機-i2c

發布時間:2020-08-09 10:17:41 來源:網絡 閱讀:558 作者:小溢 欄目:開發技術









I2C協議,是同步的,串行通信方式。有兩個線,一根SCLOCK時鐘線,一根SDA數據線,時鐘是右SOC提供的,SOC和外設用I2C通信時,使用的是一個時鐘,數據線是兩者傳輸信息用的。一般在通信的過程中,分為主設備和從設備,如果主設備要向從設備發送信息時,從設備不可以發送東西。

可以一對一進行I2C通信,也可以一對多進行I2C通信,在一對多I2C通信時,主設備像往常一樣先把SDA,SCL拉高,SCL維持高電平的這一段時間里,SDA產生了一個由高電平到低電平的變化,就成功發送了一個起始位,這時,所有的從設配都開始把自己的耳朵豎起來聽了, 因為所有從設備都是連接在這兩條總線上的。發送完起始位后,主設備開始發送八位數據了,分別在SCL的每一個上升沿讀取SDA數據線的高電平和低電平對應的0和1,這八位數據包括七位的從設備的地址,和一位(0或1)代表讀或者寫。當從設備發現發送過來的地址后,就趕緊把這個地址和自己的地址進行對比(每個從設備都有一個自己固定的地址(在一個電路板上)),如果從設備發現發送過來的地址和自己的地址相符合,就知道這時主設備就要開始和自己進行通信了。如果發現發送過來的地址和自己的地址不符合,那么從設備就不給予理會,因為它知道不是在叫他。當發現地址和自己的地址一樣時,這個設備就開始讀取了第八位,從而知道主設備是要跟它進行寫還是讀,確認是讀或者寫后,接收方要給發送發一個應答信號ACK,來告訴一聲發送放,證明它收到了,它知道了。當接收方看見這個ACK信號后,就知道他已經應答了,回復了,接著就開始發送真正的數據了。也是八位的數據,因為I2C在通信時,一次傳輸的數據是一個字節。接收方接受到這些數據后,也要發送一位應答信號,來告訴發送方我已經接收完畢了。接著發送方就可以發送一個停止位,證明這次通信結束了。停止位是SCL維持在一個高電平的時間段內,SDA由一個低電平到一個高電平的變化。




在兩個設備在進行I2C通信時,主設備發完起始位后,就要開始發送地址,去尋找要進行通信的那個從設備,這個地址一共由八位組成,其中高7位是地址,低一位是R/W,讀或者寫,一般如果主設備要接收從設備的數據時,低一位為1,反之為0.



一般是發送一個起始信號,在發送一個字節的地址信息,包括RW位,一共八位,接著等從設備發送ACK響應,我們在接收一個字節的數據,這八位就是我們要讀的數據。讀完后,我們要給從設備發送一個ACK,告訴它我們讀完了,接著我們在給發送一個停止位,或者不發送停止位,繼續讀。




代碼的框架:

整個代碼的框架包括兩部分,一部分是I2C的代碼,稱為物理層,就負責I2C的時序,起始位,發送數據,接受數據應答的時序等。

另一份部分是G - secsor傳感器的代碼,這部分代碼稱為應用層,協議層,傳輸層,負責控制自己內部的寄存器,如果是通過總線給自己寫數據的話,也就是說如果是SOC控制I2C的物理層給Gsensor的數據的話,就是在Gsensor協議層去操作,去調用I2C的發送數據的函數,將數據寫入到自己的相應的寄存器中。

如果是SOC控制Gsensor通過I2C總線讀取數據到SOC的話,就是在Gsensor的協議層代碼中通過調用I2C的接收

函數,將寄存器中的數據通過I2C的總線傳輸到SOC中去。

所以整個代碼框架是分兩個部分的,一部分是I2C的代碼叫做物理層,一部分是Gsensor的代碼,叫做協議層,或者應用層,或者傳輸層。

在協議層寫代碼時,只要知道自己的工作流程即可,不用去關心I2C物理層的代碼是怎么實現的。












向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石泉县| 甘泉县| 沙河市| 泽库县| 林周县| 富顺县| 蓬安县| 福安市| 措勤县| 沂南县| 房产| 武夷山市| 耒阳市| 嵊泗县| 桑日县| 嘉善县| 邵阳市| 甘谷县| 新河县| 偃师市| 班戈县| 西丰县| 徐州市| 柳河县| 鄂托克前旗| 高邑县| 永济市| 曲松县| 淅川县| 台安县| 景宁| 黑水县| 钟山县| 呈贡县| 恩施市| 沙坪坝区| 蒙城县| 延安市| 衡阳县| 新宾| 田阳县|