<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Camera i2c總線協(xié)議介紹

          共 2130字,需瀏覽 5分鐘

           ·

          2021-03-26 08:00

          和你一起終身學(xué)習(xí),這里是程序員Android

          經(jīng)典好文推薦,通過閱讀本文,您將收獲以下知識(shí)點(diǎn):

          一、I2C總線的拓?fù)浣Y(jié)構(gòu)


          I2C總線在物理連接上非常簡(jiǎn)單,分別由SDA(串行數(shù)據(jù)線)和SCL(串行時(shí)鐘線)及上拉電阻組成。通信原理是通過對(duì)SCLSDA線高低電平時(shí)序的控制,來產(chǎn)生I2C總線協(xié)議所需要的信號(hào)進(jìn)行數(shù)據(jù)的傳遞。在總線空閑狀態(tài)時(shí),這兩根線一般被上面所接的上拉電阻拉高,保持著高電平。I2C通信方式為半雙工,只有一根SDA線,同一時(shí)間只可以單向通信,485也為半雙工,SPIUART為雙工。

          二、I2C總線特征

          I2C總線上的每一個(gè)設(shè)備都可以作為主設(shè)備或者從設(shè)備,而且每一個(gè)設(shè)備都會(huì)對(duì)應(yīng)一個(gè)唯一的地址(地址通過物理接地或者拉高,主從設(shè)備之間就通過這個(gè)地址來確定與哪個(gè)器件進(jìn)行通信,在通常的應(yīng)用中,我們把CPU端帶有I2C總線接口的模塊作為主設(shè)備,把掛接在總線上的其他設(shè)備都作為從設(shè)備。

          I2C總線上可掛接的設(shè)備數(shù)量受總線的最大電容400pF限制,如果所掛接的是相同型號(hào)的器件,則還受器件地址位的限制。

          I2C總線數(shù)據(jù)傳輸速率在標(biāo)準(zhǔn)模式下可達(dá)100kbit/s,快速模式下可達(dá)400kbit/s,高速模式下可達(dá)3.4Mbit/s。一般通過I2C總線接口可編程時(shí)鐘來實(shí)現(xiàn)傳輸速率的調(diào)整,同時(shí)也跟所接的上拉電阻的阻值有關(guān)。

          I2C總線上的主設(shè)備與從設(shè)備之間以字節(jié)(8位)為單位進(jìn)行雙向的數(shù)據(jù)傳輸。

          三、I2C總線協(xié)議

          I2C協(xié)議規(guī)定,總線上數(shù)據(jù)的傳輸必須以一個(gè)起始信號(hào)作為開始條件,以一個(gè)結(jié)束信號(hào)作為傳輸?shù)耐V箺l件。起始和結(jié)束信號(hào)總是由主設(shè)備產(chǎn)生(意味著從設(shè)備不可以主動(dòng)通信,所有的通信都是主設(shè)備發(fā)起的,主可以發(fā)出詢問的command,然后等待從設(shè)備的通信)。

          起始和結(jié)束信號(hào)產(chǎn)生條件:總線在空閑狀態(tài)時(shí),SCLSDA都保持著高電平
          當(dāng)SCL為高電平而SDA由高到低的跳變,表示產(chǎn)生一個(gè)起始條件;
          當(dāng)SCL為高而SDA由低到高的跳變,表示產(chǎn)生一個(gè)停止條件。
          在起始條件產(chǎn)生后,總線處于忙狀態(tài),由本次數(shù)據(jù)傳輸?shù)闹鲝脑O(shè)備獨(dú)占,其他I2C器件無法訪問總線;而在停止條件產(chǎn)生后,本次數(shù)據(jù)傳輸?shù)闹鲝脑O(shè)備將釋放總線,總線再次處于空閑狀態(tài)。起始和結(jié)束如圖所示:

          再來看看在這個(gè)過程中數(shù)據(jù)的傳輸是如何進(jìn)行的。前面我們已經(jīng)提到過,數(shù)據(jù)傳輸以字節(jié)為單位(8bit位)。主設(shè)備在SCL線上產(chǎn)生每個(gè)時(shí)鐘脈沖的過程中將在SDA線上傳輸一個(gè)數(shù)據(jù)位,當(dāng)一個(gè)字節(jié)按數(shù)據(jù)位從高位到低位的順序傳輸完后,緊接著從設(shè)備將拉低SDA線,回傳給主設(shè)備一個(gè)應(yīng)答位, 此時(shí)才認(rèn)為一個(gè)字節(jié)真正的被傳輸完成。當(dāng)然,并不是所有的字節(jié)傳輸都必須有一個(gè)應(yīng)答位,比如:當(dāng)從設(shè)備不能再接收主設(shè)備發(fā)送的數(shù)據(jù)時(shí),從設(shè)備將回傳一個(gè) 否定應(yīng)答位 。數(shù)據(jù)傳輸?shù)倪^程如圖所示:

          在前面我們還提到過,I2C總線上的每一個(gè)設(shè)備都對(duì)應(yīng)一個(gè)唯一的地址,主從設(shè)備之間的數(shù)據(jù)傳輸是建立在地址的基礎(chǔ)上,也就是說,主設(shè)備在傳輸有效數(shù)據(jù)之前要先指定從設(shè)備的地址,地址指定的過程和上面數(shù)據(jù)傳輸?shù)倪^程一樣,只不過大多數(shù)從設(shè)備的地址是7位的,然后協(xié)議規(guī)定再給地址添加一個(gè)最低位用來表示接下來數(shù)據(jù)傳輸?shù)姆较颍?code style="box-sizing: border-box;outline: 0px;">0表示主設(shè)備向從設(shè)備寫數(shù)據(jù)1表示主設(shè)備向從設(shè)備讀數(shù)據(jù)。向指定設(shè)備發(fā)送數(shù)據(jù)的格式如圖所示:(每一最小包數(shù)據(jù)由9bit組成,8bit內(nèi)容+1bit ACK, 如果是地址數(shù)據(jù),則8bit包含1bit方向):

          下圖是完整的一幀I2C數(shù)據(jù):

          四、I2C總線操作

          對(duì)I2C總線的操作實(shí)際就是主從設(shè)備之間的讀寫操作。大致可分為以下三種操作情況:

          1、主設(shè)備往從設(shè)備中寫數(shù)據(jù)。數(shù)據(jù)傳輸格式如下:

          2、主設(shè)備從從設(shè)備中讀數(shù)據(jù)。數(shù)據(jù)傳輸格式如下:

          3、主設(shè)備往從設(shè)備中寫數(shù)據(jù),然后重啟起始條件,緊接著從從設(shè)備中讀取數(shù)據(jù);或者是主設(shè)備從從設(shè)備中讀數(shù)據(jù),然后重啟起始條件,緊接著主設(shè)備往從設(shè)備中寫數(shù)據(jù)。數(shù)據(jù)傳輸格式如下:

          第三種操作在單個(gè)主設(shè)備系統(tǒng)中,重復(fù)的開啟起始條件機(jī)制要比用STOP終止傳輸后又再次開啟總線更有效率。

          i2c 不通的原因有兩種

          (1) 一種是device端(sensor device)本身就沒有回ACK,表現(xiàn)為I2C_ACKERR,大多是slave(從設(shè)備)問題,從設(shè)備上電是否符合SPEC等;

          (2) 一種就是問題出在在master端(我們的CPU),表現(xiàn)為I2C_TIMEOUT,每2S timeout一次,出現(xiàn)I2C_TIMEOUT典型之一,在I2C bus沒有上電的情況下去操作I2C,如: camera powerOff >>> Write/Read I2C

          友情推薦:

          Android 開發(fā)干貨集錦

          至此,本篇已結(jié)束。轉(zhuǎn)載網(wǎng)絡(luò)的文章,小編覺得很優(yōu)秀,歡迎點(diǎn)擊閱讀原文,支持原創(chuàng)作者,如有侵權(quán),懇請(qǐng)聯(lián)系小編刪除,歡迎您的建議與指正。同時(shí)期待您的關(guān)注,感謝您的閱讀,謝謝!

          點(diǎn)個(gè)在看,方便您使用時(shí)快速查找!

          瀏覽 63
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  狠狠色狠狠爱 | 中文字幕第777页 | 亲子伦一区二区 | 久久天堂 | [无码破解]AV破解版HD在线观看 |