專利名稱:經(jīng)總線連接進(jìn)行隨機(jī)訪問的方法和數(shù)據(jù)結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及經(jīng)總線連接進(jìn)行隨機(jī)訪問的方法和數(shù)據(jù)結(jié)構(gòu)。
背景技術(shù):
總線連接是一種經(jīng)由多條導(dǎo)線或線路互連多個(gè)設(shè)備的方法,其中多條導(dǎo)線或線路至少部分地被多個(gè)設(shè)備共用??偩€連接可以是串行的或并行的,例如,信息可以在單條數(shù)據(jù)線或多條并行數(shù)據(jù)線上被發(fā)送??偩€連接可包括時(shí)鐘線,用于確定在某一時(shí)間間隔內(nèi)發(fā)送信息的速率??偩€連接也可包括多條專用線,例如用于握手、芯片選擇等。多種標(biāo)準(zhǔn)化的總線連接是已知的,特別是I2C總線,其是一種串行總線連接。
I2C總線是用于IC間通信的雙向2-線總線。主設(shè)備控制每次與最多1024個(gè)從設(shè)備中的一個(gè)單個(gè)從設(shè)備的數(shù)據(jù)傳送。對從設(shè)備的最大數(shù)量的限制是I2C總線標(biāo)準(zhǔn)所定義的地址字段(10個(gè)位)的大小的結(jié)果。在I2C總線標(biāo)準(zhǔn)中規(guī)定了單個(gè)設(shè)備的地址,并且提供了明確標(biāo)識該設(shè)備的手段。
在器具和設(shè)備中廣泛使用EEPROM(Electric Erasable and ProgrammableRead Only Memory(電可擦可編程只讀存儲器)的縮略詞)來存儲程序或數(shù)據(jù),其中,即使當(dāng)沒有可用的電源時(shí)也必須保留所存儲的信息。利用I2C總線接口來讀和寫數(shù)據(jù)的多種EEPROM設(shè)備是容易得到的。遵循I2C總線標(biāo)準(zhǔn)對EEPROM內(nèi)容進(jìn)行訪問必須是順序的。一些EEPROM制造商使用專有機(jī)制,其使主設(shè)備隨機(jī)訪問多達(dá)EEPROM的一個(gè)存儲頁(128字節(jié))。然而,例如在ASIC(Application Specific Integrated Circuit(專用集成電路)的縮略詞)和FPGA(Field Programmable Gate Array(現(xiàn)場可編程門陣列)的縮略詞)中嵌入式EEPROM的大小已經(jīng)顯著增加了,并且由于標(biāo)準(zhǔn)中規(guī)定的地址空間限制,從而難以處理通過I2C總線對該存儲器的內(nèi)容的隨機(jī)訪問。
I2C總線的物理層通常由以并行方式互連所有設(shè)備的兩條導(dǎo)線組成。串行數(shù)據(jù)線(SDA)載有要以串行方式發(fā)送的數(shù)據(jù),以及串行時(shí)鐘(SCL)提供時(shí)鐘信號并確定數(shù)據(jù)數(shù)率。每個(gè)時(shí)鐘周期允許傳送一個(gè)單個(gè)位。通過兩條線上的預(yù)定邏輯電平來建立連接的開始(START)和停止(STOP)條件。主設(shè)備是發(fā)起總線上的數(shù)據(jù)傳送、產(chǎn)生用于當(dāng)前連接的時(shí)鐘信號和終止該傳送的設(shè)備。從設(shè)備是被主設(shè)備尋址的設(shè)備。每個(gè)設(shè)備由唯一地址識別,并且如發(fā)送器或接收器一樣進(jìn)行操作。發(fā)送器是將數(shù)據(jù)發(fā)送到總線的設(shè)備。接收器是從總線接收數(shù)據(jù)的設(shè)備。在下面的描述中,I2C總線上的邏輯電平分別被稱作為“高”和“低”或者“1”和“0”。I2C總線信號的絕對電平可以根據(jù)應(yīng)用而變化。由于I2C總線的雙向特性,設(shè)備的輸入和輸出端口必須是三態(tài)端口。三態(tài)端口在用于發(fā)送的低阻抗時(shí)可有效采取高電平或低電平,或者表示用于接收數(shù)據(jù)的、到總線的高阻抗。在備用或未使用狀態(tài)下,通過適當(dāng)?shù)钠醚b置,將時(shí)鐘和數(shù)據(jù)線拉到預(yù)定電平,并且連接到總線的所有設(shè)備都表示到總線的高阻抗。通過在時(shí)鐘線(SCL)保持處于高狀態(tài)的同時(shí)數(shù)據(jù)線(SDA)的從高到低轉(zhuǎn)變來建立開始條件。開始條件必須總是先于用于數(shù)據(jù)傳輸?shù)娜魏蚊?。通過在時(shí)鐘線(SCL)保持處于高狀態(tài)的同時(shí)數(shù)據(jù)線(SDA)的從低到高轉(zhuǎn)變來建立停止條件。停止條件終止總線主設(shè)備與從設(shè)備之間的通信。由接收設(shè)備產(chǎn)生的確認(rèn)信號(ACK)來指示成功的數(shù)據(jù)傳送。為此,發(fā)送設(shè)備(根據(jù)數(shù)據(jù)傳送的方向,或者是主設(shè)備或者是從設(shè)備)在發(fā)送8位的數(shù)據(jù)之后,釋放SDA線,即設(shè)備端口采取(assume)高阻抗。在第9個(gè)時(shí)鐘脈沖期間,接收器有效地拉低SDA線,以確認(rèn)8位數(shù)據(jù)的接收。任何進(jìn)一步的糾錯(cuò)將在設(shè)備中獨(dú)立實(shí)現(xiàn),并且其并不是I2C總線協(xié)議的一部分。接收設(shè)備在時(shí)鐘SCL信號的上升沿采樣SDA線。SDA信號在時(shí)鐘SCL從低到高的轉(zhuǎn)變期間必須是穩(wěn)定的,并且僅當(dāng)SCL線為低時(shí),SDA線上的數(shù)據(jù)必須改變。主設(shè)備可以通過建立開始條件,來發(fā)起與從設(shè)備的數(shù)據(jù)傳送。
下面,給出根據(jù)7位尋址標(biāo)準(zhǔn)的I2C設(shè)備的普通尋址方案。10位尋址也是可用的并更復(fù)雜,但是基本上類似,因此不再對其進(jìn)行詳細(xì)參考。在建立開始條件之后,主設(shè)備在SDA線上發(fā)送從地址。從地址由8位組成7個(gè)最高有效位組成從地址,如在I2C總線標(biāo)準(zhǔn)中規(guī)定的,第8位或最低有效位LSB是讀或?qū)懳?R/W),對于讀操作,該位被設(shè)置為“1”,而對于寫操作,該位被設(shè)置為“0”。如果從設(shè)備識別了在SDA線上發(fā)送的地址與其自身所分配的地址之間的匹配,則它在第9個(gè)位周期內(nèi)在SDA線上產(chǎn)生確認(rèn)信號。
普通寫操作的數(shù)據(jù)傳輸遵循圖1所示的方案。在該圖中,自主設(shè)備到從設(shè)備的傳輸由陰影背景表示,自從設(shè)備到主設(shè)備的傳輸由白背景表示。主設(shè)備產(chǎn)生開始條件S,隨后發(fā)送具有被設(shè)置成“0”的R/W位的從地址、“n”字節(jié)數(shù)據(jù),并且最后產(chǎn)生停止條件P。在數(shù)據(jù)的每個(gè)接收字節(jié)之后的第9個(gè)時(shí)鐘脈沖內(nèi),從設(shè)備產(chǎn)生確認(rèn)信號A。
普通寫操作的數(shù)據(jù)傳送遵循圖2所示的方案。主設(shè)備再次產(chǎn)生開始條件S。然后主設(shè)備發(fā)送具有被設(shè)置成“1”的R/W位的從地址,并將其SDA端口置于高阻抗?fàn)顟B(tài)以進(jìn)行接收。現(xiàn)在,被尋址的從設(shè)備發(fā)送“n”字節(jié)數(shù)據(jù)。當(dāng)主設(shè)備是發(fā)送器時(shí),從設(shè)備在數(shù)據(jù)的每個(gè)接收字節(jié)之后的第9個(gè)時(shí)鐘脈沖內(nèi)產(chǎn)生確認(rèn)信號A。當(dāng)從設(shè)備是發(fā)送器時(shí),主設(shè)備在數(shù)據(jù)的每個(gè)接收字節(jié)之后的第9個(gè)時(shí)鐘脈沖內(nèi)產(chǎn)生確認(rèn)信號A。當(dāng)主設(shè)備產(chǎn)生停止條件P時(shí),終止傳送。
然而,標(biāo)準(zhǔn)中規(guī)定的I2C協(xié)議限于順序讀和寫操作,且隨機(jī)訪問是不可能的。當(dāng)尋址存儲器,例如EEPROM時(shí),該存儲器不僅需要識別它被選擇了,而且需要有關(guān)將被讀或?qū)懙拇鎯卧男畔?。這在當(dāng)前標(biāo)準(zhǔn)中可以通過組合的讀/寫操作來實(shí)現(xiàn),其中在寫操作期間,EEPROM接收將被讀取的地址,并且在隨后的讀操作中,讀取存儲單元。然而,這一過程要求總線主設(shè)備發(fā)出第一開始條件,以便尋址用于寫的從設(shè)備,傳送單元地址,隨后發(fā)出第二開始條件,最后再次尋址用于讀的設(shè)備。必須單獨(dú)尋址每一單個(gè)字節(jié)。由于尋址操作的某些開銷是必需的,因此與理論值相比,這降低了I2C總線的實(shí)際傳送速度。如果幾個(gè)設(shè)備連接到總線,總線仲裁可能進(jìn)一步妨礙了快速傳輸?shù)男枰V俨檬且环N過程,用于確保如果多于一個(gè)主設(shè)備同時(shí)嘗試控制總線,僅允許一個(gè)進(jìn)行控制,從而確保不會破壞消息。一些EEPROM制造商使用寫和讀操作的專有組合,以便使得隨機(jī)訪問EEPROM成為可能,但是這些方案限于小的地址空間,例如128字節(jié)。
Microchip技術(shù)有限公司的操作說明書AN736公開了一種用于環(huán)境監(jiān)測的I2C網(wǎng)絡(luò)協(xié)議。該網(wǎng)絡(luò)協(xié)議建議使用表示將被讀或?qū)懙臄?shù)據(jù)字節(jié)的數(shù)量的單個(gè)數(shù)據(jù)長度字節(jié)和表示將被讀或?qū)懙膹脑O(shè)備的存儲地址的單個(gè)地址偏移字節(jié)。
發(fā)明內(nèi)容
因此,期望提供一種用于對從設(shè)備內(nèi)的單元進(jìn)行尋址的方法,其允許真正的隨機(jī)訪問。
根據(jù)本發(fā)明的隨機(jī)訪問方案克服了I2C協(xié)議的地址空間限制,并且使主設(shè)備能夠隨機(jī)訪問從設(shè)備(例如,EEPROM)的內(nèi)部地址空間中的單元。在I2C總線體系結(jié)構(gòu)中用于讀和寫操作的數(shù)據(jù)傳送的發(fā)明方法使用開始和停止條件、確認(rèn)位(ACK)產(chǎn)生、數(shù)據(jù)輸入?yún)f(xié)議、以及以與I2C標(biāo)準(zhǔn)中規(guī)定的方式相同的從設(shè)備尋址。這就允許所述方法的寫操作對仍未使用本發(fā)明方法的設(shè)備的兼容性。然而,本發(fā)明的讀操作并不完全兼容于所述標(biāo)準(zhǔn)。根據(jù)本發(fā)明方法,通過“數(shù)據(jù)傳送模式”字節(jié)來補(bǔ)充現(xiàn)有技術(shù)中已知的讀和寫操作,該字節(jié)規(guī)定了要遵循的組成存儲單元地址的地址字節(jié)的數(shù)量和與所尋址的存儲單元相關(guān)的數(shù)據(jù)字節(jié)的數(shù)量?!皵?shù)據(jù)傳送模式”字節(jié)的特性使本發(fā)明方法正交且可縮放(scalable)。正交訪問是指讀和寫操作具有類似的結(jié)構(gòu)和長度。這可以使訪問設(shè)備的編程變得容易??煽s放性是指存儲器的地址空間可以從相當(dāng)小的大小,例如當(dāng)將1字節(jié)用于尋址時(shí)的256個(gè)單元,變化到較大的單元數(shù)量,例如當(dāng)將8字節(jié)用于尋址時(shí)的16Ei單元。“Ei”(exabinary,讀作exbi)是從單位SI衍生的二進(jìn)制倍數(shù)的前綴,該SI單位是因子2的60次方。可縮放性將總線業(yè)務(wù)量有利地減少到依賴于將被尋址的地址空間和與存儲單元有關(guān)的數(shù)據(jù)量的最小值,同時(shí)保持最大靈活性。本發(fā)明方法有利地允許大存儲器中的單個(gè)單元的處理,這在下列情況下通常是需要的例如,當(dāng)必須僅改變較大一組參數(shù)中的少數(shù)參數(shù)時(shí),或者當(dāng)唯一序列號必須是設(shè)備的其他方面的相同存儲內(nèi)容(otherwise identical memory content)的一部分時(shí)。
下面,將參考附圖來詳細(xì)描述本發(fā)明。附圖中圖1示出了根據(jù)I2C總線標(biāo)準(zhǔn)的、用于寫訪問的I2C設(shè)備的普通尋址;圖2示出了根據(jù)I2C總線標(biāo)準(zhǔn)的、用于讀訪問的I2C設(shè)備的普通尋址;圖3示出了根據(jù)本發(fā)明方法的、用于讀操作的I2C設(shè)備的尋址;圖4示出了根據(jù)本發(fā)明方法的、用于寫操作的I2C設(shè)備的尋址;圖5示出了“數(shù)據(jù)傳送模式”字節(jié)的普通表示;以及圖6示出了根據(jù)本發(fā)明的可能的地址和數(shù)據(jù)長度的概觀。
在上面的現(xiàn)有技術(shù)部分已經(jīng)描述了圖1和2,因此不再對其參考。
附圖中,相同或相似的單元用相同的附圖標(biāo)記表示。
具體實(shí)施例方式
圖3示出了根據(jù)本發(fā)明的、用于讀操作的數(shù)據(jù)傳送方案。主設(shè)備產(chǎn)生開始條件S,并將被設(shè)置成“1”的R/W位發(fā)送給從地址。之后,主設(shè)備發(fā)送“數(shù)據(jù)傳送模式”字節(jié)?!皵?shù)據(jù)傳送模式”字節(jié)規(guī)定了組成存儲單元地址的地址字節(jié)的數(shù)量(m)以及組成每個(gè)存儲單元的內(nèi)容的數(shù)據(jù)字節(jié)的數(shù)量(n)。然后,主設(shè)備通過發(fā)送所宣布的“m”個(gè)地址字節(jié)來繼續(xù)傳送。從設(shè)備通過發(fā)送對應(yīng)于該位置的所請求的“n”個(gè)數(shù)據(jù)字節(jié)來進(jìn)行答復(fù)。當(dāng)主設(shè)備產(chǎn)生停止條件P時(shí)終止傳送。與在標(biāo)準(zhǔn)I2C總線連接中類似,在接收到一字節(jié)數(shù)據(jù)之后的第9個(gè)時(shí)鐘脈沖內(nèi),由接收器(或是主設(shè)備或是從設(shè)備)產(chǎn)生確認(rèn)信號A。
在圖4中示出了根據(jù)本發(fā)明的用于寫操作的數(shù)據(jù)傳送方案。主設(shè)備產(chǎn)生開始條件S,并將被設(shè)置成“0”的R/W位發(fā)送給從地址。之后,主設(shè)備發(fā)送“數(shù)據(jù)傳送模式”字節(jié),其中該“數(shù)據(jù)傳送模式”字節(jié)規(guī)定了組成存儲單元地址的地址字節(jié)的數(shù)量“m”以及組成每個(gè)存儲單元的內(nèi)容的數(shù)據(jù)字節(jié)的數(shù)量“n”。然后,主設(shè)備發(fā)送規(guī)定了將被寫入的存儲地址的所宣布的“m”個(gè)地址字節(jié)和將被寫入到所規(guī)定的存儲位置的“n”個(gè)數(shù)據(jù)字節(jié)。當(dāng)主設(shè)備產(chǎn)生停止條件P時(shí),終止該傳送。在寫操作期間,如在I2C標(biāo)準(zhǔn)中規(guī)定的一樣,在接收到每個(gè)字節(jié)的數(shù)據(jù)之后的第9個(gè)時(shí)鐘脈沖內(nèi),由從設(shè)備來發(fā)送確認(rèn)信號A。
注意可以按所需的次數(shù)來重復(fù)主和從設(shè)備之間的循環(huán)地址-數(shù)據(jù)。
圖5示例性示出了“數(shù)據(jù)傳送模式”字節(jié)。該“數(shù)據(jù)傳送模式”字節(jié)對于讀和寫操作兩者都是相同的?!皵?shù)據(jù)傳送模式”字節(jié)的位7到0定義如下位7-5,用標(biāo)記R2-R0標(biāo)明,為將來使用而保留。
位4-2,用標(biāo)記A2、A1、A0標(biāo)明,表示在主和從設(shè)備之間的讀/寫傳送中使用的地址字節(jié)的數(shù)量。圖6的表1示出了對于每個(gè)A2、A1、A0設(shè)置的地址字節(jié)的數(shù)量。
位1-0,用標(biāo)記D1、D0標(biāo)明,表示在主和從設(shè)備之間的讀/寫傳送中使用的地址字節(jié)的數(shù)量。圖6的表2示出了對于每個(gè)D1、D0設(shè)置的數(shù)據(jù)字節(jié)的數(shù)量。
盡管參考I2C總線描述了本發(fā)明,但是本發(fā)明不限于這種類型的總線??梢韵胂蟮綄⒈景l(fā)明方法用于設(shè)備之間的任何通信,單向或雙向,而不管相互連接的線路的數(shù)量。
權(quán)利要求
1.一種用于訪問設(shè)備中的單元的方法,所述設(shè)備經(jīng)由總線連接與至少一條載有數(shù)據(jù)信號的數(shù)據(jù)線和至少一條載有時(shí)鐘信號的時(shí)鐘線連接,其中通過設(shè)備地址來識別連接到所述總線的設(shè)備,其中第一設(shè)備建立開始條件(S)以建立總線連接,從而變成隨后通信的主設(shè)備,其中所述主設(shè)備通過其設(shè)備地址來選擇第二設(shè)備,所述第二設(shè)備變成隨后通信的從設(shè)備,其中所述主設(shè)備選擇傳輸模式讀或?qū)?R/W),并且其中所述主設(shè)備建立用于在成功通信之后終止所述總線連接的停止條件(P),其特征在于所述主設(shè)備在尋址所述從設(shè)備之后發(fā)送數(shù)據(jù)模式信號,其中所述數(shù)據(jù)模式信號包括有關(guān)單元地址字節(jié)的數(shù)量以及隨后將被發(fā)送的數(shù)據(jù)字節(jié)的數(shù)量的信息,接著是地址單元信號(ADD()),并且所述主設(shè)備根據(jù)所述數(shù)據(jù)模式信號將數(shù)據(jù)發(fā)送到從設(shè)備和/或自從設(shè)備接收數(shù)據(jù)(DATA())。
2.如權(quán)利要求1所述的方法,其中將數(shù)據(jù)寫入從設(shè)備和/或自從設(shè)備讀取數(shù)據(jù)(DATA())跟隨在所述數(shù)據(jù)模式信號和所述地址單元信號(ADD())的發(fā)送之后。
3.如權(quán)利要求1所述的方法,其中在接收到預(yù)定數(shù)量的位之后,各個(gè)接收設(shè)備的每一個(gè)發(fā)出確認(rèn)信號(A)。
4.一種用于尋址經(jīng)由總線連接連接的設(shè)備中的單元的數(shù)據(jù)結(jié)構(gòu),其特征在于所述數(shù)據(jù)結(jié)構(gòu)包括有關(guān)組成單元地址的地址信息的長度和與所述單元相關(guān)的數(shù)據(jù)的長度的信息。
全文摘要
提供了一種經(jīng)由I2C總線尋址設(shè)備中的單元的方法,其中通過“數(shù)據(jù)傳送模式”字節(jié)來補(bǔ)充常見的尋址方案。所述“數(shù)據(jù)傳送模式”字節(jié)規(guī)定了地址和數(shù)據(jù)字節(jié)的數(shù)量以遵循設(shè)備尋址,從而允許連接到總線的設(shè)備內(nèi)部單元的正交和可縮放尋址。該方法完全兼容用于寫入該從設(shè)備的現(xiàn)有I2C標(biāo)準(zhǔn)。建立和終止主設(shè)備與從設(shè)備之間的連接以及確認(rèn)字節(jié)的接收都遵循所述標(biāo)準(zhǔn)。
文檔編號G06F13/36GK1577308SQ20041006294
公開日2005年2月9日 申請日期2004年7月5日 優(yōu)先權(quán)日2003年7月3日
發(fā)明者盧伊斯·蒙塔爾沃, 迪迪爾·多延, 勞倫特·布朗德, 伊曼紐爾·喬利 申請人:湯姆森特許公司