新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 如何解決串行E2PROM 24C02在應(yīng)用中的問題

如何解決串行E2PROM 24C02在應(yīng)用中的問題

作者: 時間:2012-07-19 來源:網(wǎng)絡(luò) 收藏
串行是基于I2C-BUS的存儲器件,遵循二線制協(xié)議,由于其具有接口方便,體積小,數(shù)據(jù)掉電不揮發(fā)等特點,在儀器儀表及工業(yè)自動化控制中得到大量的應(yīng)用。隨著世界上各公司對該器件的開發(fā),市場上推出了許多牌號的器件,甚至還有一些冒牌的器件,這樣就使批量生產(chǎn)的單片機控制系統(tǒng)的質(zhì)量出現(xiàn)時好時壞的問題。筆者經(jīng)過大量的設(shè)計實踐和試驗摸索找出了在應(yīng)用中之所以出現(xiàn)數(shù)據(jù)被沖掉的原因,并總結(jié)了一套保護(hù)24C02數(shù)據(jù)安全的軟硬件設(shè)計方法。

1.不同牌號24C02的性能區(qū)別

24C02與單片機的接口非常簡單,如圖1所示。A0,A1,A2為器件地址線,WP為寫保護(hù)引腳,SCL,SDA為二線串行接口,符合I2C總線協(xié)議。在一般單片機系統(tǒng)中,24C02數(shù)據(jù)受到干擾的情況是很少的,但是隨著單片機抗干擾性能的變差,以及惡劣工業(yè)環(huán)境中單片機系統(tǒng)的應(yīng)用,一些智能單片機控制系統(tǒng)相繼出現(xiàn)24C02數(shù)據(jù)被沖掉的問題,而且隨著單片機的牌號以及24C02的牌號不同而出現(xiàn)不同程度的干擾現(xiàn)象。以前通過簡單的器件之間替換比較,發(fā)現(xiàn)不同牌號的24C02其抗干擾性能是不一樣的,于是就認(rèn)定24C02器件存在"質(zhì)量"好壞的問題。后來在一次偶然的機會里,發(fā)現(xiàn)有些24C02的WP引腳并不起到保護(hù)作用,也就是說將WP引腳與CPU輸出引腳斷開并保持高電平的情況下,CPU仍然能夠?qū)?4C02中的數(shù)據(jù)進(jìn)行修改寫入!在驚訝之余,筆者收集了許多不同牌號的24C02進(jìn)行試驗,除了基本的讀寫功能外,還對地址功能以及WP引腳保護(hù)功能進(jìn)行了全面的檢測,發(fā)現(xiàn)一種ATMEL(激光印字)以及XICOR牌號的24C02具有全面的符合I2C總線協(xié)議的功能,而有些牌號24C02要么沒有WP引腳保護(hù)功能,要么沒有器件地址功能(即2片24C02不能共用一個I2C總線),有些甚至兩種功能均無。所以說一些同樣功能型號的電子器件在兼容性上往往會帶來意想不到的問題,值得引起注意。



點擊在新窗口中瀏覽產(chǎn)品

2.24C02器件的選用

無論是智能儀器儀表還是單片機工業(yè)控制系統(tǒng)都要求其數(shù)據(jù)能夠安全可靠而不受干擾,特別是一些重要的設(shè)定參數(shù)(如溫度控制設(shè)定值)受到干擾后變成一個很大的數(shù)字,那么就有可能發(fā)生燒箱毀物的破壞性后果,給生產(chǎn)和經(jīng)濟(jì)帶來損失,因此必須選用可靠的24C02器件作為數(shù)據(jù)儲存單元。
對于只用一片24C02器件的系統(tǒng),因為不需要分辨不同的地址,只要WP保護(hù)功能正常就可以了,這只要斷開WP與CPU連線且保持高電平,再試一下系統(tǒng)數(shù)據(jù)讀寫功能是否正常就可以了。而這一點對軟件抗干擾技術(shù)也是至關(guān)重要的。一般來說,同種牌號的24C02器件性能是一樣的,可以采用抽樣試驗決定取舍;對于有2片24C02以上的系統(tǒng),必須嚴(yán)格檢查其器件尋址功能,這可以輪流撥下其中一片24C02器件,檢查相應(yīng)的數(shù)據(jù)存取功能,若沒有交叉出錯現(xiàn)象則可以選用。

3.提高24C02數(shù)據(jù)安全的軟件措施

(1)建議數(shù)據(jù)以十進(jìn)制BCD碼方式存入24C02,這樣可以提高有效數(shù)據(jù)的,即24C02中的存儲單元其有效數(shù)據(jù)為0-9,大于9則為無效數(shù)據(jù)。這樣,在數(shù)據(jù)寫入24C02之前就可以插入校驗子程序,對預(yù)備寫入的數(shù)據(jù)進(jìn)行檢查,若該RAM數(shù)據(jù)已經(jīng)受到干擾,其值大多數(shù)應(yīng)落在大于9的范圍內(nèi)(可能性百分比系數(shù)為246/256),故此當(dāng)數(shù)據(jù)大于9時就禁止執(zhí)行寫入24C02的子程序,以免錯誤數(shù)據(jù)寫入24C02,而對正常需要修改的參數(shù)無影響。

(2)24C02中數(shù)據(jù)保持后,還可以對讀出數(shù)據(jù)進(jìn)行檢查,若為大于9的非正常數(shù)據(jù),說明24C02中數(shù)據(jù)已經(jīng)受到干擾,此干擾值是絕對不能用的,對于特定的系統(tǒng)可以采取不同的方法,比如帶溫度控制的培養(yǎng)箱等系統(tǒng),如其溫控范圍為0~50℃,則數(shù)據(jù)出錯后,讀入值可能變成200℃或更高值,這是非常危險的,針對這種情況可以將設(shè)定值硬性規(guī)定為某一個安全值比如25℃,因為不知道原先設(shè)置的參數(shù)值,這也是無可奈何的事情。


上一頁 1 2 下一頁

關(guān)鍵詞: E2PROM 24C02 冗余度

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉