Table of Contents
مقدمة للذاكرة الخارجية مع أجهزة التحكم الدقيقة في تكنولوجيا المعلومات
وتوفر أجهزة التحكم الدقيقة التابعة للشركة من أجهزة القياس المصغرة، وأجهزة القياس بالأشعة الليفية الداخلية، والربط بالذاكرة للخزن، والمبالغ الصغيرة من البيانات، ولكن المشاريع المعقدة تتطلب في كثير من الأحيان مزيدا من القدرات، كما أن أجهزة الوصل الخارجية للبرمجيات القابلة للبرمجة، وأجهزة الوصل الشبكية المتعددة الوسائط التي تغطيها، توفر الخزن غير المتطور اللازم لقطع البيانات، ومعايير التكوين، وبرمجيات المحدثات الخارجية للبرمجة، والموجودات المتعددة الوسائط.
وسواء كنت تبني سجلا للبيانات أو جهازا استشعاريا ذكيا أو نظاما مدمجا يجب أن يحتفظ بظروف حرجة بعد فقدان الطاقة، فهم كيفية الوصل بين الذاكرة الخارجية بكفاءة، سيوفر وقتا للتنمية ويحسن الموثوقية، وسنناقش أسلاك المعدات، وتفاصيل بروتوكول الاتصالات، وأمثلة رمزية عملية، ومناولة الأخطاء، والتقنيات المتقدمة مثل ترتيب الملابس وإدارة المباني.
Understanding External EEPROM and Flash Memory
وكلاهما من تكنولوجيات الذاكرة غير المتطورة، أي أنها تحافظ على البيانات المخزنة عند إزالة الطاقة، غير أنها تختلف في الهندسة المعمارية والتحمل والحالات المستخدمة في الاستخدام النموذجي:
- EEPROM] - دعم عمليات القراءة والكتابة على المستوى الثانوي، وتحملها عادة مليون دورة محو/كتابة لكل طرف.
- (أ) " سجل البرمجيات " (FLT: 1)) - يُستخدم على الوجه الأمثل للمحويات وعمليات البرامج على مستوى الكتلة، ويوفر البرق كثافة أعلى بكثير (ميغابيتات للغيبات) ولكن تحمل أقل (من 000 10 إلى 000 100 دورة محوية لكل مبنى)، ويُستخدم في تخزين البرمجيات الكبيرة، وسجلات البيانات ونظم الملفات ذات المستوى الشمالي يسمح بالوصول العشوائي إلى الصفحات؛
:: يتواصل برنامج " إي بي دي " الخارجي و " فلاش " مع مركز الموافقة المسبقة عن علم عبر بروتوكولات متسلسلة (I2C أو سبI) أو نادراً ما تكون حافلات موازية، وتخفض الوصلات البينية الموازية من عدد الدبابيس وتبسّط مخططات ثنائي الفينيل متعدد الكلور، مما يجعلها الخيار الغالب في تصميمات المدمجة.
اختراع جهاز الذاكرة الصحيح
عند اختيار رقاقة ذاكرة خارجية لمشروعك الخاص بعلم النفس، تقييم هذه المعايير:
- Meemory Size and Capacity] - تقدير حجم البيانات التي تنتجها طلباتكم أو تخزنها، ولبيانات التشكيل البسيطة، قد يكفي جهاز EEPROM (LB) من 64 كيلو مترا، وبالنسبة للعينات السمعية أو تحديثات البرمجيات، النظر في 16 ملط أو أكثر من ذلك.
- (]) بروتوكول الاتصال ] - لا يستخدمه المركز إلا سلكين (SDA و SCL) ويدعم أجهزة متعددة تعالج؛ فهو أبطأ ولكن أبسط. ويستخدم البرنامج الفرعي أربعة أسلاك (بعثة الرصد والتحقق والتفتيش والسجلات الخاصة بك) ويحقق سرعة أعلى ولكنه يتطلب اختيار رقاقة مخصصة لكل جهاز.
- () سرعة ومعدل نقل البيانات ] - عادة ما يُجرى في I2C على 100 كيلوهرتز أو 400 كيلوهرتز؛ ويمكن أن تصل الشركة إلى عشرات من ميغاهرتز، وإذا كنت بحاجة إلى تيار سريع (مثلاً، العزف الصوتي)، فإن نظام المعلومات المسبقة عن علم إلزامي، بالنسبة للقراء العرضية لقطع صغيرة من الكبريت، فإن I2C لا بأس به.
- Power Consumption] - Both EEPROM and Flash have active read/write currents in the milliampere range and deep sleep modes. For battery-powered designs, selectرقائق with low standby current (e.g., 1 miA or less).
- Operating Voltage] - Most PICs work at 3.3V or 5V. Ensure the memory frtage supports the same voltage range. Many modern EEPROMs operate from 1.7V to 5.5V, providing flexibility.
- Cost and Availability] — Common families include Microchip’s 24AAAAAA series (I2C EEPROM), 25AAAAA series (SPIEPROM), SST25 or Winbond W25Q series (SPI Flash), and AT24 series (I2C EEPROM). check distributor stock and long lead times.
- Endurance and Retention - EEPROM عادة ما تقدم رسوماً أعلى من التحمل في حالة فلاش، وعادة ما يكون الاحتفاظ بالبيانات 40+ سنة، وبالنسبة للفلاش، النظر في عدد دورات محو الحمل وتنفيذ مستوى الارتداء إذا ما كان الكتابة في كثير من الأحيان.
Microchip’s series EEPROM selection guide] provides direct comparison tables. ]Winbond’s sequence NOR Flashحافظة ]] lists popular SPI Flash options. always read the specific datasheet for timing and command sets.
Connecting External Memory to the PIC Microcontroller
الأسلاك الصلبة تعتمد على الواجهة، ولدينا تفاصيل عن الاتصالات بين I2C وSPI إلى جانب اعتبارات مهمة مثل مقاومي السحب وأجهزة التفكيك.
I2C (IIC) Interface
يستخدم المركز خطين ثنائيي الاتجاه هما: SDA] (بيانات سيرية) و]SCL] (الساعة الزاخرة) ويتحكم الماجستير في الساعة ويبدأ المعاملات، ولكل عبد عنوانه 7 - ماء أو 10 - مليمترات.
Wiring:]
- ربط SDA إلى a PIC I/O دبوس محصن على أنه منفتح أو ثنائي الاتجاه.
- اتصل بـ "س.م.م" إلى قرص آخر من أجهزة الشرطة
- إضافة مقاومين خارجيين للسحب (نحو 4.7 كيلو متر) من شركة SDA و SCL إلى شركة Vcc، وتتوقف القيمة على سرعة الحافلات وسرعة الحافلات؛ وقد يلزم توفير مبلغ 2.2 كيلو متر.
- Connect the memory’s WP (write protect) bin to GND to disable equipment write protection, or to Vcc to protect the entire array.
- ضعي جهازاً للسكك الحديدية على مسافة 0.1 ميكروفلوريك بالقرب من دبوس الذاكرة لتعطيل الضوضاء.
(أ) بالنسبة للمتفجرات ذات السرعة العالية (1 ميغاهيرتز)، تُبقي آثارها قصيرة وتُستخدم أجهزة سحب أقوى.
SPI Interface
() تستخدم اللجنة الفرعية أربعة إشارات: [(FLT:0]MOSI] (الاستعباد، العبيد في)، MISO (الاستعباد، والعبد خارج)، SCLK (الساعة الرسوبية)،
Wiring:]
- Connect MOSI (PIC output) to memory’s SI (serial input).
- Connect MISO (PIC input) to memory’s SO (serial output).
- Connect SCLK (PIC output) to memory’s SCK.
- اتصل بجهاز التصوير المقطعي إلى دبوس رقمي للتصوير الرقمي، و من أجل ذكريات متعددة، استخدم دبابيس منفصلة.
- يضاف ضعف السحب (عشرة كيلومترات) على خط CS إذا لزم الأمر، رغم أن المنطق النموذجي يكفي.
- قوة دنيئة مع سعة 0.1 ميكروفلور
وكثيرا ما تكون رقائق البطاطس التابعة لبرنامج دعم المشاريع التجارية الخاصة بها سجلات مركزية وتحتاج إلى تسلسلات محددة للقيادة (مثلاً، WREN قبل الكتابة).
برمجة مركز الموافقة المسبقة عن علم للوصول إلى الذاكرة الخارجية
ويجب أن يبادر جهاز التحكم الجزئي التابع للشركة إلى إدخال النموذج المناسب للضوابط المحيطة (I2C أوSPI) ثم يرسل/تلقي البيانات وفقا لبروتوكول رقاقة الذاكرة، ويمكن استخدام وحدة جهاز مايكرشيب (MSSP) وجهاز التحكم في المواد الكيميائية (MMMMSSP) وجهاز البرمجيات المحتوي على مضاهاة، ويفضل نظام MSSP أن يكون موثوقا وسريعا.
I2C Communication Code Examp
وفيما يلي مثال مبسط ولكنه عملي يستخدم الرمز MCC (Microchip Code Configurator) وُلد HAL لـ PIC16F18877، ويكتب الرمز نسخة واحدة إلى قرص إي2C EEPROM في عنوان معين ثم يقرأه.
// Assumes I2C1_Initialize() called earlier.
// Device address: 0xA0 (for write) – actual address depends on A0-A2 pins.
#define EEPROM_ADDR 0xA0
void I2C_WriteByte(uint16_t memAddr, uint8_t data) {
I2C1_Start(); // Generate start condition
I2C1_Write(EEPROM_ADDR); // Send device address + write bit
I2C1_Write((uint8_t)(memAddr >> 8)); // High address byte
I2C1_Write((uint8_t)(memAddr)); // Low address byte
I2C1_Write(data); // Data byte
I2C1_Stop(); // Generate stop condition
__delay_ms(5); // Wait for internal write cycle (tWR)
}
uint8_t I2C_ReadByte(uint16_t memAddr) {
uint8_t data;
I2C1_Start();
I2C1_Write(EEPROM_ADDR); // Device address + write for dummy write
I2C1_Write((uint8_t)(memAddr >> 8));
I2C1_Write((uint8_t)(memAddr));
I2C1_RepeatedStart(); // Repeated start to change direction
I2C1_Write(EEPROM_ADDR | 0x01); // Device address + read bit
data = I2C1_Read(0); // NAK after last byte
I2C1_Stop();
return data;
}
ملاحظة: بالنسبة للصفحة، يجب ألا تعبر حدود الصفحات (من الناحية المعيارية 8 أو 16 أو 64 بوصة) كما أن الاقتراع في مجال الاعتراف بعد دورة الكتابة أكثر كفاءة من التأخيرات الثابتة.
مقتطف من مدونة الاتصالات الخاصة بمنظمة الصحة العالمية
وبالنسبة إلى برنامج " سى فاش " (مثلاً، W25Q32)، تتطلب عمليات الكتابة التمكينية، ثم إرسال قيادة برنامج الصفحة، وهنا مثال ضئيل يستخدم نظام الرصد والتقييم في أسلوب الإدارة العليا.
#define FLASH_CS LATAbits.LATA0 // Chip select pin
void SPI_WriteEnable(void) {
FLASH_CS = 0;
SPI1_Exchange8bit(0x06); // WREN command
FLASH_CS = 1;
}
void SPI_FlashPageProgram(uint32_t addr, uint8_t *data, uint8_t len) {
SPI_WriteEnable();
FLASH_CS = 0;
SPI1_Exchange8bit(0x02); // Page Program command
SPI1_Exchange8bit((uint8_t)(addr >> 16)); // High address byte
SPI1_Exchange8bit((uint8_t)(addr >> 8));
SPI1_Exchange8bit((uint8_t)(addr));
for (uint8_t i = 0; i < len; i++) {
SPI1_Exchange8bit(data[i]);
}
FLASH_CS = 1;
__delay_ms(5); // tPP max 5 ms typical
}
void SPI_FlashRead(uint32_t addr, uint8_t *buffer, uint32_t count) {
FLASH_CS = 0;
SPI1_Exchange8bit(0x03); // Read command
SPI1_Exchange8bit((uint8_t)(addr >> 16));
SPI1_Exchange8bit((uint8_t)(addr >> 8));
SPI1_Exchange8bit((uint8_t)(addr));
for (uint32_t i = 0; i < count; i++) {
buffer[i] = SPI1_Exchange8bit(0x00);
}
FLASH_CS = 1;
}
ولا يمكن كتابة ذاكرة فلاش دون أن تلحق بقطاع كامل (النوع 4 كيلوبايت).
التقنيات المتقدمة: الاستيعاب، وإدارة الصفحات، وتحديثات البرمجيات
وعند تخزين كميات كبيرة من البيانات أو القيام بكتابات متكررة، النظر في هذه الاستراتيجيات لتوسيع نطاق الحياة الذاكرة والحفاظ على الأداء.
- Wear Leveling for EEPROM] - Distribute writes across multiple locations. For example, maintain a circular buffer index in a dedicated EEPROM slot and write data to the next free page. This prevents early aging of a single byte.
- Flash Block Management ] - Use a simple file system or metadata table to track which sectors are granted/in use. Typical consumer SPI Flashs have 4 KB sectors; erasing a sector takes tens of milliseconds.
- Firmware Over-the-Air (FOTA) Updates] — External Flash can hold a new firmware image. The PIC bootloader reads the image, writes it to internal Flash, and resets. Ensure power loss during writing is handled via a double-buffer or checksum verification.
- Error Detection and Correction] - For critical data, append CRC or simple XOR checksums. On read, verify integrity. Many external memory do not have builtIN IN ECC, so software checks are prudent.
أفضل الممارسات والتشويش
(ب) اتباع هذه المبادئ التوجيهية للتقليل إلى أدنى حد من القضايا وتحقيق عمل قوي.
- Always Consult the Datasheet] - Timing parameters, command sets, and withdrawal-up specifications vary between manufacturers. never assume compatibility.
- Use Proper Pull-Up Resistors for I2C] - The value depends on bus capacitance and hours speed. For a bus with only one or two devices and 400 kHz, start with 4.7 k. Use an oscilloscope to verify rising edges.
- Implement acknowledge Polling] — instead of fixed delays after writings, repeatedly send the tool address until an ACK is received.
- Keep SPI Traces Short – SPI runs at MHz frequencies; long wires cause ringing. Add series resistanceors (22-47 راء) near the PIC output to dampen reflections.
- Use Decoupling Capacitors - Place 0.1 miF ceramic as possible to each memory frq’s Vdd tank.
- testing with Known Patterns] – Write alternating 0x55, 0xA, and verify. check address boundaries (e.g., writing across a page boundary should be avoided).
- Monitor for Bus Contention - إذا شاركت أجهزة متعددة تابعة للجنة الفرعية في بعثة الرصد والتحقق، فلا يوجد سوى قرص واحد من اختيارات البطاقة يعمل في وقت واحد، وبالنسبة للجنة الدولية، لا تكفل أي نزاعات.
- Handle Write Protection ] - Many memory have a WP fat. either draw it low to enable writing or control via GPIO if you need selective protection.
مشروع مثال: لوغر البيانات مع برنامج " بي آي فلاش "
ولترسيخ المفاهيم، النظر في سجل بيانات بسيط يقرأ بصورة دورية جهاز استشعار للأشعة، ويخزن قيمة اللافضاء (مثلاً، W25Q16)، ويستخدم نظاماً دائرياً لتجاوز أكبر البيانات القديمة، ويؤدى مركز الموافقة المسبقة عن علم تحويلاً، ويكتب إلى القطاع الحالي، ويستكمل مؤشراً في نظام EEPROM، ويعود إلى النوم.
الخطوات الرئيسية:
- بدء تشغيل نظام دعم البرامج الاستراتيجية، ووضع علامة على النظام الموحد لوصف البيانات المالية كمخرج.
- في البداية، يقرأ محرر الكتاب الحالي من قرص إيه2C صغير (أو من القطاع الأول من فلاش).
- كل دورة من دورات قطع الأشجار: يكتب الرمز ADC ⁇ إلى نقطة الزيادة في الصفحة Flash page ⁇ ، وإذا بلغ المؤشر نهاية المساحة المخصصة، يعاد البدء (منشور).
- Compute CRC of the last page to detect corruption.
- استخدموا النوم بين فترات
ويمكن توسيع هذا النمط ليشمل أجهزة الاستشعار المتعددة، وضبط التوقيت، وقطع الأشجار المدفوع بالأحداث.
الاستنتاج والموارد الإضافية
وتفتح شبكة واسعة من التطبيقات التي تتطلب تخزينا أكبر من الذاكرة الداخلية، عن طريق اختيار الوصلات البينية المناسبة (I2C أو SSPI)، وعن طريق الاستيعاب الصحيح، وتنفيذ روتينات قوية للقراءة/الكتابة، يمكن أن تضيف تخزينا غير قابل للتداول إلى أي نظام مدمج، كما أن التقنيات المتقدمة مثل ارتداء المقياس، وإدارة الصفحات، وكفالة التلقيم الطويل الأجل.
ولمزيد من القراءة، استكشاف الموارد التالية:
- PIC16(L)F18877 Datasheet] - تفاصيل عن تشكيلة نظام إدارة الأسرة والتربية الاجتماعية.
- Microchip Code Configurator (MCC)] - auto — auto —generates peripheral setup code.
- Winbond W25Q32JV Datasheet] - مجموعة قيادة مشتركة للضوء تابعة للجنة الفرعية.
- Microchip 24LC256 EEPROM Datasheet] - I2C timing examples.
ومع التصميم الدقيق والاختبار الدقيق، يمكن للذاكرة الخارجية أن تُقيس مشاريعكم الخاصة بالعلم البشري بطريقة سلسة لمعالجة مجموعات البيانات الأكبر، وتحديثات البرمجيات الثابتة، والاحتياجات المستمرة للتشكيل، بدءاً بسلسلة كتابية/خيط بسيطة، والتحقق من ذلك بمحلل أو مصفوف منطقي، ثم بناء تعقيدات تدريجية.