《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 嵌入式控制系統(tǒng)中I2C串行EEPROM器件應(yīng)用
嵌入式控制系統(tǒng)中I2C串行EEPROM器件應(yīng)用
來源:微型機(jī)與應(yīng)用2012年第16期
王樹梅
(山東省水利職工大學(xué),山東 淄博255130)
摘要: 在大多數(shù)嵌入式控制系統(tǒng)中,為了避免系統(tǒng)的設(shè)置參數(shù)、運(yùn)行數(shù)據(jù)等在掉電時(shí)丟失,常采用I2C串行EEPROM作為存儲(chǔ)器。然而EEPROM存儲(chǔ)器使用時(shí)存在著一些條件會(huì)潛在地導(dǎo)致其產(chǎn)生某些非標(biāo)準(zhǔn)的甚至是錯(cuò)誤的操作。就如何提高I2C串行EEPROM器件應(yīng)用的可靠性和準(zhǔn)確性,提出了相關(guān)的保護(hù)和處理措施,這些措施對(duì)于EEPROM的實(shí)際應(yīng)用具有指導(dǎo)意義。
Abstract:
Key words :

摘  要: 在大多數(shù)嵌入式控制系統(tǒng)中,為了避免系統(tǒng)的設(shè)置參數(shù)、運(yùn)行數(shù)據(jù)等在掉電時(shí)丟失,常采用I2C串行EEPROM作為存儲(chǔ)器。然而EEPROM存儲(chǔ)器使用時(shí)存在著一些條件會(huì)潛在地導(dǎo)致其產(chǎn)生某些非標(biāo)準(zhǔn)的甚至是錯(cuò)誤的操作。就如何提高I2C串行EEPROM器件應(yīng)用的可靠性和準(zhǔn)確性,提出了相關(guān)的保護(hù)和處理措施,這些措施對(duì)于EEPROM的實(shí)際應(yīng)用具有指導(dǎo)意義。
關(guān)鍵詞: 嵌入式控制系統(tǒng);I2C;EEPROM器件

    I2C串行EEPROM存儲(chǔ)器因具有外形體積小、接口緊湊簡(jiǎn)單、占用引腳資源少、數(shù)據(jù)保存可靠、可在線改寫、功耗低和價(jià)格低廉等顯著特點(diǎn),被廣泛應(yīng)用于嵌入式控制系統(tǒng)中,用于存放配置參數(shù)、調(diào)整和運(yùn)行數(shù)據(jù)等信息。但由于其為同步串行傳輸,通訊協(xié)議非常簡(jiǎn)單,沒有提供更為復(fù)雜的糾錯(cuò)和檢測(cè)機(jī)制,在實(shí)踐中經(jīng)常因使用不當(dāng)造成數(shù)據(jù)丟失、數(shù)據(jù)無故改寫等問題。對(duì)于存儲(chǔ)數(shù)據(jù)要求非常高的系統(tǒng), 例如計(jì)量產(chǎn)品、無人值守系統(tǒng)等,如果存儲(chǔ)數(shù)據(jù)發(fā)生意外錯(cuò)誤,造成的損失是致命的,因此在設(shè)計(jì)使用I2C串行EEPROM存儲(chǔ)器時(shí),更多地需要硬件和軟件相互接合,采取一些相關(guān)的處理措施,使得產(chǎn)品能夠在各種惡劣的使用環(huán)境中可靠、正確地運(yùn)行。
1 硬件處理措施
    硬件處理過程中,應(yīng)重點(diǎn)考慮以下幾個(gè)方面:
  (1)電源是一個(gè)控制系統(tǒng)可靠運(yùn)行的基石,很多產(chǎn)品與外界的有線連接就是電源連接。因此,在產(chǎn)品設(shè)計(jì)時(shí)應(yīng)對(duì)電源電路進(jìn)行有效濾波處理,并且應(yīng)該通過EMC的試驗(yàn)檢測(cè)來降低電源紋波噪聲,抑制高頻震蕩和高壓脈沖的侵入,減少由于噪聲過大而引起的I2C串行EEPROM器件讀寫失誤。這一點(diǎn)尤為重要,因?yàn)閷?shí)踐中很多系統(tǒng)的數(shù)據(jù)不知何故而發(fā)生了錯(cuò)誤,可能的一個(gè)重要原因就是電源的抗干擾能力有限,從而導(dǎo)致I2C總線干擾。
  (2)由于特殊原因,盡管對(duì)電源已經(jīng)進(jìn)行了有效處理,仍無法避免電磁的干擾,在使用I2C串行EEPROM時(shí),在I2C規(guī)范限制條件下,可以采取減小上拉電阻和使用I2C總線驅(qū)動(dòng)器提高輸出驅(qū)動(dòng)能力等措施來有效降低電磁干擾對(duì)讀寫的影響。
  (3)I2C串行EEPROM 一般具有欠壓復(fù)位電路,如果微處理器欠壓復(fù)位的門限電壓高于I2C串行EEPROM,那么,由于電磁干擾造成的電壓波動(dòng)使得微處理器可能會(huì)在總線通信過程中率先復(fù)位,而I2C串行EEPROM保持其當(dāng)前狀態(tài),導(dǎo)致總線出現(xiàn)“掛死”現(xiàn)象,使得數(shù)據(jù)傳輸不同步而出現(xiàn)數(shù)據(jù)錯(cuò)誤。因此,應(yīng)盡量采用帶有掉電檢測(cè)功能的微處理器,設(shè)置微處理器掉電復(fù)位門檻電壓低于I2C串行EEPROM 的欠壓復(fù)位門檻,使得微處理器與I2C串行EEPROM同步復(fù)位[1]。
  (4)為防止總線意外“掛死”,如果設(shè)計(jì)允許,最好能控制I2C器件的電源或選擇帶有復(fù)位引腳的器件。
  (5)對(duì)于具有寫保護(hù)功能的I2C串行EEPROM,可充分利用寫保護(hù)引腳來提供硬件寫保護(hù)功能,將寫保護(hù)引腳連接到微處理器的I/O口線上,控制器件在平時(shí)處于寫保護(hù)狀態(tài);需要寫入時(shí),將寫保護(hù)引腳變?yōu)檫壿?ldquo;0”。注意,寫保護(hù)引腳不能懸空,否則器件將無法正常工作。
2 軟件處理措施
    在保證硬件電路設(shè)計(jì)可靠的同時(shí),提高軟件的抗干擾能力同樣重要。在對(duì)I2C串行EEPROM進(jìn)行讀寫操作時(shí),要從兩個(gè)方面進(jìn)行可靠性的設(shè)計(jì),首先要保證I2C總線通訊的完整和有效性,其次就是保證I2C串行EEPROM讀寫數(shù)據(jù)的正確性。
2.1 保證 I2C總線通訊的完整和有效性措施
2.1.1 總線復(fù)位

    前面講到在I2C總線通訊過程中,由于電磁干擾等因素可能導(dǎo)致總線“掛死”或通訊失效,所以在啟動(dòng)通訊前,應(yīng)先對(duì)I2C串行EEPROM器件進(jìn)行復(fù)位操作,以保證I2C總線處于暢通狀態(tài)。對(duì)于具有復(fù)位引腳的器件,提供復(fù)位信號(hào)重新復(fù)位;而對(duì)于無復(fù)位引腳的器件,若電路設(shè)計(jì)中能控制其電源,則給器件上電復(fù)位;若無法控制器件電源,則啟動(dòng)“恢復(fù)序列”復(fù)位。恢復(fù)序列操作流程為:
    (1)在SCL線發(fā)送9個(gè)時(shí)鐘脈沖;
    (2)由Master保持SDA線為高,直到Slave-Transmitter模式釋放SDA執(zhí)行ACK操作;
    (3)在ACK操作時(shí),保持SDA線為高;
    (4)在Master-Receiver和Slave-Transmitter模式都結(jié)束后,Master發(fā)送一個(gè)Stop命令完成初始化總線[1]。
    恢復(fù)序列如圖1所示。

2.1.2 通訊流程
    對(duì)于具有硬件I2C協(xié)議的微處理器,都有一個(gè)總線狀態(tài)寄存器,每一個(gè)狀態(tài)都有一個(gè)唯一的狀態(tài)碼與之對(duì)應(yīng),指示總線接口的當(dāng)前狀態(tài),并且提供下一步的典型操作。可以充分利用這些狀態(tài)碼來判斷總線通訊是否正常,若不正常應(yīng)執(zhí)行總線復(fù)位。若微處理器沒有I2C協(xié)議接口,而是采用模擬方式對(duì)I2C串行EEPROM操作,那么每步操作后應(yīng)檢測(cè)接收到的ACK信號(hào),若信號(hào)為邏輯“1”,應(yīng)執(zhí)行總線復(fù)位。
2.2 保證I2C串行EEPROM讀寫數(shù)據(jù)的正確性措施
    I2C總線協(xié)議比較簡(jiǎn)單,本身對(duì)數(shù)據(jù)沒有容錯(cuò)機(jī)制,所以,在保證總線通訊完整和有效的前提下,應(yīng)對(duì)讀寫數(shù)據(jù)的正確性采取相應(yīng)的處理機(jī)制。
2.2.1 數(shù)據(jù)分區(qū)存放
    重要數(shù)據(jù)和參數(shù)應(yīng)分區(qū)存放,根據(jù)I2C串行存儲(chǔ)容量和存放的數(shù)據(jù)量分為3個(gè)區(qū)域或更多的奇數(shù)個(gè)區(qū)域,多個(gè)區(qū)域數(shù)據(jù)同步刷新,這樣就大大降低了由于強(qiáng)干擾造成的數(shù)據(jù)無法應(yīng)用的情況。數(shù)據(jù)存放格式如圖2所示。

    其中校驗(yàn)碼可根據(jù)系統(tǒng)的運(yùn)算速度,選擇單字節(jié)或16 bit CRC碼。
2.2.2 數(shù)據(jù)寫入
    數(shù)據(jù)寫入采取口令校對(duì)機(jī)制,寫入數(shù)據(jù)前生成寫入口令,在寫入子程序入口處檢驗(yàn)口令的正確性,如果口令正確,則啟動(dòng)寫入程序,操作完畢后使口令作廢;若口令錯(cuò)誤,則轉(zhuǎn)到錯(cuò)誤處理程序或放棄本次寫操作[2]。這樣將杜絕由于程序跑飛等原因造成的數(shù)據(jù)錯(cuò)誤改寫。
    在調(diào)用數(shù)據(jù)寫入程序前,根據(jù)數(shù)據(jù)校驗(yàn)規(guī)則生成所寫入數(shù)據(jù)的校驗(yàn)碼,連同校驗(yàn)碼一同寫入存儲(chǔ)區(qū)域,并且同步刷新所有區(qū)域。其校驗(yàn)碼是讀取數(shù)據(jù)時(shí)檢驗(yàn)數(shù)據(jù)正確與否的評(píng)判依據(jù)。數(shù)據(jù)寫入流程如圖3所示。

2.2.3 數(shù)據(jù)讀取
    讀取數(shù)據(jù)時(shí),依次從各存放區(qū)域連同數(shù)據(jù)的校驗(yàn)碼同時(shí)讀出,根據(jù)同樣的數(shù)據(jù)校驗(yàn)規(guī)則產(chǎn)生新的校驗(yàn)碼,通過該校驗(yàn)碼與讀出的校驗(yàn)碼比對(duì),判斷讀出數(shù)據(jù)的正確性[3]。評(píng)判原則為:若有一個(gè)存放區(qū)域的數(shù)據(jù)是正確的,則結(jié)束讀操作;若所有區(qū)域數(shù)據(jù)都不正確,則轉(zhuǎn)到錯(cuò)誤處理程序或放棄本次操作。數(shù)據(jù)讀取流程如圖4所示。

 

 

2.2.4 錯(cuò)誤處理
    (1)寫入錯(cuò)誤。由于程序跑飛等原因造成非法數(shù)據(jù)進(jìn)入寫入子程序入口,若看門狗未起作用,程序應(yīng)強(qiáng)制轉(zhuǎn)到復(fù)位入口開始執(zhí)行,并記錄該事件,以備查詢。
    (2)讀出錯(cuò)誤。若所有區(qū)域數(shù)據(jù)為錯(cuò)誤數(shù)據(jù),條件允許的情況下,應(yīng)發(fā)出告警提示,以避免造成更多的系統(tǒng)傷害;其他情況下應(yīng)根據(jù)數(shù)據(jù)的構(gòu)成結(jié)構(gòu),判斷與正確結(jié)構(gòu)相近的數(shù)據(jù)為有效數(shù)據(jù),或者將上一次的正確數(shù)據(jù)作為有效數(shù)據(jù),并刷新每個(gè)存放區(qū)域數(shù)據(jù),記錄該事件,以備查詢。
    本文結(jié)合實(shí)際應(yīng)用,找出了嵌入式控制系統(tǒng)中使用I2C串行EEPROM存儲(chǔ)器可能存在的問題及其產(chǎn)生的原因,并介紹了相應(yīng)的處理和保護(hù)措施。通過在產(chǎn)品實(shí)踐中的應(yīng)用,收到了很好的效果,極大地提高了系統(tǒng)的可靠性。這些技術(shù)實(shí)用、可靠,在對(duì)I2C串行EEPROM存儲(chǔ)器進(jìn)行應(yīng)用設(shè)計(jì)時(shí)可以借鑒。
參考文獻(xiàn)
[1] Microchip Technology Inc.I2C串行EEPROM系列數(shù)據(jù)手冊(cè)[S].2008:1-21.
[2] 李維平,張濤,丁振君.延長(zhǎng)EEPROM使用壽命的方法[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2005(6):76-78.
[3] 何立民.I2C總線應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1995:50-80.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久人人爽国产| 亚洲毛片网站| 免费永久网站黄欧美| 亚洲高清一区二| 亚洲国产精品99久久久久久久久| 老司机精品导航| 艳妇臀荡乳欲伦亚洲一区| 一区二区三区视频在线| 国产欧美日韩精品丝袜高跟鞋| 欧美资源在线| 亚洲欧洲日产国产网站| 一区二区激情小说| 国内伊人久久久久久网站视频| 欧美激情久久久| 亚洲欧美在线一区| 久久精品国产亚洲a| 亚洲伦理在线免费看| 国产日产欧美一区| 国产美女精品视频免费观看| 欧美69视频| 你懂的国产精品| 欧美国产日韩精品| 欧美日韩大片| 久久久噜噜噜久久中文字免| 99视频一区| 99热精品在线| 亚洲深夜激情| 亚洲国产一区二区三区a毛片| 99亚洲伊人久久精品影院红桃| 亚洲精品一区二区三区av| 国产色婷婷国产综合在线理论片a| 欧美成人午夜免费视在线看片| 亚洲欧美日韩另类| 先锋影音网一区二区| 亚洲精品一区二| 日韩午夜精品| 亚洲成在人线av| 亚洲一区二三| 日韩亚洲欧美综合| 伊人伊人伊人久久| 国产精品午夜久久| 欧美日韩在线三区| 欧美成人精精品一区二区频| 欧美激情在线有限公司| 久久久蜜臀国产一区二区| 美日韩精品免费| 久久精品国产成人| 亚洲嫩草精品久久| 一区二区三区欧美在线观看| 亚洲激情视频在线| 一区二区三区国产| 欧美一区二区三区在线观看视频 | 99精品视频免费| 亚洲一区二区日本| 亚洲免费观看| 亚洲主播在线播放| 久久蜜桃精品| 欧美日本精品| 欧美国产精品v| 欧美色一级片| 欧美日韩另类国产亚洲欧美一级| 国产精品久久一卡二卡| 欧美日韩一区二区三区四区在线观看 | 亚洲五月婷婷| 99re6热在线精品视频播放速度| 亚洲午夜免费视频| 91久久精品一区二区别| 亚洲欧美制服中文字幕| 美女网站久久| 国产精品亚洲美女av网站| 亚洲高清在线精品| 亚洲欧美综合国产精品一区| 亚洲欧美成人网| 亚洲综合日韩在线| 亚洲欧美电影院| 亚洲精品自在在线观看| 欧美一区二粉嫩精品国产一线天| 欧美精品激情| 黑人巨大精品欧美一区二区小视频 | 亚洲视频www| 麻豆成人综合网| 国产精品一区二区三区四区五区 | 夜久久久久久| 美国十次成人| 国产一区二区三区在线观看免费 | 亚洲精品久久嫩草网站秘色| 欧美淫片网站| 欧美中文字幕在线视频| 久久av红桃一区二区小说| 中文在线不卡| 欧美二区乱c少妇| 好吊妞**欧美| 午夜精品999| 亚洲欧美久久久| 欧美日韩精品在线| 亚洲国产欧美一区二区三区同亚洲| 亚洲国产综合视频在线观看| 先锋影音国产精品| 亚洲国产精品国自产拍av秋霞| 亚洲欧美在线x视频| 欧美日韩性生活视频| 亚洲成色999久久网站| 亚洲美女av黄| 日韩午夜电影| 欧美激情五月| 在线日韩精品视频| 最新国产成人在线观看| 久久久久久网址| 国产在线成人| 欧美一区二区三区啪啪| 欧美一区在线视频| 国产精品亚洲综合天堂夜夜| 中日韩视频在线观看| 这里只有视频精品| 欧美日韩在线不卡| 一片黄亚洲嫩模| 亚洲在线一区二区| 欧美午夜在线观看| 国产一在线精品一区在线观看| 亚洲资源av| 欧美在线三级| 国产精品一区二区欧美| 亚洲尤物在线视频观看| 亚洲欧美国产77777| 国产精品久久久久久久久免费| 国产一区二区三区在线观看精品| 亚洲女ⅴideoshd黑人| 午夜精品区一区二区三| 国产精品网站一区| 欧美一区二区在线免费播放| 久久精品夜色噜噜亚洲a∨| 欧美日本视频在线| 亚洲日本在线视频观看| 翔田千里一区二区| 久久精品国产第一区二区三区| 国产情人节一区| 欧美一区二区视频在线观看2020| 久久精品国产一区二区三| 黑人巨大精品欧美黑白配亚洲| 亚洲福利在线观看| 欧美高清在线一区二区| 亚洲精品自在久久| 亚洲一区二区在| 国产欧美日韩亚洲| 久久精品一区二区国产| 欧美成人乱码一区二区三区| 亚洲精品一区中文| 午夜精品一区二区三区在线播放 | 欧美福利网址| 99成人在线| 久久福利电影| **网站欧美大片在线观看| 9i看片成人免费高清| 国产精品美女久久久久av超清 | 亚洲第一黄色网| 欧美区高清在线| 亚洲一区二区精品视频| 久久久精品日韩| 亚洲国产欧美日韩| 亚洲——在线| 樱桃视频在线观看一区| 一区二区三区四区五区精品| 国产精品自拍视频| 亚洲精品久久久蜜桃| 久久精品成人一区二区三区蜜臀| 伊人一区二区三区久久精品| 一区二区三区不卡视频在线观看| 中文国产一区| 欧美怡红院视频| 国产精品高潮呻吟| 在线日本高清免费不卡| 亚洲黄色小视频| 欧美在线999| 亚洲午夜一区二区三区| 影院欧美亚洲| 91久久精品国产91性色tv| 欧美一区二区三区的| 日韩视频在线免费| 久久国产成人| 国产精品国产三级国产专区53| 伊人久久婷婷| 欧美在线一级va免费观看| 99国内精品| 欧美日韩一区二区国产| 亚洲乱码久久| 久久精品欧美日韩| 国产精品免费福利| 夜夜夜久久久| 亚洲欧美色婷婷| 国产精品久久夜| 在线欧美日韩精品| 欧美怡红院视频一区二区三区| 欧美诱惑福利视频| 午夜激情综合网| 国产精品女人毛片| 日韩午夜三级在线| 99日韩精品| 国产精品一区二区黑丝| 欧美一区二区在线| 久久超碰97中文字幕|