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