專利名稱:I<sup>2</sup>C通信接口裝置的制作方法
12C通信接口裝置方法
技術(shù)領(lǐng)域:
本發(fā)明 涉及I2C通信領(lǐng)域,尤其涉及一種I2C通信接口裝置。
背景技術(shù):
I2C(Inter-1ntegrated Circuit)總線是由PHILIPS(飛利浦)公司開發(fā)的兩線式串行總線,可以用于連接微控制器及其外圍設(shè)備,是微電子通信控制領(lǐng)域廣泛采用的一種總線標(biāo)準(zhǔn)。I2C總線有兩根信號線:一根雙向的數(shù)據(jù)線SDA;另一根是時鐘線SCL。所有接到I2C總線上的設(shè)備的串行數(shù)據(jù)都接到總線的SDA線,各設(shè)備的時鐘線SCL接到總線的SCL線。I2C總線的運行(數(shù)據(jù)傳輸)由主機控制。所謂主機即啟動數(shù)據(jù)的傳送(發(fā)出啟動信號),發(fā)出時鐘信號,傳送結(jié)束時發(fā)出停止信號的設(shè)備,通常主機是微處理器。被主機尋訪的設(shè)備都稱為從機。為了進行通訊,每個接到I2C總線的設(shè)備都有一個唯一的地址,以便于主機尋訪。主機和從機的數(shù)據(jù)傳送,可以由主機發(fā)送數(shù)據(jù)到從機,也可以是從機發(fā)到主機。每個接到I2C總線的設(shè)備都有一個唯一的地址,這樣就需要為每個設(shè)備的I2C通信接口設(shè)定唯一的地址,這些設(shè)計和生產(chǎn)時是比較繁瑣的。為了使I2C通信接口適用于多個設(shè)備,可以對I2C通信接口進行地址擴展。目前大多數(shù)設(shè)計使用單獨的一個地址端ADDR來作為I2C通信接口芯片的地址擴展的控制線,如圖1所示,其示出了一種I2C通信接口芯片,其包括SCL端、SDA端、電源端VDD和地端GND,一般是通過將地址端ADDR接地GND或者將地址端ADDR接電源VDD來選擇片地址,也就是一個地址端口一般都只能實現(xiàn)兩個片地址。而目前手機、MP4、迷你音響等便攜式多媒體設(shè)備越來越來采用I2C通訊接口的芯片,那么勢必會造成片地址選擇過少而造成某些芯片之間出現(xiàn)地址沖突,若通過增加地址端口來增加地址選擇勢必會造成成本上升。因此,有必要提出一種改進的I2C通信接口方案來克服上述問題。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題之一在于提供一種I2C通信接口裝置,其可以無需增加額外端口只需增加一些簡單數(shù)字邏輯就可以用一個地址端口實現(xiàn)四個片地址選擇。為了解決上述問題,根據(jù)本發(fā)明的一個方面,本發(fā)明提供了一種I2C通信接口裝置,其具有時鐘端、數(shù)據(jù)端、地址端、電源端和接地端,其特征在于,所述地址端選擇性的連接于數(shù)據(jù)端、電源端、接地端或時鐘端,所述I2C通信接口裝置包括:時鐘上升沿計數(shù)器,根據(jù)所述地址端在所述時鐘端的η個時鐘的上升沿時的電平進行計數(shù)得到上升沿計數(shù)值;時鐘下降沿計數(shù)器,根據(jù)所述地址端在所述時鐘端的η個時鐘的下降沿時的電平進行計數(shù)得到下降沿計數(shù)值;I2C通信接口,根據(jù)所述時鐘端的時鐘對所述數(shù)據(jù)端的數(shù)據(jù)進行采樣得到從機地址;地址存儲單元,存儲有多個從機地址,每個從機地址對應(yīng)所述地址端的一種接法;和處理單元,根據(jù)所述上升沿計數(shù)值和所述下降沿計數(shù)值判斷出所述地址端的當(dāng)前接法,并將地址存儲單元中的對應(yīng)該地址端的當(dāng)前接法的從機地址與所述I2C通信接口得到的從機地址進行對比,若相同,則做出響應(yīng),否則,則不做響應(yīng),其中η為大于I的自然數(shù)。進一步的,地址存儲單元存儲有四個從機地址,所述從機地址為7位,η小于等于7。更進一步的,所述I2C通信接口在7個時鐘內(nèi)采樣得到7位從機地址。進一步的,所述時鐘上升沿計數(shù)器和所述時鐘下降沿計數(shù)器包括有對所述地址端上的信號進行延時的延遲電路。進一步 的,在所述地址端在所述時鐘端的時鐘的上升沿時為高電平或低電平中的一個時,所述時鐘上升沿計數(shù)器將所述上升沿計數(shù)值加一個數(shù)值,在所述地址端在所述時鐘端的時鐘的上升沿時為高電平或低電平中的另一個時,維持所述上升沿計數(shù)值,在所述地址端在所述時鐘端的時鐘的下降沿時為高電平或低電平中的一個時,所述時鐘下降沿計數(shù)器將所述下降沿計數(shù)值加一個數(shù)值,在所述地址端在所述時鐘端的時鐘的下降沿時為高電平或低電平中的另一個時,維持所述下降沿計數(shù)值。與現(xiàn)有技術(shù)相比,本發(fā)明的I2C通信接口芯片利用時鐘端SCL的時鐘信號對地址端ADDR的電平進行計數(shù),根據(jù)計數(shù)結(jié)果判斷出該I2C通信接口芯片的地址端ADDR接的是時鐘端SCL、數(shù)據(jù)端SDA、電源端VDD,還是接地端GND,從而可以用一個地址端口實現(xiàn)四個片地址選擇。關(guān)于本發(fā)明的其他目的,特征以及優(yōu)點,下面將結(jié)合附圖在具體實施方式
中詳細描述。
結(jié)合參考附圖及接下來的詳細描述,本發(fā)明將更容易理解,其中同樣的附圖標(biāo)記對應(yīng)同樣的結(jié)構(gòu)部件,其中:圖1為現(xiàn)有的一種I2C通信接口芯片的結(jié)構(gòu)示意圖;圖2為本發(fā)明中的一種I2C通信接口芯片在一個實施例中的結(jié)構(gòu)示意圖;和圖3為本發(fā)明中的I2C通信接口芯片的四種地址擴展接法的8個時鐘周期的時序示意圖。
具體實施方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步詳細的說明。本發(fā)明的詳細描述主要通過程序、步驟、邏輯塊、過程或其他象征性的描述來呈現(xiàn),其直接或間接地模擬本發(fā)明中的技術(shù)方案的運作。所屬領(lǐng)域內(nèi)的技術(shù)人員使用此處的這些描述和陳述向所屬領(lǐng)域內(nèi)的其他技術(shù)人員有效的介紹他們的工作本質(zhì)。 此處所稱的“ 一個實施例”或“實施例”是指與所述實施例相關(guān)的特定特征、結(jié)構(gòu)或特性至少可包含于本發(fā)明至少一個實現(xiàn)方式中。在本說明書中不同地方出現(xiàn)的“在一個實施例中”并非必須都指同一個實施例,也不必須是與其他實施例互相排斥的單獨或選擇實施例。此外,表示一個或若干實施例的方法、流程圖或功能框圖中的模塊順序并非固定的指代任何特定順序,也不構(gòu)成對本發(fā)明的限制。
本發(fā)明提供一種I2C通信接口芯片或裝置,其包括有時鐘端SCL、數(shù)據(jù)端50么、地址端ADDR、電源端VDD和接地端GND,其利用時鐘端SCL的時鐘信號對地址端ADDR的電平進行計數(shù),根據(jù)計數(shù)結(jié)果判斷出該I2C通信接口芯片的地址端ADDR接的是時鐘端SCL、數(shù)據(jù)端SDA、電源端VDD,還是接地端GND,這樣可以用一個地址端口實現(xiàn)四個片地址選擇。圖2為本發(fā)明中的一種I2C通信接口芯片200在一個實施例中的結(jié)構(gòu)示意圖。所述I2C通信接口芯片200包括I2C通信接口 210、時鐘上升沿計數(shù)器220、時鐘下降沿計數(shù)器230、處理單元240和地址存儲單元250。所述I2C通信接口 210與時鐘端SCL和數(shù)據(jù)端SDA相連接,時鐘上升沿計數(shù)器220與時鐘端SCL和地址端ADDR相連接,時鐘下降沿計數(shù)器230與時鐘端SCL和地址端ADDR相連接。I2C總線在開始條件后的第一字節(jié)的前7位組成了從機地址,最低位(R/W)是第8位,它決定了傳輸?shù)姆较?。最低位是“O”,表不主機會寫信息到被選中的從機;“1”表不主機會向從機讀信息。當(dāng)發(fā)送了一個地址后,I2C總線系統(tǒng)中的每個設(shè)備或器件都在起始條件后將頭7位與它自己的地址比較,如果一樣,器件會判定它被主機尋址,至于是從機接收器還是從機發(fā)送器,都由R/W位決定。那么在8位地址采樣完成之前,該片的片地址必須得選擇好,要不然就會發(fā)生片地址驗證錯誤。在一個實施例中,采用前7個SCL時鐘完成了地址選擇任務(wù)。圖3為本發(fā)明中的I2C通信接口芯片200的四種地址擴展接法的8個時鐘周期的時序示意圖。所述時鐘上升沿計數(shù)器220在前7個時鐘周期SCL的上升沿來判斷地址端ADDR是否為高電平,如果所述地址端ADDR在時鐘周期SCL的上升沿為高電平,則所述時鐘上升沿計數(shù)器220將上升沿計數(shù)值加1,否則,則維持所述上升沿計數(shù)值。所述時鐘下降沿計數(shù)器230在前7個時鐘周期SCL的下降沿來判斷地址端ADDR是否為高電平,如果所述地址端ADDR在時鐘周期SCL的上升沿為高電平,則所述時鐘下降沿計數(shù)器230將下降沿計數(shù)值加1,否則,則維持所述下降沿計數(shù)值。所述上升沿計數(shù)值和所述下降沿計數(shù)值的初始值可以為O。請參閱圖3所示,若地址端ADDR接電源端VDD,則所述時鐘上升沿計數(shù)器220和所述時鐘下降沿計數(shù)器230的最終計數(shù)結(jié)果,即最終上升沿計數(shù)值和最終下降沿計數(shù)值都為7。若地址端ADDR接接地端GND,則所述時鐘上升沿計數(shù)器220和所述時鐘下降沿計數(shù)器230的最終計數(shù)結(jié)果,即最終上升沿計數(shù)值和最終下降沿計數(shù)值都為O。所述時鐘上升沿計數(shù)器220和所述時鐘下降沿計數(shù)器230均包括有對地址端ADDR輸入的信號進行一個延時的延時電路(未圖示),因此若地址端ADDR接時鐘端SCL,則所述時鐘上升沿計數(shù)器220的最終上升沿計數(shù)值為0,所述時鐘下降沿計數(shù)器230的最終下降沿計數(shù)值為7,因為所述延遲電路可以使地址端ADDR的時鐘的邊沿比時鐘端SCL的邊緣要延時幾十ns的時間。在地址端ADDR的其他接法時,所述延時電路也會對地址端ADDR上的信號進行延時,但是這個延時并不會對其他接法時的計數(shù)結(jié)果造成影響。若地址端ADDR接數(shù)據(jù)端SDA,則所述時鐘上升沿計數(shù)器220和所述時鐘下降沿計數(shù)器230的最終計數(shù)結(jié)果相同。因I2C時序要求數(shù)據(jù)SDA要包住時鐘SCL,也就是說上升沿計數(shù)器220和下降沿計數(shù)器230的最終計數(shù)結(jié)果肯定為相同的值。為了不和地址端ADDR接電源端VDD和地址端ADDR接接地端GND出現(xiàn)相同的結(jié)果,本發(fā)明則要求I2C地址前7位不能出現(xiàn)同時為I和同時為O的情況,也就是為了剔除上升沿計數(shù)器220和下降沿計數(shù)器230的最終計數(shù)結(jié)果同時為O和7的情況。如圖3示出的地址端ADDR接數(shù)據(jù)端SDA的示例中,所述時鐘上升沿計數(shù)器220和所述時鐘下降沿計數(shù)器230的最終計數(shù)結(jié)果均為4。在所述時鐘上升沿計數(shù)器220和所述時鐘下降沿計數(shù)器230進行計數(shù)的同時,所述I2C通信接口 210也根據(jù)時鐘SCL對數(shù)據(jù)SDA進行采樣得到7位地址。所述地址存儲單元250存儲有四個7位地址,每個7位地址對應(yīng)地址端ADDR的一種接法。所述處理單元240根據(jù)所述時鐘上升沿計數(shù)器220輸出的最終上升沿計數(shù)值和所述時鐘下降沿計數(shù)器230輸出的最終下降沿計數(shù)值判斷出當(dāng)前I2C通信接口芯片的地址端ADDR的接法,并將地址存儲單元250中的對應(yīng)該地址端ADDR的接法的7位地址與所述I2C通信接口 210接收到的7位地址進行對比,若相同,則做出響應(yīng),否則,則不做響應(yīng)。這樣,在第8個SCL時鐘周期就可以完成I2C地址認(rèn)證。這樣,對于同一款I(lǐng)2C通信接口芯片來說,通過將地址端ADDR與其他不同的連接端相連,無需增加額外端口只需增加一些簡單數(shù)字邏輯,就可以用一個地址端口 ADDR實現(xiàn)四個片地址選擇。這樣可以解決如手機,MP4,迷你音響等便攜式多媒體設(shè)備中I2C地址沖突的問題。上文對本發(fā)明進行了足夠詳細的具有一定特殊性的描述。所屬領(lǐng)域內(nèi)的普通技術(shù)人員應(yīng)該理解,實施例中的描述僅僅是示例性的,在不偏離本發(fā)明的真實精神和范圍的前提下做出所有改變都應(yīng)該屬于本發(fā)明的保護范圍。比如,在上述實施例中,所述上升沿計數(shù)器220和下降沿計數(shù)器230完成前7個SCL時鐘的上升沿或下降沿的計數(shù)才得到最終計數(shù)結(jié)果,在一個實施例中,可以完成前n(l< η < 7)個SCL時鐘的上升沿或下降沿的計數(shù)就得到最終計數(shù)結(jié)果。再比如,所述時鐘上升沿計數(shù)器220可以在前η個時鐘周期SCL的上升沿來判斷地址端ADDR是否為低電平,如果所述地址端ADDR在時鐘周期SCL的上升沿為低電平,則所述時鐘上升沿計數(shù)器220將上升沿計數(shù)值加I或其他值(比如2或其他),否則,則維持所述上升沿計數(shù)值。所述時鐘下降沿計數(shù)器230在前η個時鐘周期SCL的下降沿來判斷地址端ADDR是否為低電平,如果所述地址端ADDR在時鐘周期SCL的上升沿為低電平,則所述時鐘下降沿計數(shù)器230將下降沿計數(shù)值加I或其他值(比如2或其他),否則維持所述下降沿計數(shù)值。這樣,所述地址端ADDR的不同接法對應(yīng)的最終下降沿計數(shù)值和最終上升沿計數(shù)值將發(fā)生變化。再比如,雖然所述地址端ADDR有四種接法,所述地址存儲單元250存儲有四個7位地址,很顯然,所述地址存儲單元250也可以只存儲二或三個7位地址,這樣所述I2C通信接口芯片可以支持二個或三個地址選擇。本發(fā)明所要求保護的范圍是由所述的權(quán)利要求書進行限定的,而不是由實施例中的上述描述來限定的。本文中多個和若干表示兩個或兩個以上。
權(quán)利要求
1.一種I2C通信接口裝置,其具有時鐘端、數(shù)據(jù)端、地址端、電源端和接地端,其特征在于,所述地址端選擇性的連接于數(shù)據(jù)端、電源端、接地端或時鐘端,所述I2C通信接口裝置包括: 時鐘上升沿計數(shù)器,根據(jù)所述地址端在所述時鐘端的η個時鐘的上升沿時的電平進行計數(shù)得到上升沿計數(shù)值; 時鐘下降沿計數(shù)器,根據(jù)所述地址端在所述時鐘端的η個時鐘的下降沿時的電平進行計數(shù)得到下降沿計數(shù)值; I2C通信接口,根據(jù)所述時鐘端的時鐘對所述數(shù)據(jù)端的數(shù)據(jù)進行采樣得到從機地址; 地址存儲單元,存儲有多個從機地址,每個從機地址對應(yīng)所述地址端的一種接法;和 處理單元,根據(jù)所述上升沿計數(shù)值和所述下降沿計數(shù)值判斷出所述地址端的當(dāng)前接法,并將地址存儲單元中的對應(yīng)該地址端的當(dāng)前接法的從機地址與所述I2C通信接口得到的從機地址進行對比,若相同,則做出響應(yīng),否則,則不做響應(yīng),其中η為大于I的自然數(shù)。
2.根據(jù)權(quán)利要求1所述的I2C通信接口裝置,其特征在于,地址存儲單元存儲有四個從機地址,所述從機地址為7位。
3.根據(jù)權(quán)利要求2所述的I2C通信接口裝置,其特征在于,η小于等于7。
4.根據(jù)權(quán)利要求2所述的I2C通信接口裝置,其特征在于,所述I2C通信接口在7個時鐘內(nèi)采樣得到7位從機地址。
5.根據(jù)權(quán)利要求1所述的I2C通信接口裝置,其特征在于,所述時鐘上升沿計數(shù)器和所述時鐘下降沿計數(shù)器包括有對所述地址端上的信號進行延時的延遲電路。
6.根據(jù)權(quán)利要求1所述的I2C通信接口裝置,其特征在于, 在所述地址端在所述時鐘端的時鐘的上升沿時為高電平或低電平中的一個時,所述時鐘上升沿計數(shù)器將所述上升沿計數(shù)值加一個數(shù)值,在所述地址端在所述時鐘端的時鐘的上升沿時為高電平或低電平中的另一個時,維持所述上升沿計數(shù)值, 在所述地址端在所述時鐘端的時鐘的下降沿時為高電平或低電平中的一個時,所述時鐘下降沿計數(shù)器將所述下降沿計數(shù)值加一個數(shù)值,在所述地址端在所述時鐘端的時鐘的下降沿時為高電平或低電平中的另一個時,維持所述下降沿計數(shù)值。
全文摘要
本發(fā)明公開了一種I2C通信接口裝置,其具有時鐘端、數(shù)據(jù)端、地址端、電源端和接地端,所述地址端選擇性的連接于數(shù)據(jù)端、電源端、接地端或時鐘端。所述I2C通信接口裝置包括根據(jù)所述地址端在所述時鐘端的n個時鐘的上升沿時的電平進行計數(shù)得到上升沿計數(shù)值的時鐘上升沿計數(shù)器,根據(jù)所述地址端在所述時鐘端的n個時鐘的下降沿時的電平進行計數(shù)得到下降沿計數(shù)值的時鐘下降沿計數(shù)器,根據(jù)所述時鐘端的時鐘對所述數(shù)據(jù)端的數(shù)據(jù)進行采樣得到從機地址的I2C通信接口,以及根據(jù)所述上升沿計數(shù)值和所述下降沿計數(shù)值判斷是否需要作出響應(yīng)的處理單元。這樣,可以用一個地址端口實現(xiàn)四個片地址選擇。
文檔編號H04L29/10GK103095855SQ20111033085
公開日2013年5月8日 申請日期2011年10月27日 優(yōu)先權(quán)日2011年10月27日
發(fā)明者孫思兵, 伍旻, 史良俊, 徐敏亞, 顏貞 申請人:無錫力芯微電子股份有限公司