24C02

24C02

基于I2C-BUS的存儲器件
串行E2PROM是基于I2C-BUS的存儲器件,遵循二線制協議,由于其具有接口方便,體積小,數據掉電不丢失等特點,在儀器儀表及工業自動化控制中得到大量的應用。随着世界上各公司對該器件的開發,市場上推出了許多牌号的24C02器件,甚至還有一些冒牌的24C02器件,這樣就使批量生産的單片機控制系統的質量出現時好時壞的問題。經過大量的設計實踐和試驗摸索,找出了24C02在應用中之所以出現數據被沖掉的原因,并總結了一套保護24C02數據安全的軟硬件設計方法。建議數據以十進制BCD碼方式存入24C02,這樣可以提高有效數據的冗餘度,即24C02中的存儲單元其有效數據為0-9,大于9則為無效數據。
  • 中文名:無
  • 外文名:24C02
  • 用途:
  • 基于:I2C-BUS的存儲器件
  • 遵循:二線制協議

主要應用

1.不同牌号24C02的性能區别

24C02與單片機的接口非常簡單,如下圖所示。

E0,E1,E2為器件地址線,WP為寫保護引腳,SCL,SDA為二線串行接口,符合I2C總線協議。在一般單片機系統中,24C02數據受到幹擾的情況是很少的,但是随着單片機抗幹擾性能的變差,以及惡劣工業環境中單片機系統的應用,一些智能單片機控制系統相繼出現24C02數據被沖掉的問題,而且随着單片機的牌号以及24C02的牌号不同而出現不同程度的幹擾現象。

以前通過簡單的器件之間替換比較,發現不同牌号的24C02其抗幹擾性能是不一樣的,于是就認定24C02器件存在"質量"好壞的問題。後來在一次偶然的機會裡,發現有些24C02的WP引腳并不起到保護作用,也就是說将WP引腳與CPU輸出引腳斷開并保持高電平的情況下,CPU仍然能夠對24C02中的數據進行修改寫入!在驚訝之餘,筆者收集了許多不同牌号的24C02進行試驗,除了基本的讀寫功能外,還對地址功能以及WP引腳保護功能進行了全面的檢測,發現一種ATMEL(激光印字)以及XICOR牌号的24C02具有全面的符合I2C總線協議的功能,而有些牌号24C02要麼沒有WP引腳保護功能,要麼沒有器件地址功能(即2片24C02不能共用一個I2C總線),有些甚至兩種功能均無。所以說一些同樣功能型号的電子器件在兼容性上往往會帶來意想不到的問題,值得引起注意。

2.24C02器件的選用

無論是智能儀器儀表還是單片機工業控制系統都要求其數據能夠安全可靠而不受幹擾,特别是一些重要的設定參數(如溫度控制設定值)受到幹擾後變成一個很大的數字,這時就有可能發生燒箱毀物的破壞性後果,給生産和經濟帶來損失,因此必須選用可靠的24C02器件作為數據儲存單元。

對于隻用一片24C02器件的系統,因為不需要分辨不同的地址,隻要WP保護功能正常就可以了,這隻要斷開WP與CPU連線且保持高電平,再試一下系統數據讀寫功能是否正常就可以了。而這一點對軟件抗幹擾技術也是至關重要的。一般來說,同種牌号的24C02器件性能是一樣的,可以采用抽樣試驗決定取舍;對于有2片24C02以上的系統,必須嚴格檢查其器件尋址功能,這可以輪流撥下其中一片24C02器件,檢查相應的數據存取功能,若沒有交叉出錯現象則可以選用。

3.提高24C02數據安全的軟件措施

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

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

(3)對寫入24C02子程序設置軟件口令,口令符合可以執行寫入,否則拒絕寫入。具體做法是:設置寫口令寄存器EPSW,按正常CPU執行程序的脈絡,找出所有的數據寫入24C02前的必經之路,比如,一般下在功能鍵按下後經過一些數據處理,最終将要保存的參數寫入24C02,這時可以在鍵掃描子程序裡,當有鍵輸入時,對寫口令寄存器EPSW置數5AH,然後在寫24C02子程序中緊跟指令CLRWP後插入檢查口令語句,判斷EPSW值若為5AH,則允許繼續執行,否則立即返回,不許執行寫入數據。當正确執行完寫入24C02子程序後需對EPSW清0,并且在主程序适當的地方加上EPSW清0指令,反複冗餘執行。這樣程序受到幹擾時,EPSW多數為0,即使EPSW數受到幹擾時,也很少有機會剛好等于5AH,使錯誤數據非正常寫入24C02的機會大大減少。

數據寫入24C02子程序插入口令形式:

WRIT:CLRWP

MOVR1,#EPSW

MOVA,@R1

CJNEA#5AH,WERR

數據寫入24C02操作部分:

WERR:SETBWP

MOVR1,#EPSW

MOV@R1,#0

RET

其編程順序刻參考下面程序流程圖

4.保護24C02數據的硬件措施

在某些幹擾特别嚴重的場合,24C02數據還是有可能被沖掉,最徹底的方法是利用硬件來幹預寫入數據過程。一般情況下,是将WP引腳與CPU引腳斷開,而與功能鍵連接起來,功能鍵沒按下時,WP保持高電平,隻有功能鍵按下時,WP才是低電平,允許寫操作。當然,這樣一來對于某些過程量需要程控存入24C02時就辦不到了,這也是利用功能鍵同步保護24C02數據的一種不方便之處。

如果寫入24C02的數據跟2個按鍵有關,則可以用二極管隔離,采用如圖2的形式。

這樣兩鍵本身互不影響,而任一鍵按下都能使WP變低,使數據寫入操作有效,對于多鍵關聯,依此類推多放幾個二極管隔離就可以了。

5.結束語

以上所述的軟硬件措施在具體的單片機控制系統中可以靈活應用,硬件聯鎖保護比較徹底,但是單獨通過程序修改24C02中的某些數據就不可能了;軟件保護比較靈活,可以随時對控制過程中處理的數據存入24C02,以達到掉電保存的目的。在筆者設計的智能光照箱單片機控制系統中,由于日光燈起動和壓縮機起動及關斷時的電源高頻幹擾,系統的溫度設定值及時間設定值曾經經常發生變化,采用上述軟硬件并用的措施後系統運行穩定可靠,再也沒有發生設定數據被沖掉的現象。

6、重要補充(醉清風補)

在使用了N多個廠家24c02後發現:很多廠家的的Twr時間不一樣,這樣會導緻有些開發工程師軟件設計上帶來麻煩,順便說下Twr時間是上一次寫記憶到下一次寫記憶的間隔時間,英文資料裡要求24c02内部寫數據最大時間為10ms,也就是說在軟件設計時,應該把2次寫記憶時間間隔控制在大于Twr時間即間隔大于10ms,這樣就不會有問題了,不同的芯片Twr時間相差很大,ATMEL24C02為标準的芯片Twr實際在2ms左右,其他雜牌24C02芯片Twr實際時間一般都在4ms以上,所以建議各位工程師設計時Twr時間一定要控制在大于Twr時間,否則即使會在批量時暴露問題(哎!本人吃虧不少啊,教訓得出來的啊,也怪自己不好好讀英文資料,呵呵,血的教訓換來給大家參考),所以在選用24C02芯片時,這項功能也可以檢測下,Twr時間越小越好,也就是說24C02内部寫數據速度更快。

特點

1.寬範圍的工作電壓1.8v~5.5v

2.低電壓技術:

1mA典型工作電流

1uA典型待機電流

3.儲存器組織結構

4.2線串行接口,完全兼容I2C總線

5.施密特觸發輸入噪聲抑制

6.硬件數據寫保護

7.内部與周期(最大5ms)

8.自動遞增地址

9.可按照字節寫

10.esd保護大于2.5kV

11.高可靠性:

--擦寫壽命:100萬次數據保持時間:100年

12.無鉛工藝,符合RoHS标準

應用領域

—智能儀器儀表

—工業控制

—家用電器

—計算機、筆記本電腦

—汽車電子

—通信設備

最大額定參數:

相關詞條

相關搜索

其它詞條