تجنب ارتداء EEPROM

ملخص: إذا قمت بتحديث قيمة بشكل دوري في EEPROM كل بضع دقائق (أو عدة ثوان) ، فقد تواجه مشكلة تآكل خلايا EEPROM. لتجنب ذلك ، تحتاج إلى تقليل تكرار الإدخالات في الخلية. بالنسبة لبعض أنواع EEPROM ، حتى سرعات التسجيل أكثر من مرة واحدة في الساعة يمكن أن تكون مشكلة.



عندما تقوم بتسجيل البيانات ، يمر الوقت بسرعة


يتم استخدام EEPROM عالميًا لحفظ الإعدادات وسجلات التشغيل في الأنظمة المضمنة. على سبيل المثال ، قد ترغب في أن تقوم ميزة الصندوق الأسود بتسجيل أحدث البيانات في وقت وقوع حادث أو فقدان الطاقة. لقد رأيت المواصفات التي تتطلب تسجيل مثل هذه البيانات كل بضع ثوان.

لكن المشكلة هي أن EEPROM لديها مورد رقم قياسي محدود. بعد 100000 أو مليون سجل (اعتمادًا على الشريحة المحددة) ، ستبدأ بعض أنظمتك تواجه مشكلات في فشل EEPROM. (ابحث في ورقة البيانات عن رقم معين. إذا كنت تريد إطلاق عدد كبير من الأجهزة ، فمن المحتمل أن تكون "الحالة الأسوأ" أكثر أهمية من الجهاز "النموذجي"). يبدو مليون سجل مثل عدد كبير ، ولكنه في الحقيقة سينتهي بسرعة كبيرة. دعونا نلقي نظرة على مثال ، بافتراض أننا بحاجة إلى تخزين الجهد المقاس في خلية واحدة كل 15 ثانية.

1.000.000 سجل بسجل واحد في 15 ثانية تعطي تسجيلات في الدقيقة:
1،000،000 / (4 * 60 دقيقة / ساعة * 24 ساعة / يوم) = 173.6 يوم.
بمعنى آخر ، ستنفد EEPROM من احتياطيات مليون سجل في أقل من 6 أشهر.

فيما يلي رسم بياني يوضح وقت ارتداء (بالسنوات) بناءً على فترة التحديث لخلية EEPROM محددة. الحد الأقصى للمنتج الذي يبلغ متوسط ​​عمره المتوقع 10 سنوات هو تحديث واحد كل 5 دقائق و 15 ثانية لشريحة بمورد يبلغ مليون سجل. بالنسبة إلى EEPROM بمورد 100 كيلوبايت ، يمكنك تحديث خلية محددة مرة واحدة كل 52 دقيقة. هذا يعني أنه يجب ألا تأمل في تحديث الخلية كل بضع ثوانٍ إذا كنت تريد أن يعمل منتجك لسنوات ، وليس أشهرًا. المقاييس أعلاه خطية ، ومع ذلك ، هناك أيضًا عوامل ثانوية في هذا الجهاز ، مثل درجة الحرارة ووضع الوصول.



تقليل التردد


إن أكثر طريقة غير مؤلمة لحل المشكلة هي ببساطة كتابة البيانات بمعدل أقل. في بعض الحالات ، تسمح متطلبات النظام بذلك. أو يمكنك التسجيل فقط مع أي تغييرات كبيرة. ومع ذلك ، مع إدخال متعلق بالحدث ، كن على دراية بسيناريو محتمل تتذبذب فيه القيمة باستمرار وتتسبب في تدفق الأحداث التي ستؤدي إلى ارتداء EEPROM.
(سيكون من اللطيف أن تتمكن من تحديد عدد مرات تسجيل EEPROM. ولكن هذا سيتطلب عدادًا يتم تخزينه في EEPROM ... وتتحول المشكلة إلى مشكلة ارتداء مضادة.)

انقطاع الحد من التغذية


تحتوي بعض المعالجات على مقاطعة طاقة منخفضة يمكن استخدامها لكتابة قيمة أخيرة إلى EEPROM ، بينما يتم إيقاف تشغيل النظام بسبب فقدان الطاقة. بشكل عام ، تقوم بتخزين قيمة الفائدة في ذاكرة الوصول العشوائي (RAM) ، ولا تحفظها إلا في EEPROM عند إيقاف تشغيل الطاقة. أو ربما تكتب EEPROM من وقت لآخر ، وتكتب نسخة أخرى إلى EEPROM كجزء من إجراء إيقاف التشغيل لضمان كتابة أحدث البيانات.
من المهم التأكد من وجود مكثف طاقة كبير يحافظ على جهد كافٍ لبرمجة EEPROM لفترة طويلة بما فيه الكفاية. قد يعمل هذا إذا كنت بحاجة إلى كتابة قيمة واحدة أو قيمتين ، ولكن ليس كتلة كبيرة من البيانات. تنبيه ، هناك متسع كبير للخطأ!

المخزن المؤقت الحلقي


الحل الكلاسيكي لمشكلة التآكل هو استخدام المخزن المؤقت الحلقي FIFO الذي يحتوي على إدخالات القيمة الأخيرة لـ N. تحتاج أيضًا إلى حفظ مؤشر في نهاية المخزن المؤقت في EEPROM. هذا يقلل من تآكل EEPROM بقيمة تتناسب مع عدد النسخ في هذا المخزن المؤقت. على سبيل المثال ، إذا كان المخزن المؤقت يمر عبر 10 عناوين مختلفة لحفظ قيمة واحدة ، فسيتم تعديل كل خلية معينة 10 مرات أقل ويزيد مورد الكتابة 10 مرات. ستحتاج أيضًا إلى عداد منفصل أو طابع زمني لكل نسخة من النسخ العشر ، حتى تتمكن من تحديد أي واحدة هي الأخيرة في وقت إيقاف التشغيل. بمعنى آخر ، أنت بحاجة إلى مخزنين ، أحدهما للقيمة والآخر للعداد. (إذا قمت بحفظ العداد في نفس العنوان ، سيؤدي ذلك إلى تدهوره ، لأنه يجب أن يزداد مع كل دورة تسجيل.) عيب هذه الطريقة هوأنك بحاجة إلى مساحة أكبر بعشر مرات للحصول على حياة أطول بعشر مرات. يمكنك أن تكون ذكيًا وتعبئ العداد مع البيانات. إذا قمت بكتابة كمية كبيرة من البيانات ، فإن إضافة عدد قليل من وحدات البايت إلى العداد ليست مشكلة كبيرة. ولكن على أي حال ، ستحتاج إلى الكثير من EEPROM.
أعدت Atmel ملحقة تحتوي على جميع التفاصيل الدموية:
AVR-101: تخزين عالي EEPROM: www.atmel.com/images/doc2526.pdf

حالة خاصة لعداد عدد السجلات


في بعض الأحيان تحتاج إلى حفظ العداد ، وليس القيم نفسها. على سبيل المثال ، قد ترغب في معرفة عدد مرات تشغيل الجهاز ، أو وقت تشغيل جهازك. أسوأ شيء في العدادات هو أنها تغير باستمرار الجزء الأقل أهمية ، حيث ترتدي خلايا EEPROM السفلية بشكل أسرع. ولكن هنا من الممكن تطبيق بعض الحيل. هناك العديد من الأفكار الذكية في التطبيق الصغير من Microchip ، مثل استخدام رمز رمادي بحيث يتغير بت واحد فقط من عداد متعدد وحدات البايت عند تغير قيمة العداد. كما يوصون باستخدام الرموز التصحيحية للتعويض عن البلى. (لا أعرف مدى فعالية استخدام مثل هذه الرموز ، لأنها ستعتمد على مدى استقلالية الأخطاء في البتات الموجودة في وحدات البايت في العداد ، على مسؤوليتك الخاصة ، المؤلف تقريبًا). انظر الملحق:ww1.microchip.com/downloads/en/AppNotes/01449A.pdf

ملاحظة: بالنسبة لأولئك الذين يرغبون في معرفة المزيد ، أعدت Microchip وثيقة تحتوي على معلومات تفصيلية حول ترتيب خلايا EEPROM وتآكلها مع الرسوم البيانية:
ftp.microchip.com/tools /memory/total50/tutorial.html

دعني أعرف إذا كان لديك أي أفكار مثيرة للاهتمام حول كيفية التعامل مع ارتداء EEPROM.

المصدر: Phil Koopman، Better Embedded System SW
Betterembsw.blogspot.ru/2015/07/avoiding-eeprom-wearout.html

ملاحظة المترجم: في السنوات الأخيرة ، ظهرت رقائق EEPROM مع منظمة مسح الصفحات (على غرار رقائق FLASH) ، حيث يمكن معالجة الخلايا (قراءة وكتابة ومسح) منطقيًا وداعًا ، ولكن الشريحة تمسح الصفحة بأكملها بشكل غير مرئي للمستخدم وتستبدلها ببيانات جديدة. أولئك. بعد محو الخلايا في العنوان 0 ، قمنا في الواقع بمسح وإعادة كتابة الخلايا باستخدام العناوين 0 ... 255 (بحجم صفحة 256 بايت) ، لذا لن تساعد خدعة المخزن المؤقت في هذه الحالة. عندما يتم استنفاد مورد السجل لهذه الدائرة المصغرة ، لا تفشل خلية واحدة ، ولكن الصفحة بأكملها. في أوراق البيانات لهذه الدوائر المصغرة ، يتم الإشارة إلى مورد التسجيل للصفحة ، وليس لخلية معينة. انظر ، على سبيل المثال ، ورقة البيانات على 25LC1024 من رقاقة.

Source: https://habr.com/ru/post/ar385213/


All Articles