بيت / وحدات تحكم اللعبة / مولد ثنائي النغمة متعدد التردد (DTMF) على AVR. المخطط والوصف. دراسة مستقبل ومرسل إشارات dtmf مولد نغمة dtmf للدائرة الدقيقة

مولد ثنائي النغمة متعدد التردد (DTMF) على AVR. المخطط والوصف. دراسة مستقبل ومرسل إشارات dtmf مولد نغمة dtmf للدائرة الدقيقة

مع إدخال أنظمة PBX الرقمية الحديثة في شبكات الهاتف في الاتحاد الروسي، تنتشر تدريجيًا الطريقة متعددة الترددات لإرسال إشارات الاتصال، والتي يُشار إليها بالاختصار الإنجليزي DTMF (تردد مزدوج متعدد النغمات). في بعض الأحيان يتم استخدام مصطلح إنجليزي آخر لتسمية نظام إرسال إشارة الاتصال هذا - Touch-None (الاتصال بالنغمة). تم تطوير هذه الطريقة عام 1960، لكن انتشارها الحقيقي بدأ في الثمانينات مع انتشار بدالات الهاتف الرقمية (الإلكترونية).

باستخدام هذه الطريقة لإرسال إشارات التحكم، تتكون كل إشارة رقمية متعددة التردد من نغمتين وفقًا للتوصية ITU-T Q.23 "الميزات التقنية للهواتف التي تعمل باللمس".

لا يتم اختيار ترددات DTMF بشكل متناغم. وهذا يعني أن الترددات لا تحتوي على مقسوم صحيح غير 1. على سبيل المثال، الترددات 1200 و1600 هرتز هي توافقيات للتردد 400 هرتز (3x400=1200 و4x400=1600)، والترددات 697 و770 هرتز غير توافقية.

تحتوي كل إشارة على ترددين: أحدهما يتم اختياره من المجموعة السفلية والثاني من مجموعة الترددات العليا.

يظهر المراسلات بين المعلومات المرسلة والترددات في الجدول الموجود على اللوحة الأمامية لتركيب المختبر.

مستوى الإرسال في حزمة ذات ترددين، مقاس عند حمل 600 أوم، هو: لمجموعة الترددات المنخفضة - ناقص 6 ديسيبل مو ± 2 ديسيبل، لمجموعة الترددات العليا - ناقص 3 ديسيبل مو ± 2 ديسيبل. مستوى تردد المجموعة العليا من الترددات في الإشارة الإجمالية أعلى بمقدار 2 ± 1 ديسيبل من مستوى تردد المجموعة السفلية. يكون المستوى الإجمالي لجميع مكونات التردد ذات الترتيب الأعلى أقل بمقدار 20 ديسيبل على الأقل من مستوى التردد ذي الترتيب الأدنى.

الشروط التي يجب أن يتم فيها الاستقبال الطبيعي للإشارة هي كما يلي: وجود ترددين في الإشارة، يتم اختيار أحدهما من المجموعة السفلية، والآخر من المجموعة العلوية؛ ولا تختلف الترددات عن قيمها الاسمية بأكثر من 1.8%؛ ويتراوح مستوى كل من الترددين من ناقص 7 إلى ناقص 30 ديسيبل ميلي أو (dBmO)؛ أن لا يتجاوز الفرق بين مستويات الترددين 3 ديسيبل؛ مدة إشارة التردد لا تقل عن 40 مللي ثانية.

قبل تشغيل التثبيت، قم بإجراء العمليات التالية:

اضبط المفتاح S6 على الموضع السفلي؛

اضبط المفتاح S13 على الموضع العلوي؛

اضبط مفاتيح مولدات مجموعات التردد العلوي والسفلي على وضع "إيقاف التشغيل"؛

اضبط مفتاح المفتاح التناظري (AK) على وضع "التشغيل"؛

أدر المقابض الخاصة بضبط جهد الخرج للمولدات والمقاوم R3 عكس اتجاه عقارب الساعة حتى تتوقف.

تكييف إشارة dtmf

1.1 تمكين التثبيت.

1.2 قم بتوصيل راسم الذبذبات بنقطة اختبار KT3.

1.3 قم بتشغيل مولد مجموعة الترددات العليا، بالضغط على أحد أزرار التبديل، حدد أيًا من ترددات هذه المجموعة.

1.4 قم بتدوير مقبض تعديل جهد خرج المولد لضبط سعة الإشارة في CT3 إلى 0.5 فولت.

1.5 قم بتبديل إدخال راسم الذبذبات إلى نقطة اختبار KT4. كرر الخطوات 1.3، 1.4 لمولد مجموعة التردد المنخفض، واضبط الجهد في KT4 على 0.5 فولت.

ملحوظة: نتيجة للعمليات التي يتم إجراؤها، يتم توفير إشارات ذات سعة متساوية من مجموعات التردد العلوي والسفلي لمدخل المجمع. بعد ضبط هذه المستويات، قم بقفل المقابض الخاصة بضبط جهد خرج المولدات.

1.6 قم بتبديل إدخال راسم الذبذبات إلى نقطة اختبار KT7. من خلال تدوير مقبض المقاوم (R3) لضبط جهد الخرج لمكيف إشارة DTMF، اضبط الجهد في CT7 على 0.5 فولت.

ملحوظة: نتيجة للعمليات التي يتم إجراؤها، يتم توفير إشارة ثنائية النغمة المستمرة لمدخل جهاز الاستقبال، وينبغي عرض الرمز المقابل لمجموعة ترددات مولدات مجموعات التردد العلوي والسفلي على مؤشر الرمز المستقبل ، وفقا للجدول. الإشارة إلى الإشارة المستقبلة والمحددة هي وجود إشارة عند خرج جهاز الاستقبال STD (توهج LED).

      من خلال تبديل ترددات مجموعات الترددات العلوية والسفلية، تأكد من أن مجموعات هذه الترددات تتوافق مع الرموز المستلمة.

السمات المميزة:

  • توليد موجات جيبية باستخدام تعديل عرض النبضة (PWM)
  • الجمع بين إشارات موجة جيبية مختلفة في إشارة DTMF واحدة
  • أكواد المصدر في لغات التجميع وC
  • مصممة للعمل مع STK500
  • حجم كود البرنامج 260 بايت / حجم الجدول الثابت 128 بايت
  • باستخدام طريقة تحويل الجدول

مقدمة

يصف هذا المستند تقنية توليد إشارات DTMF (إشارات ثنائية النغمة متعددة الترددات) باستخدام أي وحدة تحكم دقيقة AVR تحتوي على وحدة تعديل عرض النبض (PWM) وذاكرة الوصول العشوائي الثابتة. تُستخدم هذه الإشارات على نطاق واسع في الاتصالات الهاتفية، حيث يتم إنتاجها عند الضغط على أزرار الاتصال بجهاز الهاتف. لتوليد إشارة DTMF بشكل صحيح، يجب تركيب ترددين معًا: التردد المنخفض (fb) والتردد العالي (fa). يوضح الجدول 1 كيفية خلط الترددات المختلفة لإنتاج نغمات DTMF عند الضغط على مفاتيح مختلفة.

الشكل 1 - دائرة مولد إشارة DTMF

الجدول 1 - مصفوفة توليد إشارة النغمة

أف ب/فا 1209 هرتز 1336 هرتز 1477 هرتز 1633 هرتز
697 هرتز 1 2 3 أ
770 هرتز 4 5 6 ب
852 هرتز 7 8 9 ج
941 هرتز * 0 # د

تُظهر صفوف الجدول 1 قيم التردد المنخفض، وتظهر الأعمدة قيم التردد العالي. على سبيل المثال، تظهر المصفوفة أنه عند الضغط على الزر "5"، يجب خلط الترددات fb = 770 هرتز و fa = 1336 هرتز. نتيجة إضافة إشارتين جيبيتين ترددات مختلفةيتم إنشاء إشارة DTMF

أين هي نسبة السعة ك=أ ب /أ أيجب أن تستوفي إشارات المصدر الشرط

مبدأ التشغيل

بجانب معلومات عامةفيما يتعلق باستخدام تعديل عرض النبضة، سيتم توضيح أدناه كيف يسمح لك تعديل عرض النبضة بتوليد إشارات جيبية. توضح الفقرة التالية كيفية استخدام تردد التبديل الأساسي للحصول على ترددات مختلفة. وبعد مراجعة الأسس النظرية، سيتم تقديم وصف لمولد إشارة DTMF نفسه. توليد موجات جيبية

اعتمادًا على نسبة مدة مستويات الجهد VH العالية والمنخفضة VL، يتغير متوسط ​​القيمة عند خرج PWM. إذا ظلت النسبة بين فترات كلا المستويين ثابتة، فسيتم إنشاء مستوى جهد VAV ثابت نتيجة لذلك. ويبين الشكل 2 إشارة معدلة بعرض النبضة.


الشكل 2 - توليد مستوى الجهد المستمر

يتم تحديد مستوى الجهد بالتعبير:

(3)

يمكن إنشاء إشارة جيبية بشرط أن يتغير متوسط ​​قيمة الجهد الناتج عن تعديل عرض النبضة في كل دورة PWM. يجب ضبط النسبة بين المستويات العالية والمنخفضة وفقًا لمستوى جهد الموجة الجيبية في الوقت المقابل. ويوضح الشكل 3 هذه العملية. يتم حساب البيانات المصدر لـ PWM لكل فترة من فتراتها ويتم تسجيلها في جدول التحويل (TC).

ويوضح الشكل 3 أيضًا العلاقة بين تردد الموجة الجيبية الأساسية وعدد العينات. كلما زاد عدد العينات (Nc)، زادت دقة نمذجة الإشارة الناتجة:

(4)

يعتمد تردد PWM على دقة PWM. عند دقة 8 بت، تكون القيمة النهائية (أعلى العدد) للمؤقت هي 0xFF (255). لأن يقوم الموقت بالعد للأمام والخلف، إذن قيمة معينةينبغي مضاعفة. ولذلك، يمكن حساب تردد التبديل عن طريق القسمة تردد الساعةمؤقت f CK عند 510. وبالتالي، مع تردد ساعة مؤقت قدره 8 ميجا هرتز، سيكون تردد PWM الناتج 15.6 كيلو هرتز.


الشكل 3 - توليد إشارة جيبية باستخدام PWM

تغيير تردد موجة جيبية

لنفترض أن العينات الجيبية تتم قراءتها من جدول البحث ليس بشكل تسلسلي، بل واحدة تلو الأخرى. في هذه الحالة، وبنفس معدل أخذ العينات، سيتم إنشاء إشارة ذات تردد مضاعف (انظر الشكل 4).


الشكل 4 - مضاعفة التردد الناتج (XSW = 2)

قياسًا على ذلك، إذا لم تقرأ كل قيمة ثانية، بل قرأت كل قيمة ثالثة ورابع وخامسة (على التوالي، عرض الخطوة هو 3، 4، 5...)، وما إلى ذلك. من الممكن توليد ترددات Nc في النطاق. لاحظ أنه بالنسبة للترددات العالية فإن شكل الموجة الناتج لن يكون جيبيًا. نشير إلى عرض الخطوة وفقًا لجدول التحويل كـ XSW، أين

(5)

يتم حساب الموضع الحالي في TP لفترة PWM التالية (عندما يفيض المؤقت) باستخدام التعبير (6). قيمة جديدة في الموضع X جدول المستعملين المحليينيعتمد على حالته السابقة في الموقف X" طرفية المستعملين المحليينمع زيادة عرض الخطوة XSW

(6)

إضافة ترددات مختلفة للحصول على إشارة DTMF

يمكن إنشاء إشارة DTMF باستخدام التعبيرين (1) و(2). لتبسيط العمليات الحسابية، تم أخذ قيمة المعامل K تساوي 0.75 لاستبدال العملية الحسابية بإزاحات منطقية. مع الأخذ في الاعتبار التعبير (6)، يمكن حساب القيمة الحالية للتحكم في PWM بواسطة التعبير:

ومراعاة ذلك X لوتا=اكس" لوتا + XSWa ,X LUTb=X" لوتب + XSWb، دعونا نكتبها أخيرًا

تنفيذ مولد DTMF

في هذا التطبيقيناقش إنشاء مولد نغمة DTMF باستخدام مخرج PWM 8 بت (OC1A) وجدول يحتوي على 128 عينة من دالة الجيب (Nc)، محددة كل منها بـ 7 بتات (n). توضح التعبيرات التالية هذه التبعية وتوضح أيضًا كيفية حساب إدخالات جدول البحث:

(9)

تتمثل ميزة استخدام 7 بتات في أن مجموع قيم إشارة التردد العالي والمنخفض يبلغ حجمه بايت واحد. لدعم المجموعة الكاملة من نغمات DTMF، يجب حساب 8 قيم لكل تردد DTMF من الجدول 1 وإدخالها في جدول البحث.

لتحقيق دقة أعلى، تم تنفيذ الحل التالي: القيم المحسوبة باستخدام التعبير 5 تتطلب 5 بايت فقط. لاستخدام كافة وحدات البايت الثمانية، مما سيؤدي إلى تقليل أخطاء التقريب، يتم ضرب هذه القيمة بـ 8. تتم كتابة المؤشر إلى جدول البحث بنفس الطريقة. ولكن في هذه الحالة يستغرق الأمر بايتين لتخزين 8 أضعاف القيمة. وهذا يعني أنه يجب إجراء 3 إزاحات لليمين وعملية معامل الجذر Nc (الضرب المنطقي بواسطة Nc-1) قبل استخدام هذه البايتات كمؤشر لقيم الموجة الجيبية في


الشكل 5 - مخطط الوحدة للاتصال بـ STK500

يتم إنشاء إشارة PWM عند الطرف OC1A (PD5). سيساعد مرشح الإخراج الإضافي في جعل الإشارة أكثر اتساقًا مع شكل الموجة الجيبية. عند تقليل تردد PWM، قد يكون من الضروري استخدام مرشح ذو استجابة ترددية أكثر حدة للحصول على نتيجة جيدة.

يظهر اتصال لوحة المفاتيح في الشكل 1. يجب تنظيم تشغيل لوحة المفاتيح بطريقة تمكن من تحديد المفتاح الذي يتم الضغط عليه. يمكن القيام بذلك باستخدام الخوارزمية التالية:

  1. تحديد سلسلة المفتاح المضغوط
    • قم بتكوين دفتر الملاحظات ذو الترتيب المنخفض للمنفذ B كمخرج وقم بتعيين السجل. "0"
    • قم بتكوين رباعيات عالية للمنفذ B كمدخل من خلال توصيل مقاومات السحب
    • يتم تعريف السطر الذي يحتوي على الزر المضغوط على أنه رقم أعلى رباعيات مع سجل. "0"
  2. تحديد عمود المفتاح المضغوط
    • قم بتكوين الكمبيوتر الدفتري العالي للمنفذ B كمخرج وقم بتعيين السجل. "0"
    • قم بتكوين رباعيات الترتيب المنخفض للمنفذ B كمدخل عن طريق توصيل مقاومات السحب
    • يتم تعريف العمود الذي يحتوي على الزر المضغوط على أنه رقم رباعيات الترتيب المنخفض مع السجل. "0"

ملاحظة: في STK200، يتم توصيل المقاومات على التوالي بين أطراف موصل PORTB ومنافذ المتحكم الدقيق BP5 وPB6 وPB7 (انظر مخطط STK200). سيؤدي هذا إلى حدوث مشكلات إذا كانت لوحة المفاتيح متصلة بموصل PORTB.

يوضح الشكل 6 تشغيل الروتين الفرعي لتحديد المفتاح المضغوط. اعتمادا على المفتاح الذي تم الضغط عليه، يتم تحديد مدة الفاصل الزمني. يستخدم روتين المقاطعة هذه القيمة لحساب إعدادات PWM للموجتين الجيبيتين لنغمة DTM. يظهر إجراء معالجة المقاطعة في الشكلين 7 و8.

يقوم هذا الروتين بحساب قيمة لمقارنتها مع مخرجات المؤقت لفترة PWM التالية. يقوم روتين المقاطعة أولاً بحساب موضع قيمة العينة التالية في جدول البحث وقراءة القيمة المخزنة هناك.

يتم تحديد موضع العينة في جدول البحث بواسطة عرض النبضة، ويتم تحديد عرض النبضة الفعلي بواسطة التردد المتولد.

يتم تحديد القيمة النهائية التي يتم كتابتها في سجل مقارنة المؤقت باستخدام الصيغة (7)، والتي تأخذ في الاعتبار قيم العينة لكلا ترددي DTMF.


الشكل 6 - رسم تخطيطي للبرنامج الرئيسي

الميزات المميزة

  • توليد موجات جيبية باستخدام تعديل عرض النبضة (PWM)
  • الجمع بين إشارات موجة جيبية مختلفة في إشارة DTMF واحدة
  • أكواد المصدر في لغات التجميع وC
  • مصممة للعمل مع STK500
  • حجم كود البرنامج 260 بايت / حجم الجدول الثابت 128 بايت
  • باستخدام طريقة تحويل الجدول

مقدمة

يصف هذا المستند تقنية توليد إشارات DTMF (إشارات ثنائية النغمة متعددة الترددات) باستخدام أي وحدة تحكم دقيقة AVR تحتوي على وحدة تعديل عرض النبض (PWM) وذاكرة الوصول العشوائي الثابتة. تُستخدم هذه الإشارات على نطاق واسع في الاتصالات الهاتفية، حيث يتم إنتاجها عند الضغط على أزرار الاتصال بجهاز الهاتف. لتوليد إشارة DTMF بشكل صحيح، يجب تركيب ترددين معًا: التردد المنخفض (fb) والتردد العالي (fa). يوضح الجدول 1 كيفية خلط الترددات المختلفة لإنتاج نغمات DTMF عند الضغط على مفاتيح مختلفة.


الشكل 1. دائرة مولد إشارة DTMF

الجدول 1. مصفوفة توليد النغمات

أف ب/فا 1209 هرتز 1336 هرتز 1477 هرتز 1633 هرتز
697 هرتز 1 2 3 أ
770 هرتز 4 5 6 ب
852 هرتز 7 8 9 ج
941 هرتز * 0 # د

تُظهر صفوف الجدول 1 قيم التردد المنخفض، وتظهر الأعمدة قيم التردد العالي. على سبيل المثال، تظهر المصفوفة أنه عند الضغط على الزر "5"، يجب خلط الترددات fb = 770 هرتز و fa = 1336 هرتز. نتيجة لإضافة إشارتين جيبيتين بترددات مختلفة، يتم تشكيل إشارة DTMF

حيث يجب أن تفي نسبة السعة K=A b /A a للإشارات الأصلية بالشرط

مبدأ التشغيل

بالإضافة إلى المعلومات العامة حول استخدام تعديل عرض النبضة، سيتم عرض أدناه كيف يسمح لك تعديل عرض النبضة بتوليد إشارات جيبية. توضح الفقرة التالية كيفية استخدام تردد التبديل الأساسي للحصول على ترددات مختلفة. وبعد مراجعة الأسس النظرية، سيتم تقديم وصف لمولد إشارة DTMF نفسه. توليد موجات جيبية

اعتمادًا على نسبة مدة مستويات الجهد VH العالية والمنخفضة VL، يتغير متوسط ​​القيمة عند خرج PWM.


إذا ظلت النسبة بين فترات كلا المستويين ثابتة، فسيتم إنشاء مستوى جهد VAV ثابت نتيجة لذلك.

ويبين الشكل 2 إشارة معدلة بعرض النبضة.

(3)

الشكل 2. توليد مستوى الجهد DC

يتم تحديد مستوى الجهد بالتعبير:

(4)

يمكن إنشاء إشارة جيبية بشرط أن يتغير متوسط ​​قيمة الجهد الناتج عن تعديل عرض النبضة في كل دورة PWM. يجب ضبط العلاقة بين المستويات العالية والمنخفضة وفقًا لمستوى جهد الموجة الجيبية في الوقت المقابل. ويوضح الشكل 3 هذه العملية. يتم حساب البيانات المصدر لـ PWM لكل فترة من فتراتها ويتم تسجيلها في جدول التحويل (TC).


ويوضح الشكل 3 أيضًا العلاقة بين تردد الموجة الجيبية الأساسية وعدد العينات. كلما زاد عدد العينات (Nc)، زادت دقة نمذجة الإشارة الناتجة:

يعتمد تردد PWM على دقة PWM. عند دقة 8 بت، تكون القيمة النهائية (أعلى العدد) للمؤقت هي 0xFF (255). لأن يقوم العداد بالعد للأمام والخلف، ثم يجب مضاعفة هذه القيمة. لذلك، يمكن حساب تردد PWM عن طريق قسمة تردد ساعة المؤقت f CK على 510. وبالتالي، مع تردد ساعة المؤقت البالغ 8 ميجا هرتز، سيكون تردد PWM الناتج 15.6 كيلو هرتز.

الشكل 3. توليد موجة جيبية باستخدام PWM


تغيير تردد موجة جيبية

قياسًا على ذلك، إذا لم تقرأ كل قيمة ثانية، بل قرأت كل قيمة ثالثة ورابع وخامسة (على التوالي، عرض الخطوة هو 3، 4، 5...)، وما إلى ذلك. من الممكن توليد ترددات Nc في النطاق. لاحظ أنه بالنسبة للترددات العالية فإن شكل الموجة الناتج لن يكون جيبيًا. نشير إلى عرض الخطوة وفقًا لجدول التحويل بـ X SW، حيث

(5)

يتم حساب الموضع الحالي في TP لفترة PWM التالية (عندما يفيض المؤقت) باستخدام التعبير (6). تعتمد القيمة الجديدة في موضع X LUT على حالتها السابقة في موضع X" LUT مع إضافة عرض الخطوة X SW

(6)

إضافة ترددات مختلفة للحصول على إشارة DTMF

يمكن إنشاء إشارة DTMF باستخدام التعبيرين (1) و(2). لتبسيط العمليات الحسابية، تم أخذ قيمة المعامل K تساوي 0.75 لاستبدال العملية الحسابية بإزاحات منطقية. مع الأخذ في الاعتبار التعبير (6)، يمكن حساب القيمة الحالية للتحكم في PWM بواسطة التعبير:

ومع الأخذ في الاعتبار أن X LUTa =X" LUTa + X SWa,X LUTb =X" LUTb + X SWb، سنكتب أخيرًا

تنفيذ مولد DTMF

يتناول هذا التذييل بناء مولد نغمة DTMF باستخدام خرج PWM 8 بت (OC1A) وجدول يحتوي على 128 عينة من دالة الجيب (Nc)، محددة كل منها بـ 7 بتات (n). توضح التعبيرات التالية هذه التبعية وتوضح أيضًا كيفية حساب إدخالات جدول البحث:

(9)

تتمثل ميزة استخدام 7 بتات في أن مجموع قيم إشارة التردد العالي والمنخفض يبلغ حجمه بايت واحد. لدعم المجموعة الكاملة من نغمات DTMF، يجب حساب 8 قيم لكل تردد DTMF من الجدول 1 وإدخالها في جدول البحث.

لتحقيق دقة أعلى، تم تنفيذ الحل التالي: القيم المحسوبة باستخدام التعبير 5 تتطلب 5 بايت فقط. لاستخدام كافة وحدات البايت الثمانية، مما سيؤدي إلى تقليل أخطاء التقريب، يتم ضرب هذه القيمة بـ 8. تتم كتابة المؤشر إلى جدول البحث بنفس الطريقة. ولكن في هذه الحالة يستغرق الأمر بايتين لتخزين 8 أضعاف القيمة. وهذا يعني أنه يجب إجراء 3 إزاحات لليمين وعملية معامل الجذر Nc (الضرب المنطقي بواسطة Nc-1) قبل استخدام هذه البايتات كمؤشر لقيم الموجة الجيبية في


الشكل 5. مخطط الوحدة للاتصال بـ STK500

يتم إنشاء إشارة PWM عند الطرف OC1A (PD5). سيساعد مرشح الإخراج الإضافي في جعل الإشارة أكثر توافقًا مع شكل الموجة الجيبية. عند تقليل تردد PWM، قد يكون من الضروري استخدام مرشح ذو استجابة ترددية أكثر حدة للحصول على نتيجة جيدة.

يظهر اتصال لوحة المفاتيح في الشكل 1. يجب تنظيم تشغيل لوحة المفاتيح بطريقة تمكن من تحديد المفتاح الذي يتم الضغط عليه. يمكن القيام بذلك باستخدام الخوارزمية التالية:

  1. تحديد سلسلة المفتاح المضغوط
    • قم بتكوين دفتر الملاحظات ذو الترتيب المنخفض للمنفذ B كمخرج وقم بتعيين السجل. "0"
    • قم بتكوين رباعيات عالية للمنفذ B كمدخل من خلال توصيل مقاومات السحب
    • يتم تعريف السطر الذي يحتوي على الزر المضغوط على أنه رقم أعلى رباعيات مع سجل. "0"
  2. تحديد عمود المفتاح المضغوط
    • قم بتكوين الكمبيوتر الدفتري العالي للمنفذ B كمخرج وقم بتعيين السجل. "0"
    • قم بتكوين رباعيات الترتيب المنخفض للمنفذ B كمدخل عن طريق توصيل مقاومات السحب
    • يتم تعريف العمود الذي يحتوي على الزر المضغوط على أنه رقم رباعيات الترتيب المنخفض مع السجل. "0"

ملحوظة: في STK200، يتم توصيل المقاومات على التوالي بين أطراف موصل PORTB ومنافذ المتحكم الدقيق BP5 وPB6 وPB7 (انظر مخطط STK200). سيؤدي هذا إلى حدوث مشكلات إذا كانت لوحة المفاتيح متصلة بموصل PORTB.

يوضح الشكل 6 تشغيل الروتين الفرعي لتحديد المفتاح المضغوط. اعتمادا على المفتاح الذي تم الضغط عليه، يتم تحديد مدة الفاصل الزمني. يستخدم روتين المقاطعة هذه القيمة لحساب إعدادات PWM للموجتين الجيبيتين لنغمة DTM.

يظهر إجراء معالجة المقاطعة في الشكلين 7 و8.

يقوم هذا الروتين بحساب قيمة لمقارنتها مع مخرجات المؤقت لفترة PWM التالية. يقوم روتين المقاطعة أولاً بحساب موضع قيمة العينة التالية في جدول البحث وقراءة القيمة المخزنة هناك.

يتم تحديد موضع العينة في جدول البحث بواسطة عرض النبضة، ويتم تحديد عرض النبضة الفعلي بواسطة التردد المتولد.


يتم تحديد القيمة النهائية التي يتم كتابتها في سجل مقارنة المؤقت باستخدام الصيغة (7)، والتي تأخذ في الاعتبار قيم العينة لكلا ترددي DTMF.


الشكل 6. رسم تخطيطي للبرنامج الرئيسي


الشكل 7. مخطط تخطيطي لإجراء معالجة مقاطعة تجاوز سعة المؤقت

الشكل 8. مخطط انسيابي لإجراء قراءة العينة "GetSample".

النشر: www.cxem.netانظر مقالات أخرى

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

2 مواصفات إشارة DTMF

يشير الاختصار DTMF إلى "Dual Tone Multi Frequency" وهو عبارة عن طريقة لتمثيل الأرقام بترددات مختلفة بغرض إرسالها عبر خطوط الاتصال التناظرية، مثل خط الهاتف. عند تطوير المعيار، تم أخذ الشرط في الاعتبار - يجب أن تكون جميع الترددات في نطاق "الصوت"، مما جعل من الممكن تقليل متطلبات قناة الإرسال. تستخدم شبكات الهاتف إشارات DTMF للاتصال والمعلومات الأخرى. على الرغم من حقيقة أن طريقة الاتصال النبضي لا تزال تستخدم على نطاق واسع، وهي المعيار، على سبيل المثال، في ألمانيا، فإن وقت الاتصال يزداد بشكل كبير، مما يؤدي إلى حمل غير منتج على خطوط الاتصال. بالإضافة إلى ذلك، لا يمكن توفير العديد من خدمات الاتصالات الإضافية إلا باستخدام الاتصال بالطنين. عند التشفير باستخدام طريقة DTMF، يتم وضع الأرقام من 0 إلى 9 و الحروف أ-د، */E و#/F يمثلان مزيجًا من ترددين:

تكرار 1209 هرتز 1336 هرتز 1477 هرتز 1633 هرتز
697 هرتز 1 2 3 أ
770 هرتز 4 5 6 ب
852 هرتز 7 8 9 ج
941 هرتز */ه 0 #/ف د

في هذا النظام يمثل العمود التردد من مجموعة الترددات "العلوية" (المجموعة العالية: 1209-1633 هرتز)، والصف يمثل التردد من مجموعة الترددات "السفلى" (المجموعة المنخفضة: 697-941 هرتز) . يتم اختيار الترددات النغمية للقضاء على تأثير التوافقيات. الترددات ليست مضاعفات بعضها البعض ولا يمكن الحصول على تردد DTMF عن طريق إضافة أو طرح ترددات أخرى. لإنشاء برنامج اتصال على شبكة Deutsche Telekom، يلزم توفر المواصفات التالية (مأخوذة من Zulassungsvorschrift des Bundesamtes für Post und Telekommunikation, BAPT 223 ZV 5 (المواصفات الرسمية للوزارة الفيدرالية للبريد والاتصالات السلكية واللاسلكية):

3 قم بإنشاء إشارات DTMF

كما هو موضح أعلاه، إشارات DTMF تناظرية وتتكون من موجتين جيبيتين مستقلتين. وبالتالي، لا يمكن توليد مثل هذه الإشارات رقميًا فقط. يجب تحويل الإشارات الرقمية باستخدام ADCs و/أو المرشحات التناظرية إلى شكل الموجة الجيبية المطلوبة.

3.1 الجيل باستخدام الموجات المربعة

إذا تم استخدام إشارات الموجة المربعة لإنشاء إشارات DTMF، فسيقوم البرنامج و الأجهزةالحد الأدنى. يمكن تمثيل أي إشارة مستمرة لها فترة T بسلسلة فورييه تتكون من مجموع لا نهائي من موجات الجيب وجيب التمام على النحو التالي:

حيث a0/2 هو المكون الثابت للإشارة. يسمى العنصر المجموع ذو التردد الزاوي الأدنى (w0) بالتوافقي الرئيسي (الأساسي)، والباقي عبارة عن نغمات مدموجة أو توافقيات أعلى.

إن أبسط إشارة مستمرة يتم تنفيذها باستخدام متحكم دقيق هي موجة مربعة، وسلسلة فورييه لها الشكل:

تتجلى مساهمة كل مكون تردد في الإشارة الإجمالية بشكل أفضل من خلال طيف الاتساع (انظر الشكل 2):


أرز. 2: طيف السعة لإشارة الموجة المربعة

عند استخدام مرشح تناظري، يتم قمع مكون التيار المستمر والتوافقيات الأعلى بشكل فعال، بينما لدينا عند الخرج إشارة جيبية بتردد يساوي تردد الموجة المربعة الأصلية.

3.2 برمجةلتوليد متعرج

يجب أن يستوفي برنامج التوليد المتعرج المتطلبات التالية:

  • تكون قادرة على تجميع إشارتين مستطيلتين مستقلتين.
  • من أجل فصل الإشارات، يلزم وجود طرفي إخراج لتوليد إشارات من نطاقي التردد "العلوي" (المجموعة العالية) و"السفلى" (المجموعة المنخفضة)، على التوالي.
  • ينبغي أن يكون البرنامج قادرًا على ضبط مدة الإشارة المطلوبة في نطاق يتراوح بين 65 مللي ثانية و100 مللي ثانية تقريبًا.

تحتوي وحدات التحكم الدقيقة من سلسلة MSP430 على العديد من أجهزة ضبط الوقت المدمجة القادرة على توليد إشارات موجة مربعة. تستخدم عائلة '31x/'32x مؤقتًا 8 بت ومنفذ مؤقت لإنشاء إشارات الموجة المربعة. هذا البرنامجتم اختباره بتردد MCLK يساوي 1.048 ميجاهرتز. يمكن للمؤقت Timer_A في عائلة '33x إنشاء كلتا الإشارتين المطلوبتين بشكل مستقل. البرنامج الثاني يستخدم هذا المؤقت لتوليد موجات مربعة ويعمل مع أي ترددات MCLK. سيتم مناقشة كلا البرنامجين بالتفصيل أدناه.

3.2.1 توليد موجات مربعة باستخدام مؤقت 8 بت ومنفذ مؤقت

في الشكل. 3 عبارة عن مخطط انسيابي لإجراء التهيئة لإنشاء إشارات DTMF. لتجميع الترددين، يتم استخدام منفذ المؤقت وعدادات المؤقت 8 بت. كل واحد منهم عبارة عن سجل عداد قابل للبرمجة ضروري للتوليف الدقيق للترددات المطلوبة. إذا كانت عدادات منفذ المؤقت متسلسلة في مؤقت واحد 16 بت وتم تسجيلها من تردد النظام MCLK، ثم يمكن إنشاء ترددات النطاق العلوي بدقة عالية. عند حدوث مقاطعة، يتم تبديل الإخراج المقابل ويتم إعادة تعيين كلا مسجلي العداد 8 بت. يتم تخزين القيم المحملة في متغيرين في ذاكرة الوصول العشوائي (RAM) من أجل حفظ السجلات الداخلية للمهام الأخرى.

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

يتم استخدام مخرجين لمنفذ المؤقت لتشكيل متعرجين بترددات مختلفة.

أرز. 3 مخطط انسيابي لإجراءات التهيئة لتوليد إشارات DTMF

يتم تنفيذ إجراء التهيئة مرة واحدة فقط. بعد اكتماله، تتم قراءة القيمة السداسية العشرية للحرف المرسل من المتغير العام في ذاكرة الوصول العشوائي. بمجرد إنشاء الترددين اللذين يشكلان نغمات DTMF العالية والمنخفضة من الجدولين، كل ما هو مطلوب هو تهيئة كلا المؤقتين وبدء تشغيلهما. يتم التحكم في مدة الإرسال عن طريق حساب نصف دورات التردد "الأقل" وقراءتها من جدول إضافي. عند الانتهاء من هذا الإجراء، يمكنك العودة إلى وظيفة الاقتراع. تقوم إجراءات معالجة المقاطعة المقابلة بتبديل دبابيس المنفذ. تظهر هذه العملية في الشكل. 4 و 5.

تتضمن مهام منفذ المؤقت تسجيل السجل فقط. المستوى عند إخراج المنفذ وإعادة تحميل العداد من ذاكرة الوصول العشوائي (RAM)، في حين أن تشغيل مؤقت 8 بت له بنية أكثر تعقيدًا بعض الشيء: يتم حساب كل إدخال إلى المقاطعة بواسطة سجل عداد. لا يمكن للإخراج تغيير الحالة إلا بعد ثلاث مقاطعات. بالإضافة إلى ذلك، يتم أيضًا حساب كل نصف دورة. يتوقف الجيل عندما يصل مبلغ معيننصف دورات.


أرز. 4 كتلة – مقاطعة الدائرة من جهاز توقيت 8 بت (Lo-Group)


أرز. 5 كتلة – دائرة مقاطعة منفذ المؤقت (Hi-Group)

; التعريفات المخصصة FLLMPY equ 32 ; مضاعف التردد FLL عند 1.048 ميجا هرتز TCLK equ FLLMPY*32768 ؛ TCLK: FLLMPY x f كوارتز DL equ 85؛ مدة إشارة DTMF (65..100 مللي ثانية) LO_OUT تساوي 02h؛ خرج التردد "المنخفض" HI_OUT يساوي 04h؛ خرج عالي التردد RCOUNT equr14؛ عداد الطول DTMF RTEMP يساوي r15؛ خدمة التسجيل العالمية DTMF_NR ; المتغير العام في ذاكرة الوصول العشوائي. لرقم DTMF (0..F) ؛ تعريفات RAM.even .bss DTMF_TL؛ محاذاة العنوان الزوجي.bss DTMF_TH .bss DTMF_NR ; المتغير العالمي في ذاكرة الوصول العشوائي. لرقم DTMF (0..F).حتى ؛ تعريفات للمؤقت 8 بت TCCTL EQU 42H TCPLD EQU 43H TCDAT EQU 44H؛ تعريفات لمنفذ المؤقت العالمي TPCTL equ 04bh ; التحكم في منفذ الموقت TPCNT1 يساوي 04ch ؛ عداد منفذ الموقت 1 TPCNT2 يساوي 04dh ؛ عداد منفذ الموقت 2 TPD equ 04eh ; بيانات منفذ المؤقت TPE equ 04fh ; الموقت-ميناء-resolution.text ; جداول تردد DTMF: يحتوي الجدول على؛ عدد دورات MCLK لنصف دورة واحدة. ; جدول التردد "العلوي" ؛ تمت إضافة التعديل التصحيحي؛ ليأخذ في الاعتبار وقت الدخول إلى المقاطعة DTMF_HI .word 0ffffh-(TCLK/(1336*2))+25 ; تردد عالي لـ 0 .word 0ffffh-(TCLK/(1207*2))+28 ؛ تردد عالي لـ 1 كلمة 0ffffh-(TCLK/(1336*2))+25 ؛ تردد عالي لـ 2 كلمة 0ffffh-(TCLK/(1477*2))+24 ؛ تردد عالي لمدة 3 كلمات 0ffffh-(TCLK/(1207*2))+28 ; تردد عالي لـ 4 كلمات 0ffffh-(TCLK/(1336*2))+25 ؛ تردد عالي لـ 5 كلمات 0ffffh-(TCLK/(1477*2))+24 ؛ تردد عالي لـ 6 كلمات 0ffffh-(TCLK/(1207*2))+28 ؛ تردد عالي لـ 7 كلمات 0ffffh-(TCLK/(1336*2))+25 ؛ تردد عالي لـ 8 كلمات 0ffffh-(TCLK/(1477*2))+24 ؛ تردد عالي لـ 9 كلمات 0ffffh-(TCLK/(1633*2))+22 ؛ تردد عالي لـ A .word 0ffffh-(TCLK/(1633*2))+22 ؛ تردد عالي لـ B .word 0ffffh-(TCLK/(1633*2))+22 ; تردد عالي لـ C .word 0ffffh-(TCLK/(1633*2))+22 ؛ تردد عالي لـ D .word 0ffffh-(TCLK/(1207*2))+28 ؛ تردد عالي لـ * .word 0ffffh-(TCLK/(1477*2))+24 ؛ تردد عالي لـ #؛ جدول التردد "الأدنى" DTMF_LO .byte 0ffh-(TCLK/(941*2*3)); تردد منخفض لـ 0. بايت 0ffh-(TCLK/(697*2*3)) ؛ تردد منخفض لـ 1 بايت 0ffh-(TCLK/(697*2*3)) ؛ تردد منخفض لـ 2 بايت 0ffh-(TCLK/(697*2*3)) ؛ تردد منخفض لـ 3 بايت 0ffh-(TCLK/(770*2*3)) ؛ تردد منخفض لـ 4 بايت 0ffh-(TCLK/(770*2*3)) ؛ تردد منخفض لـ 5 بايت 0ffh-(TCLK/(770*2*3)) ؛ تردد منخفض لـ 6 بايت 0ffh-(TCLK/(853*2*3)) ؛ تردد منخفض لـ 7 بايت 0ffh-(TCLK/(853*2*3)) ؛ تردد منخفض لـ 8 بايت 0ffh-(TCLK/(853*2*3)) ؛ تردد منخفض لـ 9 بايت 0ffh-(TCLK/(697*2*3)) ؛ التردد المنخفض لـ A.byte 0ffh-(TCLK/(770*2*3)) ؛ التردد المنخفض لـ B .byte 0ffh-(TCLK/(853*2*3)) ؛ التردد المنخفض لـ C .byte 0ffh-(TCLK/(941*2*3)) ؛ التردد المنخفض لـ D.byte 0ffh-(TCLK/(941*2*3)) ؛ تردد منخفض لـ *.byte 0ffh-(TCLK/(941*2*3)) ؛ التردد المنخفض ل # ; جدول مدة الإشارة DTMF_L . بايت 2*941*DL/1000 ؛ نصف دورات لـ 0. بايت 2*697*DL/1000؛ نصف دورة لـ 1 بايت 2*697*DL/1000؛ نصف دورات لـ 2 بايت 2*697*DL/1000؛ نصف دورات لمدة 3 بايت 2 * 770 * DL / 1000؛ نصف دورات لمدة 4 بايت 2 * 770 * DL / 1000؛ نصف دورات لمدة 5 بايت 2 * 770 * DL / 1000؛ نصف دورات لـ 6 بايت 2*852*DL/1000؛ نصف دورات لـ 7 بايت 2*852*DL/1000؛ نصف دورات لـ 8 بايت 2*852*DL/1000؛ نصف دورات لـ 9 بايت 2*697*DL/1000؛ نصف دورات لـ A.byte 2*770*DL/1000؛ نصف دورات لـ B.byte 2*852*DL/1000؛ نصف دورات لـ C.byte 2*941*DL/1000؛ نصف دورات لـ D.byte 2*941*DL/1000؛ نصف دورة لـ *.byte 2*941*DL/1000؛ نصف دورة ل # ;********************************************* ******** ******************************* ; DTMF-TX روتين فرعي DTMF ؛************************************************ **** ******************************** DTMF_TX mov.b DTMF_NR,RTEMP ; قم بتخزين الرقم في سجل مؤقت mov.b DTMF_L(RTEMP),RCOUNT ; حفظ عداد المدة، إعداد مؤقت 8 بت لتردد DTMF-Lo mov.b #0a8h,&TCCTL ; الساعة من MCLK mov.b DTMF_LO(RTEMP),&TCPLD ; إعداد التسجيل؛ التحميل المسبق mov.b #000,&TCDAT ; تحميل عداد من السجل. التحميل المسبق bis.b #008h,&IE1 ; تمكين المقاطعات. من جهاز توقيت 8 بت. إعداد منفذ مؤقت لتردد DTMF-Hi rla r15؛ * 2 لجدول 16 بت، DTMF_HI(RTEMP)،&DTMF_TL؛ احفظ الكلمة ل التردد العلويموف #003،رتيمب؛ عداد مؤقت 8 بت bis.b #008h,IE2 ; تمكين المقاطعات. من منفذ المؤقت mov.b &DTMF_TH,&TPCNT2 ; تحميل البايت العالي إلى TC2 mov.b &DTMF_TL,&TPCNT1 ; تحميل بايت منخفض إلى TC1 bis.b #080h,&TPD ; تمكين مؤقت 16 بت bis.b #HI_OUT+LO_OUT,&TPE ; تمكين مخرجات DTMF-Hi/Lo mov.b #090h,&TPCTL ; تمكين إعادة ضبط المؤقت؛************************************************ ******** ******************************* ; مقاطعة منفذ المؤقت؛********************************************* *** ******************************* TP_INT xor.b #HI_OUT,&TPD ; عكس إخراج DTMF-Hi mov.b &DTMF_TH,&TPCNT2 ; تحميل البايت العالي إلى TC2 mov.b &DTMF_TL,&TPCNT1 ; تحميل البايت المنخفض إلى TC1 bic.b #007h,&TPCTL ; مسح أعلام ريتي؛************************************************ ******** ******************************* ; مقاطعة مؤقت P0.1/8 بت؛****************************************** ******** ************************************ TIM_8B eint ; تمكين المقاطعات dec RTEMP jz TOGGLE ; انتقل إلى المقاطعة الثالثة reti TOGGLE xor.b #LO_OUT,&TPD ; عكس إخراج DTMF-Lo mov #003، RTEMP؛ عداد مؤقت 8 بت dec RCOUNT ؛ إنقاص عداد المدة jz DTMF_END ; انتقل إذا انتهت المدة reti DTMF_END bic.b #037h,&TPCTL ; إيقاف عداد منفذ المؤقت bic.b #008h,TCCTL ; إيقاف عداد المؤقت 8 بت bic.b #008h,&IE2 ; تعطيل المقاطعات 8 بت. مؤقت bic.b #003h,&TPE ; تعطيل مخرجات reti ; عناوين متجه المقاطعة.sect "TP_VECT"، 0ffe8h .word TP_INT ;Timer-Port .sect "TIM_VECT"، 0fff8h .word TIM_8B ؛ مؤقت 8 بت (P0.0)

3.2.2 1 توليد موجات مربعة باستخدام Timer_A

يستخدم روتين توليد إشارة DTMF هذا Timer_A فقط لموجة مربعة لكلا الترددين المرغوبين. تقوم عملية التجميع بحساب القيم المناسبة للمؤقت لاستخدام البرنامج بغض النظر عن قيمة تردد MCLK. يتم تحديد مدة إشارة الخرج بواسطة ثابت DL بالمللي ثانية.

; تعريفات الأجهزة؛ FLLMPY .equ 32 ; مضاعف التردد FLL عند 1.048 ميجا هرتز TCLK .equ FLLMPY*32768 ؛ TCLK: FLLMPY x f كوارتز DL .equ 82؛ مدة إشارة DTMF بالمللي ثانية؛ (65..100 مللي ثانية) STACK .equal 600h؛ عنوان تهيئة المكدس؛ تعريفات ذاكرة الوصول العشوائي؛ STDTMF .equ 202h ; حالة التردد Hi وLo TIM32B .equ 204؛ تمديد تسجيل الموقت LENGTH .equ 206h ؛ عداد مدة DTMF؛ نص 0F000h ; عنوان البدء للبرنامج؛ ; تهيئة Timer_A: MCLK، الوضع المستمر، تمكين المقاطعات؛ إعداد وحدات إخراج المؤقت Timer_A MCLK = 1.048 ميجا هرتز (تلقائي)؛ INIT MOV #STACK,SP ;تهيئة مؤشر المكدس CALL #INITSR ;تهيئة المضاعف; ترددات FLL وذاكرة الوصول العشوائي MOV #ISMCLK+TAIE+CLR,&TACTL ; تهيئة المؤقت MOV.B #TA2+TA1,&P3SEL ; مخرجات TA2 وTA1 على المنافذ P3.5/4 CLR TIM32B؛ مسح تسجيل المؤقت الممتد BIS #MCONT,&TACTL ; مؤقت البدء Timer_A EINT ؛ المقاطعة العامة تمكن MAINLOOP ... ; الحلقة الرئيسية ؛ الضغط على المفتاح: يحتوي SDTMF على إزاحة الجدول؛ لترددين (0..6,0..6) في البايت العالي والمنخفض؛ ب ستدتمف+1,R5 ; حالة التردد العالي DTMF ADD FDTMFHI(R5),&CCR2; أضف مدة نصف الدورة POP R5؛ استعادة R5 RETI؛ العودة من المقاطعة؛ HCCR3 ... ;المهمة التي يتم التحكم فيها عن طريق السجل CCR3 RETI HCCR4 ... ;المهمة التي يتم التحكم فيها عن طريق السجل CCR4 RETI ; ; جدول ترددات DTMF: يحتوي الجدول على؛ عدد دورات MCLK لكل نصف دورة. القيم المعدلة ل؛ التردد الفعال MCLK أثناء عملية التجميع؛ وتقريبه إلى الحد الأدنى خطأ محتملالترددات. FDTMFLO .word ((TCLK/697)+1)/2؛ تردد منخفض DTMF 697 هرتز. كلمة ((TCLK/770)+1)/2؛ 770 هرتز. كلمة ((TCLK/852)+1)/2؛ 852 هرتز. كلمة ((TCLK/941)+1)/2؛ 941 هرتز FDTMFHI .كلمة ((TCLK/1209)+1)/2 ؛ عالية التردد DTMF1209 هرتز. كلمة ((TCLK/1336)+1)/2 ؛ 1336 هرتز. كلمة ((TCLK/1477)+1)/2؛ 1477 هرتز. كلمة ((TCLK/1633)+1)/2؛ 1633 هرتز؛ ; يحتوي الجدول على عدد نصف الدورات لمدة إشارة DL (ملي ثانية). ; يتم استخدام تردد DTMF الأقل للعد؛ دتمفل. بايت 2*697*دل/1000؛ عدد نصف الدورات. بايت 2*770*DL/1000؛ لـ DL في ms.byte 2*852*DL/1000 ؛ بايت 2*941*DL/1000 ؛ ;.القسم "TIMVEC"،0FFF0h . ناقلات مقاطعة الموقت Timer_A .word TIM_HND ; ناقل الوحدات 1..4 timers.word TIMMOD0 ; وحدة الموقت 0 Vector.sect "INITVEC"،0FFFEh؛ ناقل

إعادة ضبط

FLLMPY .equ 32 ; مضاعف التردد FLL عند 1.048 ميجا هرتز TCLK .equ FLLMPY*32768 ؛ TCLK: FLLMPY x f كوارتز DL .equ 82؛ مدة إشارة DTMF؛ في مللي ثانية (65..100 مللي ثانية) STDTMF .equ 202h ؛ حالة التردد Hi وLo TIM32B .equ 204؛ تمديد تسجيل الموقت LENGTH .equ 206h ؛ عداد مدة DTMF DTMFLO .equ 208h ؛ نصف دورة التردد المنخفض DTMFHI .equ 20Ah؛ نصف دورة التردد العلوي STACK .equ 600h؛ عنوان تهيئة المكدس.نص 0F000h ؛ عنوان البدء للبرنامج؛ تهيئة Timer_A: MCLK، الوضع المستمر، تمكين المقاطعات؛ إعداد وحدات إخراج المؤقت Timer_A MCLK = 1.048 ميجا هرتز (تلقائي)؛ INIT MOV #STACK,SP ; تهيئة مؤشر المكدس CALL #INITSR ; تهيئة المضاعف؛ ترددات FLL وذاكرة الوصول العشوائي MOV #ISMCLK+TAIE+CLR,&TACTL ; مؤقت البدء MOV.B #TA2+TA1,&P3SEL ; مخرجات TA2 وTA1 على المنافذ P3.5/4 CLR TIM32B؛ مسح سجل المؤقت الممتد BIS #MCONT,&TACTL ;بدء تشغيل المؤقت Timer_A EINT ; المقاطعة العامة تمكن MAINLOOP ... ; الحلقة الرئيسية: ضغطة المفتاح: يحتوي SDTMF على إزاحة الجدول؛ لترددين (0..6,0..6) في البايت العالي والمنخفض؛ .. ;المهمة التي يتم التحكم فيها عن طريق السجل CCR3 RETI HCCR4 ... ;المهمة التي يتم التحكم فيها عن طريق السجل CCR4 RETI ; ; جداول المقاطعة والمتجهات مماثلة لتلك الموضحة في المثال السابق.

.كلمة تهيئة

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

3.3 أجهزة لتوليد إشارات DTMF

  • كما هو مذكور أعلاه، في نطاق التردد 200 هرتز.. 4600 هرتز، يجب أن يكون مستوى إشارة تردد الإرسال أعلى من مستوى الإشارات الدخيلة (الضوضاء) بـ 20 ديسيبل على الأقل. بالإضافة إلى ذلك، بناءً على المواصفات، يجب أن يكون للإشارات الصادرة من المجموعتين "العلوية" و"السفلية" مستويات مختلفة، لذا تتطلب كل إشارة مرشحًا خاصًا بها. يمكن الحصول على سعة التردد الجيبية من سلسلة فورييه.
  • لاختيار ترددات القطع عند تصميم مرشح تمثيلي، يجب الالتزام بالمتطلبات التالية بناءً على:

لأن ومن الضروري التأكد من إمكانية أي مجموعات من ترددات المجموعة "السفلية" مع ترددات المجموعة "العلوية" ويجب ألا يتجاوز الفرق في المستويات بين الترددات الأدنى والأعلى في المجموعة 3 ديسيبل.

بالنسبة لأدنى تردد في المجموعة (f1)، يجب ألا يكون القمع التوافقي (3f1) أسوأ من 20 ديسيبل. يعد تحقيق هذا الشرط أمرًا بالغ الأهمية بالنسبة للتردد الأقل في المجموعة، لأنه إنه بعيد قدر الإمكان عن تردد القطع للمرشح.

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

لتحقيق الشرط الأول يجب ألا تزيد نسبة مربعات القيم المطلقة للترددات الدنيا والعليا في المجموعة عن 3 ديسيبل أو:

ويتحقق الشرط الثاني تلقائيا إذا كانت نسبة مربعات القيم المطلقة للترددين f1 و 3f1 أكبر من 10/3، في في هذه الحالةالتوافقي الثالث في الإشارة المستطيلة أصغر بمقدار 1/3 (انظر سلسلة فورييه والشكل 2):

ونتيجة لحسابات ترددات كلا المجموعتين، أصبح لدينا ترتيب التصفية المطلوب n=1.15. وبالتالي، سيتم تلبية المتطلبات بواسطة مرشح من الدرجة الثانية، والذي يمكن بناؤه على مضخم تشغيلي. إذا كنت تستخدم مرشحًا من الدرجة الثالثة، فستحتاج إلى اثنين فقط عنصر إضافي. ومع ذلك، فإن هذا سوف يقلل من متطلبات تشتت معلمات المكونات. سيتم استيفاء كلا الشرطين المذكورين أعلاه إذا كان تردد القطع ضمن الحدود التالية:

المجموعة السفلية fg>880 هرتز fg<1418 Гц
المجموعة العليا fg>1527 هرتز fg<2460 Гц

إذا كان تردد القطع عند الحد الأدنى، سيحدث الحد الأقصى من التخفيض التوافقي. ومع ذلك، في هذه الحالة سيكون الفرق بين مستويات الترددات الدنيا والأعلى في المجموعة 3 ديسيبل. عند أعلى تردد قطع ممكن، يكون فرق المستوى في حده الأدنى، ولكن يتم قمع المكونات التوافقية بمقدار 20 ديسيبل فقط.

عند حساب المرشح، تم إيلاء المزيد من الاهتمام للقمع التوافقي؛ وتم إصلاح فرق المستوى داخل المجموعة عند 2 ديسيبل. ونتيجة لذلك، فإن ترددات القطع هي 977 هرتز و1695 هرتز. القمع التوافقي الناتج يتجاوز المتطلبات بشكل كبير. يكون الاختلاف في مستويات التردد في المجموعة ضمن المتطلبات حتى في حالة انحراف تردد القطع المرتبط بالانتشار في معلمات المكونات المستخدمة. عند حساب قيم عناصر المرشح، تم اختيار المقاومات على أساس قربها الأقصى من القيم القياسية لسلسلة E12.

عند مخرجات المرشح، تكون النتيجة إشارتين جيبيتين مع توافقيات مكبوتة بشكل كبير. للجمع بين هذه الإشارات، يتم تقديم أداة إضافية.

وبالتالي، باستخدام 3 مضخمات تشغيلية فقط وعدد قليل من العناصر السلبية، فإننا قادرون على إنشاء إشارات DTMF باستخدام وحدة تحكم دقيقة دون استخدام موارد حاسوبية كبيرة.

وباستخدام برامج المحاكاة تم فحص القيم التقريبية. تتطابق استجابة المرشحات مع استجابة التردد المحسوبة بشكل وثيق جدًا.


أرز. 6: طيف اتساع إشارة مستطيلة بتردد 697 هرتز عند خرج مرشح من الدرجة الثالثة

في الشكل. يوضح الشكل 6 طيف السعة لإشارة مستطيلة بتردد 697 هرتز، يتم تمريرها عبر مرشح من الدرجة الثالثة. كما يتبين من الشكل، فإن التوافقيات الثالثة والخامسة (2091 هرتز و3485 هرتز) مخففة بشكل كبير (-25.6 ديسيبل).


أرز. 7: طيف اتساع إشارة مستطيلة بتردد 941 هرتز عند خرج مرشح من الدرجة الثالثة

في الشكل. يوضح الشكل 7 طيف إشارة الموجة المربعة بتردد 941 هرتز. في منطقة التردد التي تهمنا، حتى 4600 هرتز، هناك توافقي واحد فقط. بعد تمرير المرشح، يتم تخفيف هذا التوافقي 2823 هرتز بشكل كبير (-27.9 ديسيبل). لا يتجاوز فرق المستوى بين أدنى وأعلى الترددات في المجموعة 1.9 ديسيبل.

ومن أجل استخدام مكونات منخفضة التكلفة ذات تباين كبير في المعلمات، تم إجراء نمذجة إضافية. أظهرت نتائج المحاكاة أن الانتشار المسموح به في قيم المقاومات والمكثفات هو 10%.


الشكل 8: الرسم البياني – توزيع مستويات الإشارة في المجموعة


الشكل 9: الرسم البياني – قمع التوافقي

في الشكل. يعرض 8 و9 الرسوم البيانية التي تم الحصول عليها باستخدام تحليل مونت كارلو. في هذه الحالة، تباينت قيم المكونات بشكل عشوائي ضمن انتشار 10٪. بعد 100 تكرار، يتم رسم نتائج جميع المرشحات التي تمت محاكاتها في رسوم بيانية. في الرسم البياني في الشكل. ويبين الشكل 8 فرق المستوى بين الترددات داخل المجموعة. ولم يتم بأي حال من الأحوال تحقيق الحد الأقصى المسموح به للفرق وهو 3 ديسيبل بين الترددات الدنيا والقصوى. متوسط ​​القيمة هو 1.6 ديسيبل، وهو أفضل قليلاً من القيمة المحسوبة البالغة 2 ديسيبل.

في الشكل. ويبين الشكل 9 توهين التوافقيات لمجموعة الترددات "السفلى". ويتم تحقيق القيمة المطلوبة وهي 20 ديسيبل في جميع الحالات، ويبلغ متوسط ​​القيمة حوالي 27 ديسيبل. في أسوأ الحالات، يتم قمع التوافقي بمقدار 24.2 ديسيبل.

يتم أيضًا إجراء القيم المحسوبة لمرشح مجموعة التردد "السفلى" لمرشح مجموعة التردد "العلوية".

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

لا يمكن الحصول على وظيفة النقل للمرشحات ذات الترتيب الأعلى باستخدام المكونات السلبية وحدها.

وبالتالي، يجب أن يحتوي مرشح الترتيب الثاني على مضخم تشغيلي. يتم ضبط كسب المرشح النشط على 0.2 باستخدام المقاومات R1-1 و R1-2. كما ترون، الإشارة ضعيفة إلى حد ما. يعد ذلك ضروريًا لتجنب التحميل الزائد على مضخم العمليات، لأنه تتجاوز سعة الذروة للتوافقي الجيبي الأساسي لإشارة الموجة المربعة سعة إشارة الموجة المربعة نفسها (انظر سلسلة فورييه والشكل 2). يقوم المُضيف الإضافي بضبط مستوى الإخراج المطلوب. نظرًا للمكون الثابت للإشارة المستطيلة، يتم ضبط نقطة تشغيل مضخم العمليات عند مستوى Vcc/2 (انظر أيضًا سلسلة فورييه والشكل 2). في هذه الحالة، لا يمكن التخلص من المكون الثابت بواسطة مقسم الإدخال R1-1/R1-2. لفصل دائرة نظام التشغيل عن طريق جهد التيار المستمر، يتم استخدام المكثف C3.

عند كل مخرج من مخرجات المرشح التناظري، يتم إنشاء إشارة لمجموعتي التردد العلوي والسفلي، على التوالي. في أداة إضافية، تتم إضافة هذه الإشارات. في عنصر الدائرة هذا، يمكنك ضبط العلاقة بين الترددات "السفلى" و"العلوية" في الإشارة الإجمالية ومستوى إشارة الخرج باستخدام المقاومات R4 وR5. وبالتالي، يمكن تعديل سعة الإخراج بسهولة لتناسب المتطلبات المختلفة في مختلف البلدان.

عند حساب قيم المكونات كانت قيم المكثفات كالعادة ثابتة وتم حساب قيم المقاومات وفقاً لها. في هذه الدائرة، تم استخدام المكثفات والمقاومات من سلسلة E12 القياسية بفارق 10٪.

في الشكل. يوضح الشكل 10 رسمًا تخطيطيًا للمرشحات التناظرية والأفعى:


أرز. 10: رسم تخطيطي للمرشحات التناظرية مع جامع إضافي

تجمع المكثفات C1-1 وC1-2 بين الإشارتين معًا عند نقطة التشغيل Vcc/2. لا ينبغي عليك تحديد قيم كبيرة جدًا لهذه العناصر، لأن إنها عناصر مرشح تمرير منخفض للتخلص من التوافقيات الفرعية منخفضة التردد. يعمل مكثف المرشح C5 على التخلص من ضوضاء الجهد المرجعي. يشكل المكثف الإضافي C6 المتصل بالتوازي مع مقاومة التغذية المرتدة R6 مرشح تمرير عالي من الدرجة الأولى. إذا تم اختيار أدنى تردد قطع للمرشح، فإن التصفية الإضافية لتداخل التشكيل البيني عالي التردد تعمل على تحسين جودة إشارة الخرج، ولكن سيكون هناك بعض التوهين لأعلى الترددات للمجموعة "العلوية". في بعض الحالات، لا يكون توليد أعلى تردد DTMF يبلغ 1633 هرتز أمرًا ضروريًا لأنه يتم استخدامه فقط لتشكيل رموز الخدمة A-D، ويمكن تحسين نسبة الإشارة إلى الضوضاء عن طريق خفض تردد قطع المرشح. وبالتالي، فإن زيادة تردد القطع يؤدي إلى زيادة مستوى التداخل عالي التردد، ولكن في نفس الوقت يتم تقليل التأثير السلبي على مكونات التردد الأعلى لإشارة DTMF.

4 نتائج دراسات إشارات مرسل DTMF

تُظهر المخططات الطيفية أدناه (الشكل 11 و12) إشارات الخرج لمرسل DTMF عند ترددات مختلفة. في الشكل. ويبين الشكل 11 طيف الاتساع للرمز "1". الترددات المطلوبة لنقلها - 697 و 1207 هرتز - عند مستوى -10.5 ديسيبل و -8.5 ديسيبل على التوالي. يتم قمع التوافقيات عند 2091 و 3621 هرتز بحوالي 30 ديسيبل. لنقل الرمز "D"، يتم إنشاء أعلى ترددين - 941 و1633 هرتز. كما يتبين من الشكل. 12، مستوى التردد المنخفض -12 ديسيبل، مستوى التردد العالي -11 ديسيبل. يتم تخفيف التوافقيات المقابلة بأكثر من 30 ديسيبل. وبالتالي فإن القيم المقاسة تتوافق مع نتائج المحاكاة ومتطلبات المواصفات.


أرز. 11: طيف الاتساع للرمز "1": 697 و 1207 هرتز


أرز. 12: طيف الاتساع للرمز "D": 941 و 1633 هرتز

لا يمكن تحقيق دقة التردد المطلقة لإشارات الموجة المربعة المولدة عند استخدام مؤقتين مختلفين؛ وستعتمد النتيجة على الجمع بين الترددين ونوع المؤقتات المستخدمة. السبب في ذلك هو تعارض مقاطعة جهاز ضبط الوقت. ومع ذلك، يتم استيفاء الدقة المطلوبة البالغة ±1.8% بهامش كبير.

إذا تم استخدام مؤقت 8 بت ومؤقت Timer Port بتردد نظام MCLK يبلغ 1.048 ميجاهرتز، فسيتم إنشاء ترددات المجموعة "الأدنى" بدقة لا تقل عن 0.3٪. بالنسبة لترددات المجموعة "العلوية"، تم الحصول عملياً على انحراف لا يزيد عن 0.5%.

والاستثناء الوحيد هو حرف DTMF "D"، الذي يتم إنشاء الترددات الأعلى له. ونتيجة لذلك، في هذه المجموعة، يكون انحراف تردد المجموعة "العلوية" 1633 هرتز بنسبة -0.97%.

بدون هذا الاستثناء، حتى أعلى تردد وهو 1633 هرتز يتم توليده بدقة أفضل من 0.5%. يتم عرض الحد الأقصى للانحرافات للترددات المختلفة في الجدول:

إذا تم استخدام Timer_A لإنشاء ترددات، فسيعتمد الخطأ على تردد MCLK المستخدم:

مكلك، ميغاهيرتز 1,048 2,096 3,144 3,800
المضاعف FLL 32 64 96 116
697 هرتز +0,027% +0,027% +0,027% +0,027%
770 هرتز -0,015% -0,016% +0,033% -0,016%
852 هرتز +0,059% -0,023% +0,005% +0,031%
941 هرتز +0,029% +0,029% +0,029% +0,035%
1209 هرتز -0,079% +0,036% +0,036% -0,003%
1336 هرتز +0,109% -0,018% +0,025% +0,025%
1447 هرتز -0,009% -0,009% -0,009% -0,009%
1633 هرتز +0,018% +0,018% +0,018% +0,018%

5 الاستنتاج

البرنامج الخاص بهذا المثال بسيط جدًا، ويشغل حوالي 300 بايت، ويتطلب كمية صغيرة من ذاكرة الوصول العشوائي (RAM) وذاكرة القراءة فقط (ROM). بفضل وحدة المؤقت المدمجة، يتم إنشاء الترددات المطلوبة بدقة عالية دون إضاعة حمل وحدة المعالجة المركزية. في التكوين الذي يتم فيه استخدام مؤقت 8 بت ومؤقت/منفذ للإنشاء، تستهلك إجراءات المقاطعة حوالي 12% من موارد وحدة المعالجة المركزية. في حالة إنشاء الترددات بواسطة مؤقت Timer_A، يتم تقليل حمل وحدة المعالجة المركزية لمعالجة إجراءات المقاطعة إلى 6%. ونتيجة لذلك، قد يتم تشغيل مهام أخرى أثناء إرسال إشارات DTMF، أو قد يتم وضع وحدة المعالجة المركزية (CPU) في وضع الطاقة المنخفضة لتقليل الاستهلاك الحالي.

يتم توضيح الوظيفة الجيدة للوحدة الموصوفة لتوليد إشارات DTMF باستخدام إشارات الموجة المربعة من خلال تصميم دائرة الأجهزة. لأن من الممكن استخدام مكونات ذات نطاق واسع من المعلمات في الدائرة؛ وسعر هذا الحل منخفض جدًا. يتم استيفاء جميع متطلبات المواصفات بهامش كبير، لذلك لا يلزم وجود وحدة مولد إشارة DTMF منفصلة في الأجهزة التي تستخدم MSP430 كوحدة تحكم تحكم.

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

6 روابط

Bundesamt für Post und Telekommunikation (المكتب الاتحادي للبريد والاتصالات السلكية واللاسلكية): BAPT 223 ZV 5، Zulassungsvorschrift für Endeinrichtungen zur Anschaltung an Analog Wahlanschlusse (ausgenommen Notruf- und Durchwahlanschlusse) des Telefonnetzes (المواصفات الرسمية للأجهزة الطرفية المتصلة بخطوط الهاتف التناظرية، باستثناء متطلبات الأمان والاتصال) / ISDN الخاص بـ Deutschen Bundespost Telekom؛ Bundesministerium für Post und Telekommunikation، مسودة، بون أبريل 1994 Papula: Mathematik für Ingenieure 2 (الرياضيات للمهندسين)؛ Vieweg Verlag, Braunschweig 1990 Tietze / Schenk: Halbleiterschaltungstechnik; (تيتز/شينك، هندسة دوائر أشباه الموصلات)، الطبعة العاشرة؛ سبرينغر فيرلاج، برلين 1993 لوتز بيرل / تكساس إنسترومنتس: عائلة MSP430، تقرير تطبيق القياس، تكساس إنسترومنتس، الإصدار 2.1، يناير 1997، SLAAE10B تكساس إنسترومنتس: عائلة MSP430، دليل مستخدم الهندسة المعمارية ومكتبة الوحدات، تكساس إنسترومنتس، 1996، SLAUE10B تكساس إنسترومنتس: عائلة MSP430، دليل مستخدم البرنامج، Texas Instruments، 1996 Texas Instruments: عائلة MSP430، دليل مستخدم أدوات لغة التجميع، Texas Instruments، 1996 Siwy، Robert: Systementwicklung einer Telekom-Aplikation zum Senden und Empfangen von DTMF-Signalen mit dem Microcontroller MSP430 (تطوير) نظام الاتصالات لاستقبال ونقل الإشارات الرقمية على أساس متحكم MSP430)؛ دبلوماربيت، Fachhochschule Landshut، ماي 1997

فيما يتعلق بموضوع الأجهزة البسيطة، قررت تجميع مولد إشارة DTMF باستخدام نفس ATtiny2313. بالنسبة لأولئك الذين لا يعرفون، DTMF (ثنائي التردد متعدد النغمات) عبارة عن إشارة تناظرية متعددة التردد ذات نغمتين تستخدم للاتصال برقم هاتف. اقرأ ويكيبيديا.

تم تحديد قرار تجميع مثل هذا الجهاز من خلال الرغبة في محاولة تنفيذ إشارات تناظرية معقدة باستخدام متحكم دقيق. لم يتم التخطيط لتطبيق عملي لهذا الجهاز، ولكن ربما يجد شخص ما مثل هذا الجهاز مفيدًا؟ استخدمه!

مصدر مولد DTMF


الآن دعونا نرى ما حصلنا عليه.

يتم توليد الإشارة باستخدام PWM ويتم استخدام دائرة RC لإعطائها الشكل المطلوب. نتيجة لذلك، بعد سلسلة RC، نحصل على الإشارة التالية (يتم الضغط على الزر 6):

على طول منحنى الإشارة المفيدة بأكملها، نلاحظ مشطًا عالي التردد (التردد أعلى من الصوت المسموع، لذلك لن يحدث ضوضاء) - وهذا هو عمل دائرة RC. يمكنك جعل الخط أكثر سلاسة عن طريق زيادة سعة المكثف أو مقاومة المقاوم، ولكن في هذه الحالة سينخفض ​​نطاق الإشارة المفيدة بشكل كبير.

نحن ننظر إلى طيف الإشارة ونتأكد من وجود ترددين منفصلين (خرج تردد PWM خارج منطقة العرض)، مما يعني أن كل شيء على ما يرام - الجهاز يعمل كما ينبغي.

حلول جاهزة

توجد حلول جاهزة لمهام توليد وفك تشفير إشارة DTMF. فيما يلي بعض أوراق البيانات لهذه الدوائر الدقيقة.

مولد دي تي إم إف
- وحدة فك ترميز DTMF


ملاحظة:من المؤسف أن ATtiny2313 لا يحتوي على ADC - يمكنك أيضًا استخدام وحدة فك ترميز DTMF! لكن لا بأس، سأكررها على ميجا، سأرفقها بالتأكيد.

(تمت الزيارة 6,868 مرة، 1 زيارة اليوم)