一種高速I(mǎi)2C總線(xiàn)從器件接口IP核的設計與實(shí)現
引言
I2C總線(xiàn)作為一種事實(shí)上的國際標準,在超過(guò)100種不同的IC上實(shí)現并且得到超過(guò)50家公司的許可。它具有連線(xiàn)少,結構簡(jiǎn)單的特點(diǎn)。本文介紹了一種高速I(mǎi)2C從器件接口電路IP核設計。在系統應用中,單片機作為主控器件,本IP核作為從器件中的接口電路,它們通過(guò)I2C總線(xiàn)相連,實(shí)現MCU對IC或FPGA中相關(guān)寄存器的訪(fǎng)問(wèn)。從而代替了MCU通用的地址數據接口,大大減少了IC或FPGA的管腳數量,節省了I/O資源,這對于I/O資源緊張的IC設計和FPGA開(kāi)發(fā)是非常有意義的。
I2C總線(xiàn)簡(jiǎn)介
I2C總線(xiàn)利用兩條線(xiàn)SDA(串行數據線(xiàn))和SCL(串行時(shí)鐘線(xiàn))完成總線(xiàn)上設備間的數據交換。出現過(guò)3個(gè)版本標準:1992年的v1.0、1998年的v2.0和2000年的v2.1。I2C總線(xiàn)支持串行的8位雙向數據傳輸,傳輸速率在標準模式下可達100kbit/s,快速模式下可達400kbit/s,高速模式下可達3.4Mbit/s。包含四種工作模式:主機發(fā)送模式、主機接收模式、從機接收模式、從機發(fā)送模式。
I2C定義了7位和10位兩種從機地址的數據傳輸模式。一般的,7位地址模式應用比較廣泛,其數據傳輸模式如圖1所示。
從圖1中可以看到,當時(shí)鐘線(xiàn)SCL=1,數據線(xiàn)SDA從“1”變?yōu)?ldquo;0”時(shí),即表示出現了一個(gè)啟動(dòng)條件(或是重新啟動(dòng)條件)。其后是7位地址信號,第8位表示的是本次訪(fǎng)問(wèn)的類(lèi)型(讀/寫(xiě)),“0”表示寫(xiě),“1”表示讀。第9位是從器件的應答信號,“0”表示應答確認,“1”表示應答不被確認。之后數據以9位循環(huán),前8位是數據第9位是從器件的應答位。當時(shí)鐘線(xiàn)SCL=1,數據線(xiàn)SDA從“0”變?yōu)?ldquo;1”時(shí),既表示出現了一個(gè)停止條件。啟動(dòng)條件發(fā)生后開(kāi)始數據傳輸,停止條件發(fā)生后表示本次數據傳輸結束。
評論