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