عوائل متحكمات PIC
يوجد أربع عوائل أساسية من المتحكمات ثمانية الخانة وهي:
1- العائلة PIC 16CXX ذات الإنجازية العالية
إن عائلة المتحكمات PIC 16CXX هي الأكثر فعالية وأداء في مجال التقنية الصناعية وتعتمد هذه المتحكمات في عملها على تقنية RISC كما في جميع عوائل متحكمات PIC, ومتحكمات PIC17CXX هي ذات كلمة برنامج 16 بت وتتميز هذه المتحكمات بإمكانية معالجة المقاطعات بشكل فعال حيث يتم تنفيذ برنامج خدمة المقاطعة بأقصر وقت ممكن.
2- عائلة المجال الوسطي PIC 16CXX
توفر هذه العائلة العديد من الخيارات حيث تضم بين أفرادها شرائح ذات أقطاب يتراوح عددها من 18 قطباً حتى 68 قطباً وذلك تبعاً لعدد الخدمات المحيطية المتوفرة في كل منها وعدد أقطاب الدخل/خرج بحيث تناسب جميع التطبيقات الصغيرة والمتوسطة والضخمة. تتميز كلمة البرنامج لهذه العائلة بأنها ذات عرض 14 بت من أجل كل تعليمة كما وتتميز شرائح هذه العائلة بوجود مكدس(Stack) بعمق 8 مستويات بالإضافة إلى إمكانية معالجة المقاطعات, والميزة الأهم لهذه العائلة هي وجود المحولات التشابهية الرقمية ADCs ذات الأدائية الصناعية العالية بالإضافة إلى وجود المقارنات والنوافذ التسلسلية وقنوات التعديل PWM وأخيراً دارات قيادة الشاشات الكريستالية LCD.
3- عائلة المجال الأساسي PIC 16C5X
أنتجت هذه العائلة منذ البدايات الأولى حيث كانت الحجر الأساس لمنتجات شركة Microchip الأم ولقد اعتمدت على التقنية RISC التي شكلت الأساس المتين لمتحكمات PIC اللاحقة. إن عرض كلمة البرنامج لهذه العائلة هي بطول 12 بت للتعليمة الواحدة وتملك مؤقتاً واحداً ومكدساً بعمق مستويين فقط.
4- عائلة المجال المتحكم PIC الصغير PIC 12C50X
تعتمد عناصر هذه العائلة بشكل أساسي على تركيبة عناصر العائلة PIC 16C5X إلا أنها تشغل مساحة فيزيائية أصغر مع درجة عالية من التكامل وعرض كلمة البرنامج في هذه العائلة هو 12 بت أو 14 بت ويكون جهد التشغيل لها 2.5 فولت وتتميز بوجود مكدس بعمق مستويين والتعامل الفعال مع عدة مصادر للمقاطعة مع وجود ذاكرة معطيات EEPROM في بعض عناصرها, كل هذه المواصفات جعلت هذه العائلة تتبوأ مستوى متقدم في مجالات الأتمتة والذكاء الصنعي. وظهرت أخيراً العائلة PIC 18CXXX وهي ذات عرض كلمة 16 بت وتتميز بالعديد من الخواص الهامة منها وجود مكدس بعمق 32 مستوى بالإضافة إلى تعدد مصادر المقاطعة الداخلية والخارجية مع إمكانية المفاضلة بينها, أما المحول التشابهي الرقمي أصبح بدقة 10 بت أي يمكنه تمييز 1024 مستوى وميزة مهمة أخرى وهي تردد هزاز يصل إلى 40MHZ وتم تطوير مجموعة التعليمات إلى 75 تعليمة
تقنية الذاكرة
على الرغم من الأهمية العظمى التي تحظى بها نوعية تقنية الذاكرة في المتحكم PIC فإنها لا تؤثر على منطق عمل الشريحة إطلاقاً. تتوزع متحكمات PIC من حيث تقنية بناء الذاكرة على ثلاثة أصناف ويشار إلى صنف ذاكرة المتحكم بواسطة حرف رمزي يشير إلى نوع الذاكرة كما يلي:
• الرمز C -كما في المتحكمات PIC 16CXXX – يشير إلى أن ذاكرة البرنامج من النوع EPROM.
• الرمز CR – كما في المتحكمات PIC 16CRXXX- يشير إلى أن ذاكرة البرنامج من النوع ROM.
• الرمز F –كما في المتحكمات PIC 16FXXX – يشير إلى أن ذاكرة البرنامج من النوع Flash.
وجدير أن نذكر أنواع الذواكر المستخدمة ومميزات كل منها كما يلي:
1- الذاكرة RAM : و هي ذاكرة مؤقتة كهربائية تزول القيم المخزنة داخلها بزوال جهد التغذية عنها, و هي الذاكرة التي يحمل البرنامج و تعليماته ومتحولاته عليها عند تشغيله من القرص الصلب.
2- الذاكرة ROM : و هي عدة أنواع منه ما يكتب عليه مرة واحدة (مثل الذاكرة التي تحوي الرقم التسلسلي لبطاقة الشبكة أو اللوحة الأم).
3- الذاكرة EPROM وهي ذاكرة تكتب كهربائياً وتمحى بالأشعة فوق البنفسجية.
4- الذاكرة EEPROM : نمط شائع جداً من الذواكر و هي ذواكر غير متطايرة وتستطيع الاحتفاظ بالبيانات الموجودة داخلها 40 سنة متواصلة و تكتب و تمحى كهربائياً (مثل FLASH MEMORY)
تقنية RISC
تتميز تقنية RISC بملامح أساسية متعددة يعزى إليها الأداء العالي لجميع المعالجات التي تعتمد هذه التقنية في التصميم ومن بين هذه المعالجات المعالج SPARC ومعالجات 8880 Motorola بالإضافة إلى متحكمات PIC.
أهم الملامح التي تتميز بها تقنية RISC :
1- بنية هارفارد المتوازية
2- جميع التعليمات لها نفس الحجم, وتكون كلمة التعليمة فيها كلمة طويلة
3- كل تعليمة تحتاج إلى كلمة واحدة
4- مجموعة التعليمات الخاصة بها تكون منخفضة
5- مجموعة التعليمات متناسقة فيما بينها
بنية هارفارد
تكون في هذه البنية ذاكرة البرنامج مفصولة عن ذاكرة المعطيات حيث يتم الوصول إليهما عبر ممرين منفصلين كما هو موضح في الشكل التالي. يتم في بنية Neuman الوصول إلى ذاكرتي البرنامج والمعطيات اللتين تقعان معاً بنفس الموقع الذاكري من خلال نفس الممر, وفي المعالجات المعتمدة على هذه البنية يلزم لتنفيذ التعليمة أولاً جلب التعليمة بواسطة الممر 8 بت ثم يتم جلب المعطيات التي سيتم تنفيذ التعليمة عليها مما يعني تأخيراً زمنياً . أما في بنية هارفارد التي تتميز بها معالجات تقنية RISC وبواسطة ممر المعطيات وممر التعليمات فإنه يتم جلب التعليمة خلال دورة تعليمة واحدة, وبنفس الوقت يتم إحضار المعطيات من ذاكرة المعطيات المستقلة عن ذاكرة البرنامج مما يعني توفيراً في الزمن وسرعة في الأداء.
• كلمة التعليمة طويلة
بما أن ممر التعليمات مفصول عن ممر المعطيات فإنه في معالجات RISC يمكن أن تكون كلمة التعليمة أكبر من 8 بت حيث نجد أن ممر التعليمات بعرض 14 بت وبالتالي فإن كلمة التعليمة ذات 14 بت مما يعطي فعالية أكثر في استخدام ذاكرة البرنامج.
• كلمة التعليمة وحيدة
إن شيفرة كلمة أي تعليمة هي بعرض 14 بت مما يعطي إمكانية أكبر لأن تكون التعليمة بكلمة واحدة فقط وبالتالي فإن عدد التعليمات المتاحة يساوي إلى سعة ذاكرة البرنامج. أما في بنية نيومان فإن معظم التعليمات تحتاج إلى أكثر من بايت, فإذا كان هناك ذاكرة برنامج 4KByte فإنها ستسمح بتخزين 2KWord من التعليمات.
• مجموعة التعليمات منخفضة
إن أي تعليمة من معالج RISC تقوم بدور العديد من التعليمات الأبسط التي تنفذ بمجموعها عملاً واحداً مما يخفض عدد التعليمات اللازمة لإنجاز البنية البرمجية وهذا يسهل أمر تعلم وإتقان هذه التعليمات.
• زمن تنفيذ التعليمة دورة واحدة
بما أن معالج RISC يتعامل مع أوامر أبسط فإن قدراته يمكن أن تظل بسيطة, وأوامر RISC تمر عبر عدد أقل من الترانزستورات في دارات أقصر مما يؤدي إلى تنفيذ الأوامر بشكل أسرع حيث تتطلب معالجات RISC زمناً قدره دورة آلة واحدة (Single Machine Cycle) أو اختصاراً Tcy باستثناء التعليمات التي تقوم بتفريع البرنامج فإنها تحتاج إلى 2 Tcy .
المخطط العام للبنية الداخلية لمتحكمات PIC
بنية متحكمات PIC
عند دراستنا لمتحكمات PIC أو أي متحكمات أخرى فإننا نصنف بنية المتحكم بحيث تنقسم في مجموعتين بنيويتين أساسيتين:
1- نواة المتحكم The Core
2- محيطيات المتحكم The Peripheral
أي يمكن أن نكتب المعادلة التالية:
Microcontroller = The Core + The Peripheral
أ- نواة المتحكم
تشتمل نواة المتحكم على المكونات والفعاليات الأساسية التي يتشكل منها المعالج الأساسي مع ذاكرتيه(ذاكرة البرنامج وذاكرة المعطيات) وعلى هذا سندرس المكونات التالية لنواة المتحكم:
1- وحدة المعالجة المركزية CPU
2- الذاكرة وتنظيم الذاكرة
3- آليات المقاطعة
4- هزاز الشريحة
5- مؤقت المراقبة ونمط الراحة
6- نظام التصفير
ب- محيطيات المتحكم
تنقسم محيطيات المتحكم إلى قسمين أولهما ما يقوم بربط المتحكم مع العالم الخارجي مثل أقطاب الدخل/خرج , المحولات ADC , وحدة التعديل PWM إلخ .. والقسم الثاني ما ينفذ تعليمات داخلية كالمؤقتات, والمحيطيات المتاحة مع متحكمات PIC هي :
1- نوافذ الدخل/خرج ذات الأغراض العامة
2- المؤقتات Timer0, Timer 1, Timer2
3- المحول التشابهي الرقمي ADC
4- نظام(المسك- المقارنة-التعديل PWM) والمسمى CCP
5- ذاكرة المعطيات EEPROM الداخلية
6- نافذة الإتصالات التسلسلية المتواقتة SSP
7- نظام الإرسال-الإستقبال المتزامن/غير المتزامن ذو الأغراض العامة USART
8- المقارنات Comparators
9- النافذة المقادة التفرعية PSP
10- قائد الشاشة LCD
بالإضافة إلى بعض المتممات الأخرى
يظهر الشكل التالي المخطط الصندوقي للمتحكم PIC 16F877 وهو شامل إلى حد ما بالنسبة لمتحكمات PIC حيث تظهر فيه جميع عناصر المتحكم من النواة والمحيطيات بالإضافة إلى الممرات التي تصل جميع فعاليات المتحكم مع بعضها البعض
نظام نبضات الساعة ومفهوم دورة التعليمة
INSTRUCTION CYCLE
تعرف دورة التعليمة بأنها الزمن اللازم لتنفيذ التعليمة ويرمز لها اصطلاحاً بالزمن Tcy. وفي متحكمات PIC فإن النبضات الداخلة إلى الشريحة عبر القطب OSC1 تقسم داخلياً إلى أربع أرباع غير متداخلة تشكل بمجموعها دورة التعليمة Tcy والتي ستتكرر بشكل دوري . حيث سيزداد عداد البرنامج PC مع كل دورة تعليمة جديدة, وبالتالي لمعرفة زمن تنفيذ التعليمة الواحدة نقسم تردد الهزاز الخارجي على 4 ونقلب الناتج فنحصل على زمن تنفيذ التعليمة الواحدة.
تنظيم ذاكرة المعطيات Data Memory Organization
تتألف ذاكرة المعطيات من حيزين رئيسيين:
1- حيز المسجلات الخاصة Special Function Registers SFRs وهذه المسجلات تحكم عمليات الشريحة من خلال من خلال التحكم بوظائف نواة المتحكم الداخلية أو من خلال التحكم بالوظائف المعدة للمحيطيات.
2- حيز مسجلات الأغراض العامة General Purpose Registers GPRs الذي يستخدم لتخزين المعطيات وفق تعريف المستخدم وتلبيته لإستراتيجيته البرمجية.
عملية تقسيم ذاكرة المعطيات تسمى (Banking) ويتم الانتقال بين البنوك المتاحة بواسطة خانات برمجية خاصة بذلك هي الخانات Status<7:5> يمكن الوصول إلى أي موقع ذاكري في ذاكرة المعطيات بواسطة العنونة المباشرة التي تستخدم الخانات Status<7:5> المسماة RP0,RP1 أو بواسطة العنونة غير المباشرة باستخدام المسجل FSR(File Select Register) المسمى مسجل اختيار الملف ويستخدم مع هذا المسجل الخانة (Indirect Register Pointer IRP) التي تستخدم للوصول إما إلى Bank0/Bank1 أو إلى Bank2/Bank3 .
ويظهر الشكل التالي مخطط ذاكرة المعطيات للمتحكم PIC16F877 .
المقاطعات
تعرف المقاطعة (interrupt)بأنها أي تغير في سير البرنامج الطبيعي لانجاز عملية أخرى يحددها المصمم حسب تكنولوجيا التصميم. ويمكن أن نميز نوعين من المقاطعات:
مقاطعة برمجية(software interrupt).
مقاطعة صلبة (hardware interrupt).
والمقاطعة البرمجية غالبا ما يطلق عليها اسم مقاطعة الاستفتاء(الفحص) polled interrupt)) حيث تعتمد على عمليات فحص متكررة لانجاز التغير المطلوب في اتجاه سير البرنامج(المقاطعة)وهذه المقاطعة تبنى برمجيا بواسطة برنامج التحكم. أما المقاطعة الصلبة فتتميز بأنها ذات آلية مبنية ضمن المتحكم ,أما استثمار هذه المقاطعة فيتبع لاختيار المصمم ,ونميز نوعين من المقاطعات الصلبة ,الأولى ما ينتج عن حدث داخلي كمقاطعة طفحان المؤقت,والثانية ما ينتج عن حدث خارجي كمقاطعة تغير أقطاب B .
مصادر المقاطعة:
تمتلك متحكمات PIC عدة مصادر المقاطعة ,وغالبا ما يكون لكل نظام محيطي مقاطعة خاصة به كمقاطعة المؤقت TMRO ومقاطعة المحول ADC وهناك بعض الأنظمة تولد أكثر من مقاطعة مثل(USART). إن المقاطعات المتوفرة في متحكمات PIC هي المقاطعات التالية:
• المقاطعة الخارجية على القطبRBO/INT .
• مقاطعة طفحان المؤقت TMRO.
• مقاطعة تغير النافذة علىB الأقطاب .RB4:RB7
• مقاطعة انتهاء عملية التحويل التشابهي الرقمي A/D .
• مقاطعة تغيير المقارن (comparator).
• مقاطعة النافذة المقادة التفرعية (parallel slave port).
• مقاطعة نظام USART.
• مقاطعة الاستقبال(receive).
• مقاطعة الإرسال (transmit).
• مقاطعة الـ LCD.
• مقاطعة انتهاء كتابة المعطيات إلى الذاكرة EEPROM.
• مقاطعة طفحان المؤقت Timer1.
• مقاطعة طفحان المؤقت Timer2.
• مقاطعة الـ CCP نمط (المسك – المقارنة – التعديل PWM).
• مقاطعة الـSSP (النافذة المتزامنة التسلسلية).
إن شريحة أي متحكم من متحكمات PIC تحتوي على عدد من مصادر المقاطعة السابقة وليس جميعها.
نوافذ الدخل/خرج I/O
• يمكن القول أن أقطاب المتحكم المتمثلة بأقطاب الدخل / الخرج أو التي ستصطلح على تسميتها 1/0هي الأبسط من بين محيطيات المتحكم PIC إلا أنها الأكثر فاعلية وتأثيرا في الوسط المحيط لها فهي التي تراقب الإشارات (Inputs) وهي التي تقود الفعاليات المختلفة (Outputs).
• وحتى يكون المتحكم PIC أكثر فعالية و مرونة فإن لبعض أقطابه I/Oمهاما متعددة, كل من هذه المهام تدعم إحدى محيطيات المتحكم PIC( مثل المؤقت TMRO والمحول ADC ) حيث يتم التحكم بتفعيل إحدى هذه المهام برمجيا (Software), وهناك ناحية هامة عندما نتكلم عن الأقطاب فيجب أن نعرف أهي أقطاب دخل أم أقطاب خرج؟. في الحقيقة إن هذا الأمر سنقرره وذلك من خلال مسجلات TRIS(x) التي تحدد اتجاه الأقطاب I/O. فمجرد وضع القيمة 1 في الخانة التي تقابل القطب A1 من المسجل TRISA يصبح كقطب دخل(Input ).
• إن المسجل PORT X يمثل ماسكا للمعطيات المراد إخراجها و لكل نافذ مسجل خاص بها Port A ,Port B .
• وعندما تتم أي عملية قراءة للنافذة فإن ما يتم قراءته في الحقيقة إنما هو المستويات الحالية على الأقطاب I/O وليس محتويات الماسك.
بنية الأقطاب
إن جميع عمليات الكتابة (Write Operation) مثل تعليمات BCF , BSF هي عمليات قراءة – تعديل _كتابة مما يعني أن هذه العمليات تؤدي إلى قراءة النافذة ثم تعدل حسب التعليمة ثم نكتب إلى ماسك معطيات النافذة.
• عندما يتم استخدام أقطاب I/O لمهام متعددة فإن تغيرات تطرأ على بنية هذه الأقطاب (hardware) بحيث يتلاءم مع متطلبات النموذج الذي ستدعمه و تتصل به كما في حالة محولات ADC و قائدات شاشات LCD . وعند تصفير الشريحة فإن القطب I/O سيجبر للعمل مع الوظيفة المحيطية الخاصة به ويعزى ذلك –كما في حالة المحول ADC – إلى منع الشريحة من استهلاك تيار زائد إذا ما بقي الجهد التشابهي موصولا إلى القطب I/O بعد عملية التصفير.
• عند تفعيل بعض المحيطيات فإن خانات المسجل TRISX ستهمش لذا من الضروري هنا أن نتجنب تعليمات قراءة – تعديل –كتابة مثل BCF ,BSF والتي سيكون فيها المسجل TRIS هو الهدف لذا فعلى المستخدم أن يقابل كل محيطية بتوضيع مناسب لها في الخانات TRISX .
• عندما نتكلم عن تهيئة نافذة ما هذا يعني أننا نحدد وظيفة كل قطب من أقطاب هذه النافذة أهو قطب دخل أم خرج وفي مراحل متقدمة هل معه وظيفة أخرى أم لا.
النافذة A
هي من أهم نوافذ المتحكم PIC لأنها تتضمن أهم ميزات متحكم PIC و هي الأقطاب التشابهية .جميع أقطاب النافذة Port A والتي نسميها Rax عدا القطب RA4 هي كمداخل ذات مستويات متوافقة مع دارات TTL و كمخارج ذات مستويات متوافقة مع دارات CMOS أما القطب RA4 فهو مزود بقادح شميت عند استخدامه كمدخل أما عند استخدامه كمخرج فهو عبارة عن ترانزستور حقلي ذو مصرف مفتوح . ويمكن تحديد نوع قطب النافذة A أي هل هو دخل أم خرج بواسطة خانات المسجل TRISA التي تحدد اتجاه المعطيات, فعندما نقوم بتفعيل إحدى خانات المسجل TRISA فإن هذا الأمر سوف يجعل قائد الخرج (ترانزستوراتCMOS) على القطب المقابل لتلك الخانة في نمط الممانعة العالية (hi-impedance mode ) أي يبقى أمام القطب ممر وحيد عازل TTL بمعنى أن يعمل هذا القطب كقطب دخل (input ) في حين أن تصفير أي من خانات TRISA سينقل محتويات ماسك الخرج (القلاب D ) إلى القطب 1/0 دون حاجز و بالتالي فهو يعمل كقطب خرج (output ) .
بنية أقطاب النافذة A
يبين الشكل التالي (A) البنية العامة لأقطاب (RA0:RA3) لقد دخل على بنية القطب RA4 بعض التعديل لملائمة الوظيفة الإضافية له حيث يمكن استخدامه كمدخل ساعة خارجي (مدخل عد) للمؤقت TMRO , انظر الشكل (B)
النافذة B
النافذة B هي نافذة ذات ثمانية أقطاب ثنائية الاتجاه (bi-directional ) ويتم تحديد اتجاه المعطيات لأقطاب هذه النافذة بواسطة المسجل TRISB بنفس الطريقة التي يتحكم بها المسجل TRISA بأقطاب النافذة A. ولهذه النافذة مميزتين أساسيتين الأولى إمكانية المقاطعة عند تغير الحالة المنطقية لبعض أقطابها و الميزة الثانية هي وجود مقاومات الانحياز (الشد) العلوي .
الانحياز (الشد) العلوي (pull-up ) لأقطاب النافذة B
لكل قطب من أقطاب النافذة B إمكانية الانحياز العلوي الداخلي (internal pull –up ) يتم تفعيل هذه الإمكانية أو حجمها بواسطة الخانة RBPU من المسجل OPTIN حيث تفعل هذه الإمكانية بوضع "0" في الخانة السابقة الذكر.
بنية أقطاب النافذة B
إن بنية الأقطاب RB0:RB3 مبينة في الشكل التالي B أما بنية الأقطاب RP4:RB7 فهي مبينة في الشكل A
المصدر: تصميم النظم باستخدام متحكمات PIC :
دار شعاع