具有多設(shè)備消息傳輸?shù)目偩€通信的制作方法
【專利摘要】描述了用于從與具有公共數(shù)據(jù)線的通信總線相連的多個從設(shè)備讀取或者向所述多個從設(shè)備寫入的方法和系統(tǒng)。所述從設(shè)備映射到虛擬設(shè)備地址,并且由主設(shè)備通過用信號通知開始條件和虛擬設(shè)備地址來發(fā)起通信。映射到所述虛擬設(shè)備地址的每個從設(shè)備識別與所述虛擬設(shè)備地址相關(guān)聯(lián)的從設(shè)備中的寄存器,并且在通信內(nèi)的各個預(yù)定時隙中針對其識別出的寄存器或者針對之前分配給從設(shè)備的相應(yīng)虛擬寄存器地址,順序地對總線執(zhí)行讀或?qū)懖僮鳌?br>【專利說明】
具有多設(shè)備消息傳輸?shù)目偩€通信
技術(shù)領(lǐng)域
[0001] 本申請總體設(shè)及一種通信總線,更具體地,設(shè)及一種用于從多個設(shè)備獲得數(shù)據(jù)的 通信協(xié)議。
【背景技術(shù)】
[0002] 存在與總線通信相關(guān)(尤其是針對電路板級忍片間通信)的多個通信協(xié)議。在運些 總線架構(gòu)的一些中,存在單個公共數(shù)據(jù)線,并且協(xié)議對到數(shù)據(jù)線的控制和訪問進行管理。一 個普遍的示例是內(nèi)置集成電路(I化)總線通信協(xié)議。一些開發(fā)工作旨在規(guī)定可W被稱為I3c 的I2c改進版本。
[0003] I2C協(xié)議的缺點在于,如果被讀取或?qū)懭氲南⒌谋忍財?shù)短,則存在顯著的信令開 銷。當(dāng)總線上的主設(shè)備被配置為周期地或頻繁地從多個從設(shè)備讀取傳感器數(shù)據(jù)或其它少量 數(shù)據(jù)時,協(xié)議控制開銷成本會壓倒被讀取或?qū)懭氲臄?shù)據(jù)的尺寸,導(dǎo)致其傳輸速率是僅發(fā)送 原始設(shè)備數(shù)據(jù)且不存在協(xié)議所需的任何控制信息的情況的傳輸速率的3到4倍,運樣是低效 的。
【附圖說明】
[0004] 作為示例,參考示出了本發(fā)明的示例實施例的附圖,在附圖中:
[0005] 圖1示意地示出了多設(shè)備兩線雙向通信總線的一個示例;
[0006] 圖2A和圖2B示出了 I2C兼容總線上的分別用于寫操作的示例結(jié)構(gòu)和用于讀操作的 示例結(jié)構(gòu);
[0007] 圖3示出了示例主設(shè)備和示例從設(shè)備的簡化框圖;
[000引圖4示意地示出了虛擬設(shè)備寄存器和從設(shè)備寄存器之間的別名
[0009] 圖5W流程圖的形式示出了用于在總線上通信的一個示例方法;
[0010] 圖6示意地示出了根據(jù)本申請一個方面的用于讀操作的示例結(jié)構(gòu);
[0011] 圖7示出了用于在具有公共數(shù)據(jù)線的通信總線上在主設(shè)備和多個從設(shè)備之間進行 通信的示例方法;
[0012] 圖8示出了用于在具有公共數(shù)據(jù)線的通信總線上在主設(shè)備和多個從設(shè)備之間進行 通信的另一示例方法;
[0013] 圖9示意地示出了用于虛擬線通信的示例結(jié)構(gòu);
[0014] 圖10W流程圖形式示出了用于虛擬線通信的示例方法;
[001引圖11A和圖11B示出了在單個消息中包括多個單獨從ACK響應(yīng)的示例消息結(jié)構(gòu);W 及
[0016] 圖11C示出了從設(shè)備(而不是主設(shè)備)在讀期間發(fā)送ACK比特的示例消息結(jié)構(gòu)。
[0017] 在不同的附圖中已經(jīng)使用類似的附圖標(biāo)記來表示類似的組件。
【具體實施方式】
[0018] 在一個方面,本申請描述了一種主設(shè)備從與具有一條或多條公共數(shù)據(jù)線的通信總 線相連的多個從設(shè)備讀取或者向所述多個從設(shè)備寫入的方法,其中,每個從設(shè)備具有關(guān)聯(lián) 的從設(shè)備地址。所述方法包括:向每個從設(shè)備提供與任何從設(shè)備地址不同的虛擬設(shè)備地址 由所述主設(shè)備通過在數(shù)據(jù)線上用信號通知通信的開始并接著用信號通知所述虛擬設(shè)備地 址,來在所述總線上發(fā)起通信;從設(shè)備檢測所述通信的開始W及所述虛擬設(shè)備地址,并且作 為響應(yīng),識別與所述虛擬設(shè)備地址相關(guān)聯(lián)的從設(shè)備中的寄存器,并且每個從設(shè)備在所述數(shù) 據(jù)線上通信期間的各個預(yù)定時隙中,針對其識別出的寄存器順序地執(zhí)行總線讀/寫操作;W 及由所述主設(shè)備通過用信號通知所述通信的結(jié)束來終止所述通信。
[0019] 在另一方面,本申請描述了一種總線通信系統(tǒng),包括:主設(shè)備;多個從設(shè)備,每個從 設(shè)備具有關(guān)聯(lián)的從設(shè)備地址,并且存儲了與任何從設(shè)備地址都不同的虛擬設(shè)備地址;通信 總線,具有與所述主設(shè)備和所述多個從設(shè)備互連的一條或多條公共數(shù)據(jù)線。所述主設(shè)備通 過在數(shù)據(jù)線上用信號通知通信的開始并接著用信號通知所述虛擬設(shè)備地址,來在總線上發(fā) 起通信。所述從設(shè)備檢測所述通信的開始W及所述虛擬設(shè)備地址,并且作為響應(yīng),識別與所 述虛擬設(shè)備地址相關(guān)聯(lián)的從設(shè)備中的寄存器,并且在所述數(shù)據(jù)線上通信期間的各個預(yù)定時 隙中,針對其識別出的寄存器順序地執(zhí)行總線讀/寫操作。所述主設(shè)備通過用信號通知所述 通信的結(jié)束來終止所述通信
[0020] 在又一方面,本申請描述了存儲計算機可執(zhí)行程序指令的非瞬時計算機可讀介 質(zhì),所述計算機可執(zhí)行程序指令在被執(zhí)行時將處理器配置為執(zhí)行所描述的方法。
[0021] 本領(lǐng)域普通技術(shù)人員將通過結(jié)合附圖閱讀W下示例的描述,來理解本申請的其他 方面和特征。
[0022] 在本申請中,術(shù)語"和/或"旨在覆蓋列出元素的所有可能組合和子組合,包括列出 元素的單獨的任意一個、任意子組合或所有元素,而不是必須排除附加元素。
[0023] 在本申請中,短語"…或…中的至少一個"旨在覆蓋列出元素的任意一個或多個, 包括列出元素的單獨的任意一個、任意子組合或所有元素,而不是必須排除任何附加元素, 且不是必須要求所有元素。
[0024] 文本使用的術(shù)語"寄存器"旨在被廣義地解釋為可尋址存儲器位置。不應(yīng)將其限制 為特定類型的存儲器類型或者專用集成電路存儲器。盡管在一些情況下,可W使用離散硬 件存儲器組件來實施寄存器,但是在一些情況下可W將寄存器實施在與處理單元或其它控 制集成的存儲器中。在此意義上,對從從設(shè)備中的寄存器讀取或者向所述寄存器寫入的指 代可W表示可W使用存儲器地址來訪問的任意存儲器的特定位置。在一些實施例中,對寄 存器的指代可W表示化k特存儲器位置(字節(jié)),在其它實施中可W是其它尺寸。
[0025] 本文使用的術(shù)語"虛擬設(shè)備"旨在被廣義地解釋為表示可W作為備選設(shè)備地址被 分配給設(shè)備的可編程設(shè)備地址,從而使設(shè)備能夠響應(yīng)于該備選設(shè)備地址。
[00%]術(shù)語"別名數(shù)據(jù)"旨在被廣義地解釋為到虛擬設(shè)備地址的讀取或?qū)懭?,并且使一個 或多個設(shè)備將在與虛擬設(shè)備通信時被訪問的寄存器地址轉(zhuǎn)換為對虛擬設(shè)備地址進行響應(yīng) 的單獨設(shè)備中的相同或其它寄存器地址。盡管結(jié)合I2C總線通信協(xié)議描述了下文的許多實 施例W及利用該協(xié)議的后向兼容,但是將清楚的是,一些實施例可W符合和/或與其它總線 通信協(xié)議(包括由MIPI (移動工業(yè)處理器接口聯(lián)盟)開發(fā)的I3C協(xié)議傳感器總線 (SensorWire))后向兼容。
[0027] 在電子設(shè)備和系統(tǒng)中,總線通信通常用于設(shè)備內(nèi)或設(shè)備間命令和數(shù)據(jù)信令傳輸。 例如,I2C總線是已經(jīng)實際上成為控制總線標(biāo)準(zhǔn)的雙向2線總線。一條線用于時鐘,一條線用 于數(shù)據(jù)。在"I化-bus specification and user manuar',UM10204,Rev.6,Ap;ril 4,2014, NXP Semiconductors N.V.中描述了 1?總線(在下文稱為I2C),其內(nèi)容通過引用合并于此。
[0028] I2C及具有類似結(jié)構(gòu)的變體的缺點在于存在顯著的信令開銷,尤其是在短消息的 情況下。例如,1?結(jié)構(gòu)假設(shè)總線上的主設(shè)備首先利用開始符號(在I2C的情況下,當(dāng)時鐘信號 為高時在數(shù)據(jù)線上的高到低轉(zhuǎn)變)發(fā)起通信。在開始符號之后的是7或10位的從設(shè)備地址, 其后接著指示讀或?qū)懨畹谋忍?。運隨后被從設(shè)備確認(rèn),之后,由主設(shè)備(在寫情況下)或由 從設(shè)備(在讀情況下)將數(shù)據(jù)置于總線上。每個字節(jié)分別被從設(shè)備或主設(shè)備確認(rèn)。為了結(jié)束 通信序列,主設(shè)備發(fā)送停止符號。
[0029] 在許多商業(yè)實施例中,讀和寫操作還指定了特定從設(shè)備中的寄存器地址。運意味 著進一步的開銷和確認(rèn)比特,W及在讀操作情況下的重新開始符號W及從設(shè)備地址的重新 發(fā)送。該通信協(xié)議可W導(dǎo)致需要傳輸超過26比特的報頭數(shù)據(jù)W從寄存器讀取單個信息字 節(jié)。在運種情況下,由于協(xié)議開銷,協(xié)議相對于傳輸效率而言是非常低效的。
[0030] 在一些情況下,主設(shè)備(例如控制器、處理器或其它運樣的集成電路設(shè)備)可W對 多個傳感器設(shè)備進行周期性的采樣,W實現(xiàn)連續(xù)監(jiān)視。對所選數(shù)目的地址的規(guī)則輪詢可W 導(dǎo)致與被讀取的數(shù)據(jù)的量相比的大量傳輸開銷。
[0031] I化提供了在一個消息內(nèi)(即,在一個報頭/報尾內(nèi))讀/寫從設(shè)備中的多個寄存器 的能力。然而,該機制限制于寄存器都被順序地尋址且都在同一從設(shè)備中的情況。
[0032] I化還提供用于使用全局地址0000000來向所有設(shè)備進行一次寫入的機制,但是該 機制主要針對重置總線上的從設(shè)備。該機制針對廣播寫操作的益處限制于利用到相同寄存 器地址的相同數(shù)據(jù)來對所有從設(shè)備進行更新的情況。除了特殊邊角情況W外,其不能用于 讀操作,因為從設(shè)備將覆寫組合的響應(yīng)。
[0033] 現(xiàn)在參照圖1,其示意地示出了兩線雙向總線架構(gòu)10的示例??偩€架構(gòu)10包括連接 到數(shù)據(jù)線14和時鐘線16(例如I2C中的SDA線和SCL線)的至少一個主設(shè)備12。在該示例中僅 示出了一個主設(shè)備12。
[0034] 多個從設(shè)備20(被示出為20a、20b、20c和20d)附著于總線。從設(shè)備20可W包括任意 數(shù)量的可變復(fù)雜度的電子設(shè)備。非限制示例包括A/D和D/A轉(zhuǎn)換器、I/O端口、RAM、邸PROM、智 能卡、調(diào)諧電路、調(diào)制解調(diào)器、溫度傳感器、壓力傳感器、光傳感器、加速度計、巧螺儀、磁力 計、其它傳感器、開關(guān)、驅(qū)動器、時鐘等。
[0035] 在一些示例中,數(shù)據(jù)線14和時鐘線16可W通過上拉電阻器22連接到正電壓源。在 一些實施例中,如果使用特殊通信方案(例如,NRZI (不歸零倒相)、DDR(雙數(shù)據(jù)速率,使用兩 個時鐘沿用于傳輸)或如在MIPI I3C SensorWire總線協(xié)議中描述的Ξ符號編碼(基于兩條 數(shù)據(jù)線發(fā)送信息并且使用任意數(shù)據(jù)改變作為相應(yīng)時鐘改變的指示)),則PM0S晶體管或其它 有源器件21可W布置在上拉電阻器和總線之間,W能夠停用運些電阻器。運使得總線能夠 與更早的集電極開路/漏極開路拓?fù)浜笙蚣嫒?,并且可W與諸如NRZI的更新的技術(shù)前向兼 容。
[0036] 現(xiàn)在參照圖2A和圖2B,其示出了分別用于寫操作50的示例結(jié)構(gòu)和用于讀操作70的 示例結(jié)構(gòu)。運些示例操作50、70示出了 I2C兼容總線上的通信。在陰影部分中示出了主設(shè)備 12(圖1)的貢獻(xiàn),并且在非陰影部分中示出了從設(shè)備20(圖1)的貢獻(xiàn)。
[0037] 在運兩種情況下,應(yīng)注意的是,由主設(shè)備利用開始符號其后接著7比特的從設(shè)備地 址發(fā)起通信。在一些實施例中,I化從設(shè)備地址可W具有10比特,但是通常為7比特的地址。 其它總線通信協(xié)議可W允許其它長度的地址。
[0038] 消息開始于開始事件("S")并且結(jié)束于停止事件("P")。在寄存器讀操作的情況 下,通常會發(fā)出重復(fù)的開始事件("Sr")。
[0039] 在從設(shè)備地址之后是指定主設(shè)備是執(zhí)行讀命令還是寫命令的讀/寫比特。在傳統(tǒng) 示例中,邏輯零指示寫命令,邏輯1指示讀命令。在示例中,在針對寫操作50和讀操作70兩者 的通信的第一階段,使用寫選擇,因為讀操作70設(shè)及首先使用寫命令其后跟著重新開始來 指定特定寄存器,然后執(zhí)行實際的讀操作。
[0040] 被通信尋址的從設(shè)備隨后利用確認(rèn)比特(或者不確認(rèn)比特)來進行響應(yīng)。從設(shè)備通 過將數(shù)據(jù)線拉低來發(fā)送確認(rèn)比特(ACK)。通過將數(shù)據(jù)線維持為高(運在設(shè)備只是不響應(yīng)或者 出現(xiàn)錯誤的情況下發(fā)生)來傳輸"不確認(rèn)"或者"NACK"比特。
[0041] 假設(shè)通信被所尋址的從設(shè)備確認(rèn),則主設(shè)備發(fā)送將被從其讀取或者向其寫入的寄 存器地址。在寫操作50的情況下,寫操作50之后跟著來自于從設(shè)備的ACK比特,并且主設(shè)備 隨后發(fā)送將被寫入到寄存器的數(shù)據(jù)。將被寫入到寄存器的數(shù)據(jù)的每個字節(jié)被來自于從設(shè)備 的ACK比特確認(rèn)。當(dāng)完成了寫操作50時,主設(shè)備發(fā)送停止符號W用信號通知通信的結(jié)束。
[0042] 對于寫操作70,在發(fā)送了寄存器地址并且從從設(shè)備接收到ACK之后,主設(shè)備發(fā)送重 復(fù)的開始符號(在結(jié)束通信之前重復(fù)的發(fā)送開始符號),之后再次發(fā)送從設(shè)備地址。此時,在 從設(shè)備地址之后是讀比特,W用信號通知之前提供的寄存器地址將作為讀命令的對象。運 被從設(shè)備確認(rèn),該從設(shè)備隨后輸出與寄存器地址相對應(yīng)的寄存器內(nèi)容。主設(shè)備隨后利用ACK 或NACK符號確認(rèn)寄存器數(shù)據(jù)。來自于主設(shè)備的ACK符號指示從設(shè)備應(yīng)該輸出寄存器數(shù)據(jù)的 進一步的字節(jié)。當(dāng)執(zhí)行多個讀取操作時,寄存器數(shù)據(jù)的進一步的字節(jié)是按照寄存器尋址順 序的下一個字節(jié),即,在相同消息中主設(shè)備僅可W讀取從設(shè)備的順序?qū)ぶ返募拇嫫?。讀取序 列外寄存器地址將需要主設(shè)備結(jié)束此次通信,并且發(fā)起新的通信來讀取新的寄存器地址。 一旦主設(shè)備讀取了需要的所有數(shù)據(jù),它就發(fā)送NACK比特W及隨后的停止符號。
[0043] 根據(jù)本申請的一個方面,可W由主設(shè)備和參與從設(shè)備實施合并消息機制,W在一 個消息內(nèi)從多個從設(shè)備讀取或者向多個從設(shè)備寫入,從而減少與多設(shè)備讀/寫操作相關(guān)聯(lián) 的開銷。針對運些參與從設(shè)備之中的單獨從設(shè)備的數(shù)據(jù)被復(fù)用進分配給單獨設(shè)備的時隙, W形成單個長消息。在一些實施例中,時間復(fù)用可W基于預(yù)定序列,或者被選為若干可能預(yù) 定序列的集合之一。假設(shè)組合的多設(shè)備消息使用一般的報頭和報尾,則其將看起來像是兼 容的總線通信,例如1?通信。
[0044] 在一些示例實施例中,"虛擬從設(shè)備地址"被定義并被傳輸給參與從設(shè)備。在一些 情況下,虛擬從寄存器或者多個寄存器可W被定義,并且每個虛擬從寄存器映射到或者別 名為相應(yīng)真實從設(shè)備的真實寄存器。通過使用虛擬從設(shè)備地址來進行多設(shè)備消息傳輸,該 機制與現(xiàn)有的總線通信協(xié)議后向兼容。多設(shè)備消息傳輸將看起來像是傳統(tǒng)的總線協(xié)議消息 傳輸,并且非參與從設(shè)備(例如不支持該新功能的經(jīng)典I2C設(shè)備)將忽視多設(shè)備消息(因為多 設(shè)備消息不針對它們)。
[0045] 在下文的示例中,術(shù)語"消息"和"通信"可W互換使用,W表示讀/寫數(shù)據(jù)的多設(shè)備 交換。單個消息或通信開始于開始符號,并且結(jié)束于停止符號。如果消息或通信使用虛擬設(shè) 備地址,并且在時間復(fù)用序列中多于一個從設(shè)備響應(yīng)于該虛擬設(shè)備地址,則該消息或通信 是多設(shè)備通信。
[0046] 現(xiàn)在將參照圖3,其W框圖形式示出了示例主設(shè)備112和示例從設(shè)備120。示例主設(shè) 備112和從設(shè)備120通過具有數(shù)據(jù)線14和時鐘線16的兩線通信總線相連。盡管為了便于示出 在圖3中僅示出了一個主設(shè)備112和一個從設(shè)備120,但是將清楚的是,許多實施例的特征在 于連接到同一通信總線的多個主設(shè)備和/或從設(shè)備。
[0047] 主設(shè)備112包括處理單元118、存儲器116和物理總線接口 114。物理總線接口 114可 W包括用于連接到和操控通信總線的電路。在一些示例中,電路可W包括觸發(fā)器、緩沖器、 毛刺去除電路或既用于正確地在總線上檢測電壓、符號和/或脈沖沿又用于在總線上斷言 符號、電壓和/或脈沖沿的其它組件。在一些示例中,物理總線接口 114允許主設(shè)備112在處 理單元118的操作控制下拉數(shù)據(jù)線14和時鐘線16中的任意一條或兩條,W將其從高DC電壓 轉(zhuǎn)換為低DC電壓或反之亦然。作為示例,主設(shè)備可W在運行在1.8V和3.3V電壓的系統(tǒng)之間 進行轉(zhuǎn)換。
[004引處理單元118可W包括用于控制主設(shè)備112的操作的一個或多個處理器。在一些示 例中,處理單元118可W包括在處理器可執(zhí)行程序指令的控制下進行操作的微處理器或微 控制器,其中,所述指令使處理單元118執(zhí)行經(jīng)由總線對從設(shè)備120進行讀取或?qū)懭氲囊粋€ 或多個操作。存儲器116可W與處理單元118集成或者與其分開。存儲器116可W包括多于一 個存儲器。存儲器116可W包括用于存儲數(shù)據(jù)和/或處理器可執(zhí)行程序指令的易失性和/或 非易失性存儲器位置。
[0049] 從設(shè)備120包括處理單元122、物理總線接口 124和寄存器126。在各實施例中,處理 單元122可W使用實現(xiàn)控制處理的微處理器、微控制器、現(xiàn)場可編程口陣列、EEPR0M、專用集 成電路、離散邏輯組件或其它運種設(shè)備來實現(xiàn)。在許多實施例中,處理單元122包括包含處 理器可執(zhí)行程序指令的集成或離散存儲器,當(dāng)所述指令被執(zhí)行時使處理器執(zhí)行特定功能或 操作,所述特定功能或操作可W包括用于本文描述的總線通信的功能或操作。
[0050] 寄存器126是能夠存儲數(shù)據(jù)的可尋址存儲器位置。一般地,寄存器126的至少一些 部分能夠被主設(shè)備112和/或從設(shè)備120讀取和寫入。
[0051] 從設(shè)備120可W包括用于實施其意圖功能的各種其他組件,例如但不限于用于獲 得之后被存儲在一個或多個寄存器126中的數(shù)據(jù)的各個傳感器(未示出)。
[0052] 現(xiàn)在將參照圖4,其W框圖形式示出了從設(shè)備120(圖3)的寄存器126的示例實施例 W及到"虛擬"設(shè)備的寄存器136的映射。在該示例中,每個字節(jié)大小的數(shù)據(jù)位置具有一個地 址。虛擬設(shè)備寄存器地址是例如地址M、M+l、M+2等。從設(shè)備將數(shù)據(jù)存儲在一個或多個寄存器 中,所述一個或多個寄存器可W被主設(shè)備讀取或者由主設(shè)備寫入。例如,寄存器126示出了 從設(shè)備1寄存器1、從設(shè)備2寄存器2等。
[0053] 在存儲器中的另一指定位置中,從設(shè)備可W存儲一個或多個虛擬設(shè)備寄存器地址 與一個或多個從設(shè)備寄存器之間的對應(yīng)關(guān)系。運可W被稱為"別名"數(shù)據(jù)。別名數(shù)據(jù)可W由 主設(shè)備提供。在該示例中,別名數(shù)據(jù)表明虛擬設(shè)備寄存器地址Μ與從設(shè)備1寄存器1相關(guān)。寄 存器126還可W存儲表明虛擬設(shè)備寄存器地址Μ+1映射到從寄存器地址從設(shè)備1寄存器2的 別名數(shù)據(jù)。在一些實施例中,與其它從設(shè)備相關(guān)的別名數(shù)據(jù)可W或者可W不存儲在從設(shè)備1 中。在一些實施方式中,組合消息可w設(shè)及從一個從設(shè)備傳輸,在其它實施方式中,組合消 息可W設(shè)及從多于一個從設(shè)備傳輸。
[0054] 在另一實施例中,從設(shè)備存儲器可W包含序列數(shù)據(jù)150,其定義了將在單個消息中 被主設(shè)備使用虛擬設(shè)備地址從其讀取或向其寫入的從設(shè)備和/或從設(shè)備寄存器的一個或多 個可選序列。在一些實施例中,序列數(shù)據(jù)150可W定義狀態(tài)機。將在下文描述設(shè)及預(yù)定義序 列的示例實施方式。
[0055] 現(xiàn)在將參照圖5,其W流程圖形式示出了用于在總線上通信的示例方法200,其中, 總線與一個或多個主設(shè)備W及多個從設(shè)備互連。每個從設(shè)備具有其自身的唯一從設(shè)備地 址。在該實施例中,通信總線是1?總線。
[0056] 在操作202,具有兩個或多個從設(shè)備的子集與虛擬設(shè)備地址相關(guān)聯(lián)。虛擬設(shè)備地址 與任何從設(shè)備地址都不同。當(dāng)主設(shè)備希望在一次通信中從子集中的每個從設(shè)備讀取或者向 每個從設(shè)備寫入時,主設(shè)備使用虛擬設(shè)備地址。在一些實施例中,關(guān)聯(lián)可W通過將虛擬設(shè)備 地址寫入子集中的每個從設(shè)備中的指定寄存器來在從設(shè)備的子集中配置。在一些實施例 中,從設(shè)備的子集可W被預(yù)編程W虛擬設(shè)備地址。
[0057] 在一些實施方式中,操作202還可W包括存儲用于一個或多個從設(shè)備的一個或多 個寄存器的別名數(shù)據(jù)。在一些情況下,從設(shè)備將虛擬設(shè)備地址與其存儲器中的特定寄存器 相關(guān)聯(lián),而不需要附加別名數(shù)據(jù)。在其它情況下,從設(shè)備可W存儲將一個或多個虛擬設(shè)備地 址寄存器映射到一個或多個真實從設(shè)備寄存器的別名數(shù)據(jù)。
[005引在操作204,主設(shè)備評估是否需要發(fā)起總線上的通信。如果需要,則在操作206,主 設(shè)備確定是否需要多設(shè)備消息。如果不需要,則實施常規(guī)I2C通信,如操作208所示。但是如 果確定需要多設(shè)備消息,則在操作210,主設(shè)備選擇虛擬設(shè)備控制方案。在一些實例中,主設(shè) 備可W具有可W從中選擇的多于一個控制方案。例如,不同虛擬設(shè)備地址可W對應(yīng)于不同 (可能是重疊的)從設(shè)備子集或從設(shè)備子集中的不同寄存器,并且選擇可W取決于哪些從設(shè) 備需要被讀取或?qū)懭搿T诹硪皇纠校煌摂M設(shè)備地址可W對應(yīng)于讀/寫的不同序列和/ 或用于執(zhí)行多設(shè)備讀/寫操作的不同狀態(tài)機。所述不同序列可W對應(yīng)于從設(shè)備和/或從寄存 器的不同子集。
[0059] 在操作212,主設(shè)備在總線上發(fā)起并執(zhí)行所選擇的通信。主設(shè)備隨后在操作214確 定是否停用總線,如果是,則在操作216停用總線。
[0060] 圖6示意地示出了根據(jù)本申請一個方面的用于讀操作的示例結(jié)構(gòu)250。該示例結(jié)構(gòu) 250基于W下實施例中,其中,至少一個從設(shè)備包含將從設(shè)備寄存器映射到虛擬設(shè)備寄存器 地址的別名數(shù)據(jù)。
[0061] 用于通信的示例結(jié)構(gòu)250開始于由發(fā)起通信的主設(shè)備輸出的開始符號。其后是虛 擬設(shè)備地址和讀/寫比特。在該示例中,出現(xiàn)寫比特,其后是來自于識別出虛擬設(shè)備地址的 從設(shè)備的AO(比特。應(yīng)注意,在子集中的所有從設(shè)備(即,識別出虛擬設(shè)備地址的從設(shè)備)提 供ACK回復(fù)。也就是說,子集中的每個從設(shè)備將數(shù)據(jù)線拉低。如果子集中的設(shè)備之一不操作, 則只要子集中的從設(shè)備中的至少一個從設(shè)備拉低了數(shù)據(jù)線,就不能檢測到確認(rèn)虛擬設(shè)備地 址的失敗。
[0062] 在ACK之后,由主設(shè)備提供虛擬寄存器地址。虛擬寄存器地址被子集中的從設(shè)備接 收,該從設(shè)備之后查詢別名映射數(shù)據(jù)(或序列選擇邏輯)W確定哪個真實從寄存器映射到虛 擬寄存器地址。在虛擬寄存器地址之后,子集中的從設(shè)備發(fā)送ACK(在該示例中,映射到虛擬 設(shè)備地址的子集中的所有從設(shè)備利用ACK進行響應(yīng),而不僅僅是包含與虛擬寄存器地址相 對應(yīng)的真實從寄存器的從設(shè)備,從而保持與1?協(xié)議兼容)。
[0063] 在別名數(shù)據(jù)的情況下,從寄存器映射到虛擬寄存器地址的序列。W運種方式,通過 W最低虛擬寄存器地址開始,主設(shè)備可W在單個消息中連續(xù)地讀取不同從設(shè)備/寄存器中 的每一個,因為它們被映射到虛擬寄存器地址的順序集合。當(dāng)然,假設(shè)主設(shè)備不需要讀取與 低處的虛擬寄存器地址相對應(yīng)的從寄存器(因為重復(fù)讀操作將從開始點開始且根據(jù)地址向 上遞增地讀取連續(xù)寄存器),主設(shè)備可W選擇除數(shù)字上最低的地址W外的虛擬寄存器地址 開始。
[0064] 仍然參照圖6,在來自于從設(shè)備子集的ACK之后,主設(shè)備發(fā)送重復(fù)的開始符號,其后 再次跟著虛擬設(shè)備地址W及讀比特。它被子集中的從設(shè)備確認(rèn),該從設(shè)備之后按照根據(jù)別 名數(shù)據(jù)的順序,開始從別名的從設(shè)備寄存器提供數(shù)據(jù)。具體地,與更早之前在通信中提供的 虛擬寄存器地址相對應(yīng)的從設(shè)備寄存器被讀取,并且其內(nèi)容被置于總線上。如果主設(shè)備意 圖繼續(xù)按照順序讀取從設(shè)備寄存器,則主設(shè)備利用ACK進行響應(yīng)。作為子集的一部分的從設(shè) 備明白運意味著第一讀取的結(jié)束,并且遞增內(nèi)部虛擬寄存器地址。別名信息提供了虛擬寄 存器地址和特定從設(shè)備/從寄存器組合之間的映射。該從設(shè)備之后向總線輸出相應(yīng)的寄存 器數(shù)據(jù)。讀取序列繼續(xù),直到主設(shè)備發(fā)送NACK(使數(shù)據(jù)總線保持為高)并且隨后利用停止符 號終止消息。
[0065] 在一個實施例中,該結(jié)構(gòu)可W被修改為解決所有從設(shè)備向虛擬設(shè)備地址發(fā)送ACK, 從而阻止主設(shè)備知道從設(shè)備之一是否喪失能力的實際問題。在該示例實施例中,該結(jié)構(gòu)在 傳輸?shù)拈_始或結(jié)束附近提供一個或多個字節(jié),其中,每個從設(shè)備按照預(yù)定義序列發(fā)送ACK, 從而用信號通知每個設(shè)備激活且可用。W運種方式,主設(shè)備可W確定是否所有設(shè)備都對消 息作出響應(yīng)。參照圖11A,其示出了消息的一個示例結(jié)構(gòu)252,在所述消息中,從設(shè)備提供了 確認(rèn)的單獨序列。在另一實施例中,主設(shè)備可W發(fā)出組合消息,但是當(dāng)該消息僅針對單個設(shè) 備時,此時ACK條件可W是唯一的。
[0066] 在其它實施例中,來自于每個單獨設(shè)備的響應(yīng)中的比特(例如每個響應(yīng)中的第一 個比特或最后一個比特)將表明該設(shè)備是否確認(rèn)了虛擬設(shè)備地址。圖11B示出了具有運種特 征的消息的示例結(jié)構(gòu)254。相比于將組合的ACK響應(yīng)添加到報頭中,該結(jié)構(gòu)可W更簡單地實 現(xiàn)。在一些實施例中,讀序列中的主ACK比特可W被從ACK比特所替代。
[0067] 在另一實施例中,如圖11C中所示,在讀命令期間,在從一從設(shè)備執(zhí)行了讀取之后, ACK比特的驅(qū)動器可W是該從設(shè)備而不是主設(shè)備。運在使用有限預(yù)編程序列來控制讀取的 情況下仍然可W用于消息的結(jié)束,因為從設(shè)備將知道最后的設(shè)備何時進行了響應(yīng)或者最后 的寄存器何時被讀取。因此,不需要主設(shè)備發(fā)送NACK,從而禁用設(shè)備發(fā)送任何更多的數(shù)據(jù)。 此外,在一般情況下,從設(shè)備將需要來自于主設(shè)備的NACK,W停止發(fā)送寄存器數(shù)據(jù)并且保證 主設(shè)備能夠發(fā)送停止ΓΡ")符號。在該實施例中,可W從在讀取序列中設(shè)及的每個設(shè)備獲得 唯一ACK值,而不需要向讀取序列添加額外比特。在一些情況下,,為了后向兼容,最后的ACK 時隙可W用信號通知為NACK。
[0068] 現(xiàn)在參照圖7,其示出了用于在具有公共數(shù)據(jù)線的通信總線上在一個或多個主設(shè) 備和多個從設(shè)備之間進行通信的一個示例方法300。方法300使用結(jié)合圖6描述的多設(shè)備通 信結(jié)構(gòu)250。也就是說,方法300使用別名數(shù)據(jù)來將虛擬設(shè)備寄存器映射到對應(yīng)的從設(shè)備寄 存器。
[0069] 如操作302中所示,虛擬設(shè)備地址V被存儲在從設(shè)備的子集中。在一個實施例中,子 集包括總線上的所有從設(shè)備,但是在其它實施例中,子集包括少于總線上的所有從設(shè)備的 一個或多個從設(shè)備。作為子集一部分的每個從設(shè)備被配置為對其自身的從設(shè)備地址(Si、 S2、一、Sn)和虛擬設(shè)備地址(V)進行響應(yīng)。別名數(shù)據(jù)被存儲在子集中的每個從設(shè)備內(nèi)。在一些 實施例中,只有與特定從設(shè)備本地的從設(shè)備寄存器相關(guān)的別名數(shù)據(jù)被存儲在該從設(shè)備中。 在該實施例中,別名數(shù)據(jù)將一系列順序虛擬設(shè)備地址映射到從設(shè)備地址。作為示例,別名數(shù) 據(jù)可W指定:
[0070]
[0071] 在操作304,主設(shè)備利用開始符號其后跟著虛擬設(shè)備地址V在總線上發(fā)起通信。主 設(shè)備之后指示讀或?qū)?,從對?yīng)于虛擬設(shè)備地址的從設(shè)備接收ACK,并且指示第一虛擬寄存器 地址。在許多實施例中,虛擬寄存器地址可W是虛擬寄存器地址的序列中的第一地址(例 如,在W上示例中是0000110)。其后再次跟著來自從設(shè)備的ACK。
[0072] 操作306和308反映出,如果主設(shè)備正在執(zhí)行讀操作,則主設(shè)備將發(fā)送重復(fù)的開始 符號,并接著發(fā)送虛擬設(shè)備地址,如使用1?協(xié)議的典型實施。
[0073] 在操作310,主設(shè)備執(zhí)行多設(shè)備讀或?qū)懖僮?。操?10首先包括參照操作304的針對 虛擬寄存器地址執(zhí)行讀/寫,如操作312所示。如果主設(shè)備正在執(zhí)行讀操作,則在操作312,具 有映射到虛擬寄存器地址的從寄存器的從設(shè)備在該時隙將來自于該寄存器的數(shù)據(jù)輸出到 總線上。如果主設(shè)備正在執(zhí)行寫操作,則在操作312,主設(shè)備在該時隙將要被寫入的數(shù)據(jù)放 置到總線上,并且相應(yīng)的從設(shè)備將該數(shù)據(jù)寫入映射到該虛擬寄存器地址的從寄存器。在一 些實施例中,在操作310期間僅尋址單個設(shè)備,其優(yōu)點在于,可W在仍然從該單個設(shè)備獲得 唯一 ACK響應(yīng)的同時快速地執(zhí)行從多個獨立寄存器位置的讀或?qū)憽?br>[0074] 在操作314,主設(shè)備確定多設(shè)備讀/寫操作是否完成。如果沒有完成,則在操作316, 虛擬寄存器地址在主設(shè)備和從設(shè)備中自動遞增,主設(shè)備發(fā)送ACK(在讀的情況下),并且重復(fù) 操作312,但是針對遞增的虛擬設(shè)備地址,其別名數(shù)據(jù)可W映射到不同從設(shè)備和不同從設(shè)備 寄存器。
[0075] 當(dāng)完成了多設(shè)備讀操作時,主設(shè)備向總線輸出NACK和停止符號W用信號通知消息 的結(jié)束。類似地,在多設(shè)備寫操作結(jié)束時,最后的從設(shè)備將發(fā)送ACK并且用信號通知寫序列 的結(jié)束。
[0076] 在另一示例實施例中,虛擬設(shè)備地址可W與從設(shè)備/寄存器的預(yù)定義序列相關(guān)聯(lián), 從而當(dāng)主設(shè)備從虛擬設(shè)備地址讀取或者向虛擬設(shè)備地址寫入時,其被理解為按照預(yù)定義時 間復(fù)用序列調(diào)用與關(guān)聯(lián)的從設(shè)備/寄存器相關(guān)的一系列關(guān)聯(lián)順序讀/寫操作。在該實施例 中,單個消息可W包括混合在一起的從多個設(shè)備讀的操作和向多個設(shè)備寫的操作兩者。
[0077] 在另一示例實施例中,序列可W具有與序列的每個階段/步驟相關(guān)聯(lián)的虛擬設(shè)備 寄存器,即,相應(yīng)虛擬設(shè)備寄存器可W映射或別名到要在序列的每個步驟中被讀取或?qū)懭?的從設(shè)備寄存器。因此,主設(shè)備可W通過指定與序列的中間步驟/階段相對應(yīng)的虛擬設(shè)備寄 存器來從序列的一部分讀取或者向序列的一部分寫入。多設(shè)備讀/寫操作之后將繼續(xù)從該 步驟/階段繼續(xù)進行序列的剩余部分。在一些實施例中,可W忽略I2C讀/寫比特,并且可W 通過適當(dāng)?shù)爻跏蓟瘡脑O(shè)備來確定讀或?qū)懖僮鳎瑥亩鴮崿F(xiàn)在單個消息中的讀和寫操作的組 厶 1=1 〇
[0078] 在另一示例實施例中,可W針對總線上的設(shè)備預(yù)定義多于一個預(yù)定義序列。兩個 或更多序列可W設(shè)及不同從設(shè)備、不同順序的相同從設(shè)備、不同從設(shè)備寄存器、不同順序的 相同從設(shè)備寄存器或者它們的任意重疊組合。每個序列具有關(guān)聯(lián)虛擬設(shè)備地址,使得主設(shè) 備可W通過使用特定序列的關(guān)聯(lián)虛擬設(shè)備地址來選擇和發(fā)起針對該序列的讀/寫操作。
[0079] 針對一序列的順序讀/寫操作的實施包括向包括在該序列中的從設(shè)備子集中的每 個從設(shè)備提供相應(yīng)的虛擬設(shè)備地址。每個從設(shè)備還存儲數(shù)據(jù)或信息,該數(shù)據(jù)或信息指示從 設(shè)備要對讀/寫操作進行響應(yīng)的時隙或順序。例如,在一個實施例中,每個從設(shè)備可W被分 配指示其將進行響應(yīng)的時隙的序數(shù),并且從設(shè)備隨后均對針對被尋址到虛擬設(shè)備地址的通 信中的時隙的數(shù)目進行計數(shù),W確定它們將在哪個時隙中進行響應(yīng)。
[0080] 現(xiàn)在參照圖8,其W流程圖形式示出了用于在具有公共數(shù)據(jù)線的通信總線上在主 設(shè)備和多個從設(shè)備之間進行通信的示例方法400。所述方法設(shè)及指定與從設(shè)備和/或從設(shè)備 寄存器的預(yù)定義序列相對應(yīng)的虛擬設(shè)備地址。
[0081 ]如操作402所示,針對至少一個序列,關(guān)聯(lián)虛擬設(shè)備地址V存儲在所述序列所設(shè)及 的從設(shè)備的子集中。在一些實例中,序列可W包括與單獨從設(shè)備寄存器相關(guān)的指定的虛擬 設(shè)備寄存器,作為用于指定序列的開始點而不是序列的第一設(shè)備/寄存器的機制。指示從設(shè) 備要在哪個順序或時序中進行響應(yīng)的數(shù)據(jù)也被存儲在子集中的每個從設(shè)備中。在一些實施 例中,順序數(shù)據(jù)還指示要在該時隙中被讀取或被寫入的特定從設(shè)備本地的特定從設(shè)備寄存 器。
[0082] 在操作404,主設(shè)備利用開始符號其后跟著虛擬設(shè)備地址V在總線上發(fā)起通信。主 設(shè)備之后指示讀或?qū)?,并且從對?yīng)于虛擬設(shè)備地址的從設(shè)備接收ACK。
[0083] 在一些實施例中,主設(shè)備之后還可W指示第一虛擬寄存器地址,W指定序列中的 開始點而不是第一寄存器/設(shè)備。
[0084] 將清楚的是,在一些實施例中,虛擬設(shè)備地址可W與設(shè)及兩個或更多序列的順序 讀/寫操作相關(guān)聯(lián),并且在通信中指定的虛擬設(shè)備寄存器可W指示哪個序列正在被主設(shè)備 調(diào)用。也就是說,每個序列可W與虛擬設(shè)備寄存器地址相關(guān)聯(lián),并且虛擬設(shè)備地址僅用信號 通知順序讀/寫操作要被執(zhí)行。
[0085] 在一些實施例中,在跟著虛擬從設(shè)備地址的序列中發(fā)送的第一值將指示要讀取寄 存器的哪個序列,從而使多個序列能夠被發(fā)起,從而使單個虛擬設(shè)備地址發(fā)起若干序列。
[0086] 如操作406和408所示,如果在已經(jīng)指定了虛擬設(shè)備寄存器地址的情況下主設(shè)備正 在執(zhí)行讀操作,則主設(shè)備可w發(fā)送重復(fù)的開始符號,并接著發(fā)送虛擬設(shè)備地址。如果沒有指 定虛擬設(shè)備寄存器地址,則主設(shè)備可W發(fā)起讀操作,而不必要求發(fā)送重復(fù)的開始符號。
[0087] 在操作410,主設(shè)備執(zhí)行多設(shè)備讀或?qū)懖僮?。操?10首先包括針對所選序列中的 第一從設(shè)備/寄存器(或在一些實施例中,針對與關(guān)聯(lián)于在操作404中參考的虛擬寄存器地 址的序列的階段相對應(yīng)的從設(shè)備/寄存器)執(zhí)行讀/寫操作。隨后在通信的各個時隙中按照 由所選序列預(yù)定義的順序依次執(zhí)行每個讀/寫操作。
[0088] 如操作412或414所示,在序列中設(shè)及的從設(shè)備監(jiān)視總線上的通信W識別它們應(yīng)該 在何時進行響應(yīng)。在一些實施例中,運可W包括維持時隙的計數(shù),并且將計數(shù)與指示分配給 該從設(shè)備/寄存器的時隙的存儲的數(shù)據(jù)進行比較。
[0089] 在操作410執(zhí)行順序讀或?qū)憰r,主設(shè)備確定多設(shè)備讀/寫操作是否完成(其可W或 者可W不對應(yīng)于序列的結(jié)束,例如如果主設(shè)備不意圖讀/寫整個序列)。如果多設(shè)備讀/寫操 作完成,則主設(shè)備向總線輸出停止符號W結(jié)束消息。
[0090] 可W清楚的是,本發(fā)明方法與現(xiàn)有的I2C協(xié)議后向兼容,同時擴展了對設(shè)備和寄存 器尋址的方式。運樣實現(xiàn)了在許多使用情況下的傳輸效率的提高。后向兼容確?,F(xiàn)有設(shè)備 可W與增強設(shè)備一樣附著于相同總線,并且可W使用現(xiàn)有測試設(shè)備(例如總線協(xié)議分析 器),而不需要對總線擴展操作的測試、調(diào)試和驗證操作進行更新。
[0091] 在一些實施例中,向從設(shè)備寫入或從從設(shè)備讀取的信息量可W是單個比特。字長 為單個比特那么短的數(shù)據(jù)分組可W用于控制繼電器、致動器或用于從開關(guān)讀取控制控制 值。在其它情況下,單個比特可W用作虛擬"線",從而使用兩條線來連接多個實體W傳達(dá)多 條信息。作為示例,經(jīng)常使用多條線來進行控制。運樣增加了線的數(shù)目W及系統(tǒng)的物理大 小,并且對連接兩個或更多設(shè)備所需要的I/O引腳的可用數(shù)目提出了要求。通過使用單個比 特作為信息承載容器,值可W被視為來自于在兩個或更多設(shè)備之間的虛擬線的樣本,從而 簡化了運種系統(tǒng)的編程和物理布局。在許多情況下,由于板的尺寸更小且需要的端子數(shù)目 更少,運種系統(tǒng)的成本將顯著降低。在一些情況下,同時地執(zhí)行一個值與另一個值的更新或 讀取是重要的,從而經(jīng)常需要使用多條線。然而,如果接收到的消息存儲在緩沖器中,則可 W例如在消息的結(jié)束同時更新所有的值。類似地,如果采樣的值被存儲在緩沖器中,則可W 同時對若干值進行采樣,并且避免在采樣事件之間的任何偏移。應(yīng)注意,有線〇R、NRZI和類 似信令傳輸方案不排除同時的多設(shè)備信令傳輸。因此,單個比特承載信息可W真實地表示 同時來自多個設(shè)備的信令,從而解決與多個驅(qū)動器相關(guān)聯(lián)的任何問題。在該方面,虛擬線用 作信息的真實隧道。作為示例,多個設(shè)備通常被合并在公共中斷信令線上。該線可W在之后 被移除,并且作為新的信令方案的一部分,從而節(jié)省成本和空間。
[0092] 圖9示出了如上所述的基于虛擬線的消息的示例結(jié)構(gòu)500。圖10W流程圖形式示出 了如上所述的使用虛擬線協(xié)議在具有公共數(shù)據(jù)線的通信總線上在主設(shè)備和多個從設(shè)備之 間進行通信的示例處理550。示例處理550的特征在于讀/寫操作的循環(huán)560,其中,每條虛擬 線映射到相應(yīng)從設(shè)備中的相應(yīng)寄存器位置。
[0093] 將清楚的是,根據(jù)本申請的處理和系統(tǒng)可W在多個計算設(shè)備中實現(xiàn),包括但不限 于服務(wù)器、合適編程的通用計算機和移動設(shè)備。處理可W通過軟件來實現(xiàn),該軟件包含用于 將處理器或多個處理器配置為執(zhí)行本文所述功能的指令。軟件指令可W存儲在任何合適的 非瞬時計算機可讀存儲器上,包括〔0、341、1?01、閃存等。
[0094] 將理解的是,可W使用標(biāo)準(zhǔn)計算機編程技術(shù)和語言來實現(xiàn)本文描述的設(shè)備W及實 現(xiàn)所描述的方法/處理的模塊、例程、進程、線程或其他軟件組件。本申請不限于特定處理 器、計算機語言、計算機編程慣例、數(shù)據(jù)結(jié)構(gòu)、其他運種實現(xiàn)細(xì)節(jié)。本領(lǐng)域技術(shù)人員將認(rèn)識 到,可W將所描述的處理實現(xiàn)為存儲在易失性或非易失性存儲器中的計算機可執(zhí)行代碼的 一部分、專用集成忍片(ASIC)的一部分等。
[0095] 可W對所述實施例進行某種調(diào)整和修改。因此,上文討論的實施例被視為是示意 性的而不是限制性的。
【主權(quán)項】
1. 一種主設(shè)備從與具有公共數(shù)據(jù)線的通信總線相連的多個從設(shè)備讀取或者向所述多 個從設(shè)備寫入的方法,其中,每個從設(shè)備具有關(guān)聯(lián)的從設(shè)備地址,所述方法包括: 向每個從設(shè)備提供與任何從設(shè)備地址都不同的虛擬設(shè)備地址; 由所述主設(shè)備通過在數(shù)據(jù)線上用信號通知通信的開始并接著用信號通知所述虛擬設(shè) 備地址,來在所述總線上發(fā)起通信; 所述從設(shè)備檢測所述通信的開始以及所述虛擬設(shè)備地址,并且作為響應(yīng), 識別與所述虛擬設(shè)備地址相關(guān)聯(lián)的從設(shè)備中的寄存器,并且 每個從設(shè)備在通信內(nèi)的相應(yīng)預(yù)定時隙中針對其識別出的寄存器,在所述數(shù)據(jù)線上順序 地執(zhí)行總線讀/寫操作;以及 由所述主設(shè)備通過用信號通知所述通信的結(jié)束來終止所述通信。2. 根據(jù)權(quán)利要求1所述的方法,其中,向每個從設(shè)備提供所述虛擬設(shè)備地址包括:所述 主設(shè)備向所述從設(shè)備中的指定寄存器寫入所述虛擬設(shè)備地址。3. 根據(jù)權(quán)利要求2所述的方法,其中,寫入所述虛擬設(shè)備地址還包括:寫入相應(yīng)虛擬寄 存器地址,其中,所述相應(yīng)虛擬寄存器地址被映射到所述識別出的寄存器。4. 根據(jù)權(quán)利要求1所述的方法,其中,每個從設(shè)備存儲針對所述虛擬設(shè)備地址的相應(yīng)虛 擬寄存器地址與所述從設(shè)備中的識別出的寄存器之間的關(guān)聯(lián),并且其中,識別包括讀取所 述關(guān)聯(lián)以識別所述寄存器。5. 根據(jù)權(quán)利要求1所述的方法,其中,每個從設(shè)備包含別名數(shù)據(jù),所述別名數(shù)據(jù)將所述 從設(shè)備中的從設(shè)備寄存器地址映射到相應(yīng)虛擬設(shè)備寄存器地址。6. 根據(jù)權(quán)利要求1所述的方法,其中,發(fā)起還包括:所述主設(shè)備在所述數(shù)據(jù)線上在所述 虛擬設(shè)備地址之后用信號通知虛擬設(shè)備寄存器地址。7. 根據(jù)權(quán)利要求6所述的方法,其中,每個從設(shè)備包含別名數(shù)據(jù),所述別名數(shù)據(jù)將所述 從設(shè)備中的從設(shè)備寄存器地址映射到相應(yīng)虛擬設(shè)備寄存器地址,并且其中識別與所述虛擬 設(shè)備地址相關(guān)聯(lián)的從設(shè)備中的寄存器包括:所述從設(shè)備之一確定所述數(shù)據(jù)線上的所述虛擬 設(shè)備寄存器地址對應(yīng)于映射到所述從設(shè)備的從設(shè)備寄存器地址的相應(yīng)虛擬設(shè)備寄存器地 址。8. 根據(jù)權(quán)利要求7所述的方法,其中,所述虛擬設(shè)備寄存器地址是順序的,并且其中每 個從設(shè)備順序地執(zhí)行總線讀/寫操作包括:從由所述主設(shè)備在所述數(shù)據(jù)線上用信號通知的 虛擬設(shè)備寄存器地址開始,按照虛擬設(shè)備寄存器地址的序列的順序來執(zhí)行所述總線讀/寫 操作。9. 根據(jù)權(quán)利要求8所述的方法,其中,當(dāng)所述主設(shè)備在每個讀操作之后輸出確認(rèn)符號 時,所述總線讀操作繼續(xù)所述序列,直到所述主設(shè)備輸出不確認(rèn)和停止符號為止。10. 根據(jù)權(quán)利要求8所述的方法,其中,當(dāng)相應(yīng)從設(shè)備在每個寫操作之后輸出確認(rèn)符號 時,所述總線寫操作繼續(xù)所述序列,直到所述主設(shè)備輸出停止符號為止。11. 根據(jù)權(quán)利要求1所述的方法,其中,每個識別出的寄存器與相應(yīng)虛擬設(shè)備寄存器地 址相關(guān)聯(lián),所述虛擬設(shè)備寄存器地址是順序的,并且其中所述序列包括:與順序的虛擬設(shè)備 寄存器地址依次相對應(yīng)的從設(shè)備寄存器的預(yù)定序列。12. 根據(jù)權(quán)利要求1所述的方法,其中,提供包括:向每個從設(shè)備提供多于一個虛擬設(shè)備 地址,并且其中每個虛擬設(shè)備地址與從設(shè)備寄存器的序列相關(guān)聯(lián),并且其中所述方法還包 括:所述主設(shè)備在所述虛擬設(shè)備地址之間進行選擇以開始讀操作和寫操作的相應(yīng)序列。13. 根據(jù)權(quán)利要求1所述的方法,其中,在沒有在各個讀/寫總線操作之間的開始符號或 重復(fù)的開始符號的情況下,執(zhí)行所述讀/寫總線操作的序列。14. 根據(jù)權(quán)利要求1所述的方法,其中,從從設(shè)備讀取的每個數(shù)據(jù)分組在來自于作為所 述數(shù)據(jù)分組的源的所述從設(shè)備的確認(rèn)比特之后或之前,以唯一地確定所述從設(shè)備是否正在 參與通信序列。15. -種總線通信系統(tǒng),包括: 主設(shè)備; 多個從設(shè)備,每個從設(shè)備具有關(guān)聯(lián)的從設(shè)備地址,并且存儲了與任何從設(shè)備地址都不 同的虛擬設(shè)備地址;以及 通信總線,具有將所述主設(shè)備和所述多個從設(shè)備互連的公共數(shù)據(jù)線, 其中,所述主設(shè)備通過在數(shù)據(jù)線上用信號通知通信的開始并接著用信號通知所述虛擬 設(shè)備地址,來在總線上發(fā)起通信, 其中,所述從設(shè)備檢測所述通信的開始以及所述虛擬設(shè)備地址,并且作為響應(yīng), 識別與所述虛擬設(shè)備地址相關(guān)聯(lián)的從設(shè)備中的寄存器,并且在通信內(nèi)的相應(yīng)預(yù)定時隙 中針對其識別出的寄存器,在所述數(shù)據(jù)線上順序地執(zhí)行總線讀/寫操作,以及 其中,所述主設(shè)備通過用信號通知所述通信的結(jié)束來終止所述通信。16. 根據(jù)權(quán)利要求15所述的系統(tǒng),其中,每個從設(shè)備在所述從設(shè)備中的指定寄存器中存 儲所述虛擬設(shè)備地址,以保持所述虛擬設(shè)備地址。17. 根據(jù)權(quán)利要求16所述的系統(tǒng),其中,每個從設(shè)備存儲相應(yīng)虛擬寄存器地址,并且其 中,在每個從設(shè)備中,所述相應(yīng)虛擬寄存器地址被映射到所述識別出的寄存器。18. 根據(jù)權(quán)利要求16所述的系統(tǒng),其中,每個從設(shè)備存儲針對所述虛擬設(shè)備地址的相應(yīng) 虛擬寄存器地址與所述從設(shè)備中的識別出的寄存器之間的關(guān)聯(lián),并且其中,識別包括讀取 所述關(guān)聯(lián)以識別所述寄存器。19. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中,每個從設(shè)備包含別名數(shù)據(jù),所述別名數(shù)據(jù)將所 述從設(shè)備中的從設(shè)備寄存器地址映射到相應(yīng)虛擬設(shè)備寄存器地址。20. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述主設(shè)備還用于:在所述數(shù)據(jù)線上在所述虛 擬設(shè)備地址之后用信號通知虛擬設(shè)備寄存器地址。21. 根據(jù)權(quán)利要求20所述的系統(tǒng),其中,每個從設(shè)備包含別名數(shù)據(jù),所述別名數(shù)據(jù)將所 述從設(shè)備中的從設(shè)備寄存器地址映射到相應(yīng)虛擬設(shè)備寄存器地址,并且其中所述從設(shè)備之 一確定所述數(shù)據(jù)線上的所述虛擬設(shè)備寄存器地址對應(yīng)于映射到與所述從設(shè)備的從設(shè)備寄 存器地址的相應(yīng)虛擬設(shè)備寄存器地址。22. 根據(jù)權(quán)利要求21所述的系統(tǒng),其中,所述虛擬設(shè)備寄存器地址是順序的,并且其中 每個從設(shè)備通過以下操作來順序地執(zhí)行總線讀/寫操作:從由所述主設(shè)備在所述數(shù)據(jù)線上 用信號通知的虛擬設(shè)備寄存器地址開始,按照虛擬設(shè)備寄存器地址的序列的順序來執(zhí)行所 述總線讀/寫操作。23. 根據(jù)權(quán)利要求22所述的系統(tǒng),其中,當(dāng)所述主設(shè)備在每個讀操作之后輸出確認(rèn)符號 時,所述總線讀操作繼續(xù)所述序列,直到所述主設(shè)備輸出不確認(rèn)和停止符號為止。24. 根據(jù)權(quán)利要求22所述的系統(tǒng),其中,當(dāng)所述從設(shè)備在每個操作之后輸出確認(rèn)符號 時,所述總線寫操作繼續(xù)所述序列,直到所述主設(shè)備輸出停止符號為止。25. 根據(jù)權(quán)利要求15所述的系統(tǒng),其中,每個識別出的寄存器與相應(yīng)虛擬設(shè)備寄存器地 址相關(guān)聯(lián),所述虛擬設(shè)備寄存器地址是順序的,并且其中所述序列包括:與順序的虛擬設(shè)備 寄存器地址依次相對應(yīng)的從設(shè)備寄存器的預(yù)定序列。26. 根據(jù)權(quán)利要求15所述的系統(tǒng),其中,每個從設(shè)備還存儲多于一個虛擬設(shè)備地址,并 且其中每個虛擬設(shè)備地址與從設(shè)備寄存器的序列相關(guān)聯(lián),并且其中所述主設(shè)備在所述每個 虛擬設(shè)備地址之間進行選擇以開始相應(yīng)的讀序列或?qū)懶蛄小?7. 根據(jù)權(quán)利要求15所述的系統(tǒng),其中,在沒有在各個讀/寫總線操作之間的開始符號 或重復(fù)的開始符號的情況下,執(zhí)行所述讀/寫總線操作的序列。28. 根據(jù)權(quán)利要求15所述的系統(tǒng),其中,對在總線上用信號通知從設(shè)備的存在的確認(rèn)比 特之后或之前的每個數(shù)據(jù)分組執(zhí)行讀總線操作的序列。29. -種存儲處理器可執(zhí)行指令的非瞬時處理器可讀介質(zhì),所述處理器可執(zhí)行指令在 被執(zhí)行時使一個或多個處理器執(zhí)行根據(jù)權(quán)利要求1所述的方法。
【文檔編號】G06F13/362GK106066834SQ201610247791
【公開日】2016年11月2日
【申請日】2016年4月20日 公開號201610247791.7, CN 106066834 A, CN 106066834A, CN 201610247791, CN-A-106066834, CN106066834 A, CN106066834A, CN201610247791, CN201610247791.7
【發(fā)明人】杰恩斯·克里斯蒂安·波爾森
【申請人】黑莓有限公司