24C02

24C02

串列E2PROM是基於I2C-BUS 的存儲器件,遵循二線制協定,由於其具有接口方便,體積小,數據掉電不丟失等特點,在儀器儀表及工業自動化控制中得到大量的套用。隨著世界上各公司對該器件的開發,市場上推出了許多牌號的24C02器件,甚至還有一些冒牌的24C02器件,這樣就使批量生產的單片機控制系統的質量出現時好時壞的問題。筆者經過大量的設計實踐和試驗摸索找出了24C02在套用中之所以出現數據被衝掉的原因,並總結了一套保護24C02數據安全的軟硬體設計方法。

基本介紹

  • 中文名:24C02
  • 外文名:24C02
  • 基於:I2C-BUS 的存儲器件
  • 遵循:二線制協定
  • 容量:2KByte(256 Bytes * 8 Page)
主要套用:,特點:,套用領域:,

主要套用:

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匯流排),有些甚至兩種功能均無。所以說一些同樣功能型號的電子器件在兼容性上往往會帶來意想不到的問題,值得引起注意。
24C02
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子程式中緊跟指令CLR WP後插入檢查口令語句,判斷EPSW值若為5AH,則允許繼續執行,否則立即返回,不許執行寫入數據。當正確執行完寫入24C02子程式後需對EPSW 清0,並且在主程式適當的地方加上EPSW清0指令,反覆冗餘執行。這樣程式受到干擾時,EPSW多數為0,即使EPSW數受到干擾時,也很少有機會剛好等於5AH,使錯誤數據非正常寫入24C02的機會大大減少。
數據寫入24C02子程式插入口令形式:
WRIT: CLR WP
MOV R1, #EPSW
MOV A, @R1
CJNE A, #5AH,WERR
…… ;
數據寫入24C02操作部分:
WERR: SETB WP
MOV R1, #EPSW
MOV @R1, #0
RET
其編程順序刻參考下面程式流程圖
4.保護24C02數據的硬體措施
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內部寫數據速度更快。
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標準

套用領域:

—智慧型儀器儀表
—工業控制
—家用電器
—計算機 、筆記本電腦
—汽車電子
—通信設備
最大額定參數:
24C02

相關詞條

熱門詞條

聯絡我們