i2c的特征有哪些
i2c的特征有哪些
I2C總線是由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。是微電子通信控制領(lǐng)域廣泛采用的一種總線標(biāo)準(zhǔn),下面就讓學(xué)習(xí)啦小編來給你科普一下什么是i2c。
i2c的概述
I2C總線(I2C bus,Inter-IC bus)是一個雙向的兩線連續(xù)總線,提供集成電路(ICs)之間的通信線路。I2C總線是一種串行擴展技術(shù),最早由Philips公司推出,廣泛應(yīng)用于電視,錄像機和音頻設(shè)備。I2C總線的意思是“完成集成電路或功能單元之間信息交換的規(guī)范或協(xié)議”。Philips公司推出的I2C總線采用一條數(shù)據(jù)線(SDA),加一條時鐘線(SCL)來完成數(shù)據(jù)的傳輸及外圍器件的擴展;對各個節(jié)點的尋址是軟尋址方式,節(jié)省了片選線,標(biāo)準(zhǔn)的尋址字節(jié)SLAM為7位,可以尋址127個單元。
I2C總線有三種數(shù)據(jù)傳輸速度:標(biāo)準(zhǔn),快速模式和高速模式。標(biāo)準(zhǔn)的是100Kbps,快速模式為400Kbps,高速模式支持快至3.4Mbps的速度。所有的與次之傳輸速度的模式都是兼容的。I2C總線支持7位和10位地址空間設(shè)備和在不同電壓下運行的設(shè)備。
i2c的特征
1、只要求兩條總線線路:一條串行數(shù)據(jù)線SDA,一條串行時鐘線SCL;
2、每個連接到總線的器件都可以通過唯一的地址和一直存在的簡單的主機/從機關(guān)系軟件設(shè)定地址,主機可以作為主機發(fā)送器或主機接收器;
3、它是一個真正的多主機總線,如果兩個或更多主機同時初始化,數(shù)據(jù)傳輸可以通過沖突檢測和仲裁防止數(shù)據(jù)被破壞;
4、串行的8 位雙向數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可達100kbit/s,快速模式下可達400kbit/s,高速模式下可達3.4Mbit/s;
5、連接到相同總線的IC 數(shù)量只受到總線的最大電容400pF 限制。
i2c的術(shù)語
發(fā)送器:發(fā)送數(shù)據(jù)到總線的器件;
接收器:從總線接收數(shù)據(jù)的器件;
主機:啟動數(shù)據(jù)傳送并產(chǎn)生時鐘信號的設(shè)備;
從機:被主機尋址的器件;
多主機:同時有多于一個主機嘗試控制總線但不破壞傳輸;
主模式:用I2CNDAT支持自動字節(jié)計數(shù)的模式;位I2CRM,I2CSTT,I2CSTP控制數(shù)據(jù)的接收和發(fā)送;
從模式:發(fā)送和接收操作都是由I2C模塊自動控制的;
仲裁:是一個在有多個主機同時嘗試控制總線但只允許其中一個控制總線并使傳輸不被破壞的過程;
同步:兩個或多個器件同步時鐘信號的過程 。
i2c的數(shù)據(jù)傳輸
字節(jié)格式
發(fā)送到SDA 線上的每個字節(jié)必須為8 位,每次傳輸可以發(fā)送的字節(jié)數(shù)量不受限制。每個字節(jié)后必須跟一個響應(yīng)位。首先傳輸?shù)氖菙?shù)據(jù)的最高位(MSB),如果從機要完成一些其他功能后(例如一個內(nèi)部中斷服務(wù)程序)才能接收或發(fā)送下一個完整的數(shù)據(jù)字節(jié),可以使時鐘線SCL 保持低電平,迫使主機進入等待狀態(tài),當(dāng)從機準(zhǔn)備好接收下一個數(shù)據(jù)字節(jié)并釋放時鐘線SCL 后數(shù)據(jù)傳輸繼續(xù)。
應(yīng)答響應(yīng)
數(shù)據(jù)傳輸必須帶響應(yīng),相關(guān)的響應(yīng)時鐘脈沖由主機產(chǎn)生。在響應(yīng)的時鐘脈沖期間發(fā)送器釋放SDA 線(高)。
在響應(yīng)的時鐘脈沖期間,接收器必須將SDA 線拉低,使它在這個時鐘脈沖的高電平期間保持穩(wěn)定的低電平。
通常被尋址的接收器在接收到的每個字節(jié)后,除了用CBUS 地址開頭的數(shù)據(jù),必須產(chǎn)生一個響應(yīng)。當(dāng)從機不能響應(yīng)從機地址時(例如它正在執(zhí)行一些實時函數(shù)不能接收或發(fā)送),從機必須使數(shù)據(jù)線保持高電平,主機然后產(chǎn)生一個停止條件終止傳輸或者產(chǎn)生重復(fù)起始條件開始新的傳輸。
如果從機接收器響應(yīng)了從機地址,但是在傳輸了一段時間后不能接收更多數(shù)據(jù)字節(jié),主機必須再一次終止傳輸。這個情況用從機在第一個字節(jié)后沒有產(chǎn)生響應(yīng)來表示。從機使數(shù)據(jù)線保持高電平,主機產(chǎn)生一個停止或重復(fù)起始條件。
如果傳輸中有主機接收器,它必須通過在從機發(fā)出的最后一個字節(jié)時產(chǎn)生一個響應(yīng),向從機發(fā)送器通知數(shù)據(jù)結(jié)束。從機發(fā)送器必須釋放數(shù)據(jù)線,允許主機產(chǎn)生一個停止或重復(fù)起始條件。
時鐘同步
所有主機在SCL線上產(chǎn)生它們自己的時鐘來傳輸I2C總線上的報文。數(shù)據(jù)只在時鐘的高電平周期有效,因此需要一個確定的時鐘進行逐位仲裁。
時鐘同步通過線與連接I2C 接口到SCL 線來執(zhí)行。這就是說SCL 線的高到低切換會使器件開始數(shù)它們的低電平周期,而且一旦器件的時鐘變低電平,它會使SCL 線保持這種狀態(tài)直到到達時鐘的高電平。但是如果另一個時鐘仍處于低電平周期,這個時鐘的低到高切換不會改變SCL 線的狀態(tài)。因此SCL 線被有最長低電平周期的器件保持低電平。此時低電平周期短的器件會進入高電平的等待狀態(tài)。
當(dāng)所有有關(guān)的器件數(shù)完了它們的低電平周期后,時鐘線被釋放并變成高電平。之后,器件時鐘和SCL線的狀態(tài)沒有差別,而且所有器件會開始數(shù)它們的高電平周期。首先完成高電平周期的器件會再次將SCL線拉低。
這樣產(chǎn)生的同步SCL 時鐘的低電平周期由低電平時鐘周期最長的器件決定,而高電平周期由高電平時鐘周期最短的器件決定。
看過“i2c的特征”的人還看了: