一種基于iic接口操作eeprom芯片的方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及一種基于IIC接口操作EEPROM芯片的方法。
【背景技術(shù)】
[0002]目前,許多嵌入式產(chǎn)品使用EEPROM芯片來存儲數(shù)據(jù)。并且許多EEPROM芯片使用IIC接口與控制芯片進行通訊,使控制芯片可以對其進行讀取、寫入等操作。有些EEPROM芯片制造商為了使開發(fā)人員更加方便的使用芯片,會提供相應(yīng)的IIC接口驅(qū)動程序,這些驅(qū)動程序會將要發(fā)送的命令轉(zhuǎn)換成相應(yīng)的時序,并按照順序發(fā)送到IIC接口并等待EEPROM芯片執(zhí)行完成。
[0003]但是通常情況下EEPROM芯片內(nèi)部操作速度遠低于控制芯片,當控制芯片調(diào)用相應(yīng)的Iic接口驅(qū)動程序控制EEPROM芯片進行讀取、寫入等操作時,需要花費大量的時間等待EEPROM芯片直到其執(zhí)行完相應(yīng)的操作。在此期間其它任何任務(wù)都不會被控制芯片處理,這樣會導(dǎo)致一些重要的任務(wù)不能及時得到執(zhí)行,從而會影響系統(tǒng)的功能。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于解決上述的技術(shù)問題,提出一種基于IIC接口操作EEPROM芯片的方法。
[0005]本發(fā)明是通過以下技術(shù)方案實現(xiàn)的:
一種基于IIC接口操作EEPROM芯片的方法,包括如下步驟:
步驟a、將對EEPROM芯片的操作分成復(fù)數(shù)個階段,并且使用一個變量記錄當前所處的階段,
步驟b、控制芯片分階段對EEPROM芯片的進行操作,
在控制芯片執(zhí)行對EEPROM芯片的操作時,每次只執(zhí)行操作其中的一個階段,執(zhí)行結(jié)束后立即轉(zhuǎn)而執(zhí)行其它任務(wù),若此時控制芯片無其它任務(wù),則繼續(xù)執(zhí)行下一個階段,如此循環(huán)直至對EEPROM芯片的操作全部執(zhí)行完成。
[0006]優(yōu)選的,所述步驟b包括如下步驟:
步驟I:設(shè)備上電,程序開始運行;
步驟2:控制芯片查詢是否需要執(zhí)行對EEPROM芯片的寫操作,若需要執(zhí)行則進入下一步驟,若不需要執(zhí)行則轉(zhuǎn)而執(zhí)行其它任務(wù);
步驟3:判斷當前EEPROM芯片寫操作執(zhí)行的階段;
步驟4:發(fā)送IIC起始條件,當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)榘l(fā)送寫器件地址階段;
步驟5:發(fā)送寫器件地址,當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)榘l(fā)送地址高八位階段;
步驟6:發(fā)送地址高八位,當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)榘l(fā)送地址低八位階段; 步驟7:發(fā)送地址低八位,當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)榘l(fā)送數(shù)據(jù)階段;
步驟8:發(fā)送數(shù)據(jù),當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)榘l(fā)送IIC結(jié)束條件階段;
步驟9:發(fā)送IIC結(jié)束條件,當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)椴樵兊却龝r間是否滿1ms階段;
步驟10:查詢等待時間是否滿1ms,若已經(jīng)滿1ms則當前EEPROM芯片寫操作執(zhí)行結(jié)束,若未滿I Oms,則當前EEPROM芯片寫操作執(zhí)行的階段還是為查詢等待時間是否滿I Oms階段。
[0007]本發(fā)明的有益效果:適用于采用IIC接口的EEPROM芯片的讀取、寫入等操作。當控制芯片對EEPROM芯片操作時間過久會影響到其它任務(wù)執(zhí)行時,使用該方法可以有效地消除該問題,極大地提高控制芯片的使用效率,增強產(chǎn)品的性能和實時性。
【附圖說明】
[0008]圖1是本發(fā)明一種基于IIC接口操作EEPROM芯片的方法的具體實施例流程框架示意圖。
【具體實施方式】
[0009]本發(fā)明提供了一種基于IIC接口操作EEPROM芯片的方法,流程框架如圖1所示,在傳統(tǒng)的IIC操作驅(qū)動中加入狀態(tài)查詢機制,使主控芯片在通過IIC接口操作EEPROM芯片時可以判斷EEPROM芯片的狀態(tài),該方法具體包括如下步驟:
步驟a、將對EEPROM芯片的讀取、寫入等操作分成復(fù)數(shù)個不同的階段,每個階段的執(zhí)行時間均較短,并且使用一個變量記錄當前所處的階段,
步驟b、控制芯片分階段對EEPROM芯片的進行操作,具體的,在控制芯片執(zhí)行對EEPROM芯片的操作時,每次只執(zhí)行操作其中的一個階段,執(zhí)行結(jié)束后立即轉(zhuǎn)而執(zhí)行其它任務(wù),若此時控制芯片無其它任務(wù),則繼續(xù)執(zhí)行下一個階段,如此循環(huán)直至對EEPROM芯片的操作全部執(zhí)行完成。更細化的,控制芯片在執(zhí)行操作時,會首先查詢該階段的狀態(tài),是否處于等待延時階段,當遇到延時階段時,只需要查詢是否經(jīng)過固定的等待時間,若等待時間不夠,則立即執(zhí)行其他任務(wù),時間夠即等待。
[0010]本發(fā)明具體實施例包括如下步驟:
步驟I:設(shè)備上電,程序開始運行;
步驟2:控制芯片查詢是否需要執(zhí)行對EEPROM芯片的寫操作,若需要執(zhí)行則進入下一步驟,若不需要執(zhí)行則轉(zhuǎn)而執(zhí)行其它任務(wù);
步驟3:判斷當前EEPROM芯片寫操作執(zhí)行的階段;
步驟4:發(fā)送IIC起始條件,當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)榘l(fā)送寫器件地址階段;
步驟5:發(fā)送寫器件地址,當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)榘l(fā)送地址高八位階段;
步驟6:發(fā)送地址高八位,當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)榘l(fā)送地址低八位階段;
步驟7:發(fā)送地址低八位,當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)榘l(fā)送數(shù)據(jù)階段;
步驟8:發(fā)送數(shù)據(jù),當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)榘l(fā)送IIC結(jié)束條件階段; 步驟9:發(fā)送IIC結(jié)束條件,當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)椴樵兊却龝r間是否滿1ms階段;
步驟10:查詢等待時間是否滿1ms,若已經(jīng)滿1ms則當前EEPROM芯片寫操作執(zhí)行結(jié)束,若未滿I Oms,則當前EEPROM芯片寫操作執(zhí)行的階段還是為查詢等待時間是否滿I Oms階段。
[0011]以上對本發(fā)明的技術(shù)方案進行了充分描述,需要說明的是,本發(fā)明的【具體實施方式】并不受上述描述的限制,本領(lǐng)域的普通技術(shù)人員依據(jù)本發(fā)明的精神實質(zhì)在結(jié)構(gòu)、方法或功能等方面采用等同變換或者等效變換而形成的所有技術(shù)方案,均落在本發(fā)明的保護范圍之內(nèi)。
【主權(quán)項】
1.一種基于IIC接口操作EEPROM芯片的方法,其特征在于包括如下步驟: 步驟a、將對EEPROM芯片的操作分成復(fù)數(shù)個階段,并且使用一個變量記錄當前所處的階段, 步驟b、控制芯片分階段對EEPROM芯片的進行操作, 在控制芯片執(zhí)行對EEPROM芯片的操作時,每次只執(zhí)行操作其中的一個階段,執(zhí)行結(jié)束后立即轉(zhuǎn)而執(zhí)行其它任務(wù),若此時控制芯片無其它任務(wù),則繼續(xù)執(zhí)行下一個階段,如此循環(huán)直至對EEPROM芯片的操作全部執(zhí)行完成。2.根據(jù)權(quán)利要求1所述的一種基于IIC接口操作EEPROM芯片的方法,其特征在于所述步驟b包括: 步驟I:設(shè)備上電,程序開始運行; 步驟2:控制芯片查詢是否需要執(zhí)行對EEPROM芯片的寫操作,若需要執(zhí)行則進入下一步驟,若不需要執(zhí)行則轉(zhuǎn)而執(zhí)行其它任務(wù); 步驟3:判斷當前EEPROM芯片寫操作執(zhí)行的階段; 步驟4:發(fā)送IIC起始條件,當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)榘l(fā)送寫器件地址階段; 步驟5:發(fā)送寫器件地址,當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)榘l(fā)送地址高八位階段; 步驟6:發(fā)送地址高八位,當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)榘l(fā)送地址低八位階段; 步驟7:發(fā)送地址低八位,當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)榘l(fā)送數(shù)據(jù)階段; 步驟8:發(fā)送數(shù)據(jù),當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)榘l(fā)送IIC結(jié)束條件階段; 步驟9:發(fā)送IIC結(jié)束條件,當前EEPROM芯片寫操作執(zhí)行的階段變?yōu)椴樵兊却龝r間是否滿1ms階段; 步驟1:查詢等待時間是否滿I Oms,若已經(jīng)滿I Oms則當前EEPROM芯片寫操作執(zhí)行結(jié)束,若未滿I Oms,則當前EEPROM芯片寫操作執(zhí)行的階段還是為查詢等待時間是否滿I Oms階段。
【專利摘要】本發(fā)明揭示了一種基于IIC接口操作EEPROM芯片的方法,在原有的IIC操作驅(qū)動中加入狀態(tài)查詢機制,其包括如下步驟,首先將對EEPROM芯片的操作分成復(fù)數(shù)個階段,并且使用一個變量記錄當前所處的階段,然后控制芯片分階段對EEPROM芯片的進行操作,具體的在控制芯片執(zhí)行對EEPROM芯片的操作時,每次只執(zhí)行操作其中的一個階段,執(zhí)行結(jié)束后立即轉(zhuǎn)而執(zhí)行其它任務(wù),若此時控制芯片無其它任務(wù),則繼續(xù)執(zhí)行下一個階段,如此循環(huán)直至對EEPROM芯片的操作全部執(zhí)行完成。本發(fā)明適用于采用IIC接口的EEPROM芯片的讀取、寫入等操作。當控制芯片對EEPROM芯片操作時間過久會影響到其它任務(wù)執(zhí)行時,使用該方法可以有效地消除該問題,極大地提高控制芯片的使用效率,增強產(chǎn)品的性能和實時性。
【IPC分類】G06F13/16
【公開號】CN105589819
【申請?zhí)枴緾N201510954414
【發(fā)明人】孔康, 劉金偉, 查鵬
【申請人】蘇州長風航空電子有限公司
【公開日】2016年5月18日
【申請日】2015年12月20日