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