找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1657|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

IIC(I2C)總線上的設(shè)備其地址如何定義?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:107189 發(fā)表于 2016-3-6 12:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
IIC總線
一般串行數(shù)據(jù)通訊都有時鐘和數(shù)據(jù)之分,有異步和同步之別.
有單線,雙線和三線等.

I2C肯定是2線的(不算地線).

I2C協(xié)議確實(shí)很科學(xué),比3/4線的SPI要好,當(dāng)然線多通訊速率相對就快了.

I2C的原則是:

在SCL=1(高電平)時,SDA千萬別忽悠!!!

否則,SDA下跳則"判罰"為"起始信號S",SDA上跳則"判罰"為"停止信號P".

在SCL=0(低電平)時,SDA隨便忽悠!!!(可別忽悠過火到SCL跳高)

每個字節(jié)后應(yīng)該由對方回送一個應(yīng)答信號ACK做為對方在線的標(biāo)志.

非應(yīng)答信號一般在所有字節(jié)的最后一個字節(jié)后.一般要由雙方協(xié)議簽定.

SCL必須由主機(jī)發(fā)送,否則天下大亂.

首字節(jié)是"片選信號",即7位從機(jī)地址加1位方向(讀寫)控制.

從機(jī)收到(聽到)自己的地址才能發(fā)送應(yīng)答信號(必須應(yīng)答!!!)表示自己在線.

其他地址的從機(jī)不允許忽悠!!!(當(dāng)然群呼可以忽悠但只能聽不許說話)

讀寫是站在主機(jī)的立場上定義的.

"讀"是主機(jī)接收從機(jī)數(shù)據(jù),"寫"是主機(jī)發(fā)送數(shù)據(jù)給從機(jī).

重復(fù)位主要用于主機(jī)從發(fā)送模式到接收模式的轉(zhuǎn)換"信號",由于只有2線,

所以收發(fā)轉(zhuǎn)換肯定要比SPI復(fù)雜,因為SPI可用不同的邊沿來收發(fā)數(shù)據(jù),而I2C不行.

在硬件I2C模塊,特別是MCU/ARM/DSP等每個階段都會得到一個準(zhǔn)確的狀態(tài)碼,

根據(jù)這個狀態(tài)碼可以很容易知道現(xiàn)在在什么狀態(tài)和什么出錯信息.

7位I2C總線可以掛接127個不同地址的I2C設(shè)備,0號"設(shè)備"作為群呼地址.

10位I2C總線可以掛接更多的10位I2C設(shè)備.

總之,只要掌握I2C的忽悠記,一般很容易掌控...  第一個字節(jié)(為slave address)由7位地址和一位R/W讀寫位組成的,這字節(jié)是個器件地址。
首先,你要知道:常用IIC接口通用器件的器件地址是由種類型號,及尋址碼組成的,共7位。
如格式如下:
  D7 D6 D5 D4 D3 D2 D1 D0
1-器件類型由:D7-D4 共4位決定的。這是由半導(dǎo)公司生產(chǎn)時就已固定此類型的了,也就是說這4位已是固定的。

2-用戶自定義地址碼:D3-D1共3位。這是由用戶自己設(shè)置的,通常的作法如EEPROM這些器件是由外部IC的3個引腳所組合電平?jīng)Q定的(用常用的名字如A0,A1,A2)。這也就是尋址碼。
所以為什么同一IIC總線上同一型號的IC只能最多共掛8片同種類芯片的原因了。

3-最低一位就是R/W位。這位不用我多說了。
   在現(xiàn)代電子系統(tǒng)中,有為數(shù)眾多的IC需要進(jìn)行相互之間以及與外界的通信。為了提供硬件的效率和簡化電路的設(shè)計,PHILIPS開發(fā)了一種用于內(nèi)部IC控制的簡單的雙向兩線串行總線I2C。I2C總線支持任何一種IC制造工藝,并且PHILIPS和其他廠商提供了種類非常豐富的I2C兼容芯片。作為一個專利的控制總線,I2C已經(jīng)成為世界性的工業(yè)標(biāo)準(zhǔn)。
  
每個器件都有一個唯一的地址,而且可以是單接收的器件(例如:LCD驅(qū)動器)或者可以接收也可以發(fā)送的器件(例如:存儲器)。發(fā)送器或接收器可以在主模式或從模式下操作,這取決于芯片是否必須啟動數(shù)據(jù)的傳輸還是僅僅被尋址。I2C是一個多主總線,即它可以由多個連接的器件控制。
    基本的I2C總線規(guī)范于20年前發(fā)布,其數(shù)據(jù)傳輸速率最高為100Kbits/s,采用7位尋址。但是由于數(shù)據(jù)傳輸速率和應(yīng)用功能的迅速增加,I2C總線也增強(qiáng)為快速模式(400Kbits/s)和10位尋址以滿足更高速度和更大尋址空間的需求。
    I2C總線始終和先進(jìn)技術(shù)保持同步,但仍然保持其向下兼容性。并且最近還增加了高速模式,其速度可達(dá)3.4Mbits/s。它使得I2C總線能夠支持現(xiàn)有以及將來的高速串行傳輸應(yīng)用,例如EEPROM和Flash存儲器。  在現(xiàn)代電子系統(tǒng)中,有為數(shù)眾多的IC需要進(jìn)行相互之間以及與外界的通信。為了提供硬件的效率和簡化電路的設(shè)計,PHILIPS開發(fā)了一種用于內(nèi)部IC控制的簡單的雙向兩線串行總線I2C。I2C總線支持任何一種IC制造工藝,并且PHILIPS和其他廠商提供了種類非常豐富的I2C兼容芯片。作為一個專利的控制總線,I2C已經(jīng)成為世界性的工業(yè)標(biāo)準(zhǔn)。
  
每個器件都有一個唯一的地址,而且可以是單接收的器件(例如:LCD驅(qū)動器)或者可以接收也可以發(fā)送的器件(例如:存儲器)。發(fā)送器或接收器可以在主模式或從模式下操作,這取決于芯片是否必須啟動數(shù)據(jù)的傳輸還是僅僅被尋址。I2C是一個多主總線,即它可以由多個連接的器件控制。
    基本的I2C總線規(guī)范于20年前發(fā)布,其數(shù)據(jù)傳輸速率最高為100Kbits/s,采用7位尋址。但是由于數(shù)據(jù)傳輸速率和應(yīng)用功能的迅速增加,I2C總線也增強(qiáng)為快速模式(400Kbits/s)和10位尋址以滿足更高速度和更大尋址空間的需求。
    I2C總線始終和先進(jìn)技術(shù)保持同步,但仍然保持其向下兼容性。并且最近還增加了高速模式,其速度可達(dá)3.4Mbits/s。它使得I2C總線能夠支持現(xiàn)有以及將來的高速串行傳輸應(yīng)用,例如EEPROM和Flash存儲器。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表