專利名稱:I2c地址轉換的制作方法
技術領域:
本發(fā)明的諸實施例總地涉及用于內部集成電路總線(I2C-總線)的系統(tǒng)、設備和方法。
背景技術:
內部集成電路總線(I2C-總線)是經常用來將低速外設附連于主板、嵌入式系統(tǒng)或蜂窩電話之中或之上的串行總線。如圖1所示,I2C-總線101僅包括兩條雙向總線,該雙向總線包括串行數(shù)據(jù)線(SDA)和串行時鐘線(SCL)。另外如圖1所示,拉高電阻器(Rp)連接在每條數(shù)據(jù)線和供電電壓干線(VDD)之間。用于VDD的常見電壓是+5V或+3. 3V,盡管也允許具有其它(例如更高或更低)供電電壓干線的系統(tǒng)。當總線空閑時,拉高電阻器(Rp) 將SDA和SCL線兩者拉為高(HIGH)。在圖1中,一個主機設備102 (例如微控制器)和三個隸屬設備104(分別標示為104a、104b和104c)圖示為連接于I2C總線101。電子系統(tǒng)越來越多地使用由I2C總線互連的集成電路(IC)。這些IC由于與I2C 總線的兼容性而通常被稱為I2C兼容芯片,或更具體地稱為I2C兼容設備。示例性I2C兼容設備包括,但不局限于,微控制器、液晶顯示器(LCD)、LED驅動器、輸入/輸出端口、隨機存取存儲器(RAM)、模數(shù)轉換器(ADC)、數(shù)模轉換器(DAC)、溫度傳感器和數(shù)字信號處理器 (DSP)。這類I2C兼容設備的輸出級——它們是漏極開路或集電極開路的——可用來有選擇地拉低SDA和SCL線,由此提供數(shù)據(jù)和時鐘信號。對給定的I2C兼容設備存在四種潛在的工作模式,盡管多數(shù)設備僅使用單功能 (主機或隸屬)及其兩個模式(發(fā)送和接收)。這些模式包括主機發(fā)送——主機設備將數(shù)據(jù)發(fā)送至隸屬;主機接收——主機設備從隸屬接收數(shù)據(jù);隸屬發(fā)送——隸屬設備將數(shù)據(jù)發(fā)送至主機;以及隸屬接收——隸屬設備從主機接收數(shù)據(jù)。主機一開始通過發(fā)送起始位后面跟隨想要與之通信的隸屬的7位地址(這可被稱為I2C地址),而后是代表是否希望從隸屬讀(1)或寫(0)至隸屬的單個讀/寫位而處于主機發(fā)送模式。起始位通知與總線連接的全部IC以偵聽總線的輸入地址。當每個IC接收地址時,IC將該地址與其本身的地址比較。如果接收的地址與IC地址不匹配,則IC知道它未被尋址。如果接收的地址與IC地址匹配,則IC知道它正被尋址,響應于此,IC產生確
5認(ACK)位(確認為低電平有效)。換句話說,如果總線上存在所尋址的隸屬,則該隸屬對該地址響應以ACK位。主機隨后繼續(xù)發(fā)送或接收模式(根據(jù)其發(fā)送的讀/寫位),并且隸屬繼續(xù)其互補模式(分別為接收或發(fā)送)。地址和數(shù)據(jù)字節(jié)首先送出最高有效位。起始位由 SCL高電平下的SDA高-低跳變指示,停止位由SCL高電平下的SDA低-高跳變指示。如果主機設備想要對隸屬設備寫入,則它隨著隸屬發(fā)送ACK位而反復發(fā)送一個字節(jié)(在這種情形下,主機處于主機發(fā)送模式而隸屬處于隸屬接收模式)。如果主機設備想要從隸屬設備讀出,則它從隸屬反復接收一個字節(jié),主機在除了最后一個字節(jié)外的每個字節(jié)后發(fā)送一個ACK 位(在這種情形下,主機處于主機接收模式而隸屬處于隸屬發(fā)送模式)。主機隨后用終止位來結束發(fā)送,或者主機如果想要對另一次傳輸(“組合消息”)保留總線控制則可發(fā)送另一起始位。為說明的目的,由主機發(fā)送的包括起始位緊隨的7位地址然后是讀/寫位的多個位根據(jù)讀/寫位被稱為讀命令或寫命令。由于只有7個位用來指示隸屬的地址,因此只有2~7(即128)個可能的地址。然而,由于保留了 16個地址,通??蓪ぶ纷疃?12個不同的設備(即128-16= 112)。在一些情形下,要求同一 IC有多種應用,這意味著許多相同IC (例如相同外設IC 的多個實例)可附連于同一 I2C總線。然而,由于每個設備必須具有唯一的I2C地址,因此使用具有同一 I2C地址的多個IC可能導致數(shù)據(jù)損壞。這種潛在問題的最常見解決方案是設計具有若干可選地址的外設I2C兼容設備。例如,I2C兼容設備可包括專用于選擇設備的地址并由此允許賦予設備四個不同地址之一的兩個引腳。然而,如果相同設備的數(shù)目超出可選地址的數(shù)目(在本例中為4),則存在相同地址重疊問題。從成本和空間角度看,單純地保持增加更多專用于選擇設備地址的引腳是不切實際的。存在幾百種當前正在生產的不同I2C兼容設備。盡管其中的一些可設計成具有若干可選地址,但其它的設備設計成固定地址。由于僅可獲得112種不同的設備地址,因此很可能兩個提供完全不同功能的不同IC可具有相同地址并附連于同一 I2C總線。由于每個設備必須具有唯一的I2C地址,這能防止這兩個IC被分別尋址。如果兩個不同IC具有相同地址并連接于同一 I2C總線,這也會導致數(shù)據(jù)損壞。目前對前述I2C尋址局限性沒有方便的解決方案。最常見的解決方案是創(chuàng)建具有另一完全地址集的另一獨立I2C總線,但這需要在主機控制器上設置另一 I2C端口,這時不
合需的ο
發(fā)明內容
本發(fā)明的實施例涉及轉換I2C地址的系統(tǒng)、設備和方法。這些系統(tǒng)、設備和方法可用來克服與尋址I2C兼容設備關聯(lián)的前述局限性的至少一些。根據(jù)某些實施例,用于轉換I2C地址的方法包括經由第一 I2C兼容設備連接到的 I2C總線的主側從I2C兼容設備(例如主機設備)接收原始I2C地址。該方法還包括將原始I2C地址轉換成經轉換的I2C地址,并經由第二 I 2C兼容設備連接至的I2C總線的次級側將經轉換的I2C地址輸出至第二 I2C兼容設備(例如隸屬設備)。在某些實施例中,經轉換的I2C地址的至少一部分轉換和至少一部分輸出是在接收到整個原始I2C地址前執(zhí)行的??赏ㄟ^從原始I2C地址減去(或加上)一偏移值來將原始I2C地址轉換成經轉換的
6I2C地址,從而產生成經轉換的I2C地址。可使用引腳包扎或通過將偏移值以允許偏移值可經由I2C總線編程的方式存儲來指定該偏移值。或者,可使用可經由I2C總線編程的查找表將原始I2C地址轉換成經轉換的I2C地址。在特定實施例中,這些方法可通過I2C地址轉換器來執(zhí)行。其它方法可由主機設備執(zhí)行,其中這些方法允許主機設備單獨地發(fā)送命令至均具有第一地址(例如同一地址)的兩個I2C兼容設備(例如相同類型或不同類型的兩個隸屬設備),其中兩個I2C可兼容設備中的第一個和主機設備連接于I2C總線的第一側,而兩個 I2C兼容設備中的第二個連接于I2C總線的第二側。這種方法可包括通過將第一地址納入到第一命令而將第一命令發(fā)送至兩個I2C兼容設備中附連于I2C總線的第一側的第一個設備。該方法還可包括通過將第二地址納入到第二命令而將第二命令發(fā)送至兩個I2C兼容設備中附連于I2C總線的第二側的第二個設備,其中第二命令中的第二地址在兩個I2C兼容設備中的第二個接收到第二命令前被轉換成第一地址。根據(jù)實施例,I2C地址轉換器包括配置成經由I2C總線接收原始I2C地址的電路以及配置成將接收的原始I2C地址轉換成經轉換的I2C地址的電路。另外,I2C地址轉換器包括配置成經由I2C總線的次級側輸出經轉換的I2C地址的電路。配置成將接收的原始 I2C地址轉換成經轉換的I2C地址的電路可包括自原始I2C地址減去一偏移值(或加上一偏移值)以由此產生經轉換的I2C地址的電路。該電路也可包括例如存儲偏移值并允許對該偏移值編程的電路,例如寄存器。在替代實施例中,配置成將接收的原始I2C地址轉換成經轉換的I2C地址的電路包括可編程查找表,該可編程查找表存儲一個或多個原始I2C地址以及針對一個或多個原始I2C的每一個的經轉換地址。根據(jù)本發(fā)明實施例的系統(tǒng)可包括I2C總線的主側,且多個設備連接于I2C總線的主側。另外,該系統(tǒng)可包括I2C總線的次級側,且多個設備連接于I2C總線的次級側。I2C 地址轉換器連接在I2C總線的主側和I2C總線的次級側。I2C地址轉換器配置成經由I2C 總線的主側從連接于I2C總線主側的多個設備之一接收原始I2C地址。另外,I2C轉換器配置成將原始I2C地址轉換成經轉換的I2C地址,并經由I2C總線的次級側發(fā)送經轉換的 I2C地址以使經轉換的I2C地址可由連接于I2C總線次級側的多個設備之一接收。該概述無意于概括本發(fā)明的所有實施例。根據(jù)下面給出的詳細說明、附圖以及權利要求,本發(fā)明的其他和替代實施例以及實施例的特征、方面以及優(yōu)點將變得更為顯而易見。
具體實施例方式本發(fā)明的特定實施例涉及I2C地址轉換器,該I2C地址轉換器可實現(xiàn)為集成電路 (IC)或具有固件的微控制器,但不局限于此。參見圖2,根據(jù)本發(fā)明一個實施例的I2C地址轉換器210 —側(其上有總線主控器102以及第一多個隸屬外圍設備104a、104b)連接于主 I2C總線IOl1 (也簡稱為I2C總線),而另一側(該側連接于第二多個隸屬外圍設備104y、 I(Mz)上形成次級I2C總線1012。由于I2C地址轉換器210本質上延長了主I2C總線IOl1, 因此主I2C總線也被稱為I2C總線的主側,而由I2C地址轉換器210形成的次級I2C總線 IOl2也被稱為I2C總線的次級側。根據(jù)某些實施例,I2C地址轉換器210可被編程以轉換I2C地址,以使主機設備能
7獨立地與具有同一 I2C地址的一對I2C兼容設備通信(例如對其發(fā)送命令)。下面參照圖 3、圖4和圖5給出這個操作如何完成的進一步細節(jié),其中I2C地址轉換器210的不同實施例分別標示為210a、2IOb和210c。通過轉換I2C地址,根據(jù)本發(fā)明的一個實施例,具有相同地址的多對I2C兼容設備可獨立尋址,只要一對I2C兼容設備中的一個連接于I2C總線IOl1的主側而該對I2C兼容設備中的另一個連接于I2C總線IOl2的次級側。例如,假設第一 I2C兼容設備(例如DAC) 具有7位二進制地址0101111,而第二 I2C兼容設備(例如LED驅動器)也具有7位二進制地址0101111。如果I2C地址轉換器210被編程為減去4的偏移值(即二進制值100), 則位于I2C總線IOl1的主側上的主機設備(例如102)可使用二進制地址0101111對第一 I2C兼容設備(例如DAC)尋址;而主機設備(例如102)可使用二進制地址0110011(它等于二進制值0101111加上二進制值100)對位于I2C總線IOl2的次級側上的第二 I2C兼容設備(例如LED驅動器)尋址。如此,當I2C地址轉換器210從I2C總線IOl1主側上的主機設備(例如102)接收到二進制地址0110011時,I2C地址轉換器210將在I2C總線IOl2 的次級側上輸出二進制地址0101111,由此允許位于次級側上的第二 I2C兼容設備(例如 LED驅動器)被尋址。在剛才描述的例子中,共享共用地址的第一和第二 I2C兼容設備是不同類型的設備,例如一個是DAC而另一個是LED驅動器。替代地,第一和第二 I2C兼容設備可以是完全相同類型的設備,例如兩例具有相同部件號的完全相同類型DAC。I2C地址轉換器210的另一種使用如下。假設特定I2C兼容設備包括專用于選擇設備的地址并由此允許賦予設備四個不同地址之一的兩個引腳。在不使用本發(fā)明實施例的 I2C地址轉換器210的情況下,該特定I2C兼容設備的四個實例可通過使用兩個引腳各自附連于同一 I2C總線以對四個設備中的每一個賦予四個不同地址中的不同的一個地址。但是如果特定I2C兼容設備的第五實例附連于該I2C總線,則特定I2C兼容設備中的兩個需要共享同一地址(由于只有四個不同地址可用),這會導致數(shù)據(jù)損壞。然而,如果使用本發(fā)明實施例的I2C地址轉換器210,則可獨立地對特定I2C兼容的高達八個實例進行尋址。更具體地,I2C地址轉換器210可用來將I2C總線的主側與I2C總線的次級側劃界。這允許特定I2C兼容設備的四個實例附連于I2C總線的主側(通過使用兩個引腳來對四個設備中的每一個賦予四個不同地址中的一個不同地址),并允許該特定I2C兼容設備的四個更多實例附連于I2C總線的次級側(同樣通過使用兩個引腳來對四個設備中的每個設備賦予四個不同地址中的一個不同地址)。繼續(xù)該示例,假設I2C地址轉換器210通過從接收的I2C 地址減去偏移值來執(zhí)行I2C地址轉換,如下面結合圖3和圖4描述的那樣。連接于I2C總線IOl1主側的主機設備可使用四個獨立的原始I2C地址以對連接于I2C總線IOl1主側的特定I2C兼容設備的四個實例作寫入和讀出,而主機設備可使用四個獨立的附加I2C地址對連接于I2C總線IOl2的次級側的特定I2C兼容設備的四個實例作寫入和讀出。在該示例中,這四個獨立的附加I2C地址(用來對連接于I2C總線IOl2的次級側的特定I2C兼容設備的四個實例尋址)將等于四個獨立原始I2C地址加上偏移值。現(xiàn)在參考圖3、圖4和圖5描述I2C地址轉換器的各個不同實施例。如前所述,在圖3、圖4和圖5中,I2C地址轉換器210的不同實施例分別標示為210a、2IOb和210c。盡管本文中描述了 I2C地址轉換器210的多種配置,然而本領域內普通技術人員將理解落在
8本發(fā)明精神和范圍內的其它實施例也是可能的。參見圖3,在某些實施例中,I2C地址轉換器210a可通過外部引腳(例如引腳包扎)從由I2C主機(圖2中的102)提供的地址減去一偏移值(例如1、2、4或8或一些其它值)來編程。例如,參見圖3的高級圖解,四個引腳302中的每一個可選擇地接地或連接于供電電壓干線(例如VDD)以經由解碼器304選擇由求和器306從I2C主機接收到的地址值中減去的偏移值,由此產生經轉換的地址。通過適當配置轉換器210a,附連于I2C總線的次級側的外設IC的地址可映射至不由I2C總線的主側使用的I2C地址空間中的地址。還要注意,可類似地使用除引腳外的其它類型端子以對偏移值編程以供I2C地址轉換器210 使用。在其它實施例中,I2C地址轉換器210可經由EEPR0M(電可擦除可編程只讀存儲器)、0ΤΡ (—次性可編程)存儲器等被編程,這些存儲器可通過最終用戶藉由微控制器(圖 1中的102)使用主I2C總線來尋址轉換器210并將尋址轉換信息寫至轉換器210而被寫入。這可通過對轉換器210賦予唯一的7位地址來達成,類似于當前的標準I2C設備并可相應地受到控制。在某些實施例中,轉換信息可被編程為用來產生經轉換的I2C地址的偏移。例如, 參照圖4的高級圖解,標準I2C控制器402可用于響應I2C地址轉換器210b被尋址和寫入而將偏移值寫至寄存器404。之后,當轉換器210b不被明確尋址時,求和器406從經由I2C 總線主側從I2C主機接收的地址值中減去存儲在寄存器404中的值,由此產生經由I2C總線的次級側輸出的經轉換的地址。這種偏移值可替代地以允許對偏移值編程的其它方式存儲。例如,可將偏移值存儲在I2C地址轉換器210的非易失性存儲器內,其中該非易失性存儲器經由I2C地址轉換器210所連接至的I2C總線編程。在圖3和圖4中,求和器306、406描述為用來從接收的地址減去一偏移值。因此, 可將求和器306、406稱為“求差器”或“減法器”。在替代實施例中,求和器(例如306和 406)可用來將偏移值加至接收的地址。注意,如果接收地址和偏移值之和超出最大地址 (例如超出1111111),則可能發(fā)生上溢。同樣,在地址轉換器減去偏移值時,在接收到的地址減去偏移值是負數(shù)的情況下可能發(fā)生下溢。因此,應當將注意力放在理解上溢和/或下溢會如何影響地址轉換。在其它實施例中,轉換算法或查找表可用來實現(xiàn)將次級隸屬地址再映射至I2C總線的主側上的未使用地址。例如,參見圖5,標準I2C控制器502可用來對查找表504中的多個地址中的每一個的轉換值(例如存儲在多個寄存器中,但不僅限于此)進行編程。此后,當I2C地址轉換器210c不被明確尋址時,如果通過I2C地址轉換器210c接收到查找表 504中的地址,則I2C地址轉換器210c經由I2C總線的次級側輸出相應經轉換的地址。通常參考圖2-5描述的I2C地址轉換器210的諸個實施例可涉及一旦最初產品制造和最初加電定序時即被編程。根據(jù)某些實施例,在執(zhí)行該編程操作前,次級總線上的隸屬設備是不可尋址的并且被禁用。I2C地址轉換器210可使用硬件來轉換地址。作為附加或替代,I2C地址轉換器 210可使用固件和/或軟件來轉換地址。例如,I2C地址轉換器210可包括使用算法來執(zhí)行地址轉換的固件。這種算法簡化為規(guī)定經轉換的地址等于原始地址減去偏移值。然而,可使用替代類型的算法并仍然落在本發(fā)明的范圍內。又如,如果原始地址落在第一范圍內,則算法可規(guī)定使用第一偏移值,而如果原始地址落在第二范圍內,則算法規(guī)定使用第二偏移值。 算法也可使用除減法以外的其它函數(shù),例如可使用加法。算法使用乘法和/或除法也落在本發(fā)明的實施例的范圍內,但使用這些函數(shù)比使用減法和/或加法更為復雜。參照圖25對I2C地址轉換器的各實施例進行總括地描述,圖2_5示出I2C地址轉換器經由I2C總線的主側的主SDA線從I2C主機接收地址,并經由I2C總線的次級側的次級SDA線輸出經轉換的地址。然而,I2C地址轉換器也可接收SCL線,并如下面描述的那樣, 在某些實施例中可對SCL線施加控制。I2C地址轉換器可利用I2C總線的同步特征從而以完全透明和遵照規(guī)范的方式執(zhí)行地址轉換。根據(jù)特定實施例,下面示出一個順序步驟1 :I2C地址轉換器(例如210)從主機(例如102)接收七個I2C地址位,如同任何附連的隸屬ic。I2C地址轉換器輸出保持無效(SDA和SCL輸出高)。步驟2:—旦I2C地址轉換器已接收到(例如暫存)七個地址位,則主側上的SCL 線由I2C地址轉換器保持低。此時,轉換地址(例如從存儲的地址中減去偏移值),并在次級側上串行地驅動輸出。主側上的總線活動掛起,同時SCL線通過I2C地址轉換器保持低。步驟3 —旦經轉換的地址已完全移出隸屬側,則次級側上的SDA線邏輯連接于主側上的SDA線。步驟4 在短晳延時后,隸屬側上的SCL線被釋放并邏輯連接于主側上的SCL線。 這將導致I2C地址轉換器兩側上的SCL線變高。步驟5:此時,I2C地址轉換器的主側上的SCL和SDA線邏輯連接于次級側上的SCL 和SDA線。剩下的I2C事務以透明方式完成,就像I2C地址轉換器簡單地由導線代替那樣 (但由于I2C地址轉換器內的可選緩沖器電路而可能具有微小的延時)。圖6示出前述過程的示例性時序圖。也可使I2C地址轉換器調整隸屬側上的地址傳輸速度以使其粗略地匹配于主機側的速度。在最初主機地址傳輸過程中測量時鐘頻率提供必要的信息以調整I2C地址轉換器的內部時鐘,以當發(fā)送隸屬地址時粗略地匹配時鐘頻率。在某些實施例中,I2C地址轉換器210可配置成使用局限于值2~N(其中N = 1、2、 3、4、5或6)的偏移來執(zhí)行轉換。在這些實施例中,可使I2C地址轉換器210在從主機接收到全部七個地址前開始地址轉換,并在接收到全部七個地址位和/或完成地址轉換前開始輸出I2C總線的次級側上的經轉換地址的一部分。當與主側總線時序相比時,這樣做可減少連接于I2C總線次級側的隸屬作出響應的等待時間。換句話說,如果轉換偏移值是2~N 值的二進制加權,則有一種情形是經轉換的地址的最高有效位(MSB)在地址轉換器210(從主機)接收擬轉換的全部7位I2C地址前可能開始移出地址轉換器210。這是因為如果偏移值的最低有效位(LSB)為零,則偏移值的任何減或加不影響擬轉換的I2C地址的至少一些LSB。對于特定例子,假設偏移值是十進制數(shù)32 (即2~5 = 32),其二進制值為0100000。 另外假設該主機正對十進制地址53寫入,其二進制值為0110101。假設I2C地址轉換器 210從接收自主機的I2C地址減去偏移值,則經轉換的地址將是53-32 = 21,即二進制值 0010101。注意I2C地址的五個LSB不受轉換影響,更具體地,一旦兩個MSB由I2C地址轉換器210接收,則轉換不再變化。因此,在I2C地址轉換器210接收擬轉換的整個I2C地址前(在本例中是在地址轉換器210接收擬轉換的地址的5個LSB前)地址轉換(在本例中通過減法來獲得)可以是完成的并且一部分得到的經轉換地址可能開始移出(I2C總線的次級側上的)I2C地址轉換器210。圖7是用來概括方法的高級流程圖,該方法由I2C轉換器使用以根據(jù)本發(fā)明實施例轉換I2C地址。參見圖7,在步驟702,經由第一 I2C兼容設備連接至的I2C總線的主側從第一 I2C兼容設備接收原始I2C地址。在步驟704,原始I2C地址被轉換至經轉換的I2C 地址。在步驟706,經轉換的I2C地址經由第二 I2C兼容設備連接至的I2C總線的次級側輸出至第二 I2C兼容設備(例如隸屬設備)。根據(jù)實施例,在步驟704的地址轉換是通過從原始I2C地址減去(或加上)偏移值以產生經轉換的I2C地址來完成的。該偏移值可使用一個或多個端子(例如引腳)來規(guī)定,其中每個端子有選擇地連接于供電電壓干線或接地,例如參考圖3描述的那樣。替代地,偏移值可存儲在寄存器或非易失存儲器中,例如前面參考圖4所述那樣。這種存儲的偏移值可經由I2C總線編程,如同前面參考圖4描述的那樣。在一替代實施例中,在步驟704 的地址轉換是使用查找表完成的,例如前面參考圖5描述的那樣。該查找表可經由I2C總線編程,就像前面參考圖5描述的那樣。使用如前所述除簡單減法或加法以外的算法執(zhí)行步驟704的地址轉換也落在本發(fā)明的范圍內。圖8是用來概括方法的高級流程圖,該方法由主機設備使用,允許主機設備獨立地將命令發(fā)送至均具有相同地址的兩個I2C兼容設備,其中兩個I2C兼容設備中的第一個和主機設備連接于I2C總線的第一側,而兩個I2C兼容設備的第二個連接于I2C總線的第二側。參照圖8,在步驟802,主機通過將第一地址納入第一命令而將第一命令送至兩個I2C 兼容設備中的第一個,該第一個I2C兼容設備附連于I2C總線的第一側。在步驟804,主機通過將第二地址納入第二命令而將第二命令發(fā)送至兩個I2C兼容設備中的第二個,該第二個I2C兼容設備附連于I2C總線的第二側,其中第二命令中的第二地址在兩個I2C兼容設備中的第二個接收到第二命令前被轉換成第一地址。上述描述是本發(fā)明的優(yōu)選實施例。出于說明和描述目的提供這些實施例,但它們不旨在窮舉或將本發(fā)明限制在所公開的精確形式。許多改型和變化對本領域內技術人員而言是明顯的。這些實施例的選擇和描述是為了最好地闡述本發(fā)明的原理及其實踐應用,由此使本領域內技術人員理解本發(fā)明。微小的修改和變化相信落在本發(fā)明的精神和范圍內。 本發(fā)明的范圍旨在由下面的權利要求及其等效方案限定。
圖1是用來解釋I2C兼容設備通常如何與I2C總線中使用的另一 I2C兼容設備通信的高級方框圖。圖2是根據(jù)本發(fā)明實施例解釋I2C地址轉換器如何一側連接于主I2C總線而另一側形成次級I2C總線的高級框圖。圖3-5示出用于編程圖2中介紹的I2C轉換器的本發(fā)明各實施例。圖6是用來示出I2C地址轉換器如何利用I2C總線的同步特征來以透明和遵照規(guī)范的方式執(zhí)行地址轉換的示例性時序圖。圖7是用來概括根據(jù)本發(fā)明實施例的方法的高級流程圖,該方法由I2C轉換器使用以轉換I2C地址。
11
圖8是用來概括一方法的高級流程圖,該方法由主機設備使用,該方法允許主機設備獨立發(fā)送命令至均具有同一地址的兩個I2C兼容設備,其中兩個I2C兼容設備中的第一個和主機設備連接于I2C總線的第一側,而兩個I2C兼容設備中的第二個連接于I2C總
線的第二二側。
附圖中主要組件的附圖標記列表
101 內部集成電路總線(I2C總:
IOl1 主I2C總線
IOl2次級I2C總線
102主設備
104a,104b,104c. · ·隸屬設備
104y,104z
210,210a,210b,210c12C地址轉換器
302引腳
304解碼器
306,406求和器
402,502I2C控制器
404寄存器
504查找表
702,704,708,802,804 步驟
Rp拉高電阻器
SCL串行時鐘線
SDA串行數(shù)據(jù)線
VDD供電電壓干線
1權利要求
1.一種方法,包括(a)接收原始I2C地址;(b)將所述原始I2C地址轉換成經轉換的I2C地址;以及(c)輸出所述經轉換的I2C地址。
2.如權利要求1所述的方法,其特征在于步驟(a)包括經由第一 I2C兼容設備連接至的I2C總線的主側從所述第一 I2C兼容設備接收所述原始I2C地址;以及步驟(c)包括經由第二 I2C兼容設備連接至的I2C總線的次級側將經轉換的I2C地址輸出至第二 I2C兼容設備。
3.如權利要求2所述的方法,其特征在于,所述第一I2C兼容設備包括主機設備,而所述第二 I2C兼容設備包括隸屬設備。
4.如權利要求1所述的方法,其特征在于步驟(b)包括從所述原始I2C地址減去或加上一偏移值以產生經轉換的I2C地址。
5.如權利要求4所述的方法,其特征在于,所述偏移值是使用一個或多個端子規(guī)定的, 其中每個端子有選擇地連接于供電電壓干線或接地。
6.如權利要求4所述的方法,其特征在于,存儲所述偏移值。
7.如權利要求6所述的方法,其特征在于,所述存儲的偏移值是可經由I2C總線編程的。
8.如權利要求1所述的方法,其特征在于步驟(b)包括使用查找表來基于所述原始I2C地址來產生經轉換的I2C地址。
9.如權利要求8所述的方法,其特征在于,所述查找表是可經由I2C總線編程的。
10.如權利要求1所述的方法,其特征在于步驟(b)包括使用算法來基于所述原始I2C地址來產生經轉換的I2C地址。
11.如權利要求1所述的方法,其特征在于,在步驟(b)的至少一部分轉換和在步驟 (c)的至少一部分輸出是在步驟(a)接收到整個原始I2C地址前執(zhí)行的。
12.—種獨立地發(fā)送命令至均具有第一地址的兩設備的方法,所述方法包括(a)通過將第一地址納入第一命令而將第一命令送至兩設備中的第一設備;以及(b)通過將不同于所述第一地址的第二地址納入第二命令而將第二命令送至兩設備中的第二設備,其中所述第二命令中的第二地址在所述設備中的第二設備接收到第二命令前被轉換成第一地址。
13.如權利要求12所述的方法,其特征在于,所述方法由主機設備使用以允許主機設備獨立地將命令發(fā)送至均具有第一地址的兩個I2C兼容設備,其中所述兩個I2C兼容設備中的第一設備和所述主機設備連接于I2C總線的第一側,而所述兩個I2C兼容設備中的第二設備連接于所述I2C總線的第二側,且其中步驟(a)包括通過將第一地址納入第一命令而將第一命令送至兩I2C兼容設備中的第一設備,所述第一設備附連于I2C總線的第一側;以及步驟(b)包括通過將第二地址納入第二命令而將第二命令發(fā)送至兩個I2C兼容設備中的第二設備,所述第二設備附連于I2C總線的第二側,其中所述第二命令中的第二地址在兩個I2C兼容設備中的第二設備接收到第二命令前被轉換成第一地址。
14.一種I2C地址轉換器,包括配置成接收原始I2C地址的接收電路;配置成將接收的原始I2C地址轉換至經轉換的I2C地址的轉換電路;以及配置成輸出經轉換的I2C地址的輸出電路。
15.如權利要求14所述的I2C地址轉換器,其特征在于所述接收電路配置成經由I2C總線的主側接收原始I2C地址;以及所述輸出電路配置成經由I2C總線的次級側輸出經轉換的I2C地址。
16.如權利要求14所述的I2C地址轉換器,其特征在于,所述轉換電路包括 基于偏移值修改原始I2C地址由此產生經轉換的I2C地址的電路。
17.如權利要求16所述的I2C地址轉換器,其特征在于,所述轉換電路還包括存儲所述偏移值的電路。
18.如權利要求17所述的I2C地址轉換器,其特征在于,所述轉換電路還包括允許對所述偏移值編程的電路。
19.如權利要求14所述的I2C地址轉換器,其特征在于,所述轉換電路包括可編程查找表,所述可編程查找表存儲一個或多個原始I2C地址和針對一個或多個原始I2C地址中每一個的經轉換的地址。
20.如權利要求14所述的I2C地址轉換器,其特征在于原始I2C地址通過轉換電路的轉換的至少一部分發(fā)生在接收電路接收到整個的原始 I2C地址前;以及至少一部分經轉換的I2C地址在接收電路接收到整個的原始I2C地址前由輸出電路輸出。
21.—種系統(tǒng),包括 I2C總線的主側;連接于所述I2C總線主側的多個設備; I2C總線的次級側;連接于所述I2C總線次級側的多個設備;以及連接在所述I2C總線的主側和所述I2C總線的次級側之間的I2C地址轉換器; 其中,所述12C地址轉換器配置成經由I2C總線的主側從連接于所述I2C總線主側的設備之一接收原始I2C地址; 將所述原始I2C地址轉換成經轉換的I2C地址;以及將經轉換的I2C地址經由所述I2C總線的次級側發(fā)送,以使所述經轉換的I2C地址能由連接于I2C總線的次級側的設備接收。
22.如權利要求21所述的系統(tǒng),其特征在于,所述I2C地址轉換器配置成通過從所述原始I2C地址減去偏移值或將偏移值加到所述原始I2C地址來將所述原始I2C地址轉換至經轉換的I2C地址。
23.如權利要求21所述的系統(tǒng),其特征在于,所述I2C地址轉換器配置成使用查找表將所述原始I2C地址轉換成經轉換的I2C地址。
24.如權利要求21所述的系統(tǒng),其特征在于,連接于所述I2C總線的次級側的所述多個設備中的每個設備包括I2C地址;經由所述I2C總線的次級側接收經轉換的I2C地址;以及將所述經轉換的I2C地址與其I2C地址比較。
全文摘要
本發(fā)明的實施例涉及轉換I2C地址的系統(tǒng)、設備和方法。根據(jù)實施例,轉換I2C地址的方法包括經由第一I2C兼容設備連接到的I2C總線從第一I2C兼容設備接收原始I2C地址。該方法還包括將原始I2C地址轉換成經轉換的I2C地址,并經由隸屬設備連接至的I2C總線的次級側將經轉換的I2C地址輸出至第二I2C兼容設備??赏ㄟ^從原始I2C地址減去(或加上)一偏移值來將原始I2C地址轉換成經轉換的I2C地址,從而產生成經轉換的I2C地址。該偏移值可使用引腳包扎來規(guī)定,或通過將偏移值存儲在可經由I2C總線編程的寄存器或非易失存儲器中來規(guī)定。替代地,可經由I2C總線編程的查找表可用來執(zhí)行I2C地址轉換。
文檔編號G06F13/42GK102339267SQ201110158929
公開日2012年2月1日 申請日期2011年5月30日 優(yōu)先權日2010年6月4日
發(fā)明者D·B·貝爾, P·J·班澤爾 申請人:英特賽爾美國股份有限公司