العالمي DRO على أساس اردوينو نانو - shDRO. الجزء 2

مرحبا مرة أخرى!

ما زلت أصف تطوري لـ shDRO. في هذا الجزء ، سوف أصف خوارزمية استقصاء الجهاز وتنسيق أوامر وحدة التحكم.

الجزء الاول.

إدراج

نظرًا لأن عدد القنوات / المنافذ التي يمكن توصيل القراء بها هو 12 ، ويمكن نظريا تكوين كل قناة للمقاطعة ، يتم استخدام معالجين لمقاطعة PCINT (للمنافذ D و C). هذا يعني وجود قيود واحدة على الاتصال: يجب توصيل جميع مخرجات الجهاز التي تم تكوينها للإدخال بقنوات مجموعة واحدة. إذا تم تكوين القناة للإخراج ، ثم للجهاز الحالي ، لا يهم المجموعة التي تنتمي إليها. المجموعات: group1 (القنوات 0-5) ، group2 (القنوات 6-11).

يتم استخدام المخازن المؤقتة الحلقي جهازي 256 بايت لكل معالجات المقاطعة.

رمز معالج المقاطعة هو:

buf[pos] = DATA_N; pos++; 

حيث DATA_N هو أحد المنافذ: PIND ، PINC.

معالجة البيانات هي كما يلي:

  • يحدث مقاطعة ، تتم كتابة قيمة منفذ جديد إلى المخزن المؤقت ؛
  • يتم استقصاء المخزن المؤقت بشكل دوري ، ومنه يتم قراءة البيانات التي ظهرت بعد الاستطلاع الأخير (يتم تخزين موضع المخزن المؤقت للاستطلاع الأخير في بنية الجهاز) ؛
  • في عملية قراءة البيانات الجديدة ، تتم مقارنة مستويات المقاطعة المحددة للقنوات مع بيانات المنفذ الحالي. إذا كان مستوى المقاطعة غير متطابق ، فسيتم تجاهل البيانات.
  • يتحقق من قبول جميع البيانات للمعالجة (على سبيل المثال ، يجب استلام 24 بت لبروتوكول BIN6) ؛
  • تتم معالجة البيانات في شكل "قابل للقراءة" ويتم عرض البيانات التي يتم معالجتها على الشاشة ؛
  • ثم تتكرر العملية ؛

لتطبيق المنطق أعلاه ، يتم تطبيق الوحدات المنطقية التالية في البرامج الثابتة:

  • الجهاز: تحتوي الوحدة على جميع المعلومات المتعلقة بجهاز واحد متصل. لكل جهاز متصل ، يتم إنشاء مثل هذه الوحدة.
  • البروتوكول: تحتوي الوحدة على معلومات حول البروتوكول وكيفية معالجة الإشارات التي تصل إلى المنافذ وفقًا لبروتوكول التبادل هذا ؛
  • الوظيفة: تحتوي الوحدة على معلومات حول كيفية تحويل البيانات الواردة من وحدة البروتوكول. على سبيل المثال ، هناك وحدة بروتوكول تدعم إشارة التربيع ، ولكن قد تكون الأجهزة التي تصدر إشارة تربيع مختلفة: يمكن أن تكون مسطرة ضوئية أو مستشعر سرعة. أي في حالة واحدة ، يجب تحويل البيانات إلى ملم أو بوصة ، وفي دورة في الدقيقة الأخرى. هذه الوحدة فقط يفعل هذا ؛
  • Led: وحدة نمطية تعرض معلومات عن المؤشرات. shDRO يحتوي على 4 مؤشرات ، ولكل جهاز يتم تعيين مؤشر العرض المطلوب ؛

نتيجة لذلك ، لتوصيل الجهاز ، في وحدة التحكم تحتاج إلى:

  • تكوين القنوات المطلوبة ؛
  • إضافة جهاز ؛
  • لبروتوكول مجموعة الجهاز ، وظيفة وأدى.
  • إضافة / ربط القنوات اللازمة للجهاز ؛

وحدة التحكم

في الوقت الحالي ، راجعت تشغيل وحدة التحكم في شاشة منفذ ArduinoIDE وفي الإصدار v.1.9b من المحطة الطرفية. للمحطات من نوع المعجون ، تحتاج إلى تنفيذ وضع الصدى (غير مطبق).

تنسيق القيادة:

 <> </1> <_1> </N> <_N> 

الحد الأقصى لعدد الوسائط في كل سطر هو 5.

لا يهم الحالة ؛ يحدث تحليل الأمر بعد تحويل السلسلة إلى أحرف صغيرة (استثناء: قيمة الوسيطة في علامات اقتباس).

يتم تنفيذ جميع الأوامر فقط بعد إصدار أمر الإعداد (استثناء هو أمر التعليمات ، والذي يعرض قائمة بجميع الأوامر المتاحة).

يتم وصف جميع الأوامر في الأرشيف المرفق ، بالإضافة إلى الإصدار الأول من البرنامج الثابت بتنسيق سداسي عشرية.

shDRO.zip (وصف hex + للأوامر)

مصادر ShDRO

أن تستمر.

شكرا لك

PS
يمكن إرسال الأوامر المتعلقة بتكوين الأجهزة والقنوات إلى arduino العارية دون الربط.

PS1
طلب لأولئك الذين يعيشون في قازان.
إذا كان لديك:
  • الفرجار الرقمية تعمل وفقا للبروتوكولات: 24BIT ، BCD7 ؛
  • iGaging الحكام الرقمية (بروتوكول 21BIT) ؛

ثم هل يمكن أن تمنحهم لي لبضعة أيام لكتابة وتصحيح بروتوكولات لهم؟
أعدك أن أبقيه آمنًا وسليمًا!
ولكن هذا هو في PM. شكرا مقدما.

PS2
نسيت إضافة أمرين إلى ملف وصف الأمر:
- حفظ: يحفظ إعدادات القنوات والأجهزة في EEPROM ؛
- التحميل: تفريغ إعدادات القنوات والأجهزة من EEPROM (يتم التحميل تلقائيًا أثناء التهيئة) ؛
لن أعيد تحميل الملف ، فقط ضع في اعتبارك. لكن "مساعدة" تعرض هذه الأوامر.

Source: https://habr.com/ru/post/ar446458/


All Articles