日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

I2C協(xié)議與EEPROM

 

來源:百問網(wǎng)_嵌入式linux wiki_jz2440 新1期視頻維基教程 (視頻文字版)

作者:韋東山

本文字數(shù):1856,閱讀時長:3.5分鐘

I2C協(xié)議

I2C在硬件上的接法如下(圖19-1)所示,主控芯片引出兩條線SCL,SDA線,在一條I2C總線上可以接很多I2C設(shè)備,我們還會放一個上拉電阻(放一個上拉電阻的原因以后我們再說)。

I2C協(xié)議與EEPROM

 

我們怎么傳輸數(shù)據(jù),我們需要發(fā)數(shù)據(jù)從主設(shè)備發(fā)送到從設(shè)備上去,也需要把數(shù)據(jù)從從設(shè)備傳送到主設(shè)備上去,數(shù)據(jù)涉及到雙向傳輸。

舉個例子:

I2C協(xié)議與EEPROM

 

體育老師:可以把球發(fā)給學生,也可以把球從學生中接過來。

1.發(fā)球:a.老師說:注意了(start) b.老師對A學生說我要球發(fā)給你(地址)。

  • c.老師就把球發(fā)出去了(傳輸)。
  • d.A收到球之后,應(yīng)該告訴老師一聲(回應(yīng))。
  • e.老師說下課(停止)

2.接球:

  • a.老師說注意了(start),
  • b.老師說:B把球發(fā)給我(地址)
  • c.B就把球發(fā)給老師(傳輸)
  • d.老師收到球之后,給B說一聲,表示收到球了(回應(yīng))。
  • e.老師說下課(停止)

我們就使用這個簡單的例子,來解釋一下IIC的傳輸協(xié)議。

  • 老師說注意了,表示開始信號(start)
  • 老師告訴某個學生,表示發(fā)送地址(address)
  • 老師發(fā)球/接球,表示數(shù)據(jù)的傳輸
  • 老師/學生收到球,回應(yīng)表示:回應(yīng)信號(ACK)
  • 老師說下課,表示IIC傳輸接受(P)

 

IIC傳輸數(shù)據(jù)的格式

1.寫操作:

剛開始主芯片要發(fā)出一個start信號,然后發(fā)出一個設(shè)備地址(用來確定是往哪一個芯片寫數(shù)據(jù)),方向(讀/寫,0表示寫,1表示讀)。

回應(yīng)(用來確定這個設(shè)備是否存在),然后就可以傳輸數(shù)據(jù),傳輸數(shù)據(jù)之后,要有一個回應(yīng)信號(確定數(shù)據(jù)是否接受完成),然后再傳輸下一個數(shù)據(jù)。

每傳輸一個數(shù)據(jù),接受方都會有一個回應(yīng)信號,數(shù)據(jù)發(fā)送完之后,主芯片就會發(fā)送一個停止信號。

白色背景:主→從

灰色背景:從→主

I2C協(xié)議與EEPROM

 

2.讀操作:

剛開始主芯片要發(fā)出一個start信號,然后發(fā)出一個設(shè)備地址(用來確定是從哪一個芯片讀取數(shù)據(jù)),方向(讀/寫,0表示寫,1表示讀)。

回應(yīng)(用來確定這個設(shè)備是否存在),然后就可以傳輸數(shù)據(jù),傳輸數(shù)據(jù)之后,要有一個回應(yīng)信號(確定數(shù)據(jù)是否接受完成),然后再傳輸下一個數(shù)據(jù)。

每傳輸一個數(shù)據(jù),接受方都會有一個回應(yīng)信號,數(shù)據(jù)發(fā)送完之后,主芯片就會發(fā)送一個停止信號。

白色背景:主→從

灰色背景:從→主

I2C協(xié)議與EEPROM

 

傳輸是以8位為單元數(shù)據(jù)傳輸?shù)?,先傳輸最高?MSB),主芯片發(fā)出start信號之后,然后發(fā)出9個時鐘傳輸數(shù)據(jù)。

(1)開始信號(S):SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。

(2)結(jié)束信號(P):SCL為高電平時,SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。

(3)響應(yīng)信號(ACK):接收器在接收到8位數(shù)據(jù)后,在第9個時鐘周期,拉低SDA

SDA上傳輸?shù)臄?shù)據(jù)必須在SCL為高電平期間保持穩(wěn)定,SDA上的數(shù)據(jù)只能在SCL為低電平期間變化。如圖

I2C協(xié)議與EEPROM

 

1.問題:如何在SDA上實現(xiàn)雙向傳輸?

答:主芯片通過一根SDA線既可以把數(shù)據(jù)發(fā)給從設(shè)備,也可以從SDA上讀取數(shù)據(jù),連接SDA線的引腳里面必然有兩個引腳(發(fā)送引腳/接受引腳)。

2.問題:主設(shè)備(從設(shè)備)發(fā)送數(shù)據(jù)時,從設(shè)備(主設(shè)備)的發(fā)送引腳,不影響數(shù)據(jù)的發(fā)送,怎么做到呢?

答:里面放一個三極管,使用開極(極電集開發(fā)出去作為輸出)電路,如下圖

I2C協(xié)議與EEPROM

 

下面畫一個真值表:

I2C協(xié)議與EEPROM

 

  • 從真值表和電路圖我們可以知道,當某一個芯片不行影響SDA線時,那就不驅(qū)動這個三極管。
  • 想輸出高電平時;都不驅(qū)動(高電平就由上拉電阻決定)。
  • 想輸出低電平,就驅(qū)動三極管。

從下面的例子可以看看數(shù)據(jù)是怎么傳的(實現(xiàn)雙向傳輸),比如:主設(shè)備發(fā)送(8bit)給從設(shè)備 1.前8個clk

  • 從設(shè)備不要影響,從設(shè)備不驅(qū)動三極管;
  • 主設(shè)備決定數(shù)據(jù);

2.第9個clk,由從設(shè)備決定數(shù)據(jù)

  • 主設(shè)備不驅(qū)動三極管;
  • 從設(shè)備決定數(shù)據(jù);

從上面的例子,就可以知道,怎樣在一條線上實現(xiàn),雙向傳輸?shù)霓k法。這就是為什么在SDA,SCL上放上拉電阻的原因。

在第9個時鐘之后,如果有某一方處于繁忙狀態(tài),它可以一直把SCL拉低當SCL為低電平時候,大家都不應(yīng)該使用IIC總線,只有當SCL從低電平變?yōu)楦唠娖降臅r候,IIC總線才能被使用。

從前圖我們也可以知道ACK信號應(yīng)該是低電平。主設(shè)備不驅(qū)動三極管,如果從設(shè)備不驅(qū)動三極端的話SDA應(yīng)該是高電平,當從設(shè)備接收數(shù)據(jù)之后,發(fā)出回應(yīng)信號的時候,就會驅(qū)動三極管,讓SDA變?yōu)榈碗娖健K哉f:ACK信號是低電平。

對于IIC協(xié)議它只能規(guī)定怎么傳輸數(shù)據(jù),數(shù)據(jù)什么含義它完全不能夠控制,數(shù)據(jù)的含義有從設(shè)備決定。

分享到:
標簽:協(xié)議 I2C
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定