مرحبا مرة أخرى!
ما زلت أصف تطوري لـ 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 (يتم التحميل تلقائيًا أثناء التهيئة) ؛
لن أعيد تحميل الملف ، فقط ضع في اعتبارك. لكن "مساعدة" تعرض هذه الأوامر.