بنية المعالجات التحكمية AVR Xmega

المعالجات التحكمية XMega هي معالجات 8Bit من شركة ATMEL سابقاً, والتي أصبحت الآن ملكا لشركة Microchip .
وهي من عائلة معالجات AVR , أي أن وحدة المعالجة المركزية في المعالج هي AVR CPU . وبالتالي فإن برمجة هذه العائلة من المعالجات تتشابه بشكل كامل مع عائلة ATmega و كذلك عائلة ATtiny التي تتشارك نفس النواة AVR . وهذا التشابه من حيث كتابة التعليمات وليس من ناحية محتوى المعالج من وحدات داخلية ومسمياتها و طرفيات وغيرها.

الميزات والمواصفات

تتميز عائلة XMega عن غيرها من معالجات AVR بأنها تحتوي على وحدات داخلية إضافية متعدد . كما تتميز هذه العائلة من المعالجات بهيكلية تنظيمية فريدة .
تقسم هذه العائلة من المعالجات إلى مجموعات , بحيث كل مجموعة من المعالجات تتشابه فيما بينها من حيث المحتوى و عدد الأطراف . وتختلف فيما بينها من ناحية حجم الذواكر FLASH , RAM , EEPROM فقط .
فهناك مثلا المجموعة ذات اللاحقة D4 والمجموعة ذات اللاحقة A1 وكذلك A1U و A3U و AU و A4U .

المخطط التالي يبين مكونات أي معالج من مجموعة معالجات XMega ذات اللاحقة A4U

هذه البنية تتشارك فيها جميع معالجات XMega ذات اللاحقة A4U . وتختلف فقط من ناحية حجم الذاكرة .
الجدول التالي يبين الفروقات بين المعالجات التابعة لهذه المجموعة :

المعالجذاكرة Flashذاكرة SRAMذاكرة EEPROM
ATxmega128A4U128K8K2K
ATxmega64A4U64K4K2K
ATxmega32A4U32K4K1K
ATxmega16A4U16K2K1K

يمكن الاطلاع بشكل مفصل على مواصفات كل معالج من خلال كتب المواصفات الفنية التي تزودها الشركة الصانعة .

مكونات و أطراف المعالج

نلاحظ من الشكل السابق أن أطراف المعالج الخارجية مقسمة إلى مجموعات. كل مجموعة تدعى بوابة PORT . وكل بوابة لها إسم مرتبط بحرف معين . بحيث نجد البوابة A والبوابة B والبوابة C وهكذا.
مجموعة أطراف المعالج التابعة للبوابة A هي ثمانية أطراف . بحيث الطرف الأول له الاسم PA0 والطرف الثاني هو PA1 وهكذا إلى الطرف الثامن PA7 .
وكذلك الحال بالنسبة لباقي أطراف المعالج التابعة لباقي البوابات .
كل واحدة من هذه الأطراف يمكن استخدامها كأطراف دخل أو خرج أو للتواصل مع الوحدات الداخلية من المعالج .

تتشارك جميع معالجات XMega نفس الترتيب والتوزيع للبوابات .على سبيل المثال :
البوابة A والبوابة B تختص بوحدات التحويل الرقمي التشابهي ADC و DAC و المقارنات AC .
والبوابات C و D و E و F تختص بالوحدات المتعلقة بوسائل الاتصال التسلسلي و العدادات والمؤقتات الرقمية .
وبذلك لا يمكن أن تتم عملية اتصال تسلسلي عن طريق أحد أطراف البوابة A لأنها لا ترتبط مع أي وحدة اتصال تسلسلي.
وكذلك لا يمكن أن يتم استخدام وحدة التحويل التشابهي الرقمي ADC لقياس جهد عن طريق أحد أطراف البوابة C لأنها لا ترتبط مع هذه الوحدة .

بالنسبة للمعالج ATXmega16A4U وجميع المعالجات التي تنتهي باللاحقة A4U , يمكن تعداد الوحدات الموجودة والمرتبطة مع كل بوابة من بوابات المعالج كما يلي :

  • البوابة PORTA . تختص وترتبط بالوحدات التالية:
    ADCA وحدة التبديل التماثلي الرقمي الخاصة بالبوابة A .
    ACA وحدة المقارنة التماثلية , وظيفتها مقارنة جهد أحد أطراف البوابة A مع جهد طرف آخر من البوابة A أو مع قيمة مرجعية معينة يتم توليدها داخليا .
  • البوابة PORTB . تختص وترتبط بالوحدات التالية :
    DACB وحدة تحويل الرقمي التماثلي الخاصة بالبوابة B .
  • البوابة PORTC . تختص و ترتبط بالوحدات التالية :
    TWIC وحدة الاتصال التسلسلي المتزامن بالاعتماد على البروتوكول I2C المشهور .
    SPIC وحدة الاتصال التسلسلي المتزامن باالاعتماد على البروتوكول SPI .
    USARTC0 و USARTC1 وحدات الاتصال التسلسلي غير المتزامن بالاعتماد على البروتوكول UART أو RS232 .
    TCC0 و TCC1 مؤقتات أو عدادات متعددة الاستخدام بعرض 16 بت .
  • البوابة PORTD . تختص وترتبط بالوحدات التالية :
    USB وحدة الاتصال بالاعتماد على بروتوكول USB الخاص بالربط مع أجهزة الكومبيوتر .
    SPID وحدة الاتصال التسلسلي المتزامن باالاعتماد على البروتوكول SPI .
    USARTD0 و USARTD1 وحدات الاتصال التسلسلي غير المتزامن بالاعتماد على البروتوكول UART أو RS232 .
    TCD0 و TCD1 مؤقتات أو عدادات متعددة الاستخدام بعرض 16 بت .
  • البوابة PORTE . تختص وترتبط بالوحدات التالية :
    TWIE وحدة الاتصال التسلسلي المتزامن بالاعتماد على البروتوكول I2C المشهور .
    USARTE0 وحدة الاتصال التسلسلي غير المتزامن بالاعتماد على البروتوكول UART أو RS232 .
    TCE0 مؤقت أو عداد متعدد الاستخدام بعرض 16 بت .

نلاحظ أنه ليس من الضروري أن تحتوي كل بوابة على عدد كامل من الوحدات كما باقي البوابات.
فالبوابة C مثلا لا ترتبط مع وحدة الاتصال USB كما هو الحال مع البوابة D .
وكذلك البوابة C والبوابة D كل منها ترتبط مع وحدتين للاتصال التسلسلي غير المتزامن USART . بينما البوابة E ترتبط فقط مع وحدة اتصال تسلسلي واحدة هي USARTE0 .

يوجد أيضا وحدات لا ترتبط مع بوابة محددة. مثل الوحدات التالي :

  • RTC وهو عبارة عن عداد بطول 16 بت . مفيد في عملية تنظيم الوقت وقياس الزمن بالثواني.
  • Event System وهي عبارة عن مجموعة من الممرات أو شبكة من التوصيلات الداخلية التي يمكن برمجتها لتنقل الأحداث بين وحدات المعالج الداخلية و كذلك البوابات والأطراف الخارجية.
    على سبيل المثال, نريد ربط حدث معين مثل وصول قيمة عداد لرقم معين , ليكون سبب في بداية عملية تحويل رقمي تشابهي . في هذه الحالة نستخدم أحد ممرات أو قنوات الوحدة Event System للربط بين الحدث والعملية المطلوبة بدون أن نحتاج لاستخدام المقاطعات أو مراقبة قيمة العداد بشكل برمجي .
  • DMA وهي وحدة نقل البيانات بين أماكن متعددة من الذاكرة والطرفيات بشكل تلقائي دون الحاجة لتنفيذ تعليمات النقل برمجيا . وإنما فقط يلزم وضع بعض الإعدادات ثم تقوم هذه الوحدة من تلقاء ذاتها بالعمل. بينما ينفذ المعالج تعليمات أخرى .
  • IRCOM وحدة الاتصال التسلسلي الخاصة بنظام الاتصال بالأشعة تحت الحمراء IR .
  • WDT وهي وحدة غنية عن التعريف. تعمل على شكل عداد لمراقبة عمل المعالج وتقوم بإعادة اقلاع المعالج في حال وجود خلل ما من الناحية البرمجية أو عطل كهربائي ضمن المعالج .
  • AES و DES وحدات التشفير وفك التشفير المشهورة .
  • CRC وحدة حساب وكشف الأخطاء المفيدة خلال عمليات ارسال واستقبال البيانات من خلال وسائل الاتصال التسلسلي .

هذه كانت لمحة سريعة للتعرف على معالجات XMega AVR . وما تحتويه من وحدات ومكونات بشكل عام.