專利名稱::具有可編程寫事務(wù)周期的i2c從設(shè)備的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明概括而言涉及通信設(shè)備和方法,并具體涉及使用I2C串行數(shù)據(jù)總線可編程地更新從設(shè)備的輸出組的方法和裝置。
背景技術(shù):
:菲利浦公司開發(fā)的集成電路間(I2C)總線允許集成電路通過簡(jiǎn)單的雙向2線總線(正電源和地)彼此直接通信。設(shè)備與總線上兩個(gè)線中的每一個(gè)連接,一個(gè)是用于數(shù)據(jù)通信的串行數(shù)據(jù)線(SDA),另一個(gè)是用于設(shè)備間數(shù)據(jù)通信的控制和同步的串行時(shí)鐘線(SCL)。每個(gè)設(shè)備與其他設(shè)備中的每一個(gè)并行連接,每一條總線,SDA和SCL,用作總線上所有線的線與(wired-AND)。將每個(gè)設(shè)備的輸出配置為集電極開路/漏極開路設(shè)備,并且當(dāng)總線處于靜止?fàn)顟B(tài)時(shí),一個(gè)或多個(gè)上拉電阻器保持總線上的'軟'邏輯高值。當(dāng)設(shè)備需要訪問總線時(shí),通過導(dǎo)通狀態(tài)下位于地電勢(shì)的集電極開路/漏極開路設(shè)備,設(shè)備將總線拉至邏輯低值。與I2C總線連接的每個(gè)設(shè)備可由地址來識(shí)別,并且可作為發(fā)送方或接收方、或作為兩者而操作。使用主-從通信協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳送。主設(shè)備是啟動(dòng)數(shù)據(jù)傳送并產(chǎn)生允許該傳送的時(shí)鐘信號(hào)的設(shè)備;被尋址的任何設(shè)備為該傳送的從設(shè)備。可通過主設(shè)備啟動(dòng)數(shù)據(jù)傳送,將數(shù)據(jù)發(fā)送到從設(shè)備(此處稱作寫),或者向從設(shè)備請(qǐng)求數(shù)據(jù)(此處稱作讀)。例如,諸如顯示屏的輸出設(shè)備通常不能啟動(dòng)數(shù)據(jù)傳送,因而將其配置成僅以從設(shè)備而操作。另一方面,微處理器通常被配置成根據(jù)情況需要而作為主設(shè)備或從設(shè)備而操作。在靜止?fàn)顟B(tài)下,SDA和SCL總線都處于邏輯高狀態(tài)(此處稱作高,或邏輯狀態(tài)l)。主設(shè)備通過斷言(assert)SDA線上轉(zhuǎn)變成邏輯低狀態(tài)(此處稱作低,或邏輯狀態(tài)O)來啟動(dòng)數(shù)據(jù)傳送,同時(shí)SCL線為高;將其稱作START條件。之后,主設(shè)備來回切換(toggle)SCL線,以控制數(shù)據(jù)傳送的同步;當(dāng)SCL時(shí)鐘為低時(shí),SDA線上發(fā)生數(shù)據(jù)值的改變,并且只有當(dāng)SCL時(shí)鐘為高時(shí)才認(rèn)為SDA線的狀態(tài)有效??蓴嘌远鄠€(gè)START,以實(shí)現(xiàn)同一傳送對(duì)話期內(nèi)的一系列數(shù)據(jù)傳送。通常,每次數(shù)據(jù)傳送都需要來自被尋址的數(shù)據(jù)傳送接收方的應(yīng)答。為了終止該數(shù)據(jù)傳送,當(dāng)SCL時(shí)鐘為高時(shí),主機(jī)斷言SDA線上的由低到高的轉(zhuǎn)變;將其稱作STOP條件。之后,任何設(shè)備都可以作為主設(shè)備,通過斷言使SDA線上發(fā)生低到高的轉(zhuǎn)換來控制總線,如上所述。注意,為了易于描述,此處所使用的術(shù)語(yǔ)"斷言"用于實(shí)現(xiàn)或試圖實(shí)現(xiàn)特定的邏輯狀態(tài)。在轉(zhuǎn)變到邏輯高狀態(tài)的示例中,通常通過斷言設(shè)備將總線從強(qiáng)制下拉狀態(tài)中釋放而提供。斷言邏輯高狀態(tài)允許總線上的上述上拉設(shè)備使總線處于邏輯高狀態(tài),除非另一設(shè)備也迫使下拉狀態(tài)。I2C數(shù)據(jù)傳送的一般格式包括構(gòu)成I2C總線的SDA線和SCL線上的信號(hào)。START條件(S)對(duì)應(yīng)于當(dāng)SCL線為高時(shí),SDA線上的信號(hào)從高到低的轉(zhuǎn)變。在START之后,主機(jī)發(fā)送額定為7位的地址,之后發(fā)送讀/寫非(read/write-not)指示符。在發(fā)送地址和數(shù)據(jù)傳送方向(R/W-)之后,主機(jī)釋放SDA線,允許其升高到邏輯高電平。如果從設(shè)備識(shí)別出其地址,則從設(shè)備通過將總線拉低而發(fā)送應(yīng)答信號(hào)(ACK)。因此,主機(jī)釋放SDA線時(shí)不存在低信號(hào)表示未應(yīng)答(NAK)。如果通過SDA上的低電平使地址得到應(yīng)答,則發(fā)送設(shè)備發(fā)送數(shù)據(jù)。如果數(shù)據(jù)傳送的方向相對(duì)于主機(jī)是"讀",則從設(shè)備為發(fā)送設(shè)備;如果該方向相對(duì)于主機(jī)是"寫",則主設(shè)備為發(fā)送設(shè)備。發(fā)送設(shè)備釋放對(duì)SDA線的控制,接收設(shè)備通過斷言SDA線上的邏輯低值而對(duì)數(shù)據(jù)接收進(jìn)行應(yīng)答。如果數(shù)據(jù)得到應(yīng)答,則發(fā)送法發(fā)送附加的數(shù)據(jù)。持續(xù)這一過程直到全部數(shù)據(jù)都得到傳輸,或者直至所傳輸?shù)臄?shù)據(jù)項(xiàng)沒有得到應(yīng)答為止。隨后,主設(shè)備可重新斷言START信號(hào),并重復(fù)上述過程,或者可斷言STOP信號(hào)(P),終止這個(gè)數(shù)據(jù)傳送對(duì)話。上述接口協(xié)議可通過多種方法來實(shí)現(xiàn)。為了使I2C接口的編程或設(shè)計(jì)的開發(fā)時(shí)間最短,已經(jīng)公開了多種通用接口方案。美國(guó)新墨西哥州立大學(xué)(UniversityofNewMexico)AmritaDeshpande的碩士論文('DESIGNOFABEHAVIORAL(REGISTERTRANSFERLEVEL,RTL)MODELOFTHEINTER-INTEGRATEDCIRCUITORI2C-BUSMASTER-SLAVEINTERFACE"(1999)披露了一種包含在I2C設(shè)備中的I2C主設(shè)備接口和從設(shè)備接口,該文章在此引作參考。通過提供得到驗(yàn)證的I2C接口,系統(tǒng)設(shè)計(jì)人員無需致力于I2C規(guī)范和協(xié)議的細(xì)節(jié)。該論文中主設(shè)備和從設(shè)備接口兩者都基于狀態(tài)機(jī)。在美國(guó)專利編號(hào)6,799,233中進(jìn)一步描述了基于狀態(tài)機(jī)的系統(tǒng)和方法,該專利在此引作參考。
發(fā)明內(nèi)容本發(fā)明的多個(gè)方面涉及使用I2C串行數(shù)據(jù)總線,按照解決和克服上述問題的方式可編程地更新從設(shè)備的輸出組的方法和裝置。根據(jù)一個(gè)示例性實(shí)施例,本發(fā)明涉及一種使用用于實(shí)現(xiàn)通信協(xié)議的I2C串行數(shù)據(jù)傳送總線的通信系統(tǒng),所述I2C串行數(shù)據(jù)傳送總線具有串行數(shù)據(jù)線和時(shí)鐘線。該通信系統(tǒng)包括兩個(gè)或更多個(gè)從設(shè)備,每個(gè)從設(shè)備具有被配置為使用串行數(shù)據(jù)傳送總線接收串行數(shù)據(jù)、并提供由該串行數(shù)據(jù)組合得到的數(shù)據(jù)字的輸入電路。每個(gè)從設(shè)備中的可編程寄存器被配置為使用該通信協(xié)議進(jìn)行編程,以選擇一個(gè)或更多個(gè)從設(shè)備配置。每個(gè)從設(shè)備還具有至少一個(gè)輸出驅(qū)動(dòng)器組,其被配置為使用該輸入電路所提供的組合的數(shù)據(jù)字來更新輸出驅(qū)動(dòng)器。兩個(gè)或更多個(gè)從設(shè)備中的每一個(gè),基于其可編程寄存器所選擇的每個(gè)從設(shè)備配置,相繼地或者與兩個(gè)或更多個(gè)從設(shè)備中的其他從設(shè)備協(xié)同地更新其輸出寄存器。根據(jù)另一示例性實(shí)施例,本發(fā)明涉及一種使用用于實(shí)現(xiàn)通信協(xié)議的I2C串行數(shù)據(jù)傳送總線的通信系統(tǒng),所述I2C串行數(shù)據(jù)傳送總線具有串行數(shù)據(jù)線和時(shí)鐘線。用于通信系統(tǒng)的從設(shè)備包括被配置為使用串行數(shù)據(jù)傳送總線接收串行數(shù)據(jù)、并提供由該串行數(shù)據(jù)組合得到的數(shù)據(jù)字的輸入電路。從設(shè)備中的可編程寄存器被配置為使用該通信協(xié)議進(jìn)行編程,以選擇一個(gè)或更多個(gè)從設(shè)備配置。從設(shè)備包括至少兩個(gè)輸出驅(qū)動(dòng)器組,其被配置為接收輸入電路所提供的組合的數(shù)據(jù)字,其中,所述至少兩個(gè)輸出驅(qū)動(dòng)器組中的每一組,基于可編程寄存器所選擇的從設(shè)備配置,相繼地或者與所述至少兩個(gè)或更多個(gè)輸出驅(qū)動(dòng)器組中的其他組協(xié)同地更新其輸出寄存器。根據(jù)另一示例性實(shí)施例,本發(fā)明涉及一種I2C通信系統(tǒng)的從設(shè)備對(duì)該從設(shè)備中至少兩個(gè)輸出驅(qū)動(dòng)器組進(jìn)行更新的方法。該方法包括使用通信協(xié)議對(duì)從設(shè)備中的可編程寄存器進(jìn)行編程,以表明對(duì)至少兩個(gè)輸出驅(qū)動(dòng)器組相繼地更新還是并行地更新。使用串行數(shù)據(jù)傳送總線接收串行數(shù)據(jù),并將其組合成一個(gè)或更多個(gè)數(shù)據(jù)字。使用組合的一個(gè)或更多個(gè)數(shù)據(jù)字來更新所述至少兩個(gè)輸出驅(qū)動(dòng)器組,根據(jù)被編程的寄存器,每一個(gè)組相繼地更新或相對(duì)于其他組并行地更新。根據(jù)另一示例性實(shí)施例,本發(fā)明涉及一種具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),用于使用12C從設(shè)備中的至少兩個(gè)輸出驅(qū)動(dòng)器組來寫一個(gè)或更多個(gè)數(shù)據(jù)字。計(jì)算機(jī)執(zhí)行指令執(zhí)行的步驟包括,使用12C通信協(xié)議對(duì)從設(shè)備中的寄存器進(jìn)行編程,以表明是對(duì)所述至少兩個(gè)輸出驅(qū)動(dòng)器組中的每一個(gè)組相繼地更新,還是相對(duì)于至少兩個(gè)輸出驅(qū)動(dòng)器組的其他組并行地更新。在I2C從設(shè)備內(nèi),從使用12C通信協(xié)議接收到的串行數(shù)據(jù)中,組合一個(gè)或更多個(gè)數(shù)據(jù)字。使用組合的一個(gè)或更多個(gè)數(shù)據(jù)字來更新所述至少兩個(gè)輸出驅(qū)動(dòng)器組,根據(jù)被編程的寄存器,每一個(gè)組相繼地更新或相對(duì)于其他組并行地更新。本發(fā)明的上述概括描述無意于描述本發(fā)明的每個(gè)實(shí)施例或每種實(shí)施方式。參照下面結(jié)合附圖進(jìn)行的詳細(xì)描述和權(quán)利要求,本發(fā)明的優(yōu)點(diǎn),效果以及對(duì)本發(fā)明更完全的理解將變得明顯且可以理解。考慮到下面結(jié)合附圖對(duì)本發(fā)明多個(gè)實(shí)施例的詳細(xì)描述,可以更充分地理解本發(fā)明,在附圖中圖1表示根據(jù)本發(fā)明的實(shí)施例,對(duì)從設(shè)備的輸出組相繼地或同時(shí)進(jìn)行可編程更新的數(shù)據(jù)通信系統(tǒng)的框圖2表示根據(jù)本發(fā)明的實(shí)施例,對(duì)從設(shè)備的輸出組相繼地或同時(shí)進(jìn)行可編程更新的數(shù)據(jù)通信系統(tǒng)的數(shù)據(jù)流示意圖3表示根據(jù)本發(fā)明的實(shí)施例,執(zhí)行可編程輸出組寫入的系統(tǒng)的框圖4表示根據(jù)本發(fā)明的實(shí)施例,對(duì)從設(shè)備的輸出組相繼地或同時(shí)進(jìn)行可編程更新的方法的流程圖;以及圖5表示根據(jù)本發(fā)明的其他實(shí)施例,對(duì)從設(shè)備的輸出組相繼地或同時(shí)進(jìn)行可編程更新的另一方法的流程圖。具體實(shí)施例方式盡管本發(fā)明存在多種修改和備選形式,但附圖中示例性地示出了其具體形式,下面將對(duì)此進(jìn)行詳細(xì)描述。然而,應(yīng)該理解,本發(fā)明并不限于所描述的特定實(shí)施例。相反,本發(fā)明將涵蓋由所附權(quán)利要求定義的本發(fā)明范圍內(nèi)的所有修改、等效和備選。本發(fā)明一般可用于使用集成電路間串行數(shù)據(jù)總線對(duì)從設(shè)備的輸出組進(jìn)行可編程更新的方法和裝置。本發(fā)明已被發(fā)現(xiàn)特別有益于集成電路間(12C)串行數(shù)據(jù)通信總線,不過也有益于其他總線和通信協(xié)議,如系統(tǒng)管理總線(SMBus)體系結(jié)構(gòu)和/或協(xié)議,或其他串行數(shù)據(jù)通信系統(tǒng)。為了說明而非限制的目的,將在具有控制與從設(shè)備的通信的主設(shè)備的I2C總線的上下文中描述本發(fā)明。在I2C總線結(jié)構(gòu)上,主設(shè)備控制與I2C從設(shè)備的通信。I2C從設(shè)備可應(yīng)用于多個(gè)應(yīng)用領(lǐng)域中,從蜂窩電話,PDA和智能電話(SmartPhone)到LCDTV,醫(yī)療設(shè)備,游戲及其他應(yīng)用。12C從設(shè)備的一個(gè)具體應(yīng)用是作為通用輸入/輸出(GPI0)設(shè)備。在這種設(shè)備中,存在多個(gè)可用作輸入或輸出的多功能管腳。當(dāng)用作輸入時(shí),這些管腳通常指示被監(jiān)測(cè)的特定信號(hào)的狀態(tài)。I2C從設(shè)備的一種具體應(yīng)用是作為通用輸入/輸出(GPIO)。在這種設(shè)備中,存在多個(gè)可用作輸入或輸出的多功能管腳。當(dāng)被配置為輸出時(shí),這些設(shè)備可以用于例如對(duì)多個(gè)發(fā)光二級(jí)管(LED)進(jìn)行驅(qū)動(dòng)的系統(tǒng)中。將這些輸出分成組,并通過I2C總線單獨(dú)進(jìn)行編程。利用一個(gè)I2CWRITE事務(wù)對(duì)具有8位的組進(jìn)行編程。在WRITE周期結(jié)束時(shí),即在也被稱作ACKNOWLEDGE時(shí)鐘周期的第9個(gè)時(shí)鐘周期,組中的數(shù)據(jù)得到更新。有時(shí),應(yīng)用需要同時(shí)對(duì)所有的庫(kù)同時(shí)進(jìn)行更新,而不是一次一個(gè)字地進(jìn)行更新。這可以通過在所有WRITE周期結(jié)束時(shí)對(duì)所有的組進(jìn)行更新來完成(在I2CST0P條件下)。所給出的特征允許基于控制使用哪一事件進(jìn)行更新的可編程位,在任一事件發(fā)生時(shí)對(duì)組進(jìn)行更新??赏ㄟ^I2C總線對(duì)該位進(jìn)行編程。根據(jù)一個(gè)示例性實(shí)施例,使用用于實(shí)現(xiàn)通信協(xié)議的、具有串行數(shù)據(jù)線和時(shí)鐘線的串行數(shù)據(jù)傳送總線的通信系統(tǒng),包括相繼地或同時(shí)對(duì)從設(shè)備的輸出組進(jìn)行可編程更新。該通信系統(tǒng)包括兩個(gè)或更多個(gè)從設(shè)備,和/或具有兩個(gè)或更多個(gè)輸出驅(qū)動(dòng)器組的從設(shè)備。每個(gè)從設(shè)備接收串行數(shù)據(jù),并提供由所述串行數(shù)據(jù)組合的數(shù)據(jù)字。使用通信協(xié)議對(duì)每個(gè)從設(shè)備中的可編程寄存器進(jìn)行編程,以選擇一個(gè)或更多個(gè)從設(shè)備配置。兩個(gè)或更多個(gè)從設(shè)備和/或兩個(gè)或更多個(gè)輸出驅(qū)動(dòng)器組中的每一個(gè),根據(jù)其可編程寄存器所選擇的每個(gè)從設(shè)備配置,相繼地更新或者與所述兩個(gè)或更多個(gè)從設(shè)備中的其他從設(shè)備和/或所述兩個(gè)或更多個(gè)輸出驅(qū)動(dòng)器組中的其他組協(xié)同地(incoordinationwith)更新。在示例性實(shí)施例中,本發(fā)明包括通過I2C總線對(duì)控制位進(jìn)行編程,從而相繼地或同時(shí)對(duì)從設(shè)備的輸出組進(jìn)行可編程更新。例如,表1示出了根據(jù)本發(fā)明在從設(shè)備中提供的可編程寄存器的示例。表1示出了被編程到寄存器中的8位字,作為缺省設(shè)置。6個(gè)最高有效位和最低有效位還沒有被賦值。被指定為輸出改變(OCH)的位被賦予邏輯值1。表l:模式選擇寄存器<table><row><column>位</column><column>X</column><column>X</column><column>X</column><column>X</column><column>X</column><column>X</column><column>0CH</column><column>X</column></row><row><column>缺省</column><column>0</column><column>0</column><column>0</column><column>0</column><column>0</column><column>0</column><column>1</column><column>0</column></row><table>使用表1中所示的模式選擇寄存器中的0CH位,判斷是在STOP還是在ACKNOWLEDGE時(shí)鐘脈沖對(duì)從設(shè)備中的輸出驅(qū)動(dòng)器進(jìn)行更新。0CH=0:在STOP命令進(jìn)行輸出更新。0CH=1:在ACKNOWLEDGE時(shí)鐘周期進(jìn)行輸出更新。如圖1中所示,當(dāng)0CH4時(shí),在ACKNOWLEDGE周期更新單獨(dú)的寄存器,而當(dāng)0CH二0時(shí),在STOP命令下更新所有寄存器。根據(jù)一個(gè)示例性實(shí)施例,使用用于實(shí)現(xiàn)通信協(xié)議的、具有串行數(shù)據(jù)線和時(shí)鐘線的串行數(shù)據(jù)傳送總線的通信系統(tǒng),包括在ACKNOWLEDGE時(shí)鐘周期相繼地、或者在STOP命令同時(shí)地對(duì)從設(shè)備的輸出組進(jìn)行可編程更新。可以將從設(shè)備配置成通用輸入/輸出(GPIO)設(shè)備,編碼/解碼(CODEC)裝置,或其他從設(shè)備。通信系統(tǒng)可符合I2C,SMBus,和/或其他串行通信規(guī)范。圖1為根據(jù)本發(fā)明實(shí)施例,相繼地或同時(shí)對(duì)從設(shè)備的輸出組進(jìn)行可編程更新的數(shù)據(jù)通信系統(tǒng)100的框圖。將SDA線110和SCL線120設(shè)置成I2C數(shù)據(jù)總線125。主設(shè)備130和從設(shè)備140與I2C數(shù)據(jù)總線125相連。主設(shè)備130與I2C數(shù)據(jù)總線125電連接,使用SCL連接134和數(shù)據(jù)連接132分別與SCL線120和SDA線110電連接。從設(shè)備140與I2C數(shù)據(jù)總線125電連接,使用SCL連接144和數(shù)據(jù)連接142分別與SCL線120和SDA線110電連接。主設(shè)備130尋址152從設(shè)備140,并且將從設(shè)備編程154為以特定模式而操作,從而例如相繼地或同時(shí)進(jìn)行更新。從設(shè)備140通過例如設(shè)定寄存器中表明從設(shè)備140的操作模式的位,來接收162程序154。主設(shè)備130在I2C數(shù)據(jù)總線125上將串行數(shù)據(jù)發(fā)送156給從設(shè)備140,而從設(shè)備140接收164該串行數(shù)據(jù)并將其轉(zhuǎn)換成例如從設(shè)備140期望輸出的一個(gè)或更多個(gè)字。從設(shè)備140根據(jù)編程154,相繼地或同時(shí)寫一個(gè)或更多個(gè)字166,如參照?qǐng)D3進(jìn)一步所討論。圖2為根據(jù)本發(fā)明實(shí)施例,對(duì)從設(shè)備的輸出組相繼地或同時(shí)進(jìn)行可編程更新的數(shù)據(jù)通信系統(tǒng)的串行數(shù)據(jù)流200的示意圖。在圖2中表示出符合I2C通信協(xié)議的串行數(shù)據(jù)流200。在I2C總線上,主設(shè)備傳送的START條件222之后為從設(shè)備地址202。從設(shè)備地址202之后為READ/WRITE位210,隨后為來自從設(shè)備的ACKNOWLEDGE信號(hào)212。圖2中將READ/WRITE信號(hào)210表示成邏輯0,表明主設(shè)備對(duì)從設(shè)備進(jìn)行寫入。主設(shè)備發(fā)送第一數(shù)據(jù)字節(jié)204,第二數(shù)據(jù)字節(jié)206和第三數(shù)據(jù)字節(jié)208,每個(gè)數(shù)據(jù)字節(jié)204,206,208后面是來自從設(shè)備的各個(gè)ACKNOWLEDGE214,216,218。在從設(shè)備中可以將每個(gè)數(shù)據(jù)字節(jié)204,206,208組合為字,其可以呈現(xiàn)在從設(shè)備的輸出驅(qū)動(dòng)器處,以驅(qū)動(dòng)二進(jìn)制編碼十進(jìn)制(BCD)LED顯示器。根據(jù)本發(fā)明,從設(shè)備可響應(yīng)每個(gè)ACKNOWLEDGE214,216,218,相繼地更新其輸出驅(qū)動(dòng)器,或者可響應(yīng)STOP條件220,同時(shí)更新其輸出驅(qū)動(dòng)器。圖3為根據(jù)本發(fā)明實(shí)施例,實(shí)現(xiàn)可編程輸出組寫入的系統(tǒng)300的框圖。從設(shè)備320與12C總線310連接。圖3中將從設(shè)備320表示成與第一LED顯示器330到最后LED顯示器340耦合的GPIO設(shè)備。如第一LED顯示器330與最后LED顯示器340之間的圓點(diǎn)所示,從設(shè)備320可驅(qū)動(dòng)任意數(shù)量的顯示器。每個(gè)LED顯示器330到340分別由專用的輸出驅(qū)動(dòng)器350到360來驅(qū)動(dòng)。在本示例中,輸出驅(qū)動(dòng)器350,360使用4位字352,354分別更新LED顯示器330,340。4位字352,354可以是相同的字,重復(fù)的,或者可以是不同的字。如圖2中所示,從設(shè)備320從I2C總線310接收串行數(shù)據(jù)。在本例中,將從設(shè)備320中的電路390表示成包括數(shù)據(jù)輸入電路370和可編程寄存器380。例如,可按照與上面表1的模式選擇寄存器類似的方式來定義可編程寄存器380。將輸入電路370配置成使用I2C總線310接收串行數(shù)據(jù),并把由串行數(shù)據(jù)組合的數(shù)據(jù)字352,354提供給至少兩個(gè)輸出驅(qū)動(dòng)器組350,360。將可編程寄存器380配置成使用I2C總線310通信協(xié)議進(jìn)行編程,以選擇一個(gè)或更多個(gè)從設(shè)備配置。將至少兩個(gè)輸出驅(qū)動(dòng)器組350,360配置成接收由輸入電路370所提供的組合的數(shù)據(jù)字,其中,至少兩個(gè)輸出驅(qū)動(dòng)器組350,360中的每一個(gè),根據(jù)可編程寄存器所選擇的從設(shè)備配置,相繼地更新或者與至少兩個(gè)輸出驅(qū)動(dòng)器組350,360中的其他組協(xié)同地更新。圖4為根據(jù)本發(fā)明實(shí)施例,相繼地或同時(shí)對(duì)從設(shè)備的輸出組進(jìn)行可編程更新的方法400的流程圖。該方法400涉及諸如GPIO設(shè)備的從設(shè)備,根據(jù)可編程寄存器所選擇的從設(shè)備配置,相繼地或者與至少兩個(gè)輸出驅(qū)動(dòng)器組中的其他組協(xié)同地對(duì)從設(shè)備中的所述至少兩個(gè)輸出驅(qū)動(dòng)器組進(jìn)行更新。該方法包括例如通過使用從設(shè)備中的寄存器,把從設(shè)備編程410為特定配置??墒褂?2C通信協(xié)議進(jìn)行編程,以指定對(duì)從設(shè)備的輸出驅(qū)動(dòng)器相繼地更新還是并行地更新。使用諸如I2C總線的串行數(shù)據(jù)傳送總線接收420串行數(shù)據(jù),并將其組合430成一個(gè)或更多個(gè)數(shù)據(jù)字。使用組合的一個(gè)或更多個(gè)數(shù)據(jù)字更新440至少兩個(gè)輸出驅(qū)動(dòng)器組,根據(jù)編程410,每一個(gè)組相對(duì)于其他組相繼地更新或并行地更新。使用GPIO設(shè)備作為實(shí)現(xiàn)方法400的從設(shè)備僅僅是為了說明的目的,而非作為限制。圖5為根據(jù)本發(fā)明其他實(shí)施例,用于相繼地或同時(shí)對(duì)多個(gè)從設(shè)備進(jìn)行可編程更新的方法500的流程圖。為了說明而非限制的目的,同樣在I2C總線上的GPIO從設(shè)備的上下文中描述方法500。例如,可將兩個(gè)或更多個(gè)從設(shè)備與I2C總線連接。每個(gè)從設(shè)備包括被配置為使用I2C總線接收串行數(shù)據(jù)、并提供由該串行數(shù)據(jù)組合的數(shù)據(jù)字的輸入電路。使用通信協(xié)議對(duì)每個(gè)從設(shè)備中的可編程寄存器進(jìn)行編程510,以選擇一個(gè)或更多個(gè)從設(shè)備配置。使用I2C總線接收520串行數(shù)據(jù),并將其組合530為數(shù)據(jù)字。每個(gè)從設(shè)備使用組合的數(shù)據(jù)字更新540其輸出驅(qū)動(dòng)器。兩個(gè)或更多個(gè)從設(shè)備中的每一個(gè),根據(jù)其編程510所選擇的每個(gè)從設(shè)備配置,相繼地或與兩個(gè)或更多個(gè)從設(shè)備中的其他從設(shè)備協(xié)同地更新其輸出驅(qū)動(dòng)器??墒褂糜布碳?,軟件或者它們的組合來實(shí)現(xiàn)此處所描述的使用I2C串行數(shù)據(jù)總線可編程地更新從設(shè)備的輸出組的多個(gè)實(shí)施例。本發(fā)明所使用的服務(wù)功能可以存在于所述的主設(shè)備中,或者可備選地存在于與串行數(shù)據(jù)通信系統(tǒng)100連接的獨(dú)立或聯(lián)網(wǎng)的計(jì)算機(jī)上。圖1中所示的串行數(shù)據(jù)通信系統(tǒng)100是一種可結(jié)合該通信系統(tǒng),計(jì)算機(jī)或其他計(jì)算機(jī)實(shí)現(xiàn)的設(shè)備使用的、執(zhí)行本發(fā)明操作的示例結(jié)構(gòu)。圖1中所示的適于執(zhí)行根據(jù)本發(fā)明進(jìn)行編程的示例性主設(shè)備130,通常包括與隨機(jī)存取存儲(chǔ)器(RAM)和/或只讀存儲(chǔ)器(ROM)的某些變體相耦合的中央處理器(CPU)。ROM也可以是其他種類的用于存儲(chǔ)程序的存儲(chǔ)介質(zhì),諸如可編程ROM(PROM),可擦除PROM(EPROM)等等。處理器可通過輸入/輸出(I/O)電路和/或其他總線(bussing)與其他內(nèi)部和外部部件進(jìn)行通信,以提供控制信號(hào),通信信號(hào)等。主設(shè)備130還可以包括一個(gè)或多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備,包括硬盤和軟盤驅(qū)動(dòng)器,CD-ROM驅(qū)動(dòng)器,以及能夠讀和/或存儲(chǔ)信息的其他硬件,諸如DVD等。在一個(gè)實(shí)施例中,實(shí)現(xiàn)根據(jù)本發(fā)明使用I2C串行總線對(duì)從設(shè)備的輸出組進(jìn)行可編程更新的軟件,可以被存儲(chǔ)并分發(fā)到CD-ROM,磁盤或其他能夠以便攜式存儲(chǔ)信息的介質(zhì)上。這些存儲(chǔ)介質(zhì)可以被插入諸如CD-ROM驅(qū)動(dòng)器、磁盤驅(qū)動(dòng)器等的設(shè)備中,并且被讀取。也可以通過數(shù)據(jù)信號(hào)將該軟件傳輸給計(jì)算裝置,例如通過諸如互聯(lián)網(wǎng)的網(wǎng)絡(luò)而電下載。另外,如前面所描述的,可以將實(shí)現(xiàn)本發(fā)明相關(guān)功能的軟件備選地存儲(chǔ)到計(jì)算設(shè)備的內(nèi)部存儲(chǔ)器/存儲(chǔ)器中,例如存儲(chǔ)在ROM中。所產(chǎn)生的具有計(jì)算機(jī)可讀程序代碼的任何程序,都可以被包含在一個(gè)或多個(gè)計(jì)算機(jī)可用介質(zhì)中,諸如存儲(chǔ)器設(shè)備或傳輸設(shè)備,從而得到根據(jù)本發(fā)明的計(jì)算機(jī)程序產(chǎn)品或制品。由此,此處使用的"計(jì)算機(jī)可讀介質(zhì)","制品","計(jì)算機(jī)程序產(chǎn)品"或其他類似語(yǔ)言意在包含永久,臨時(shí)或暫時(shí)存在于諸如任何存儲(chǔ)器設(shè)備或任何傳輸設(shè)備的計(jì)算機(jī)可用介質(zhì)上的計(jì)算機(jī)程序。說明書中所披露的每個(gè)特征(包括任何所附的權(quán)利要求,摘要和附圖),都可以被具有相同、等效或類似作用的備選特征所取代,除非另有說明。因此,除非另有說明,否則所披露的每個(gè)特征僅是等效或類似特征的一般系列的一個(gè)示例。因而,描述了多個(gè)實(shí)施例作為實(shí)現(xiàn)本發(fā)明的示例,使用I2C串行數(shù)據(jù)總線可編程地更新從設(shè)備的輸出組。不應(yīng)認(rèn)為本發(fā)明局限于上面所述的特定示例。多種改變,等效過程以及本發(fā)明可應(yīng)用的多種結(jié)構(gòu)都落入本發(fā)明的范圍之內(nèi)。例如,可使用在公共總線(諸如SMBus或其他總線配置)上的設(shè)備之間類似構(gòu)成的單向或雙向接口來實(shí)現(xiàn)使用I2C串行數(shù)據(jù)總線可編程地更新從設(shè)備的輸出組。多種改變都被認(rèn)為是如所附權(quán)利要求清楚給出的所要求保護(hù)的發(fā)明的一部分。權(quán)利要求1.一種在使用用于實(shí)現(xiàn)通信協(xié)議的I2C串行數(shù)據(jù)傳送總線(125)的通信系統(tǒng)中的從設(shè)備,所述I2C串行數(shù)據(jù)傳送總線具有串行數(shù)據(jù)線(110)和時(shí)鐘線(120),所述從設(shè)備包括輸入電路,被配置為使用串行數(shù)據(jù)傳送總線接收串行數(shù)據(jù),并提供由該串行數(shù)據(jù)組合的數(shù)據(jù)字;可編程寄存器(380),被配置為使用通信協(xié)議進(jìn)行編程(154),以選擇一個(gè)或更多個(gè)從設(shè)備配置;以及至少兩個(gè)輸出驅(qū)動(dòng)器組,被配置為接收由所述輸入電路提供的組合的數(shù)據(jù)字(164),其中,所述至少兩個(gè)輸出驅(qū)動(dòng)器組中的每一個(gè)組,根據(jù)所述可編程寄存器所選擇的從設(shè)備配置,相繼地或與所述至少兩個(gè)輸出驅(qū)動(dòng)器組中的其他組協(xié)同地對(duì)其輸出驅(qū)動(dòng)器(350,360)進(jìn)行更新。2.如權(quán)利要求l所述的設(shè)備,其中,將所述從設(shè)備配置為通用輸入/輸出設(shè)備。3.如權(quán)利要求l所述的設(shè)備,其中,當(dāng)選擇從設(shè)備配置以進(jìn)行協(xié)同的寫入時(shí),所述至少兩個(gè)輸出驅(qū)動(dòng)器組在一個(gè)時(shí)鐘周期之內(nèi)更新。4.如權(quán)利要求l所述的設(shè)備,其中,當(dāng)選擇從設(shè)備配置以進(jìn)行相繼寫入時(shí),所述至少兩個(gè)輸出驅(qū)動(dòng)器組中的每一個(gè)組對(duì)來自所述輸入電路的應(yīng)答信號(hào)作出響應(yīng),而對(duì)其輸出驅(qū)動(dòng)器進(jìn)行更新。5.如權(quán)利要求l所述的設(shè)備,其中,當(dāng)選擇從設(shè)備配置以進(jìn)行協(xié)同的寫入時(shí),所述至少兩個(gè)輸出驅(qū)動(dòng)器組中的每一個(gè)組對(duì)I2C總線上的停止條件作出響應(yīng),而對(duì)其輸出驅(qū)動(dòng)器進(jìn)行更新。全文摘要根據(jù)一個(gè)示例性實(shí)施例,使用用于實(shí)現(xiàn)通信協(xié)議的、具有串行數(shù)據(jù)線和時(shí)鐘線的串行數(shù)據(jù)傳送總線的通信系統(tǒng)(100,300),包括相繼地或同時(shí)對(duì)從設(shè)備的輸出組進(jìn)行可編程更新。該通信系統(tǒng)包括兩個(gè)或更多個(gè)從設(shè)備,和/或具有兩個(gè)或更多個(gè)輸出驅(qū)動(dòng)器組(350,360)的從設(shè)備。每個(gè)從設(shè)備接收串行數(shù)據(jù),并提供由該串行數(shù)據(jù)組合的數(shù)據(jù)字。使用通信協(xié)議對(duì)每個(gè)從設(shè)備中的可編程寄存器(380)進(jìn)行編程,以選擇一個(gè)或更多個(gè)從設(shè)備配置。兩個(gè)或更多個(gè)從設(shè)備和/或兩個(gè)或更多個(gè)輸出驅(qū)動(dòng)器組中的每一個(gè),根據(jù)其可編程寄存器所選擇的每個(gè)從設(shè)備配置,相繼地或與兩個(gè)或更多個(gè)從設(shè)備和/或兩個(gè)或更多個(gè)輸出驅(qū)動(dòng)器組中的其他協(xié)同地進(jìn)行更新。文檔編號(hào)G06F3/147GK101208652SQ200680023186公開日2008年6月25日申請(qǐng)日期2006年5月1日優(yōu)先權(quán)日2005年4月29日發(fā)明者保羅·博加德斯,斯蒂芬·布洛佐斯,讓-馬克·伊拉扎巴爾,阿姆里塔·德什潘德,阿爾瑪·安德森申請(qǐng)人:皇家飛利浦電子股份有限公司