當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]嵌入式控制系統(tǒng)中I2C串行EEPROM器件應(yīng)用

I2C串行EEPROM存儲器因具有外形體積小、接口緊湊簡單、占用引腳資源少、數(shù)據(jù)保存可靠、可在線改寫、功耗低和價格低廉等顯著特點,被廣泛應(yīng)用于嵌入式控制系統(tǒng)中,用于存放配置參數(shù)、調(diào)整和運行數(shù)據(jù)等信息。但由于其為同步串行傳輸,通訊協(xié)議非常簡單,沒有提供更為復(fù)雜的糾錯和檢測機制,在實踐中經(jīng)常因使用不當(dāng)造成數(shù)據(jù)丟失、數(shù)據(jù)無故改寫等問題。對于存儲數(shù)據(jù)要求非常高的系統(tǒng), 例如計量產(chǎn)品、無人值守系統(tǒng)等,如果存儲數(shù)據(jù)發(fā)生意外錯誤,造成的損失是致命的,因此在設(shè)計使用I2C串行EEPROM存儲器時,更多地需要硬件和軟件相互接合,采取一些相關(guān)的處理措施,使得產(chǎn)品能夠在各種惡劣的使用環(huán)境中可靠、正確地運行。

1 硬件處理措施

硬件處理過程中,應(yīng)重點考慮以下幾個方面:

(1)電源是一個控制系統(tǒng)可靠運行的基石,很多產(chǎn)品與外界的有線連接就是電源連接。因此,在產(chǎn)品設(shè)計時應(yīng)對電源電路進行有效濾波處理,并且應(yīng)該通過EMC的試驗檢測來降低電源紋波噪聲,抑制高頻震蕩和高壓脈沖的侵入,減少由于噪聲過大而引起的I2C串行EEPROM器件讀寫失誤。這一點尤為重要,因為實踐中很多系統(tǒng)的數(shù)據(jù)不知何故而發(fā)生了錯誤,可能的一個重要原因就是電源的抗干擾能力有限,從而導(dǎo)致I2C總線干擾。

(2)由于特殊原因,盡管對電源已經(jīng)進行了有效處理,仍無法避免電磁的干擾,在使用I2C串行EEPROM時,在I2C規(guī)范限制條件下,可以采取減小上拉電阻和使用I2C總線驅(qū)動器提高輸出驅(qū)動能力等措施來有效降低電磁干擾對讀寫的影響。

(3)I2C串行EEPROM 一般具有欠壓復(fù)位電路,如果微處理器欠壓復(fù)位的門限電壓高于I2C串行EEPROM,那么,由于電磁干擾造成的電壓波動使得微處理器可能會在總線通信過程中率先復(fù)位,而I2C串行EEPROM保持其當(dāng)前狀態(tài),導(dǎo)致總線出現(xiàn)“掛死”現(xiàn)象,使得數(shù)據(jù)傳輸不同步而出現(xiàn)數(shù)據(jù)錯誤。因此,應(yīng)盡量采用帶有掉電檢測功能的微處理器,設(shè)置微處理器掉電復(fù)位門檻電壓低于I2C串行EEPROM 的欠壓復(fù)位門檻,使得微處理器與I2C串行EEPROM同步復(fù)位[1]。

(4)為防止總線意外“掛死”,如果設(shè)計允許,最好能控制I2C器件的電源或選擇帶有復(fù)位引腳的器件。

(5)對于具有寫保護功能的I2C串行EEPROM,可充分利用寫保護引腳來提供硬件寫保護功能,將寫保護引腳連接到微處理器的I/O口線上,控制器件在平時處于寫保護狀態(tài);需要寫入時,將寫保護引腳變?yōu)檫壿?ldquo;0”。注意,寫保護引腳不能懸空,否則器件將無法正常工作。

2 軟件處理措施

在保證硬件電路設(shè)計可靠的同時,提高軟件的抗干擾能力同樣重要。在對I2C串行EEPROM進行讀寫操作時,要從兩個方面進行可靠性的設(shè)計,首先要保證I2C總線通訊的完整和有效性,其次就是保證I2C串行EEPROM讀寫數(shù)據(jù)的正確性。

2.1 保證 I2C總線通訊的完整和有效性措施

2.1.1 總線復(fù)位

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

恢復(fù)序列如圖1所示。

 


2.1.2 通訊流程

對于具有硬件I2C協(xié)議的微處理器,都有一個總線狀態(tài)寄存器,每一個狀態(tài)都有一個唯一的狀態(tài)碼與之對應(yīng),指示總線接口的當(dāng)前狀態(tài),并且提供下一步的典型操作。可以充分利用這些狀態(tài)碼來判斷總線通訊是否正常,若不正常應(yīng)執(zhí)行總線復(fù)位。若微處理器沒有I2C協(xié)議接口,而是采用模擬方式對I2C串行EEPROM操作,那么每步操作后應(yīng)檢測接收到的ACK信號,若信號為邏輯“1”,應(yīng)執(zhí)行總線復(fù)位。

2.2 保證I2C串行EEPROM讀寫數(shù)據(jù)的正確性措施

I2C總線協(xié)議比較簡單,本身對數(shù)據(jù)沒有容錯機制,所以,在保證總線通訊完整和有效的前提下,應(yīng)對讀寫數(shù)據(jù)的正確性采取相應(yīng)的處理機制。

2.2.1 數(shù)據(jù)分區(qū)存放

重要數(shù)據(jù)和參數(shù)應(yīng)分區(qū)存放,根據(jù)I2C串行存儲容量和存放的數(shù)據(jù)量分為3個區(qū)域或更多的奇數(shù)個區(qū)域,多個區(qū)域數(shù)據(jù)同步刷新,這樣就大大降低了由于強干擾造成的數(shù)據(jù)無法應(yīng)用的情況。數(shù)據(jù)存放格式如圖2所示。


其中校驗碼可根據(jù)系統(tǒng)的運算速度,選擇單字節(jié)或16 bit CRC碼。

2.2.2 數(shù)據(jù)寫入

數(shù)據(jù)寫入采取口令校對機制,寫入數(shù)據(jù)前生成寫入口令,在寫入子程序入口處檢驗口令的正確性,如果口令正確,則啟動寫入程序,操作完畢后使口令作廢;若口令錯誤,則轉(zhuǎn)到錯誤處理程序或放棄本次寫操作[2]。這樣將杜絕由于程序跑飛等原因造成的數(shù)據(jù)錯誤改寫。

在調(diào)用數(shù)據(jù)寫入程序前,根據(jù)數(shù)據(jù)校驗規(guī)則生成所寫入數(shù)據(jù)的校驗碼,連同校驗碼一同寫入存儲區(qū)域,并且同步刷新所有區(qū)域。其校驗碼是讀取數(shù)據(jù)時檢驗數(shù)據(jù)正確與否的評判依據(jù)。數(shù)據(jù)寫入流程如圖3所示。

 



2.2.3 數(shù)據(jù)讀取

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

 

2.2.4 錯誤處理

(1)寫入錯誤。由于程序跑飛等原因造成非法數(shù)據(jù)進入寫入子程序入口,若看門狗未起作用,程序應(yīng)強制轉(zhuǎn)到復(fù)位入口開始執(zhí)行,并記錄該事件,以備查詢。

(2)讀出錯誤。若所有區(qū)域數(shù)據(jù)為錯誤數(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ù),并刷新每個存放區(qū)域數(shù)據(jù),記錄該事件,以備查詢。

本文結(jié)合實際應(yīng)用,找出了嵌入式控制系統(tǒng)中使用I2C串行EEPROM存儲器可能存在的問題及其產(chǎn)生的原因,并介紹了相應(yīng)的處理和保護措施。通過在產(chǎn)品實踐中的應(yīng)用,收到了很好的效果,極大地提高了系統(tǒng)的可靠性。這些技術(shù)實用、可靠,在對I2C串行EEPROM存儲器進行應(yīng)用設(shè)計時可以借鑒。

參考文獻
[1] Microchip Technology Inc.I2C串行EEPROM系列數(shù)據(jù)手冊[S].2008:1-21.
[2] 李維平,張濤,丁振君.延長EEPROM使用壽命的方法[J]. 單片機與嵌入式系統(tǒng)應(yīng)用,2005(6):76-78.
[3] 何立民.I2C總線應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,1995:50-80.

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉