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