* NIP - الأجهزة الطرفية المستقلة الأساسية في الميكروكونترولر الدقيقة ، والمعروفة أيضًا باسم CIP - Core Independent Peripheral.
الجزء 4
تم تخصيص المقالات السابقة [
1 ] و [
2 ] و [
3 ] للأجهزة الطرفية للمتحكم الدقيق الدقيق المستقل المستقل (NEV): الخلايا المنطقية القابلة للتكوين ، ومنافذ الإدخال / الإخراج مع وظيفة الحد الحالية ، و ADC مع الكمبيوتر ؛ تم عرض بعض ميزات هذه الأجهزة الطرفية. دعني أذكرك بأن الاستقلال لا يعني ضمناً من نوع PIC من وحدات التحكم الدقيقة (BaseLine و Mid-Range و Enhanced Mid-Range و PIC18 و 16- و 32-bit) ، ولكن من تشغيل النواة ، أي التنفيذ المستقل للمهام المعينة إلى محيط حالة وحدة المعالجة المركزية. تم تصميم هذه الأجهزة الطرفية ، ولا سيما إمكانية تكوينها للتعاون وتوليف وظائف الأجهزة ، لتفريغ جزء البرنامج وتقليل استهلاك الطاقة.
في هذه المقالة القصيرة ، أود أن أعرض أمثلة على تنفيذ استقبال واجهات الاتصال "غير المخصصة" وغير القياسية باستخدام الأجهزة الطرفية المستقلة للنواة.
يعد تشفير PWM للمعلومات شائعًا جدًا عند تشفير الإشارات المنفصلة ، السجل 1 والسجل 0 ، بعرض النبضة. ضع في اعتبارك خيار استقبال وفك تشفير هذه الإشارات باستخدام وحدات التحكم PIC الطرفية المستقلة الأساسية.
فك تشفير PWM لإشارة مستشعر AM2302
في مشاريع DIY ، غالبًا ما يتم استخدام مستشعر درجة الحرارة والرطوبة DHT22 (AM2302). يحتوي المستشعر على 3 مخرجات ، ويتم نقل المعلومات عبر سلك واحد. استجابةً للطلب (مستوى منخفض لمدة حوالي 1 مللي ثانية) ، يستجيب المستشعر ببت بدء ، ثم تسلسل 40 بت ، حيث يتم ترميز المعلومات في مدة النبض: السجل. "0" - نبضة 30mk ثانية ، سجل. "1" - 70mk ثانية (القيم النموذجية). تحتوي استجابة المستشعر على 5 بايت: 2 بايت من بيانات الرطوبة و 2 بايت من درجة الحرارة و 1 بايت تحكم.
الشكل 1. شرح مبدأ توليد إشارة جهاز استشعار DHT22.لدى الشبكة أمثلة كثيرة للعمل مع أجهزة الاستشعار هذه على Arduino. تستخدم بعض تطبيقات المكتبة بنيات مثل:
loopCnt = TIMEOUT; while(PIN) { if(--loopCount == 0) return ErrorTimeout; } if (loopCnt < cntOne) { // bit =1 … } else { // bit =0 … }
في مثل هذه التطبيقات ، أرى المشاكل التالية:
- تعليق برنامج القياس لكامل وقت القياس (> 5 ملي ثانية) في شفرة القياس ؛
- حدوث مقاطعة طويلة بما فيه الكفاية سيعطل قراءة البيانات من المستشعر ؛
- مشاكل محتملة في العمل على تردد ساعة منخفضة للمتحكم الدقيق ؛
تحتوي خوارزمية برنامج هذه الحلول على النموذج التالي تقريبًا (انظر الشكل 2)
التين. 2. خوارزمية لاستقبال وفك تشفير إشارات المستشعر برمجيًا.يعتبر أدناه نوعًا مختلفًا من استقبال / فك تشفير الأجهزة للبروتوكول مع الحد الأدنى من النفقات العامة للبرامج.
تتمثل الفكرة في عزل نبضات الساعة من تيار البتات ، متبوعة باتجاه الإشارة الأصلية ونبضات الساعة إلى وحدة أجهزة SPI. في هذه الحالة ، لا يمكن لبرنامج المتحكم الدقيق أن يأخذ تسلسليًا 5 بايت من البيانات من SPI.
جزء من CIP هو جهاز توقيت لديه القدرة على تشغيل الأحداث (التغييرات في حالة الإدخال أو الأجهزة الطرفية الأخرى). على سبيل المثال يمكن أن يؤدي تغيير حالة الإدخال إلى تشغيل مؤقت ، انظر إشارة TMR6 في الشكل 3. عندما يصل المؤقت إلى القيمة المحددة ، يتوقف العد ويصبح المؤقت في الحالة TMR6 = PR6 (سجل فترة PR). يمكن أن تكون حالة المؤقت مدخلاً لخلية منطقية قابلة للتكوين (CLC ، انظر الجزء 1).
وبالتالي ، باستخدام جهاز توقيت وخلايا منطقية ، يمكننا توليد إشارة مناسبة للتطبيق على إدخال الساعة لـ SCK لوحدة SPI. لاستخراج المعلومات ، يجب أن تكون مدة مثل هذه الكتلة متوسط القيمة بين مدة الصفر وواحدة. ثم يمكن لـ SPI إصلاح البتات وفقًا لتحلل الكتلة (انظر الشكل 3 إشارة SCK).
ستحتوي الإشارة من المستشعر على نبضات زائفة تم إنشاؤها من الطلب وبدء نبضات. لكي لا تتداخل هذه النبضات مع العملية ، تحتاج إلى تمكين SPI فقط لمدة نبضات المعلومات ، أو قطع النبضات غير الضرورية. يمكننا أيضًا حل هذه المشكلة باستخدام CIP.
يعمل مؤقت آخر بمثابة عداد النبض مع تبديل الركود: اكتب الرقم 2 في سجل الفترة ، ويحسب المؤقت أول نبضتين (انظر إشارة TMR4 في الشكل 3) ويوقف العد (انظر إشارة EN في الشكل 3) ، والتي من خلال تسمح كتلة الخلايا المنطقية بإصدار النبضات المتبقية لإدخال SPI.
الشكل 3. مخططات توضح استقبال إشارة استشعار DHT22.يتم تنفيذ الوظيفة المنطقية لتوليد إشارة SCK على خلية منطقية واحدة (CLC) ، وتظهر الدائرة الكاملة في تكوين AND-OR في الشكل 4.
يتم توصيل إخراج الخلية المنطقية بإدخال SCK ، ويتم توصيل إشارة مستشعر DHT22 بـ MOSI لوحدة SPI. يتم إجراء جميع الاتصالات داخل متحكم (الشكل 5). من أجل المراقبة والتصحيح ، يمكن إخراج الإشارات إلى منافذ وحدة التحكم الدقيقة.
الشكل 4. تكوين الخلية المنطقية CLC في متحكم PIC.التين. 5. الهيكل الكامل لتكوين المحيط.إذا كان يبدو أن مؤقتين لمهمة فك تشفير بروتوكول المستشعر هو إهدار للموارد ، فيمكن عندئذٍ "تجميع" عداد يصل إلى اثنين على خلايا منطقية CLC مجانية.
بشكل عام ، تأتي مهمة فك التشفير إلى خوارزمية بسيطة للغاية: تتم تهيئة وحدة التحكم الدقيقة والأجهزة الطرفية الخاصة بها ، إذا لزم الأمر ، يتم تشغيل وحدة SPI ويتم إنشاء طلب قياس (السجل. "0" لـ ~ 1ms).
يبقى لقراءة البيانات من المخزن المؤقت عند حدوث مقاطعة من SPI.
الشكل 6. خوارزمية العمل مع مستشعر DHT22 عند استخدام الجذع.
الشكل 7. إشارات من منافذ متحكم. الإشارة SSP1IF - الانقطاعات عند استقبال بايت بواسطة وحدة SPI.يوضح الشكل 7 مخططات الإشارات ، حيث:
DHT (dat) - إشارة على خط إشارة المستشعر - تغذي مدخلات وحدة MOSI SPI ؛
TMR6! = RP6 - ساعة مخصصة - ترسل إلى SCK لوحدة SPI ؛
SSP1IF - إشارة المقاطعة (جاهزية البيانات في مخزن SPI المؤقت) - في الواقع ، تُظهر هذه الإشارة حمولة قلب وحدة التحكم الدقيقة - قراءة بيانات النتيجة.
فك بروتوكولات PWM الأخرى
يتم استخدام بروتوكولات PWM "أحادية السلك" المشابهة في أجهزة التحكم عن بعد بالأشعة تحت الحمراء للأجهزة المنزلية. غالبًا أثناء إرسال الأشعة تحت الحمراء ، يتم استخدام التشفير حسب موضع النبضة عندما تكون المدة ثابتة ويكون التوقف مؤقتًا متغيرًا. يُسمى هذا الخيار أيضًا "ترميز الإيقاف المؤقت المتغير". في الواقع ، هذا هو نفس ترميز PWM ، ولكن مع إشارة مقلوبة. في حالة وجود خلايا منطقية ، فإن الانقلاب ليس مشكلة ، علاوة على ذلك ، فإن مستقبلات الأشعة تحت الحمراء تحيل الإشارة المستقبلة. في الشكل. يوضح الشكل 8 الإشارات بعد استقبال جهاز الاستقبال من وحدتي تحكم مختلفتين.

الشكل 8. خيارات الترميز الخاصة بأجهزة التحكم عن بعد بالأشعة تحت الحمراء.لكل من وحدات التحكم بروتوكولات مختلفة ، ولكن يتم فك تشفير هذه البروتوكولات بسهولة بالطريقة الموضحة أعلاه ، الشيء الوحيد هو أنه من الضروري تحديد بداية الإرسال لمزامنة تضمين SPI ، حيث يمكن لمستقبل الأشعة تحت الحمراء التقاط التداخل.

التين. 9. فك الإشارات باستخدام SPI.لا تحتوي جميع أجهزة التحكم عن بعد بالأشعة تحت الحمراء على ترميز PWM. تحتوي بعض البروتوكولات ، على سبيل المثال RC5 ، على ترميز طور (يتم إرسال رمز مانشستر ، "0" إلى 10 ، و "1" إلى 01) [4]. فك شفرة مانشستر باستخدام أطراف نواة مستقلة سبق أن أخذناها في الاعتبار في الجزء الأول [1].
الملخص
بدلاً من ما يقرب من 100٪ من حمل وحدة المعالجة المركزية لوحدة التحكم الدقيقة لمهمة فك تشفير بروتوكول PWM في إصدار Arduino (نعم ، أعلم ، يمكن حل المشكلة بشكل أكثر كفاءة باستخدام وحدات الالتقاط أو الأجهزة الطرفية الأخرى) ، قمنا بنقل استقبال حزمة المعلومات إلى الأجهزة. تبدأ مقدمة إشارة الإدخال المؤقت ، وتحدد حالة المؤقت إخراج كتلة الخلايا المنطقية ، ويتم تغذية إخراج الخلية المنطقية إلى SPI.
يسمح استخدام الأجهزة الطرفية المستقلة عن المركز بتحسين استخدام الموارد ، ونقل بعض المهام إلى الأجهزة ، وتبسيط التعليمات البرمجية ، وتقليل الاستهلاك.
الأدب
1.
خلايا المنطق القابلة للتكوين في وحدات تحكم الموافقة المسبقة عن علم.2.
50 ظلال من الجدعة. منافذ الإدخال / الإخراج3.
50 ظلال من الجدعة. ADC و ADC مع كمبيوتر متحكم دقيق4.
sbprojects.com/knowledge/ir/rc5.php