“الخلاصة: يمكن أن تساعد وحدات التحكم الدقيقة التي تتعامل مع مهام محددة في تبسيط تدفق التصميم لمختلف التطبيقات عن طريق تفريغ المهام وعبء العمل على وحدة التحكم الدقيقة الرئيسية أو المعالجات الدقيقة.
“
شركة Microchip Technology Inc.
قسم منتج متحكم 8 بت
روبرت بيركيل
اليوم ، أصبحت المتحكمات الدقيقة الكبيرة 32 بت (MCU) والمعالجات الدقيقة (MPUs) التي تعمل بنظام تشغيل في الوقت الحقيقي (RTOS) شائعة بشكل متزايد. ومع ذلك ، إذا كنت تستخدم متحكمًا كبيرًا لتطبيق معقد ، فقد تواجه مشكلات في موارد وحدة المعالجة المركزية أثناء أداء مهام معالجة خلفية صغيرة ليست معقدة ولكنها تستغرق وقتًا طويلاً. يمكن استخدام الأجهزة الصغيرة مثل 8 بت و 16 بت MCU لإلغاء تحميل أجهزة 32 بت.
ضع في اعتبارك مثالاً لاستخدام MCU 32 بت للتحكم في الوظائف غير المتعلقة بالسلامة في السيارة ، مثل أنظمة الترفيه والإضاءة المحيطة وتكييف الهواء. يجب أن يخصص هذا الجهاز 32 بت موارده للتعامل مع جميع المهام المرتبطة بهذه الوظائف. تتضمن هذه المهام أيضًا قياس درجة الحرارة في نقاط مختلفة في الكابينة ، وتشغيل / إيقاف تشغيل نظام تكييف الهواء ، وتحديث شاشات الرسوم ، ومعالجة مدخلات المستخدم ، وضبط ظروف الإضاءة ، وتشغيل الموسيقى. حتى بالنسبة للأجهزة الكبيرة 32 بت ، فإن أحمال العمل هذه ثقيلة للغاية.
ومع ذلك ، يمكن إدارة هذه المهام بشكل أكبر إذا قام الجهاز 32 بت بإلغاء تحميل جزء من حمل المهمة إلى المعالجات الفرعية التي تتطلب القليل من المراقبة ، حيث يتعامل كل معالج فرعي مع مهمة واحدة أو اثنتين فقط من هذه المهام. يؤدي ذلك إلى تحرير موارد وحدة المعالجة المركزية على المعالج الرئيسي ، مما يقلل من تعقيد البرامج مع تحسين الأداء وتقليل وقت التنفيذ.
هذا الحل مشابه للطرف المحيطي في الميكروكونترولر. الأجهزة الطرفية هي وحدات صغيرة من الأجهزة المتخصصة التي يمكن أن تضيف وظائف جديدة (مثل المرجع أو المحول التناظري إلى الرقمي) أو تقلل من حجم العمل الذي يتعين على وحدة المعالجة المركزية القيام به لأداء وظيفة معينة. في بعض الحالات ، بعد التهيئة ، يمكن أن تعمل الأجهزة الطرفية بشكل مستقل عن وحدة المعالجة المركزية.
لتوضيح مزايا الأجهزة الطرفية ، لنأخذ مثالاً على توليد إشارة معدل عرض النبضة (PWM). لإنشاء PWM بدون جهاز طرفي مخصص ، قم ببساطة بتعيين خط الإدخال / الإخراج عاليًا ، وانتظر عددًا معينًا من الدورات ، واضبطه على مستوى منخفض ، وانتظر لفترة ، ثم كرر. هذا يستهلك الكثير من دورات وحدة المعالجة المركزية ، وبالنسبة لبعض الوظائف (مثل RTOS) ، يصعب أداءها بشكل موثوق. في المقابل ، يسمح PWM المحيطي لوحدة المعالجة المركزية بتعيين معلمات الشكل الموجي المطلوبة أثناء أداء مهام أخرى.
يوضح المثال الأول المقدم في هذه المقالة فوائد إلغاء تحميل المهام كثيفة الاستخدام لوحدة المعالجة المركزية. في هذه الحالة ، تم استخدام MCU 8 بت لإنشاء موسع الإدخال / الإخراج. موسعات الإدخال / الإخراج ليست معقدة ؛ ومع ذلك ، يمكن أن تستهلك الكثير من وقت وحدة المعالجة المركزية بسبب الانقطاعات المتكررة التي يحتاجون إليها للتعامل معها. باستخدام وحدة MCU مخصصة لهذه المهمة ، يمكن للأجهزة الكبيرة 32 بت تقليل استخدام الإدخال / الإخراج وعدد المقاطعات التي يجب معالجتها. بالإضافة إلى ذلك ، يمكن تعيين مجموعة ميزات موسع الإدخال / الإخراج في البرنامج ، وبالتالي تمكين التخصيص والتعديل على التطبيق.
يوضح المثال الثاني في هذه المقالة أداء جهاز طرفي مستقل عن طريق إنشاء محول جهد إلى تردد (V / F) يعمل بشكل مستقل عن وحدة المعالجة المركزية. في هذا المثال ، الوظيفة الوحيدة لوحدة المعالجة المركزية هي تهيئة الأجهزة الطرفية وإرسال رسائل طباعة التصحيح إلى UART. في الأنظمة الكبيرة ، يمكن لوحدة المعالجة المركزية أداء مهمة بسيطة أخرى أثناء تشغيل V / F في الخلفية.
موسع الإدخال / الإخراج
أكبر فائدة لإنشاء موسع إدخال / إخراج مع 8 بت MCU هي زيادة المرونة. يتم تضمين مجموعة الميزات الخاصة بموسع الإدخال / الإخراج ASIC في الجهاز ، بينما تحدد MCU سلوكها بناءً على البرنامج الذي تقوم بتنفيذه. تتيح هذه المرونة الإصدارات المستندة إلى MCU لتلبية احتياجات التطبيق النهائي.
تنفيذ موسعات الإدخال / الإخراج المتقدمة
داخل الجهاز ، يعمل موسع الإدخال / الإخراج المتقدم على هيكل قائم على جدول البحث. قبل القراءة أو الكتابة ، يتم إرسال عنوان افتراضي. هذا العنوان ليس له علاقة بالسجلات الموجودة في وحدة التحكم الدقيقة – خاصة بجدول البحث فقط. هذا يعني أنه يمكن إضافة الوظائف غير الموجودة في سجلات أجهزة وحدة التحكم الدقيقة بشفافية. بالإضافة إلى ذلك ، يمكن إعادة ترتيب الإدخالات في الجدول بسهولة لأغراض محددة. ميزة أخرى لهذه البنية هي القدرة على إضافة أذونات إلى جدول البحث. على سبيل المثال ، لإنشاء سجل للقراءة فقط ، ما عليك سوى حذف إدخال الكتابة في جدول البحث.
جدول البحث لموسعات الإدخال / الإخراج المتقدمة
ينطبق هذا الهيكل الأكثر تعقيدًا أيضًا على الوظائف غير القياسية. تسمح وظيفة “MEM OP” لوحدة التحكم MCU بحفظ أو تحميل التكوين الحالي للإدخال والإخراج للأغراض العامة (GPIO) في الذاكرة.
تخزين الذاكرة في الجهاز
يمكن أيضًا لـ MEM OP إعادة تعيين تكوين GPIO إلى المعلمات المحددة في وقت الترجمة.
ملاحظة: ليست كل الحقول متاحة لجميع الإجراءات
وظيفة MEM OP
بالإضافة إلى ذلك ، هناك خيار لضبط الميكروكونترولر لتحميل الإعدادات المحفوظة عند التشغيل. في حالة التمكين ، سيحاول المتحكم الدقيق تحميل الإعدادات في التكوين 0. إذا فشل التكوين في إجراء التحقق من المجموع الاختباري ، فستعود MCU إلى ثوابت وقت الترجمة. يمكن تعطيل هذه الميزة في البرنامج إذا لم تكن مطلوبة.
جوهر الحل
تكمن ميزة الحلول المستندة إلى MCU في مرونتها الفائقة. على عكس ASICs في السوق ، يمكننا تكوين MCUs بوظائف غير قياسية خاصة بسيناريوهات التطبيق. تم تطوير هذا التطبيق للأغراض العامة لعائلة MCUs PIC16F15244.
لإلقاء نظرة متعمقة على التنفيذ أو لتجربة العينة ، راجع ملف README في مستودع المصدر. بالإضافة إلى ذلك ، يتم تقديم عرض توضيحي لـ Advanced I / O Expander مع Arduino.
كود المصدر والوثائق والعروض التوضيحية: https://github.com/microchip-pic-avr-examples/pic16f15244-family-advanced-i2c-io-expander
محول الجهد إلى التردد (V / F)
تعمل محولات الجهد إلى التردد على تحسين الحلول التناظرية التقليدية عن طريق تقليل تكاليف فاتورة المواد (BOM) ، وبالتالي منطقة التصميم. في حين أن العديد من محولات V / F في السوق تتطلب مقاومات ومكثفات خارجية للعمل ، يمكن أن تعمل الميكروكونترولر باستخدام مكونات الفصل والسحب المشتركة فقط (أمر ضروري لجميع وحدات MCU).
رسم تخطيطي لتطبيق TC9400 / TC9401 / TC9402 10 هرتز إلى 100 كيلو هرتز محول V / F
لا يتم ترقيم MCU باستخدام التقنيات التناظرية ، ولكن بالأحرى مجموعة من الأجهزة الطرفية والوظائف المستقلة عن النواة. يقيس MCU إشارة الإدخال باستخدام محول تناظري داخلي رقمي (ADCC) مع إمكانات حسابية ، ثم يقسم إشارة الساعة لإنشاء خرج تردد متغير. في هذا المثال ، تم إعداد الأجهزة الطرفية لتعمل بشكل مستقل عن وحدة المعالجة المركزية بعد التهيئة. هذا يعني أنه يمكن استخدام وحدة المعالجة المركزية لأداء مهام أخرى في التطبيق النهائي.
بالنسبة للحلول المستندة إلى MCU ، يتمثل التحدي في أن الأداء ليس جيدًا مثل الحل التناظري. دقة الإخراج نفسها محدودة من قبل ADCC. على السطح ، يكون ADCC 12 بت ، ولكن سيتم تشغيله بدقة 14 بت مهيأة على عينة زائدة ، اعتمادًا على كيفية تكوين البرنامج. وبالمثل ، فإن المذبذب الذي يتم التحكم فيه عدديًا على الرقاقة (NCO) المستخدم لتركيب تردد الخرج له دقة محدودة وقد يكون له تذبذب في خرجه ، اعتمادًا على القيمة التي تم قياسها بواسطة ADC.
يمكن تقسيم الحل القائم على MCU إلى ثلاث وحدات طرفية مختلفة – وحدة أخذ العينات التناظرية ووحدة مذبذب الإخراج ومولد دورة العمل.
مخطط كتلة الحل
وحدة أخذ العينات التناظرية
تنفيذ وحدة أخذ العينات التناظرية
كتلة أخذ العينات التناظرية هي المسؤولة عن إجراء التحويل من التناظرية إلى الرقمية. لتحقيق خرج 100 كيلو هرتز ضمن قيود التردد للجهاز ، تم تكوين ADCC على عينة زائدة ثم حساب المتوسط للحصول على نتيجة 14 بت.
هذا التكوين المفرط له عيب في إضافة ضوضاء إحصائية إضافية إلى النتائج ، والتي يمكن تعويضها عن طريق حساب متوسط الإفراط في أخذ العينات وإضافة التباطؤ. لتحقيق التباطؤ ، يمكن استخدام وظيفة مقاطعة ADCC. (من أجل التبسيط ، سيتم تقديم تفاصيل فقط عن كيفية استخدام هذا المثال لميزة مقاطعة الحد.)
بعد أن تكمل ADCC حساب متوسط العينة الزائد ، تتم مقارنة القيمة الناتجة بسجل نقطة الضبط في الجهاز المحيطي. إذا كان الفرق بين الاثنين أكبر أو أقل من الحد المعين ، يتم تشغيل مقاطعة. يمكن لوحدة المعالجة المركزية إخفاء هذه المقاطعة وعدم تأثرها ، ومع ذلك ، تؤدي هذه المقاطعة إلى تشغيل وصول مباشر للذاكرة (DMA) يقوم بنسخ متوسط نتيجة العينة المفرطة إلى سجل نقطة ضبط ADCC ، مما يؤدي إلى حدوث تأخير. إذا لم يتم تجاوز العتبة ، فلن تحدث نسخة DMA ، وبالتالي لن يتم تشغيل تحديث DMA لكتلة مذبذب الإخراج.
كتلة مذبذب الإخراج
هيكل كتلة مذبذب الإخراج
كتلة مذبذب الخرج لهذا الحل مسؤولة عن توليد إشارة الساعة بتردد الخرج المطلوب. ترتبط إشارة الخرج هذه داخليًا بمولد دورة العمل ، والذي يخفض تردد الخرج إلى النصف ولكنه ينتج 50٪ من خرج دورة العمل. لذلك ، تعمل كتلة مذبذب الخرج بضعف تردد الخرج.
في قلب كتلة مذبذب الخرج يوجد مذبذب يتم التحكم فيه عدديًا (NCO). يعمل جهاز NCO المحيطي عن طريق إضافة قيمة تراكمية إلى المجمع على الحافة الصاعدة لساعة الإدخال ، ثم اشتقاق مخرجات الجهاز المحيطي بناءً على فائض المجمع. (انظر ورقة البيانات للحصول على وصف كامل لضابط الصف.)
في هذا المثال ، تم تعيين NCO2 لإنشاء تردد ساعة الإدخال المطلوب داخليًا للحصول على خرج 100 كيلو هرتز من إدخال 14 بت. يتم استخدام نتيجة 14 بت لأن نتيجة 12 بت لـ ADCC نفسها لا تكفي لإنتاج خرج 100 كيلو هرتز بدون مصدر ساعة خارجي.
نتائج ADC |
خرج NCO1 (مضاعف) |
تردد الخرج |
0x0000 |
0 هرتز |
0 هرتز |
0x0001 |
12.2 هرتز |
6.1 هرتز |
0x0100 |
3.1 كيلو هرتز |
1.6 كيلو هرتز |
0x1000 |
50 كيلو هرتز |
25 كيلو هرتز |
0x3FFF |
200 كيلو هرتز |
100 كيلو هرتز |
خرج مثالي لمحولات 100 كيلو هرتز V / F (إيقاف تشغيل المراقبة).
إذا تم تغيير تردد خرج NCO2 أو تم استخدام مصدر بديل ، فسيتم ضبط تردد الخرج على نطاق إخراج مختلف. على سبيل المثال ، إذا تم تقليل تردد NCO2 إلى 1.28 ميجاهرتز ، فسيكون الناتج بحد أقصى 10 كيلو هرتز.
نتائج ADC |
تردد خرج NCO1 (مضاعف) |
تردد الخرج |
0x0000 |
0 هرتز |
0 هرتز |
0x0001 |
1.2 هرتز |
0.6 هرتز |
0x0100 |
312.5 هرتز |
156.3 هرتز |
0x1000 |
5 كيلو هرتز |
2.5 كيلو هرتز |
0x3FFF |
20 كيلو هرتز |
10 كيلو هرتز |
خرج مثالي لمحولات 10 كيلو هرتز V / F (إيقاف تشغيل المراقبة).
مولد دورة العمل
مخطط كتلة دورة العمل للمولد
وحدة مولد دورة العمل لهذا الحل مسؤولة عن إنتاج 50٪ لدورة العمل. هذه ميزة اختيارية – يمكن استخدام ناتج ضابط الصف مباشرة ، ولكن القيام بذلك سيزيد من حجم تغيير دورة العمل.
يتم تنفيذ المولد باستخدام خلية منطقية قابلة للتكوين (CLC). CLC عبارة عن وحدة نمطية صغيرة من منطق قابل للتكوين ، على غرار خلية صفيف البوابة الميدانية القابلة للبرمجة (FPGA). يمكن استخدام CLCs كبوابات منطقية منفصلة (مثل AND-OR أو OR-XOR) ويمكن أيضًا تهيئتها كمزالج أو قلاب. في هذا الحل ، يتم تنفيذ CLC كقلب JK مع إعادة التعيين. تظل J و K في منطق مرتفع. يتم استخدام كتلة مذبذب الإخراج كساعة للقلب يتخبط. تؤدي كل نبضة ساعة إدخال إلى تبديل الإخراج ، مما يؤدي إلى دورة عمل بنسبة 50٪. ملاحظة: سيؤثر ارتعاش التردد لكتلة مذبذب الخرج على دورة العمل.
يعمل الموقت 6 كمؤقت “مراقب” غير مستقر. إذا لم ينتج عن الإخراج حافة (ارتفاع أو هبوط) ، فسيقوم العداد بالفيضان ويرسل نبض الساعة المتولد إلى CLC ، والذي يتحكم في الحد الأدنى لنطاق تردد الإخراج. ينقلب الإخراج إلى نصف تردد المؤقت (الإخراج هو 6 هرتز) بدلاً من الانتقال إلى التيار المباشر.
جوهر الحل
يوضح هذا المثال أنه لاستخدام الأجهزة الطرفية للأجهزة لإنشاء وظائف أساسية مستقلة ، غالبًا ما تكون الدائرة الخارجية المتكاملة ضرورية. تتمثل إحدى أكبر مزايا هذا التكوين في إمكانية ضبط التشغيل المحيطي في البرنامج ، مما يجعل من السهل تكييف المثال مع التطبيق النهائي. نظرًا للعدد الكبير من الأجهزة الطرفية المستخدمة ، تم اختيار عائلة PIC18-Q43 من وحدات MCU لتنفيذ هذا المثال.
لمزيد من المعلومات حول المثال ، راجع وثائق README في مستودع المثال. بالإضافة إلى ذلك ، يحتوي نموذج المستودع على تنفيذ محول التردد إلى الجهد ، والذي يمكن تنفيذه على نفس الجهاز مثل محول الجهد إلى التردد.
انقر فوق هذا الارتباط للحصول على التعليمات البرمجية المصدر والوثائق: https://github.com/microchip-pic-avr-examples/pic18f57q43-v-to-f-mplab-mcc
لخص
في حين أن كل من وحدات التحكم الدقيقة والمعالجات الدقيقة عالية الأداء لها مكانها ، لا يمكن التقليل من دور وحدات MCU ذات 8 بت و 16 بت عندما يتعلق الأمر بأداء مهام متخصصة صغيرة. هذه المهام ليست بالضرورة معقدة للغاية ، ولكنها قد تستغرق وقتًا طويلاً أو تستغرق وقتًا طويلاً. مع حمل مهام أقل ، يمكن أن يكون للأجهزة 32 بت تطبيقات أبسط ، مما يؤدي إلى موثوقية محسنة ، وتقليل استخدام الذاكرة ، واستهلاك أقل للطاقة.