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

摘  要: 在大多數嵌入式控制系統中,為了避免系統的設置參數、運行數據等在掉電時丟失,常采用I2C串行EEPROM作為存儲器。然而EEPROM存儲器使用時存在著一些條件會潛在地導致其產生某些非標準的甚至是錯誤的操作。就如何提高I2C串行EEPROM器件應用的可靠性和準確性,提出了相關的保護和處理措施,這些措施對于EEPROM的實際應用具有指導意義。
關鍵詞: 嵌入式控制系統;I2C;EEPROM器件

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

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

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

    其中校驗碼可根據系統的運算速度,選擇單字節或16 bit CRC碼。
2.2.2 數據寫入
    數據寫入采取口令校對機制,寫入數據前生成寫入口令,在寫入子程序入口處檢驗口令的正確性,如果口令正確,則啟動寫入程序,操作完畢后使口令作廢;若口令錯誤,則轉到錯誤處理程序或放棄本次寫操作[2]。這樣將杜絕由于程序跑飛等原因造成的數據錯誤改寫。
    在調用數據寫入程序前,根據數據校驗規則生成所寫入數據的校驗碼,連同校驗碼一同寫入存儲區域,并且同步刷新所有區域。其校驗碼是讀取數據時檢驗數據正確與否的評判依據。數據寫入流程如圖3所示。

2.2.3 數據讀取
    讀取數據時,依次從各存放區域連同數據的校驗碼同時讀出,根據同樣的數據校驗規則產生新的校驗碼,通過該校驗碼與讀出的校驗碼比對,判斷讀出數據的正確性[3]。評判原則為:若有一個存放區域的數據是正確的,則結束讀操作;若所有區域數據都不正確,則轉到錯誤處理程序或放棄本次操作。數據讀取流程如圖4所示。

 

 

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

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲精品视频在线播放| 久久精品国产久精国产爱| 国产欧美日韩麻豆91| 欧美日本不卡| 欧美岛国激情| 欧美www视频| 欧美+日本+国产+在线a∨观看| 久久精品国产久精国产爱| 性伦欧美刺激片在线观看| 亚洲天堂视频在线观看| 亚洲视频在线观看网站| 亚洲午夜91| 亚洲欧美精品suv| 亚洲欧美日韩在线播放| 午夜精品视频一区| 欧美一二三区在线观看| 欧美亚洲免费高清在线观看| 亚洲欧美三级伦理| 欧美一级视频免费在线观看| 性做久久久久久久免费看| 性视频1819p久久| 久久成人综合网| 久久精品电影| 裸体歌舞表演一区二区| 狂野欧美激情性xxxx欧美| 免费h精品视频在线播放| 葵司免费一区二区三区四区五区| 欧美 日韩 国产精品免费观看| 你懂的网址国产 欧美| 欧美激情精品久久久久久黑人 | 91久久极品少妇xxxxⅹ软件| 亚洲一区二区三区在线看| 日韩亚洲欧美一区二区三区| 9国产精品视频| 亚洲一区在线观看视频 | 亚洲欧美国产精品桃花| 亚洲欧美日本国产有色| 午夜精品影院| 亚洲电影av| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 亚洲电影一级黄| 亚洲人成小说网站色在线| 日韩午夜电影| 亚洲欧美欧美一区二区三区| 欧美在线综合| 一本久久综合亚洲鲁鲁五月天| 亚洲在线第一页| 久久久国产精品亚洲一区| 老司机免费视频一区二区| 欧美日本在线播放| 国产精品女人网站| 樱桃成人精品视频在线播放| 亚洲无线一线二线三线区别av| 日韩视频在线永久播放| 亚洲午夜激情网站| 久久精品国产亚洲一区二区三区| 日韩一区二区精品葵司在线| 欧美专区在线播放| 欧美成人小视频| 国产精品爽爽爽| 在线日韩av永久免费观看| 在线亚洲欧美专区二区| 久久精品免费观看| 亚洲社区在线观看| 久久精品伊人| 国产精品99一区二区| 红桃视频一区| 亚洲天堂激情| 亚洲美女区一区| 欧美在线播放| 欧美视频在线观看 亚洲欧| 国产在线视频不卡二| 亚洲精品乱码久久久久| 午夜视频在线观看一区| 一区二区三区你懂的| 久久亚洲私人国产精品va媚药| 欧美日韩日日骚| 一区二区在线看| 亚洲一区二区三区四区中文 | 亚洲欧美国产另类| 日韩亚洲欧美综合| 久久精品在线| 国产精品久久久久国产a级| 亚洲国产精品一区制服丝袜| 亚洲欧美激情四射在线日| 999在线观看精品免费不卡网站| 久久精品国产精品亚洲精品| 欧美视频一区二| 亚洲欧洲精品一区二区| 久久国产加勒比精品无码| 亚洲自拍偷拍一区| 欧美精品一区二区三区久久久竹菊| 国产精品自拍小视频| 欧美成人一区二免费视频软件| 国产日韩一区二区三区| 日韩午夜中文字幕| 亚洲卡通欧美制服中文| 久久免费视频网| 国产精品成人播放| 亚洲人被黑人高潮完整版| 久久成人av少妇免费| 欧美专区在线观看| 国产精品国产三级国产专播精品人| 亚洲福利久久| 亚洲福利在线视频| 久久精品视频一| 国产精品一二一区| 一区二区三区.www| 一区二区三区日韩精品视频| 欧美电影免费观看| 亚洲国产高清aⅴ视频| 亚洲国产91| 久久香蕉国产线看观看av| 国产一区二区三区久久 | 欧美女同在线视频| 亚洲国产成人精品久久| 国内精品免费在线观看| 一本久久a久久精品亚洲| 午夜在线观看欧美| 国语自产精品视频在线看| 亚洲美女诱惑| 国产精品视频yy9099| 午夜精品久久久久| 亚洲国产精品久久久久婷婷老年 | 国产精品一区视频网站| 在线观看的日韩av| 亚洲午夜一级| 亚洲精品资源美女情侣酒店| 亚洲激情视频在线播放| 午夜免费久久久久| 亚洲高清不卡av| 一区二区三区偷拍| 一本一本久久| 国产美女诱惑一区二区| 99国产精品自拍| av成人激情| 欧美亚洲第一页| 亚洲一二三四久久| 欧美一区二区三区视频在线观看 | 欧美激情一区二区三区四区| 亚洲国产成人久久| 亚洲美女在线一区| 欧美日韩大陆在线| 国产精品99久久久久久久久久久久| 亚洲香蕉视频| 国产精品美女黄网| 新67194成人永久网站| 久久夜色精品国产噜噜av| 在线不卡亚洲| 欧美日韩亚洲视频| 亚洲一区二区在| 久久精彩免费视频| 在线精品在线| 一区二区三区产品免费精品久久75| 国产精品对白刺激久久久| 午夜一区二区三区在线观看| 麻豆成人在线| 一道本一区二区| 欧美伊久线香蕉线新在线| 好吊日精品视频| 日韩亚洲精品在线| 国产伦精品一区二区三区免费迷| 亚洲成人在线网站| 欧美精品免费视频| 亚洲综合国产| 欧美jizz19性欧美| 一区二区三区色| 久久久福利视频| 亚洲美女黄色| 久久精品国产精品亚洲| 亚洲日本va午夜在线电影| 性久久久久久| 亚洲欧洲另类| 欧美制服丝袜第一页| 亚洲精品一级| 久久福利一区| 日韩视频一区二区三区| 久久精品视频免费观看| 日韩午夜av在线| 久久久综合视频| 中文在线资源观看视频网站免费不卡| 久久久久久电影| 99国产精品视频免费观看一公开| 久久嫩草精品久久久精品| 99精品视频免费全部在线| 久久女同互慰一区二区三区| 9国产精品视频| 嫩草影视亚洲| 欧美亚洲网站| 欧美午夜精品久久久久久人妖| 亚洲国产免费看| 国产欧美一区二区精品仙草咪| 亚洲精品免费电影| 国产一区二区| 亚洲一区在线观看视频| 亚洲电影免费在线| 久久久久久久综合色一本| 一区二区三区产品免费精品久久75| 老司机凹凸av亚洲导航| 亚洲女女女同性video|