0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

I2C基本的傳輸方式知識(shí)整理

Q4MP_gh_c472c21 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-05-25 15:09 ? 次閱讀

I2C是inter-integrated circuit的縮寫(xiě),又名為T(mén)WI,只需要用兩條物理線(xiàn)進(jìn)行傳輸,分別命名為SDA和SCL,用于傳輸serial data和serial clock。I2C工作時(shí)分為主從工作模式,而在同總線(xiàn)上可以存在多個(gè)主機(jī)。每一個(gè)連接到總線(xiàn)的器件都可以通過(guò)唯一的地址與總線(xiàn)連接,主機(jī)控制主機(jī)為發(fā)送器模式或是接收器模式。多個(gè)主機(jī)控制時(shí)可以通過(guò)沖突檢測(cè)和仲裁防止數(shù)據(jù)被破壞。I2C總線(xiàn)有幾種不同速率的工作模式,標(biāo)準(zhǔn)模式的速率為100kbps,快速模式下速率為400kbps,在高速模式下速率可達(dá)到3.4Mbps。整理下I2C基本的傳輸方式。

數(shù)據(jù)發(fā)送過(guò)程

發(fā)送從起始到結(jié)束為一次完整發(fā)送過(guò)程,如圖所示一次完整的發(fā)送過(guò)程,起始后先發(fā)送地址信息,R/W表示寫(xiě)入或是讀取數(shù)據(jù),如果一次過(guò)程中,需要切換讀寫(xiě)操作時(shí),需要重新發(fā)送start。SDA線(xiàn)上的每個(gè)字節(jié)必須為8位,每次傳輸可以發(fā)送的字節(jié)數(shù)量不受限制,而每個(gè)字節(jié)后必須跟一個(gè)響應(yīng)位。從機(jī)在處理其他事件而不能接收數(shù)據(jù)時(shí),可以通過(guò)控制SCL保持低電平來(lái)等待數(shù)據(jù)接收,等到準(zhǔn)備好繼續(xù)傳輸時(shí),釋放SCL。在總線(xiàn)上每個(gè)模塊具有唯一的地址,當(dāng)然亦可以設(shè)計(jì)廣播地址,通知所有其他模塊。

啟動(dòng)和停止

當(dāng)I2C不工作時(shí),SDA和SCL一樣都處于高位HIGH,SCL保持為HIGH,SDA由HIGH變LOW時(shí)表示開(kāi)始傳輸,而SCL保持HIGH,SDA由LOW變?yōu)镠IGH時(shí)表示停止傳輸。Sr和S完全相同,差別只是第一次Start之后沒(méi)有進(jìn)行stop,再次啟動(dòng)Start。

數(shù)據(jù)產(chǎn)生

SDA上傳送的數(shù)據(jù)必須在時(shí)鐘高電平時(shí)保持穩(wěn)定,而數(shù)據(jù)的改變只有在SCL為低時(shí)進(jìn)行,而SCL由主機(jī)控制產(chǎn)生。

沖突仲裁

主機(jī)在總線(xiàn)空閑時(shí)候啟動(dòng)傳輸。而當(dāng)總線(xiàn)上有多個(gè)主機(jī)時(shí),可能產(chǎn)生同時(shí)啟動(dòng)的沖突,因此需要仲裁。仲裁方式是,當(dāng)SCL線(xiàn)是高電平時(shí),仲裁在SDA線(xiàn)發(fā)生 這樣在其他主機(jī)發(fā)送低電平時(shí)發(fā)送高電平的主機(jī)將斷開(kāi)它的數(shù)據(jù)輸出級(jí),因?yàn)榭偩€(xiàn)上的電平與它自己的電平不相同,總線(xiàn)上的電平總是在一個(gè)輸出為低時(shí)就為低。仲裁可以持續(xù)多位,當(dāng)丟失仲裁的主機(jī)同時(shí)具有從機(jī)功能時(shí),需要立即切換從機(jī)狀態(tài)。

從機(jī)掛起數(shù)據(jù)發(fā)送示例

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接收器
    +關(guān)注

    關(guān)注

    14

    文章

    2441

    瀏覽量

    71525
  • 總線(xiàn)
    +關(guān)注

    關(guān)注

    10

    文章

    2817

    瀏覽量

    87697
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1452

    瀏覽量

    122236

原文標(biāo)題:帶你理解I2C總線(xiàn)數(shù)據(jù)傳輸方式

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于MCU 的I2C 總線(xiàn)傳輸設(shè)計(jì)

    基于MCU 的I2C 總線(xiàn)傳輸設(shè)計(jì)
    發(fā)表于 05-15 14:27 ?34次下載

    HT45R37使用I2C進(jìn)行數(shù)據(jù)傳輸的方法 (C語(yǔ)言)

    HT45R37使用I2C進(jìn)行數(shù)據(jù)傳輸的方法 (C語(yǔ)言)HT45R37 提供SIM 串行傳輸功能,分別是SPI 功能和I2C 功能,本文介紹H
    發(fā)表于 03-27 08:36 ?12次下載

    I2C Guid I2C指南

    I2C Guid  I2C指南 The I2C bus is used in a wide rangeof applications because it is simpleand
    發(fā)表于 04-23 13:55 ?36次下載

    基于CPLD的I2C總線(xiàn)接口設(shè)計(jì)

    在電路設(shè)計(jì)中,I2C總線(xiàn)是比較常用的兩線(xiàn)式串行通信方式,大多數(shù)的CPU都擅長(zhǎng)于并口操作,不具備直接操作I2C總線(xiàn)接口的能力。為了使不具備I2C總線(xiàn)接口能力的CPU通過(guò)對(duì)并口的簡(jiǎn)單操作實(shí)
    發(fā)表于 02-12 16:11 ?95次下載
    基于CPLD的<b class='flag-5'>I2C</b>總線(xiàn)接口設(shè)計(jì)

    i2c

    單片機(jī)i2c總線(xiàn)操作;單片機(jī)i2c總線(xiàn)操作;單片機(jī)i2c總線(xiàn)操作;
    發(fā)表于 05-17 11:09 ?35次下載

    I2C整理資料

    I2C整理資料助您學(xué)習(xí)用
    發(fā)表于 12-15 22:55 ?2次下載

    I2C總線(xiàn)的基礎(chǔ)知識(shí)

    如果用GPIO口模擬I2C總線(xiàn),并實(shí)現(xiàn)雙向傳輸,則需一個(gè)輸入輸出口(SDA),另外還需一個(gè)輸出口(SCL)。
    發(fā)表于 07-16 17:52 ?1869次閱讀

    i2c總線(xiàn)用來(lái)做什么_i2c總線(xiàn)數(shù)據(jù)傳輸過(guò)程

    I2C總線(xiàn)控制器為微控制器或微處理器提供控制I2C總線(xiàn)的接口,它控制所有I2C總線(xiàn)的特殊序列、協(xié)議、仲裁、時(shí)序,這里指MPC8250提供的I2C總線(xiàn)控制接口。
    發(fā)表于 11-24 14:16 ?7093次閱讀

    硬件I2C與模擬I2C

    硬件I2C對(duì)應(yīng)芯片上的I2C外設(shè),有相應(yīng)I2C驅(qū)動(dòng)電路,其所使用的I2C管腳也是專(zhuān)用的,因而效率要遠(yuǎn)高于軟件模擬的I2C;一般也較為穩(wěn)定,但
    發(fā)表于 12-28 19:14 ?81次下載
    硬件<b class='flag-5'>I2C</b>與模擬<b class='flag-5'>I2C</b>

    Linux I2C驅(qū)動(dòng)入門(mén)知識(shí)科普

    I2C 總線(xiàn)驅(qū)動(dòng), I2C總線(xiàn)驅(qū)動(dòng)就是SOC的 I2C控制器驅(qū)動(dòng),也叫做 I2C適配器驅(qū)動(dòng)。
    的頭像 發(fā)表于 12-29 13:59 ?1528次閱讀

    I2C傳輸發(fā)生timeout時(shí)

    I2C timeout 當(dāng) I2C 傳輸發(fā)生 timeout 時(shí),一般 kernel log 會(huì)有類(lèi)似如下打印: [48.197718][xxx]i2c
    的頭像 發(fā)表于 07-22 14:46 ?2124次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>傳輸</b>發(fā)生timeout時(shí)

    I2C子系統(tǒng)SW Architecture

    通過(guò) i2c-core 將 i2c 設(shè)備驅(qū)動(dòng)和 i2c 總線(xiàn)驅(qū)動(dòng)進(jìn)行了分離,從而使得 i2c 設(shè)備驅(qū)動(dòng)中不用關(guān)心 i2c 總線(xiàn)
    的頭像 發(fā)表于 07-22 16:01 ?796次閱讀
    <b class='flag-5'>I2C</b>子系統(tǒng)SW Architecture

    I2CI3C的區(qū)別有哪些

    線(xiàn)。 I2C 傳輸速度最高 3.4MHz,I3C 可以 12.5MHz +。 I3C 向下兼容 I2C,但不兼容 10bit 的
    的頭像 發(fā)表于 07-22 16:20 ?5959次閱讀
    <b class='flag-5'>I2C</b>和<b class='flag-5'>I3C</b>的區(qū)別有哪些

    I2CI3C關(guān)于功耗和傳輸速率的對(duì)比

    I2CI3C 關(guān)于功耗和傳輸速率的對(duì)比: I3C 使用推挽功能的雙線(xiàn)串行接口,速度可達(dá) 12.5 MHz I3C 同一總線(xiàn)上共存的傳統(tǒng)
    的頭像 發(fā)表于 07-22 16:24 ?1561次閱讀
    <b class='flag-5'>I2C</b>和<b class='flag-5'>I3C</b>關(guān)于功耗和<b class='flag-5'>傳輸</b>速率的對(duì)比

    i2c采樣是上升沿嗎?

    i2c采樣是上升沿嗎?? I2C采樣是指在I2C總線(xiàn)上對(duì)數(shù)據(jù)進(jìn)行采樣。在I2C總線(xiàn)上,數(shù)據(jù)的傳輸是通過(guò)2
    的頭像 發(fā)表于 09-19 17:16 ?2072次閱讀