午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

具有多設(shè)備消息傳輸?shù)目偩€通信的制作方法

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