欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

10位尋址模式i2c控制器訪問(wèn)大容量存儲(chǔ)器的方法

文檔序號(hào):6562178閱讀:147來(lái)源:國(guó)知局
專利名稱:10位尋址模式i2c控制器訪問(wèn)大容量存儲(chǔ)器的方法
技術(shù)領(lǐng)域
本發(fā)明涉及電訊設(shè)備、電子設(shè)備和計(jì)算機(jī)設(shè)備的通訊領(lǐng)域,尤其涉及利用I2C控制器訪問(wèn)大容量存儲(chǔ)器的方法。
背景技術(shù)
目前,在數(shù)控消費(fèi)電器、電訊設(shè)備、電子設(shè)備和計(jì)算機(jī)設(shè)備等領(lǐng)域中,廣泛地利用I2C總線及其他設(shè)備來(lái)實(shí)現(xiàn)設(shè)備之間的相互通訊。
I2C(Inter-Integrated Circuit)總線是一種雙線串行總線,由雙向數(shù)據(jù)線SDA和時(shí)鐘線SCL構(gòu)成,通過(guò)這兩條線,系統(tǒng)元器件之間可以相互通訊。I2C總線從傳輸速率上劃分,有標(biāo)準(zhǔn)模式(100Kbit/s),快速模式(400Kbit/s),高速模式(3.4Mbit/s);從尋址范圍上劃分有7位地址模式和10位地址模式。I2C總線連接I2C主控制器(bus master)和I2C輔助設(shè)備(bus slave),一般來(lái)說(shuō),I2C主控制器通常是微處理器,I2C輔助設(shè)備包括許多連接在I2C總線上的設(shè)備,比如存儲(chǔ)器、傳感器等待。通常,I2C主控制器能與I2C輔助設(shè)備直接通訊并提供時(shí)鐘信號(hào);I2C輔助設(shè)備能從I2C主控制器接收數(shù)據(jù)或者為主控制器提供數(shù)據(jù)。在任何時(shí)候都只能有一個(gè)I2C主控制器存在,但可以有多個(gè)I2C輔助設(shè)備同時(shí)存在。
數(shù)據(jù)只能以字節(jié)方式在I2C總線上傳輸,數(shù)據(jù)傳輸單位便是字節(jié)。傳輸通常是以最重要的位(most significant bit,以下簡(jiǎn)稱MSB)作為第一位,后邊緊跟8位數(shù)據(jù),每個(gè)字節(jié)傳輸結(jié)束以后,都會(huì)從對(duì)方傳出一個(gè)響應(yīng)位(Acknowledge bit,以下簡(jiǎn)稱ACK)。圖1表示I2C總線上數(shù)據(jù)傳輸?shù)母袷健?br> I2C主控制器向I2C輔助設(shè)備發(fā)出一個(gè)命令時(shí),軟件需要作以下設(shè)置設(shè)置輔助設(shè)備地址(Slave Address)、操作屬性是讀或是寫、命令字(Command Code)、數(shù)據(jù)(Data),然后將控制寄存器開啟(start)。如果所有的參數(shù)都正確,則在寫操作完成數(shù)據(jù)的傳送時(shí),或者讀操作完成數(shù)據(jù)的接收時(shí),I2C主控制器就會(huì)產(chǎn)生一個(gè)SMI#信號(hào)或者產(chǎn)生中斷。
I2C總線支持7種操作方式快速命令(Quick Command)、發(fā)送字節(jié)、接收字節(jié)、寫字節(jié)、讀字節(jié)、過(guò)程調(diào)用和數(shù)據(jù)塊的讀/寫。下邊列出了其中最常用的幾種操作方式1)從當(dāng)前地址讀一個(gè)字節(jié)(Byte)/字(Word)屬于I2C輔助設(shè)備的存儲(chǔ)器內(nèi)部有一個(gè)地址指針計(jì)數(shù)器用于記錄當(dāng)前的訪問(wèn)地址的指針,每一次存儲(chǔ)器讀/寫操作之后,該指針就會(huì)自動(dòng)移動(dòng)并保存下來(lái)。接收字節(jié)就能實(shí)現(xiàn)簡(jiǎn)單地獲取當(dāng)前指針?biāo)傅刂肺淮娣诺臄?shù)據(jù)。該操作在雙向數(shù)據(jù)線SDA上的數(shù)據(jù)流如圖2所示。存儲(chǔ)器從當(dāng)前地址讀取一個(gè)數(shù)據(jù)塊操作,也就是讀取一個(gè)字的操作相對(duì)于讀取一個(gè)字節(jié)操作而言,其不同之處在于傳輸一個(gè)字節(jié)的數(shù)據(jù)后不發(fā)送STOP命令,而是繼續(xù)讀取下一個(gè)字節(jié)的數(shù)據(jù),直到讀取完所有的數(shù)據(jù),再發(fā)送STOP命令,操作數(shù)據(jù)流如圖6所示。
2)向當(dāng)前地址寫一個(gè)字節(jié)寫一個(gè)字節(jié)與讀一個(gè)字節(jié)的協(xié)議很相似,唯一的不同就是數(shù)據(jù)的傳送方向讀一個(gè)字節(jié)的數(shù)據(jù)是從I2C輔助設(shè)備傳向I2C主控制器;而寫一個(gè)字節(jié)的數(shù)據(jù)是從I2C主控制器傳向I2C輔助設(shè)備。該操作在雙向數(shù)據(jù)線SDA上的數(shù)據(jù)流與圖2相似,只是將圖2的第一個(gè)字節(jié)的第8位改為“0”。
3)向存儲(chǔ)器的指定地址寫一個(gè)字節(jié)/字該命令格式要求首先傳送一個(gè)I2C輔助設(shè)備的地址,并在命令字的最后一位標(biāo)明是一個(gè)寫操作,等待I2C輔助設(shè)備響應(yīng),然后傳送長(zhǎng)度為一個(gè)字節(jié)的數(shù)據(jù)地址(Word Address)和要寫入的那一個(gè)字節(jié)的值,后面再發(fā)送一個(gè)STOP命令。該操作在雙向數(shù)據(jù)線SDA上的數(shù)據(jù)流如圖3所示。寫入一個(gè)字(buffer寫)的操作相對(duì)于寫一個(gè)字節(jié)(字節(jié)寫)操作而言,其不同之處在于傳輸一個(gè)字節(jié)的數(shù)據(jù)后不發(fā)送STOP命令,而是繼續(xù)寫入下一個(gè)字節(jié)的數(shù)據(jù),直到寫完所有的數(shù)據(jù),再發(fā)送STOP命令,操作數(shù)據(jù)流如圖4所示。
4)從存儲(chǔ)器的指定地址讀一個(gè)字節(jié)/字讀操作與寫操作不太一樣,要讀取一個(gè)指定地址,必須先用寫命令告訴存儲(chǔ)器要讀取的地址,然后再執(zhí)行讀操作,接收到字節(jié)后再發(fā)送STOP命令,操作的數(shù)據(jù)流如圖5所示。如果想從指定地址讀取一個(gè)字的數(shù)據(jù),STOP命令之前的操作都不變,只是在接收到第一個(gè)字節(jié)后,并不發(fā)送STOP命令,而是再讀取一個(gè)字節(jié),直到接收所有的數(shù)據(jù),才發(fā)送STOP命令。
目前,采用10位尋址模式的I2C總線為輔助設(shè)備提供了10位地址線,最多只能訪問(wèn)1K字節(jié)的物理空間。隨著I2C總線應(yīng)用的增加,對(duì)存儲(chǔ)器的空間也提出了更大的要求,目前市面上已經(jīng)有很多存儲(chǔ)空間大于1K字節(jié)的存儲(chǔ)器,而由于其數(shù)據(jù)的地址位已經(jīng)超過(guò)了10位,因此用正常的I2C總線操作流程已經(jīng)不能正常完成數(shù)據(jù)的隨機(jī)訪問(wèn)。

發(fā)明內(nèi)容
鑒于上述,本發(fā)明要解決采用10位尋址模式的I2C控制器因?qū)ぶ房臻g不足而無(wú)法尋址存儲(chǔ)空間大于1K字節(jié)的存儲(chǔ)設(shè)備的技術(shù)問(wèn)題,以提高系統(tǒng)的存儲(chǔ)空間,為系統(tǒng)提供更強(qiáng)大的功能。
為了解決上述技術(shù)問(wèn)題,本發(fā)明提出一種采用10位尋址模式的I2C控制器訪問(wèn)大容量存儲(chǔ)器的方法,其中上述I2C控制器從大容量存儲(chǔ)器中隨機(jī)讀取數(shù)據(jù)的操作至少包括以下步驟步驟1,I2C控制器發(fā)送一個(gè)開始(start)信號(hào);步驟2,I2C控制器向大容量存儲(chǔ)器發(fā)送寫操作命令,并等待其回傳ACK;步驟3,收到ACK后,I2C控制器向大容量存儲(chǔ)器發(fā)送上述數(shù)據(jù)的地址的高8位,并等待其回傳ACK;步驟4,收到ACK后,I2C控制器向大容量存儲(chǔ)器發(fā)送上述數(shù)據(jù)的地址的低8位,并等待其回傳ACK;
步驟5,收到ACK后,I2C控制器再發(fā)送一個(gè)start信號(hào);步驟6,I2C控制器向大容量存儲(chǔ)器發(fā)送讀操作命令,并等待其回傳ACK;步驟7,收到ACK后,I2C控制器從大容量存儲(chǔ)器中讀取上述數(shù)據(jù)的一個(gè)字節(jié),并等待其回傳ACK;步驟7′,如果讀取的數(shù)據(jù)大小為一個(gè)字節(jié),則直接轉(zhuǎn)到步驟8;如果讀取的數(shù)據(jù)大于一個(gè)字節(jié),重復(fù)步驟7,直到指定長(zhǎng)度的數(shù)據(jù)全部讀取完畢,轉(zhuǎn)到步驟8;步驟8,收到ACK后,發(fā)送停止(stop)命令。
其中,步驟2中的寫操作命令為一個(gè)字節(jié),其第1-7位用于決定這次操作所選擇的從控制器,也就是上述大容量存儲(chǔ)器的地址,其第8位為0,表示用于決定這次操作是寫操作;步驟6中的讀操作命令為一個(gè)字節(jié),其第1-7位用于決定這次操作所選擇的從控制器,也就是上述大容量存儲(chǔ)器的地址,其第8位為1,表示用于決定這次操作是讀操作。
采用10位尋址模式的I2C控制器向大容量存儲(chǔ)器寫入隨機(jī)讀取數(shù)據(jù)的操作至少包括以下步驟步驟1,I2C控制器發(fā)送一個(gè)start信號(hào);步驟2,I2C控制器向大容量存儲(chǔ)器發(fā)送寫操作命令,并等待其回傳ACK;步驟3,收到ACK后,I2C控制器向大容量存儲(chǔ)器發(fā)送將要寫入上述數(shù)據(jù)的地址的高8位,并等待其回傳ACK;步驟4,收到ACK后,I2C控制器向大容量存儲(chǔ)器發(fā)送將要寫入上述數(shù)據(jù)的地址的低8位,并等待其回傳ACK;步驟5,收到ACK后,I2C控制器向大容量存儲(chǔ)器發(fā)送需要寫入的數(shù)據(jù)的一個(gè)字節(jié),并等待其回傳ACK;步驟5′,如果需要寫入的數(shù)據(jù)的大小為一個(gè)字節(jié),則直接轉(zhuǎn)到步驟6;如果需要寫入的數(shù)據(jù)大于一個(gè)字節(jié),重復(fù)步驟5,直到指定長(zhǎng)度的數(shù)據(jù)全部寫入,轉(zhuǎn)到步驟6;步驟6,收到ACK后,發(fā)送stop命令。
其中,步驟2中的寫操作命令為一個(gè)字節(jié),其第1-7位用于決定這次操作所選擇的從控制器,也就是上述大容量存儲(chǔ)器的地址,其第8位為0,表示用于決定這次操作是寫操作。上述可寫入的數(shù)據(jù)最多為15個(gè)字節(jié)。
采用本發(fā)明所述方法可以簡(jiǎn)單高效的實(shí)現(xiàn)標(biāo)準(zhǔn)I2C控制器訪問(wèn)更大空間的存儲(chǔ)介質(zhì),有效的擴(kuò)大I2C輔助設(shè)備的可用地址空間,為I2C輔助設(shè)備提供更強(qiáng)大的功能。它的優(yōu)點(diǎn)如下不更改已有的I2C控制器,電路不作任何改動(dòng),完全由軟件來(lái)實(shí)現(xiàn),保證硬件的兼容性。
下面結(jié)合附圖,對(duì)本發(fā)明的具體實(shí)施作進(jìn)一步的詳細(xì)說(shuō)明。對(duì)于熟悉本技術(shù)領(lǐng)域的人員而言,從對(duì)本發(fā)明方法的詳細(xì)說(shuō)明中,本發(fā)明的上述和其他目的、特征和優(yōu)點(diǎn)將顯而易見。


圖1為I2C總線上數(shù)據(jù)傳輸?shù)母袷健?br> 圖2為從當(dāng)前地址讀一個(gè)字節(jié)的操作的數(shù)據(jù)流。
圖3為I2C控制器向指定的地址寫一個(gè)字節(jié)的操作的數(shù)據(jù)流。
圖4為I2C控制器向指定的地址寫一個(gè)連續(xù)數(shù)據(jù)塊的操作的數(shù)據(jù)流。
圖5為I2C控制器從指定地址讀取一個(gè)字節(jié)的操作的數(shù)據(jù)流。
圖6為I2C控制器從當(dāng)前地址讀取一個(gè)連續(xù)數(shù)據(jù)塊的操作的數(shù)據(jù)流。
圖7為大于1K字節(jié)的存儲(chǔ)空間的存儲(chǔ)器字節(jié)讀操作的數(shù)據(jù)流。
圖8為大于1K字節(jié)的存儲(chǔ)空間的存儲(chǔ)器字節(jié)寫操作的數(shù)據(jù)流。
圖9為大于1K字節(jié)的存儲(chǔ)空間的存儲(chǔ)器讀取一個(gè)連續(xù)數(shù)據(jù)塊的操作的數(shù)據(jù)流。
具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明所述的方法作進(jìn)一步的詳細(xì)說(shuō)明。
一些大容量存儲(chǔ)器,特別是大于1K字節(jié)的存儲(chǔ)空間的存儲(chǔ)器,提供了一些與采用10位尋址模式的I2C控制器的操作兼容的操作,包括按字節(jié)寫、按頁(yè)寫、當(dāng)前地址讀/寫、隨機(jī)讀、按頁(yè)讀等。下面討論幾種常用操作方式。
(1)從當(dāng)前地址讀一個(gè)字節(jié)此操作方式與背景技術(shù)中提到的從當(dāng)前地址讀一個(gè)字節(jié)的操作方式是完全一樣的,在此不再討論。
(2)向當(dāng)前地址寫一個(gè)字節(jié)此操作方式與背景技術(shù)中提到的向當(dāng)前地址寫一個(gè)字節(jié)的操作方式是完全一樣的,在此不再討論。
(3)從指定的地址讀一個(gè)字節(jié)隨機(jī)讀方式允許采用10位尋址模式的I2C控制器隨機(jī)訪問(wèn)整個(gè)空間內(nèi)任意地址,在讀數(shù)據(jù)之前必須先執(zhí)行一個(gè)空寫操作,將要讀取的字節(jié)的地址傳給雙向數(shù)據(jù)線SDA,然后執(zhí)行一次當(dāng)前地址的讀操作。
圖7表示了從大于1K字節(jié)的存儲(chǔ)空間的存儲(chǔ)器隨機(jī)讀取一個(gè)字節(jié)的流程,該流程與采用10位尋址模式的I2C控制器的流程差別很大,沒有一個(gè)單獨(dú)的流程能獨(dú)立完成此功能。本方法將多個(gè)標(biāo)準(zhǔn)的操作流程組合起來(lái),實(shí)現(xiàn)從大容量存儲(chǔ)器隨機(jī)讀取一個(gè)字節(jié)的功能?;舅枷胧抢萌鐖D3所示的采用10位尋址模式的I2C控制器的向指定地址寫一個(gè)字節(jié)的操作和如圖2所示的從當(dāng)前地址讀一個(gè)字節(jié)的操作組合起來(lái)實(shí)現(xiàn)此功能。具體的步驟至少包括第一步I2C控制器發(fā)送一個(gè)Start信號(hào);第二步I2C控制器發(fā)送寫操作命令,并等待存儲(chǔ)器回應(yīng)ACK;第三步收到ACK后,I2C控制器向存儲(chǔ)器發(fā)送指定地址的高8位,并等待存儲(chǔ)器回應(yīng)ACK;第四步收到ACK后,I2C控制器向存儲(chǔ)器發(fā)送指定地址的低8位,并等待存儲(chǔ)器回應(yīng)ACK;第五步收到ACK后,發(fā)送一個(gè)Start信號(hào);第六步I2C控制器向存儲(chǔ)器發(fā)送讀操作命令,并等待存儲(chǔ)器回應(yīng)ACK;第七步收到ACK后,I2C控制器從存儲(chǔ)器中讀取數(shù)據(jù)的一個(gè)字節(jié),并等待存儲(chǔ)器回應(yīng)ACK;第八步發(fā)送STOP命令。
圖9表示了了從大于1K字節(jié)的存儲(chǔ)空間的存儲(chǔ)器隨機(jī)讀取一個(gè)連續(xù)數(shù)據(jù)塊的操作。從大容量存儲(chǔ)器中隨機(jī)讀取一個(gè)連續(xù)數(shù)據(jù)塊的流程與從大容量存儲(chǔ)器隨機(jī)讀取一個(gè)字節(jié)的流程的主要區(qū)別是在采用10位尋址模式的I2C控制器成功讀取第一個(gè)字節(jié)后,不立即結(jié)束讀取操作,而是繼續(xù)等待大容量存儲(chǔ)器向采用10位尋址模式的I2C控制器發(fā)送數(shù)據(jù),讀指定的數(shù)據(jù)長(zhǎng)度后才結(jié)束本次讀操作。本方法將多個(gè)標(biāo)準(zhǔn)的操作流程組合起來(lái),完成從大容量存儲(chǔ)器隨機(jī)讀取一個(gè)連續(xù)數(shù)據(jù)塊的功能。具體的步驟至少包括第一步I2C控制器發(fā)送一個(gè)Start信號(hào);第二步I2C控制器發(fā)送寫操作命令,并等待存儲(chǔ)器回應(yīng)ACK;第三步收到ACK后,I2C控制器向存儲(chǔ)器發(fā)送指定地址的高8位,并等待存儲(chǔ)器回應(yīng)ACK;第四步收到ACK后,I2C控制器向存儲(chǔ)器發(fā)送指定地址的低8位,并等待存儲(chǔ)器回應(yīng)ACK;第五步收到ACK后,發(fā)送一個(gè)Start信號(hào);第六步發(fā)送讀操作命令,并等待存儲(chǔ)器回應(yīng)ACK;第七步收到ACK后,I2C控制器從存儲(chǔ)器中讀取數(shù)據(jù)的一個(gè)字節(jié),并等待存儲(chǔ)器回應(yīng)ACK;第八步重復(fù)第七步操作,直到讀取完所有要求的數(shù)據(jù),每個(gè)字節(jié)的數(shù)據(jù)讀取操作都要等待存儲(chǔ)器回應(yīng)ACK;第九步發(fā)送STOP命令。
(4)向指定地址寫入一個(gè)字節(jié)這個(gè)操作與背景技術(shù)中提到的向存儲(chǔ)器的指定地址寫一個(gè)字節(jié)的操作相比較而言,多了一個(gè)字節(jié)的地址,其它地方都是完全一樣,如圖8所示。
仔細(xì)對(duì)比圖4和圖8,不難發(fā)現(xiàn)圖4的處理流程在發(fā)出寫命令后,只送出了一個(gè)字節(jié)的存儲(chǔ)器地址,后邊可以連續(xù)寫入1-16個(gè)字節(jié)的數(shù)據(jù);圖8處理流程要求在寫命令后發(fā)送兩個(gè)字節(jié)的存儲(chǔ)器地址,后邊再一個(gè)字節(jié)的數(shù)據(jù)。對(duì)于存儲(chǔ)器來(lái)說(shuō),數(shù)據(jù)和字節(jié)都只是一些字節(jié)流,它不可能也沒有必要區(qū)分。所以本方法就利用這些特點(diǎn),使用采用10位尋址模式的I2C控制器以圖4的處理流程向指定存儲(chǔ)器地址寫入兩個(gè)字節(jié),來(lái)實(shí)現(xiàn)向大容量存儲(chǔ)器隨機(jī)寫入一個(gè)字節(jié)的功能。寫操作的步驟至少包括第一步I2C控制器發(fā)送一個(gè)Start信號(hào);第二步I2C控制器發(fā)送寫操作命令,并等待存儲(chǔ)器回應(yīng)ACK;第三步收到ACK后,I2C控制器向存儲(chǔ)器發(fā)送將要寫入上述數(shù)據(jù)的存儲(chǔ)器地址的高8位,并等待存儲(chǔ)器回應(yīng)ACK;第四步收到ACK后,I2C控制器向存儲(chǔ)器發(fā)送將要寫入上述數(shù)據(jù)的存儲(chǔ)器地址的低8位,并等待存儲(chǔ)器回應(yīng)ACK;第五步收到ACK后,I2C控制器向存儲(chǔ)器發(fā)送要寫入的數(shù)據(jù),并等待存儲(chǔ)器回應(yīng)ACK;第六步收到ACK后,I2C控制器發(fā)送STOP命令。
采用10位尋址模式的I2C控制器向大容量存儲(chǔ)器隨機(jī)地址寫入一連續(xù)數(shù)據(jù)塊(buffer寫)和寫入一個(gè)字節(jié)(字節(jié)寫)的主要區(qū)別在于,在一個(gè)字節(jié)的數(shù)據(jù)發(fā)送成功后,并不結(jié)束本次寫操作,而連續(xù)發(fā)送多個(gè)字節(jié),成功后才發(fā)送寫結(jié)束命令。所以這樣的操作流,可以利用采用10位尋址模式的I2C控制器的buffer寫流程來(lái)實(shí)現(xiàn)。仔細(xì)分析圖4可以發(fā)現(xiàn),可以利用圖4的流程,稍作改動(dòng)即能實(shí)現(xiàn)大容量存儲(chǔ)器的buffer寫功能。由于兩種設(shè)備的限制,這種方法實(shí)現(xiàn)的buffer寫的單次寫操作最多可以寫入15個(gè)字節(jié)。具體的步驟為第一步I2C控制器發(fā)送一個(gè)Start信號(hào);第二步I2C控制器發(fā)送寫操作命令,并等待存儲(chǔ)器回應(yīng)ACK;第三步收到ACK后,I2C控制器向存儲(chǔ)器發(fā)送將要寫入上述數(shù)據(jù)的存儲(chǔ)器地址的高8位,并等待存儲(chǔ)器回應(yīng)ACK;第四步收到ACK后,I2C控制器向存儲(chǔ)器發(fā)送將要寫入上述數(shù)據(jù)的存儲(chǔ)器地址的低8位,并等待存儲(chǔ)器回應(yīng)ACK;第五步收到ACK后,I2C控制器向存儲(chǔ)器發(fā)送要寫入的數(shù)據(jù)的第一個(gè)字節(jié),并等待存儲(chǔ)器回應(yīng)ACK;第六步重復(fù)第五步操作,直到發(fā)送完所有要求寫入的數(shù)據(jù),每個(gè)數(shù)據(jù)字節(jié)發(fā)送操作都要等待存儲(chǔ)器回應(yīng)ACK;第七步收到ACK后,I2C控制器發(fā)送STOP命令。
在不背離發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變,但這些相應(yīng)的改變都應(yīng)屬于本發(fā)明的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種采用10位尋址模式的I2C控制器訪問(wèn)大容量存儲(chǔ)器的方法,其特征是上述I2C控制器從大容量存儲(chǔ)器中隨機(jī)讀取數(shù)據(jù)的操作至少包括以下步驟步驟1,I2C控制器發(fā)送一個(gè)開始信號(hào);步驟2,I2C控制器向大容量存儲(chǔ)器發(fā)送寫操作命令,并等待其回傳響應(yīng)位;步驟3,收到響應(yīng)位后,I2C控制器向大容量存儲(chǔ)器發(fā)送上述數(shù)據(jù)的地址的高8位,并等待其回傳響應(yīng)位;步驟4,收到響應(yīng)位后,I2C控制器向大容量存儲(chǔ)器發(fā)送上述數(shù)據(jù)的地址的低8位,并等待其回傳響應(yīng)位;步驟5,收到響應(yīng)位后,I2C控制器再發(fā)送一個(gè)開始信號(hào);步驟6,I2C控制器向大容量存儲(chǔ)器發(fā)送讀操作命令,并等待其回傳響應(yīng)位;步驟7,收到響應(yīng)位后,I2C控制器從大容量存儲(chǔ)器中讀取上述數(shù)據(jù)的一個(gè)字節(jié),并等待其回傳響應(yīng)位;步驟7′,如果讀取的數(shù)據(jù)大小為一個(gè)字節(jié),則直接轉(zhuǎn)到步驟8;如果讀取的數(shù)據(jù)大于一個(gè)字節(jié),重復(fù)步驟7,直到指定長(zhǎng)度的數(shù)據(jù)全部讀取完畢,轉(zhuǎn)到步驟8;步驟8,收到響應(yīng)位后,發(fā)送停止命令。
2.根據(jù)權(quán)利要求1所述的方法,其特征是步驟2中的寫操作命令為一個(gè)字節(jié),其第1-7位用于決定這次操作所選擇的從控制器,也就是上述大容量存儲(chǔ)器的地址,其第8位為0,表示用于決定這次操作是寫操作。
3.根據(jù)權(quán)利要求1所述的方法,其特征是步驟6中的讀操作命令為一個(gè)字節(jié),其第1-7位用于決定這次操作所選擇的從控制器,也就是上述大容量存儲(chǔ)器的地址,其第8位為1,表示用于決定這次操作是讀操作。
4.一種采用10位尋址模式的I2C控制器訪問(wèn)大容量存儲(chǔ)器的方法,其特征是上述I2C控制器向大容量存儲(chǔ)器寫入隨機(jī)讀取數(shù)據(jù)的操作至少包括以下步驟步驟1,I2C控制器發(fā)送一個(gè)開始信號(hào);步驟2,I2C控制器向大容量存儲(chǔ)器發(fā)送寫操作命令,并等待其回傳響應(yīng)位;步驟3,收到響應(yīng)位后,I2C控制器向大容量存儲(chǔ)器發(fā)送將要寫入上述數(shù)據(jù)的地址的高8位,并等待其回傳響應(yīng)位;步驟4,收到響應(yīng)位后,I2C控制器向大容量存儲(chǔ)器發(fā)送將要寫入上述數(shù)據(jù)的地址的低8位,并等待其回傳響應(yīng)位;步驟5,收到響應(yīng)位后,I2C控制器向大容量存儲(chǔ)器發(fā)送需要寫入的數(shù)據(jù)的一個(gè)字節(jié),并等待其回傳響應(yīng)位;步驟5′,如果需要寫入的數(shù)據(jù)的大小為一個(gè)字節(jié),則直接轉(zhuǎn)到步驟6;如果需要寫入的數(shù)據(jù)大于一個(gè)字節(jié),重復(fù)步驟5,直到指定長(zhǎng)度的數(shù)據(jù)全部寫入,轉(zhuǎn)到步驟6;步驟6,收到響應(yīng)位后,發(fā)送停止命令。
5.根據(jù)權(quán)利要求4所述的方法,其特征是步驟2中的寫操作命令為一個(gè)字節(jié),其第1-7位用于決定這次操作所選擇的從控制器,也就是上述大容量存儲(chǔ)器的地址,其第8位為0,表示用于決定這次操作是寫操作。
6.根據(jù)權(quán)利要求4所述的方法,其特征是上述數(shù)據(jù)最多為15個(gè)字節(jié)。
全文摘要
本發(fā)明提供了一種采用10位尋址模式的I2C控制器訪問(wèn)大容量存儲(chǔ)器的方法,其中上述I2C控制器從大容量存儲(chǔ)器中隨機(jī)讀取數(shù)據(jù)的操作至少包括以下步驟I2C控制器發(fā)送一個(gè)開始信號(hào);發(fā)送寫操作命令,等待回傳ACK;發(fā)送上述數(shù)據(jù)的地址的高8位,等待回傳ACK;發(fā)送上述數(shù)據(jù)的地址的低8位,等待回傳ACK;發(fā)送一個(gè)開始信號(hào);發(fā)送讀操作命令,等待回傳ACK;讀取上述數(shù)據(jù)的一個(gè)字節(jié),等待回傳ACK;如果讀取的數(shù)據(jù)大小為一個(gè)字節(jié),則直接轉(zhuǎn)到下一步;如果讀取的數(shù)據(jù)大于一個(gè)字節(jié),重復(fù)該步驟,直到指定長(zhǎng)度的數(shù)據(jù)全部讀取完畢;發(fā)送停止命令。采用本發(fā)明的方法可以簡(jiǎn)單高效的實(shí)現(xiàn)標(biāo)準(zhǔn)I2C控制器訪問(wèn)更大空間的I2C存儲(chǔ)介質(zhì)。
文檔編號(hào)G06F3/06GK1996275SQ20061013857
公開日2007年7月11日 申請(qǐng)日期2006年11月9日 優(yōu)先權(quán)日2006年11月9日
發(fā)明者鄭其杉, 馬彧, 楊波 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
南阳市| 西贡区| 九江县| 方山县| 广饶县| 江门市| 油尖旺区| 华亭县| 塔河县| 华阴市| 城步| 绿春县| 拉萨市| 荔波县| 绩溪县| 平遥县| 清镇市| 康定县| 哈尔滨市| 龙山县| 金平| 县级市| 扶余县| 永丰县| 鄂托克前旗| 庆云县| 米林县| 仪陇县| 桑植县| 宜昌市| 武冈市| 常宁市| 德钦县| 栾城县| 巴东县| 天津市| 农安县| 吴桥县| 托克逊县| 庄河市| 拜城县|