नवीनतम लेख
घर / खेल को शान्ति / AVR पर डुअल-टोन मल्टी-फ़्रीक्वेंसी (DTMF) जनरेटर। योजना, विवरण. डीटीएमएफ सिग्नल के रिसीवर और ट्रांसमीटर का अध्ययन माइक्रोसर्किट डीटीएमएफ टोन जनरेटर

AVR पर डुअल-टोन मल्टी-फ़्रीक्वेंसी (DTMF) जनरेटर। योजना, विवरण. डीटीएमएफ सिग्नल के रिसीवर और ट्रांसमीटर का अध्ययन माइक्रोसर्किट डीटीएमएफ टोन जनरेटर

रूसी संघ के टेलीफोन नेटवर्क में आधुनिक डिजिटल पीबीएक्स की शुरूआत के साथ, अंग्रेजी संक्षिप्त नाम डीटीएमएफ (डुअल-टोन मल्टीपल-फ़्रीक्वेंसी) द्वारा चिह्नित डायलिंग सिग्नल संचारित करने की बहु-आवृत्ति विधि धीरे-धीरे फैल रही है। कभी-कभी इस डायलिंग सिग्नल ट्रांसमिशन सिस्टम को नाम देने के लिए एक और अंग्रेजी शब्द का उपयोग किया जाता है - टच-नॉन (टोन डायलिंग)। यह पद्धति 1960 में विकसित की गई थी, लेकिन इसका वास्तविक प्रसार 80 के दशक में शुरू हुआ क्योंकि डिजिटल (इलेक्ट्रॉनिक) टेलीफोन एक्सचेंज अधिक व्यापक हो गए।

नियंत्रण संकेतों को प्रसारित करने की इस पद्धति के साथ, आईटीयू-टी अनुशंसा 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 को ऊपरी स्थिति पर सेट करें;

ऊपरी और निचले आवृत्ति समूहों के जनरेटर के स्विच को "ऑफ" स्थिति पर सेट करें;

एनालॉग कुंजी स्विच (एके) को "चालू" स्थिति पर सेट करें;

जेनरेटर और रेसिस्टर R3 के आउटपुट वोल्टेज को समायोजित करने के लिए नॉब को वामावर्त घुमाएँ जब तक कि वे बंद न हो जाएँ।

डीटीएमएफ सिग्नल कंडीशनिंग

1.1 स्थापना सक्षम करें.

1.2 ऑसिलोस्कोप को KT3 परीक्षण बिंदु से कनेक्ट करें।

1.3 ऊपरी आवृत्ति समूह के जनरेटर को चालू करें, स्विच बटनों में से एक को दबाकर, इस समूह की किसी भी आवृत्ति का चयन करें।

1.4 सीटी3 में सिग्नल आयाम को 0.5 वोल्ट पर सेट करने के लिए जनरेटर आउटपुट वोल्टेज समायोजन घुंडी को घुमाएँ।

1.5 ऑसिलोस्कोप इनपुट को KT4 परीक्षण बिंदु पर स्विच करें। निम्न आवृत्ति समूह के जनरेटर के लिए चरण 1.3, 1.4 दोहराएं, वोल्टेज को KT4 से 0.5 V पर सेट करें।

टिप्पणी: निष्पादित संचालन के परिणामस्वरूप, ऊपरी और निचले आवृत्ति समूहों से समान आयाम के सिग्नल योजक के इनपुट को आपूर्ति किए जाते हैं। इन स्तरों को सेट करने के बाद, जनरेटर के आउटपुट वोल्टेज को समायोजित करने के लिए नॉब को लॉक कर दें।

1.6 ऑसिलोस्कोप इनपुट को KT7 परीक्षण बिंदु पर स्विच करें। DTMF सिग्नल कंडीशनर के आउटपुट वोल्टेज को समायोजित करने के लिए रेसिस्टर नॉब (R3) को घुमाकर, वोल्टेज को CT7 में 0.5 वोल्ट पर सेट करें।

टिप्पणी: निष्पादित कार्यों के परिणामस्वरूप, रिसीवर इनपुट को एक निरंतर दो-टोन सिग्नल की आपूर्ति की जाती है, और ऊपरी और निचले आवृत्ति समूहों के जनरेटर की आवृत्तियों के संयोजन के अनुरूप प्रतीक को प्राप्त प्रतीक के संकेतक पर प्रदर्शित किया जाना चाहिए। , तालिका के अनुसार. प्राप्त और पहचाने गए सिग्नल का एक संकेत एसटीडी रिसीवर (एलईडी चमक) के आउटपुट पर एक सिग्नल की उपस्थिति है।

      ऊपरी और निचले आवृत्ति समूहों की आवृत्तियों को स्विच करके, सुनिश्चित करें कि इन आवृत्तियों का संयोजन प्राप्त प्रतीकों के अनुरूप है।

विशिष्ट सुविधाएं:

  • पल्स चौड़ाई मॉड्यूलेशन (पीडब्लूएम) का उपयोग करके साइन तरंगें उत्पन्न करना
  • विभिन्न साइन तरंग संकेतों को एक DTMF सिग्नल में संयोजित करना
  • असेंबली और सी भाषाओं में स्रोत कोड
  • STK500 के साथ काम करने के लिए डिज़ाइन किया गया
  • प्रोग्राम कोड आकार 260 बाइट्स/स्थिर तालिका आकार 128 बाइट्स
  • तालिका रूपांतरण विधि का उपयोग करना

परिचय

यह दस्तावेज़ पल्स चौड़ाई मॉड्यूलेशन (पीडब्लूएम) इकाई और स्थिर रैम वाले किसी भी एवीआर माइक्रोकंट्रोलर का उपयोग करके डीटीएमएफ सिग्नल (डुअल-टोन मल्टी-फ़्रीक्वेंसी सिग्नल) उत्पन्न करने की तकनीक का वर्णन करता है। इन संकेतों का व्यापक रूप से टेलीफोनी में उपयोग किया जाता है, जहां जब आप टेलीफोन सेट के डायल बटन दबाते हैं तो ये पुन: उत्पन्न होते हैं। डीटीएमएफ सिग्नल को ठीक से उत्पन्न करने के लिए, दो आवृत्तियों को एक साथ सुपरइम्पोज़ किया जाना चाहिए: एक कम आवृत्ति (एफबी) और एक उच्च आवृत्ति (एफए)। तालिका 1 दिखाती है कि विभिन्न कुंजियाँ दबाने पर DTMF टोन उत्पन्न करने के लिए विभिन्न आवृत्तियों को कैसे मिश्रित किया जाता है।

चित्र 1 - डीटीएमएफ सिग्नल जनरेटर सर्किट

तालिका 1 - टोन सिग्नल जेनरेशन मैट्रिक्स

एफबी/एफए 1209 हर्ट्ज 1336 हर्ट्ज 1477 हर्ट्ज 1633 हर्ट्ज
697 हर्ट्ज 1 2 3
770 हर्ट्ज 4 5 6 बी
852 हर्ट्ज 7 8 9 सी
941 हर्ट्ज * 0 # डी

तालिका 1 की पंक्तियाँ कम आवृत्ति मान दिखाती हैं, और कॉलम उच्च आवृत्ति मान दिखाते हैं। उदाहरण के लिए, मैट्रिक्स दिखाता है कि जब आप "5" बटन दबाते हैं, तो आवृत्तियाँ fb = 770 Hz और fa = 1336 Hz मिश्रित होनी चाहिए। दो साइनसोइडल संकेतों के जुड़ने के परिणामस्वरूप विभिन्न आवृत्तियाँएक DTMF सिग्नल उत्पन्न होता है

आयाम अनुपात कहां है के=ए बी /ए एस्रोत सिग्नल को शर्त पूरी करनी होगी

परिचालन सिद्धांत

अलावा सामान्य जानकारीपल्स चौड़ाई मॉड्यूलेशन के उपयोग के बारे में, यह नीचे दिखाया जाएगा कि कैसे पल्स चौड़ाई मॉड्यूलेशन आपको साइनसॉइडल सिग्नल उत्पन्न करने की अनुमति देता है। अगला पैराग्राफ बताता है कि विभिन्न आवृत्तियों को प्राप्त करने के लिए बेस स्विचिंग आवृत्ति का उपयोग कैसे करें। सैद्धांतिक नींव की समीक्षा करने के बाद, डीटीएमएफ सिग्नल जनरेटर का विवरण दिया जाएगा। साइन तरंगों का निर्माण

उच्च वीएच और निम्न वीएल वोल्टेज स्तरों की अवधि के अनुपात के आधार पर, पीडब्लूएम आउटपुट पर औसत मूल्य बदलता है। यदि दोनों स्तरों की अवधि के बीच का अनुपात स्थिर रखा जाता है, तो परिणामस्वरूप एक स्थिर VAV वोल्टेज स्तर उत्पन्न होगा। चित्र 2 एक पल्स चौड़ाई मॉड्यूलेटेड सिग्नल दिखाता है।


चित्र 2 - डीसी वोल्टेज स्तर पीढ़ी

वोल्टेज स्तर अभिव्यक्ति द्वारा निर्धारित किया जाता है:

(3)

एक साइनसोइडल सिग्नल उत्पन्न किया जा सकता है बशर्ते कि पल्स चौड़ाई मॉड्यूलेशन द्वारा उत्पन्न वोल्टेज का औसत मूल्य हर पीडब्लूएम चक्र में बदलता हो। उच्च और निम्न स्तरों के बीच संबंध को संबंधित समय पर साइन तरंग के वोल्टेज स्तर के अनुसार निर्धारित किया जाना चाहिए। चित्र 3 दिखाता है यह प्रोसेस. पीडब्लूएम के स्रोत डेटा की गणना उसकी प्रत्येक अवधि के लिए की जाती है और रूपांतरण तालिका (टीसी) में दर्ज की जाती है।

चित्र 3 मौलिक साइन तरंग की आवृत्ति और नमूनों की संख्या के बीच संबंध को भी दर्शाता है। नमूनों की संख्या (एनसी) जितनी अधिक होगी, परिणामी सिग्नल की मॉडलिंग की सटीकता उतनी ही अधिक होगी:

(4)

PWM आवृत्ति PWM रिज़ॉल्यूशन पर निर्भर करती है। 8-बिट रिज़ॉल्यूशन पर, टाइमर का अंतिम मान (गिनती का शीर्ष) 0xFF (255) है। क्योंकि फिर, टाइमर आगे और पीछे की गिनती करता है दिया गया मूल्यदोगुना किया जाना चाहिए. इसलिए, स्विचिंग आवृत्ति की गणना विभाजित करके की जा सकती है घड़ी की आवृत्ति 510 पर टाइमर एफ सीके। इस प्रकार, 8 मेगाहर्ट्ज की टाइमर घड़ी आवृत्ति के साथ, परिणामी पीडब्लूएम आवृत्ति 15.6 किलोहर्ट्ज़ होगी।


चित्र 3 - पीडब्लूएम का उपयोग करके एक साइनसोइडल सिग्नल उत्पन्न करना

साइन तरंग की आवृत्ति बदलना

आइए मान लें कि साइनसॉइडल नमूने लुकअप टेबल से क्रमिक रूप से नहीं, बल्कि एक समय में एक पढ़े जाते हैं। इस मामले में, समान नमूना दर पर, दोगुनी आवृत्ति वाला एक सिग्नल उत्पन्न होगा (चित्र 4 देखें)।


चित्र 4 - परिणामी आवृत्ति को दोगुना करना (XSW = 2)

सादृश्य से, यदि आप हर दूसरे मान को नहीं, बल्कि हर तीसरे, चौथे, पांचवें (क्रमशः, चरण की चौड़ाई 3, 4, 5...), आदि को पढ़ते हैं। रेंज में एनसी आवृत्तियों को उत्पन्न करना संभव है। ध्यान दें कि उच्च आवृत्तियों के लिए परिणामी तरंग साइनसॉइडल नहीं होगी। हम रूपांतरण तालिका के अनुसार चरण की चौड़ाई को इस प्रकार दर्शाते हैं एक्सएसडब्लू, कहाँ

(5)

अगली पीडब्लूएम अवधि (जब टाइमर ओवरफ्लो हो जाता है) के लिए टीपी में वर्तमान स्थिति की गणना अभिव्यक्ति (6) का उपयोग करके की जाती है। स्थिति में नया मान XLUTस्थिति में उसकी पिछली स्थिति पर निर्भर करता है एक्स" LUTबढ़ती चरण चौड़ाई के साथ एक्सएसडब्लू

(6)

DTMF सिग्नल प्राप्त करने के लिए विभिन्न आवृत्तियों को जोड़ना

डीटीएमएफ सिग्नल अभिव्यक्ति (1) और (2) का उपयोग करके उत्पन्न किया जा सकता है। अंकगणितीय संक्रियाओं की सरलता के लिए, अंकगणितीय संक्रिया को तार्किक बदलाव से बदलने के लिए गुणांक K का मान 0.75 के बराबर लिया जाता है। अभिव्यक्ति (6) को ध्यान में रखते हुए, पीडब्लूएम नियंत्रण के लिए वर्तमान मूल्य की गणना अभिव्यक्ति द्वारा की जा सकती है:

और उसे ध्यान में रखते हुए एक्स लुटा=एक्स" लुटा + XSWa ,एक्स एलयूटीबी=एक्स" LUTb + एक्सएसडब्लूबी, चलो अंततः इसे लिख लें

डीटीएमएफ जनरेटर का कार्यान्वयन

में यह अनुप्रयोग 8-बिट पीडब्लूएम आउटपुट (ओसी1ए) और 128 साइन फ़ंक्शन (एनसी) नमूनों वाली एक तालिका का उपयोग करके डीटीएमएफ टोन जनरेटर के निर्माण पर चर्चा करता है, प्रत्येक 7 बिट्स (एन) द्वारा निर्दिष्ट है। निम्नलिखित अभिव्यक्तियाँ इस निर्भरता को दर्शाती हैं और यह भी दिखाती हैं कि लुकअप तालिका प्रविष्टियों की गणना कैसे करें:

(9)

7 बिट्स का उपयोग करने का लाभ यह है कि उच्च और निम्न आवृत्ति सिग्नल मानों का योग आकार में एक बाइट है। डीटीएमएफ टोन के पूरे सेट का समर्थन करने के लिए, तालिका 1 से प्रत्येक डीटीएमएफ आवृत्ति के लिए 8 मानों की गणना की जानी चाहिए और लुकअप तालिका में दर्ज किया जाना चाहिए।

उच्च सटीकता प्राप्त करने के लिए, निम्नलिखित समाधान लागू किया गया था: अभिव्यक्ति 5 का उपयोग करके गणना किए गए मानों के लिए केवल 5 बाइट्स की आवश्यकता होती है। सभी 8 बाइट्स का उपयोग करने के लिए, जो राउंडिंग त्रुटियों को कम करेगा, इस मान को 8 से गुणा किया जाता है। लुकअप तालिका का सूचक उसी तरह लिखा जाता है। लेकिन इस मामले में 8 गुना मूल्य संग्रहीत करने में दो बाइट्स लगते हैं। इसका मतलब यह है कि इन बाइट्स को साइन तरंग मानों के सूचक के रूप में उपयोग करने से पहले 3 सही बदलाव और एक रेडिक्स एनसी मॉड्यूलस ऑपरेशन (एनसी -1 द्वारा तार्किक गुणन) किया जाना चाहिए।


चित्र 5 - STK500 से कनेक्ट करने के लिए मॉड्यूल आरेख

PWM सिग्नल पिन OC1A (PD5) पर उत्पन्न होता है। एक अतिरिक्त आउटपुट फ़िल्टर सिग्नल को साइनसॉइडल तरंग के साथ अधिक संगत बनाने में मदद करेगा। पीडब्लूएम आवृत्ति को कम करते समय, अच्छा परिणाम प्राप्त करने के लिए तेज़ आवृत्ति प्रतिक्रिया वाले फ़िल्टर का उपयोग करना आवश्यक हो सकता है।

कीबोर्ड कनेक्शन चित्र 1 में दिखाया गया है। कीबोर्ड का संचालन इस तरह से व्यवस्थित किया जाना चाहिए कि दबाई गई कुंजी का निर्धारण करना संभव हो। यह निम्नलिखित एल्गोरिथम का उपयोग करके किया जा सकता है:

  1. दबायी गयी कुंजी की स्ट्रिंग का निर्धारण
    • पोर्ट बी के लो-ऑर्डर नोटबुक को आउटपुट के रूप में कॉन्फ़िगर करें और लॉग सेट करें। "0"
    • पुल-अप रेसिस्टर्स के कनेक्शन के साथ पोर्ट बी के उच्च टेट्राड को इनपुट के रूप में कॉन्फ़िगर करें
    • दबाए गए बटन वाली रेखा को लॉग के साथ उच्चतम टेट्राड के अंक के रूप में परिभाषित किया गया है। "0"
  2. दबाए गए कुंजी कॉलम को परिभाषित करना
    • पोर्ट बी के हाई नोटबुक को आउटपुट के रूप में कॉन्फ़िगर करें और लॉग सेट करें। "0"
    • पुल-अप रेसिस्टर्स को जोड़कर पोर्ट बी के लो-ऑर्डर टेट्राड को इनपुट के रूप में कॉन्फ़िगर करें
    • दबाए गए बटन वाले कॉलम को लॉग के साथ निम्न-क्रम टेट्राड के अंक के रूप में परिभाषित किया गया है। "0"

नोट: STK200 में, प्रतिरोधक PORTB कनेक्टर पिन और माइक्रोकंट्रोलर पिन BP5, PB6 और PB7 के बीच श्रृंखला में जुड़े हुए हैं (STK200 आरेख देखें)। यदि कीबोर्ड PORTB कनेक्टर से जुड़ा है तो इससे समस्याएँ पैदा होंगी।

चित्र 6 दबायी गयी कुंजी को निर्धारित करने के लिए सबरूटीन के संचालन को दर्शाता है। दबायी गयी कुंजी के आधार पर, अंतराल की अवधि निर्धारित की जाती है। इंटरप्ट रूटीन दो DTM टोन साइन तरंगों के लिए PWM सेटिंग्स की गणना करने के लिए इस मान का उपयोग करता है। इंटरप्ट हैंडलिंग प्रक्रिया चित्र 7 और 8 में दिखाई गई है।

यह रूटीन अगली पीडब्लूएम अवधि के लिए टाइमर आउटपुट के साथ तुलना करने के लिए एक मान की गणना करता है। इंटरप्ट रूटीन पहले लुकअप तालिका में अगले नमूना मान की स्थिति की गणना करता है और वहां संग्रहीत मान को पढ़ता है।

लुकअप तालिका में नमूने की स्थिति पल्स चौड़ाई द्वारा निर्धारित की जाती है, और वास्तविक पल्स चौड़ाई उत्पन्न आवृत्ति द्वारा निर्धारित की जाती है।

टाइमर तुलना रजिस्टर में लिखा गया अंतिम मान सूत्र (7) का उपयोग करके निर्धारित किया जाता है, जो दोनों डीटीएमएफ आवृत्तियों के नमूना मूल्यों को ध्यान में रखता है।


चित्र 6 - मुख्य कार्यक्रम का ब्लॉक आरेख

विशिष्ट सुविधाएं

  • पल्स चौड़ाई मॉड्यूलेशन (पीडब्लूएम) का उपयोग करके साइन तरंगें उत्पन्न करना
  • विभिन्न साइन तरंग संकेतों को एक DTMF सिग्नल में संयोजित करना
  • असेंबली और सी भाषाओं में स्रोत कोड
  • STK500 के साथ काम करने के लिए डिज़ाइन किया गया
  • प्रोग्राम कोड आकार 260 बाइट्स/स्थिर तालिका आकार 128 बाइट्स
  • तालिका रूपांतरण विधि का उपयोग करना

परिचय

यह दस्तावेज़ पल्स चौड़ाई मॉड्यूलेशन (पीडब्लूएम) इकाई और स्थिर रैम वाले किसी भी एवीआर माइक्रोकंट्रोलर का उपयोग करके डीटीएमएफ सिग्नल (डुअल-टोन मल्टी-फ़्रीक्वेंसी सिग्नल) उत्पन्न करने की तकनीक का वर्णन करता है। इन संकेतों का व्यापक रूप से टेलीफोनी में उपयोग किया जाता है, जहां जब आप टेलीफोन सेट के डायल बटन दबाते हैं तो ये पुन: उत्पन्न होते हैं। डीटीएमएफ सिग्नल को ठीक से उत्पन्न करने के लिए, दो आवृत्तियों को एक साथ सुपरइम्पोज़ किया जाना चाहिए: एक कम आवृत्ति (एफबी) और एक उच्च आवृत्ति (एफए)। तालिका 1 दिखाती है कि विभिन्न कुंजियाँ दबाने पर DTMF टोन उत्पन्न करने के लिए विभिन्न आवृत्तियों को कैसे मिश्रित किया जाता है।


चित्र 1. डीटीएमएफ सिग्नल जनरेटर सर्किट

तालिका 1. टोन जनरेशन मैट्रिक्स

एफबी/एफए 1209 हर्ट्ज 1336 हर्ट्ज 1477 हर्ट्ज 1633 हर्ट्ज
697 हर्ट्ज 1 2 3
770 हर्ट्ज 4 5 6 बी
852 हर्ट्ज 7 8 9 सी
941 हर्ट्ज * 0 # डी

तालिका 1 की पंक्तियाँ कम आवृत्ति मान दिखाती हैं, और कॉलम उच्च आवृत्ति मान दिखाते हैं। उदाहरण के लिए, मैट्रिक्स दिखाता है कि जब आप "5" बटन दबाते हैं, तो आवृत्तियाँ fb = 770 Hz और fa = 1336 Hz मिश्रित होनी चाहिए। विभिन्न आवृत्तियों के दो साइनसॉइडल संकेतों को जोड़ने के परिणामस्वरूप, एक DTMF सिग्नल बनता है

जहां मूल संकेतों का आयाम अनुपात K=A b /A a शर्त को पूरा करना चाहिए

परिचालन सिद्धांत

पल्स चौड़ाई मॉड्यूलेशन के उपयोग के बारे में सामान्य जानकारी के अलावा, यह नीचे दिखाया जाएगा कि कैसे पल्स चौड़ाई मॉड्यूलेशन आपको साइनसॉइडल सिग्नल उत्पन्न करने की अनुमति देता है। अगला पैराग्राफ बताता है कि विभिन्न आवृत्तियों को प्राप्त करने के लिए आधार पीडब्लूएम आवृत्ति का उपयोग कैसे करें। सैद्धांतिक नींव की समीक्षा करने के बाद, डीटीएमएफ सिग्नल जनरेटर का विवरण दिया जाएगा। साइन तरंगों का निर्माण

उच्च वीएच और निम्न वीएल वोल्टेज स्तरों की अवधि के अनुपात के आधार पर, पीडब्लूएम आउटपुट पर औसत मूल्य बदलता है। यदि दोनों स्तरों की अवधि के बीच का अनुपात स्थिर रखा जाता है, तो परिणामस्वरूप एक स्थिर VAV वोल्टेज स्तर उत्पन्न होगा। चित्र 2 एक पल्स चौड़ाई मॉड्यूलेटेड सिग्नल दिखाता है।


चित्रा 2. डीसी वोल्टेज स्तर पीढ़ी

वोल्टेज स्तर अभिव्यक्ति द्वारा निर्धारित किया जाता है:

(3)

एक साइनसोइडल सिग्नल उत्पन्न किया जा सकता है बशर्ते कि पल्स चौड़ाई मॉड्यूलेशन द्वारा उत्पन्न वोल्टेज का औसत मूल्य हर पीडब्लूएम चक्र में बदलता हो। उच्च और निम्न स्तरों के बीच का अनुपात संबंधित समय पर साइन तरंग के वोल्टेज स्तर के अनुसार निर्धारित किया जाना चाहिए। चित्र 3 इस प्रक्रिया को दर्शाता है। पीडब्लूएम के स्रोत डेटा की गणना उसकी प्रत्येक अवधि के लिए की जाती है और रूपांतरण तालिका (टीसी) में दर्ज की जाती है।

चित्र 3 मौलिक साइन तरंग की आवृत्ति और नमूनों की संख्या के बीच संबंध को भी दर्शाता है। नमूनों की संख्या (एनसी) जितनी अधिक होगी, परिणामी सिग्नल की मॉडलिंग की सटीकता उतनी ही अधिक होगी:

(4)

PWM आवृत्ति PWM रिज़ॉल्यूशन पर निर्भर करती है। 8-बिट रिज़ॉल्यूशन पर, टाइमर का अंतिम मान (गणना का शीर्ष) 0xFF (255) है। क्योंकि टाइमर आगे और पीछे की गिनती करता है, तो यह मान दोगुना होना चाहिए। इसलिए, PWM आवृत्ति की गणना टाइमर घड़ी आवृत्ति f CK को 510 से विभाजित करके की जा सकती है। इस प्रकार, 8 मेगाहर्ट्ज की टाइमर घड़ी आवृत्ति के साथ, परिणामी PWM आवृत्ति 15.6 kHz होगी।


चित्र 3. पीडब्लूएम का उपयोग करके साइन तरंग उत्पन्न करना

साइन तरंग की आवृत्ति बदलना

आइए मान लें कि साइनसॉइडल नमूने लुकअप टेबल से क्रमिक रूप से नहीं, बल्कि एक समय में पढ़े जाते हैं। इस मामले में, समान नमूना दर पर, दोगुनी आवृत्ति वाला एक सिग्नल उत्पन्न होगा (चित्र 4 देखें)।


चित्र 4. परिणामी आवृत्ति को दोगुना करना (XSW = 2)

सादृश्य से, यदि आप हर दूसरे मान को नहीं, बल्कि हर तीसरे, चौथे, पांचवें (क्रमशः, चरण की चौड़ाई 3, 4, 5...), आदि को पढ़ते हैं। रेंज में एनसी आवृत्तियों को उत्पन्न करना संभव है। ध्यान दें कि उच्च आवृत्तियों के लिए परिणामी तरंग साइनसॉइडल नहीं होगी। हम रूपांतरण तालिका के अनुसार चरण की चौड़ाई को X SW के रूप में दर्शाते हैं, जहाँ

(5)

अगली पीडब्लूएम अवधि (जब टाइमर ओवरफ्लो हो जाता है) के लिए टीपी में वर्तमान स्थिति की गणना अभिव्यक्ति (6) का उपयोग करके की जाती है। X LUT स्थिति में नया मान चरण चौड़ाई X SW के योग के साथ X" LUT स्थिति में इसकी पिछली स्थिति पर निर्भर करता है

(6)

DTMF सिग्नल प्राप्त करने के लिए विभिन्न आवृत्तियों को जोड़ना

डीटीएमएफ सिग्नल अभिव्यक्ति (1) और (2) का उपयोग करके उत्पन्न किया जा सकता है। अंकगणितीय संक्रियाओं की सरलता के लिए, अंकगणितीय संक्रिया को तार्किक बदलाव से बदलने के लिए गुणांक K का मान 0.75 के बराबर लिया जाता है। अभिव्यक्ति (6) को ध्यान में रखते हुए, पीडब्लूएम नियंत्रण के लिए वर्तमान मूल्य की गणना अभिव्यक्ति द्वारा की जा सकती है:

और इस बात को ध्यान में रखते हुए कि X LUTa =X" LUTa + X SWa,X LUTb =X" LUTb + X SWb, हम अंततः लिखेंगे

डीटीएमएफ जनरेटर का कार्यान्वयन

यह परिशिष्ट 8-बिट पीडब्लूएम आउटपुट (ओसी1ए) और 128 साइन फ़ंक्शन (एनसी) नमूनों वाली एक तालिका का उपयोग करके डीटीएमएफ टोन जनरेटर के निर्माण की जांच करता है, प्रत्येक 7 बिट्स (एन) द्वारा निर्दिष्ट है। निम्नलिखित अभिव्यक्तियाँ इस निर्भरता को दर्शाती हैं और यह भी दिखाती हैं कि लुकअप तालिका प्रविष्टियों की गणना कैसे करें:

(9)

7 बिट्स का उपयोग करने का लाभ यह है कि उच्च और निम्न आवृत्ति सिग्नल मानों का योग आकार में एक बाइट है। डीटीएमएफ टोन के पूरे सेट का समर्थन करने के लिए, तालिका 1 से प्रत्येक डीटीएमएफ आवृत्ति के लिए 8 मानों की गणना की जानी चाहिए और लुकअप तालिका में दर्ज किया जाना चाहिए।

उच्च सटीकता प्राप्त करने के लिए, निम्नलिखित समाधान लागू किया गया था: अभिव्यक्ति 5 का उपयोग करके गणना किए गए मानों के लिए केवल 5 बाइट्स की आवश्यकता होती है। सभी 8 बाइट्स का उपयोग करने के लिए, जो राउंडिंग त्रुटियों को कम करेगा, इस मान को 8 से गुणा किया जाता है। लुकअप तालिका का सूचक उसी तरह लिखा जाता है। लेकिन इस मामले में 8 गुना मूल्य संग्रहीत करने में दो बाइट्स लगते हैं। इसका मतलब यह है कि इन बाइट्स को साइन तरंग मानों के सूचक के रूप में उपयोग करने से पहले 3 सही बदलाव और एक रेडिक्स एनसी मॉड्यूलस ऑपरेशन (एनसी -1 द्वारा तार्किक गुणन) किया जाना चाहिए।


चित्र 5. STK500 से कनेक्शन के लिए मॉड्यूल आरेख

PWM सिग्नल पिन OC1A (PD5) पर उत्पन्न होता है। एक अतिरिक्त आउटपुट फ़िल्टर सिग्नल को साइनसॉइडल तरंग के साथ अधिक सुसंगत बनाने में मदद करेगा। पीडब्लूएम आवृत्ति को कम करते समय, अच्छा परिणाम प्राप्त करने के लिए तेज़ आवृत्ति प्रतिक्रिया वाले फ़िल्टर का उपयोग करना आवश्यक हो सकता है।

कीबोर्ड कनेक्शन चित्र 1 में दिखाया गया है। कीबोर्ड का संचालन इस तरह से व्यवस्थित किया जाना चाहिए कि दबाई गई कुंजी का निर्धारण करना संभव हो। यह निम्नलिखित एल्गोरिथम का उपयोग करके किया जा सकता है:

  1. दबायी गयी कुंजी की स्ट्रिंग का निर्धारण
    • पोर्ट बी के लो-ऑर्डर नोटबुक को आउटपुट के रूप में कॉन्फ़िगर करें और लॉग सेट करें। "0"
    • पुल-अप रेसिस्टर्स के कनेक्शन के साथ पोर्ट बी के उच्च टेट्राड को इनपुट के रूप में कॉन्फ़िगर करें
    • दबाए गए बटन वाली रेखा को लॉग के साथ उच्चतम टेट्राड के अंक के रूप में परिभाषित किया गया है। "0"
  2. दबाए गए कुंजी कॉलम को परिभाषित करना
    • पोर्ट बी के हाई नोटबुक को आउटपुट के रूप में कॉन्फ़िगर करें और लॉग सेट करें। "0"
    • पुल-अप रेसिस्टर्स को जोड़कर पोर्ट बी के लो-ऑर्डर टेट्राड को इनपुट के रूप में कॉन्फ़िगर करें
    • दबाए गए बटन वाले कॉलम को लॉग के साथ निम्न-क्रम टेट्राड के अंक के रूप में परिभाषित किया गया है। "0"

नोट: STK200 में, प्रतिरोधक PORTB कनेक्टर पिन और माइक्रोकंट्रोलर पिन BP5, PB6 और PB7 के बीच श्रृंखला में जुड़े हुए हैं (STK200 आरेख देखें)। यदि कीबोर्ड PORTB कनेक्टर से जुड़ा है तो इससे समस्याएँ पैदा होंगी।

चित्र 6 दबायी गयी कुंजी को निर्धारित करने के लिए सबरूटीन के संचालन को दर्शाता है। दबायी गयी कुंजी के आधार पर, अंतराल की अवधि निर्धारित की जाती है। इंटरप्ट रूटीन दो DTM टोन साइन तरंगों के लिए PWM सेटिंग्स की गणना करने के लिए इस मान का उपयोग करता है। इंटरप्ट हैंडलिंग प्रक्रिया चित्र 7 और 8 में दिखाई गई है।

यह रूटीन अगली पीडब्लूएम अवधि के लिए टाइमर आउटपुट के साथ तुलना करने के लिए एक मान की गणना करता है। इंटरप्ट रूटीन पहले लुकअप तालिका में अगले नमूना मान की स्थिति की गणना करता है और वहां संग्रहीत मान को पढ़ता है।

लुकअप तालिका में नमूने की स्थिति पल्स चौड़ाई द्वारा निर्धारित की जाती है, और वास्तविक पल्स चौड़ाई उत्पन्न आवृत्ति द्वारा निर्धारित की जाती है।

टाइमर तुलना रजिस्टर में लिखा गया अंतिम मान सूत्र (7) का उपयोग करके निर्धारित किया जाता है, जो दोनों डीटीएमएफ आवृत्तियों के नमूना मूल्यों को ध्यान में रखता है।


चित्र 6. मुख्य कार्यक्रम का ब्लॉक आरेख


चित्र 7. टाइमर ओवरफ़्लो इंटरप्ट प्रोसेसिंग प्रक्रिया का ब्लॉक आरेख


चित्र 8. "गेटसैंपल" नमूना पढ़ने की प्रक्रिया का फ़्लोचार्ट

प्रकाशन: www.cxem.net

अन्य लेख देखेंअनुभाग।

इस एप्लिकेशन का पहला भाग बताता है कि एमएसपी430 माइक्रोकंट्रोलर का उपयोग करके डीटीएमएफ सिग्नल कैसे उत्पन्न किया जाए। इस मामले में उपयोग की जाने वाली सबसे महत्वपूर्ण विशिष्टताओं का स्पष्टीकरण दिया गया है, और उपयुक्त एनालॉग फिल्टर का उपयोग करके वर्ग तरंगों का उपयोग करके साइन तरंगें उत्पन्न करने का सैद्धांतिक और गणितीय औचित्य दिया गया है। उदाहरण में एमएसपी430 माइक्रोकंट्रोलर्स के विभिन्न टाइमर कॉन्फ़िगरेशन के आधार पर स्क्वायर वेव सिग्नल उत्पन्न करने के लिए परीक्षण किए गए डेमो प्रोग्राम भी शामिल हैं। अंतिम भाग वर्ग तरंग संकेतों से डीटीएमएफ सिग्नल उत्पन्न करने के लिए एक सर्किट आरेख प्रदान करता है।

2 डीटीएमएफ सिग्नल विशिष्टता

संक्षिप्त नाम DTMF का अर्थ "डुअल टोन मल्टी फ़्रीक्वेंसी" है और यह टेलीफोन लाइन जैसे एनालॉग संचार लाइनों पर संचारित करने के उद्देश्य से विभिन्न आवृत्तियों पर अंकों का प्रतिनिधित्व करने की एक विधि है। मानक विकसित करते समय, शर्त को ध्यान में रखा गया - सभी आवृत्तियों को "आवाज" सीमा में होना चाहिए, जिससे ट्रांसमिशन चैनल के लिए आवश्यकताओं को कम करना संभव हो गया। टेलीफोन नेटवर्क डायलिंग और अन्य जानकारी के लिए DTMF सिग्नल का उपयोग करते हैं। इस तथ्य के बावजूद कि पल्स डायलिंग विधि अभी भी व्यापक रूप से उपयोग की जाती है, जो कि मानक है, उदाहरण के लिए, जर्मनी में, डायलिंग का समय काफी बढ़ जाता है, जिससे संचार लाइनों पर अनुत्पादक भार बढ़ जाता है। इसके अलावा, कई अतिरिक्त संचार सेवाएँ केवल टोन डायलिंग का उपयोग करके ही संभव हैं। डीटीएमएफ विधि का उपयोग करके एन्कोडिंग करते समय, संख्या 0-9 और अक्षर A-D, */E और #/F दो आवृत्तियों के संयोजन का प्रतिनिधित्व करते हैं:

आवृत्ति 1209हर्ट्ज 1336हर्ट्ज़ 1477हर्ट्ज़ 1633हर्ट्ज़
697हर्ट्ज़ 1 2 3
770 हर्ट्ज 4 5 6 बी
852 हर्ट्ज 7 8 9 सी
941हर्ट्ज़ */इ 0 #/एफ डी

इस प्रणाली में, स्तंभ "ऊपरी" आवृत्ति समूह (हाई-समूह: 1209-1633 हर्ट्ज) से आवृत्ति का प्रतिनिधित्व करता है, और पंक्ति "निचले" आवृत्ति समूह (लो-समूह: 697-941 हर्ट्ज) से आवृत्ति का प्रतिनिधित्व करती है। . हार्मोनिक्स के प्रभाव को खत्म करने के लिए टोनल आवृत्तियों का चयन किया जाता है। आवृत्तियाँ एक दूसरे की गुणज नहीं हैं और अन्य आवृत्तियों को जोड़कर या घटाकर कोई डीटीएमएफ आवृत्ति प्राप्त नहीं की जा सकती है। डॉयचे टेलीकॉम नेटवर्क पर एक डायलर उत्पन्न करने के लिए, निम्नलिखित विशिष्टताओं की आवश्यकता होती है (ज़ुलासुंग्सवॉर्सक्रिफ्ट डेस बुंडेसमटेस फर पोस्ट अंड टेलीकॉम्युनिकेशन, BAPT 223 ZV 5 (संघीय डाक और दूरसंचार मंत्रालय की आधिकारिक विशिष्टता) से लिया गया है):

3 डीटीएमएफ सिग्नल उत्पन्न करें

जैसा कि ऊपर बताया गया है, डीटीएमएफ सिग्नल एनालॉग होते हैं और इसमें दो स्वतंत्र साइन तरंगें होती हैं। इस प्रकार, ऐसे सिग्नल केवल डिजिटल रूप से उत्पन्न करना संभव नहीं है। डिजिटल सिग्नल को एडीसी और/या एनालॉग फिल्टर का उपयोग करके आवश्यक साइन वेव फॉर्म में परिवर्तित किया जाना चाहिए।

3.1 वर्गाकार तरंगों का उपयोग कर पीढ़ी

यदि स्क्वायर वेव सिग्नल का उपयोग डीटीएमएफ सिग्नल उत्पन्न करने के लिए किया जाता है, तो सॉफ्टवेयर और हार्डवेयरकम से कम। अवधि T वाले किसी भी निरंतर संकेत को फूरियर श्रृंखला द्वारा दर्शाया जा सकता है जिसमें साइन और कोसाइन तरंगों का अनंत योग निम्नानुसार होता है:

जहां a0/2 सिग्नल का स्थिर घटक है। सबसे कम कोणीय आवृत्ति (w0) वाले योग तत्व को मुख्य (मौलिक) हार्मोनिक कहा जाता है, बाकी ओवरटोन या उच्च हार्मोनिक्स होते हैं।

माइक्रोकंट्रोलर का उपयोग करके कार्यान्वित किया जाने वाला सबसे सरल निरंतर सिग्नल एक वर्ग तरंग है, फूरियर श्रृंखला जिसके लिए फॉर्म है:

कुल सिग्नल में प्रत्येक आवृत्ति घटक का योगदान आयाम स्पेक्ट्रम द्वारा सबसे अच्छा प्रदर्शित होता है (चित्र 2 देखें):


चावल। 2: वर्गाकार तरंग सिग्नल का आयाम स्पेक्ट्रम

एनालॉग फिल्टर का उपयोग करते समय, डीसी घटक और उच्च हार्मोनिक्स को प्रभावी ढंग से दबा दिया जाता है, जबकि आउटपुट पर हमारे पास मूल वर्ग तरंग की आवृत्ति के बराबर आवृत्ति वाला एक साइनसॉइडल सिग्नल होता है।

3.2 सॉफ़्टवेयरविसर्प उत्पन्न करने के लिए

मेन्डर जनरेशन प्रोग्राम को निम्नलिखित आवश्यकताओं को पूरा करना होगा:

  • दो स्वतंत्र आयताकार संकेतों को संश्लेषित करने में सक्षम हो।
  • सिग्नलों को अलग करने के लिए, क्रमशः "ऊपरी" (हाई-ग्रुप) और "निचले" (लो-ग्रुप) आवृत्ति रेंज से सिग्नल उत्पन्न करने के लिए दो आउटपुट पिन की आवश्यकता होती है।
  • सॉफ़्टवेयर को लगभग 65 एमएस - 100 एमएस की सीमा में आवश्यक सिग्नल अवधि निर्धारित करने में सक्षम होना चाहिए।

एमएसपी430 श्रृंखला के माइक्रोकंट्रोलर में विभिन्न अंतर्निर्मित टाइमर होते हैं जो वर्ग तरंग सिग्नल उत्पन्न करने में सक्षम होते हैं। '31x/'32x परिवार दोनों वर्ग तरंग सिग्नल उत्पन्न करने के लिए 8-बिट टाइमर और टाइमर पोर्ट का उपयोग करता है। यह कार्यक्रम 1.048 मेगाहर्ट्ज के बराबर एमसीएलके आवृत्ति पर परीक्षण किया गया। '33x परिवार में टाइमर_ए टाइमर स्वतंत्र रूप से दोनों आवश्यक सिग्नल उत्पन्न कर सकता है। दूसरा प्रोग्राम वर्गाकार तरंगें उत्पन्न करने के लिए इस टाइमर का उपयोग करता है और किसी भी एमसीएलके आवृत्तियों के साथ काम करता है। दोनों कार्यक्रमों पर नीचे विस्तार से चर्चा की जाएगी।

3.2.1 8-बिट टाइमर और टाइमर पोर्ट का उपयोग करके वर्गाकार तरंगें उत्पन्न करना

चित्र में. 3 डीटीएमएफ सिग्नल उत्पन्न करने के लिए प्रारंभिक प्रक्रिया का फ़्लोचार्ट है। दो आवृत्तियों को संश्लेषित करने के लिए, टाइमर पोर्ट और 8-बिट टाइमर काउंटर का उपयोग किया जाता है। उनमें से प्रत्येक आवश्यक आवृत्तियों के सटीक संश्लेषण के लिए आवश्यक एक प्रोग्रामयोग्य काउंटर रजिस्टर है। यदि टाइमर-पोर्ट काउंटरों को एक 16-बिट टाइमर में कैस्केड किया जाता है और उससे क्लॉक किया जाता है सिस्टम आवृत्तिएमसीएलके, तो ऊपरी सीमा की आवृत्तियों को उच्च सटीकता के साथ उत्पन्न किया जा सकता है। जब कोई रुकावट आती है, तो संबंधित आउटपुट स्विच हो जाता है और दोनों 8-बिट काउंटर रजिस्टर रीसेट हो जाते हैं। अन्य कार्यों के लिए आंतरिक रजिस्टरों को सहेजने के लिए लोड किए गए मानों को रैम में दो वेरिएबल्स में संग्रहीत किया जाता है।

निम्न श्रेणी आवृत्तियाँ 8-बिट टाइमर द्वारा उत्पन्न होती हैं। चूंकि इस टाइमर का काउंटर रजिस्टर 8 बिट चौड़ा है, केवल हर तीसरे व्यवधान के कारण आवश्यक आउटपुट पिन पर स्तर में बदलाव होता है, जिससे समान आवृत्ति काउंटर उत्पन्न किया जा सकता है।

दो टाइमर आउटपुट - पोर्ट का उपयोग विभिन्न आवृत्तियों के दो मेन्डर्स बनाने के लिए किया जाता है।

चावल। 3 डीटीएमएफ सिग्नल उत्पन्न करने के लिए आरंभीकरण प्रक्रिया का फ़्लोचार्ट

आरंभीकरण प्रक्रिया केवल एक बार की जाती है। इसके पूरा होने के बाद, प्रेषित चरित्र का हेक्साडेसिमल मान रैम में वैश्विक चर से पढ़ा जाता है। एक बार जब दो तालिकाओं से उच्च और निम्न डीटीएमएफ टोन बनाने वाली दो आवृत्तियाँ उत्पन्न हो जाती हैं, तो दोनों टाइमर को प्रारंभ और प्रारंभ करना आवश्यक होता है। भेजने की अवधि को "निचली" आवृत्ति के आधे-चक्रों की गिनती करके नियंत्रित किया जाता है और एक अतिरिक्त तालिका से पढ़ा जाता है। इस प्रक्रिया के पूरा होने पर, आप मतदान समारोह में वापस आ जाते हैं। संबंधित इंटरप्ट हैंडलिंग रूटीन पोर्ट पिन को स्विच करते हैं। यह प्रक्रिया चित्र में प्रदर्शित की गई है। 4 और 5.

टाइमर-पोर्ट के कार्यों में केवल लॉग रिकॉर्ड करना शामिल है। पोर्ट आउटपुट पर स्तर और रैम से काउंटर को फिर से लोड करना, जबकि 8-बिट टाइमर के संचालन में थोड़ी अधिक जटिल संरचना होती है: इंटरप्ट के प्रत्येक इनपुट को काउंटर रजिस्टर द्वारा गिना जाता है। आउटपुट केवल तीन व्यवधानों के बाद ही स्थिति बदल सकता है। इसके अलावा, प्रत्येक आधे चक्र को भी गिना जाता है। पहुंचते ही उत्पादन रुक जाता है एक निश्चित राशिआधा चक्र.


चावल। 4 ब्लॉक - 8-बिट टाइमर (लो-ग्रुप) से इंटरप्ट सर्किट


चावल। 5 ब्लॉक - टाइमर-पोर्ट इंटरप्ट सर्किट (हाई-ग्रुप)

; कस्टम परिभाषाएँ FLLMPY समान 32; 1.048 मेगाहर्ट्ज टीसीएलके समकक्ष एफएलएलएमपीवाई*32768 पर आवृत्ति गुणक एफएलएल; टीसीएलके: एफएलएलएमपीवाई एक्स एफ क्वार्ट्ज डीएल ईक्यू 85; डीटीएमएफ सिग्नल अवधि (65..100 एमएस) LO_OUT 02 घंटे के बराबर; "निचली" आवृत्ति का आउटपुट HI_OUT 04h के बराबर; उच्च आवृत्ति आउटपुट RCOUNT eq r14; लंबाई काउंटर DTMF RTEMP eq r15; सेवा रजिस्टर.वैश्विक DTMF_NR ; रैम में वैश्विक चर; DTMF संख्या (0..F) के लिए; परिभाषाएँ RAM.even .bss DTMF_TL ; यहां तक ​​कि पता Alignment.bss DTMF_TH .bss DTMF_NR ; रैम में वैश्विक चर; DTMF संख्या के लिए (0..F).even ; 8-बिट टाइमर TCCTL EQU 42H TCPLD EQU 43H TCDAT EQU 44H के लिए परिभाषाएँ; यूनिवर्सल टाइमर पोर्ट TPCTL eq 04bh के लिए परिभाषाएँ; टाइमर-पोर्ट नियंत्रण TPCNT1 eq 04ch; टाइमर-पोर्ट काउंटर 1 टीपीसीएनटी2 ईक्यू 04डीएच; टाइमर-पोर्ट काउंटर 2 टीपीडी ईक्यू 04ईएच; टाइमर-पोर्ट डेटा TPE eq 04fh; टाइमर-पोर्ट-रिज़ॉल्यूशन.टेक्स्ट; DTMF आवृत्ति तालिकाएँ: तालिका में शामिल हैं; एक आधे चक्र के लिए एमसीएलके चक्रों की संख्या। ; "ऊपरी" आवृत्ति के लिए तालिका; सुधारात्मक संशोधन जोड़ा गया; व्यवधान DTMF_HI .word 0ffffh-(TCLK/(1336*2))+25 में प्रवेश के समय को ध्यान में रखना; 0 .शब्द 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 के लिए उच्च आवृत्ति; * .शब्द 0ffffh-(TCLK/(1477*2))+24 के लिए उच्च आवृत्ति; # के लिए उच्च आवृत्ति; "निचली" आवृत्ति DTMF_LO के लिए तालिका .बाइट 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)) के लिए कम आवृत्ति; *.बाइट 0ffh-(TCLK/(941*2*3)) के लिए कम आवृत्ति; # के लिए कम आवृत्ति; सिग्नल अवधि तालिका DTMF_L .बाइट 2*941*DL/1000; 0 .बाइट 2*697*डीएल/1000 के लिए अर्ध-चक्र; 1 .बाइट 2*697*डीएल/1000 के लिए अर्ध-चक्र; 2 .बाइट 2*697*डीएल/1000 के लिए आधा चक्र; 3 .बाइट 2*770*डीएल/1000 के लिए आधा चक्र; 4 .बाइट 2*770*डीएल/1000 के लिए आधा चक्र; 5 .बाइट 2*770*डीएल/1000 के लिए आधा चक्र; 6 .बाइट 2*852*डीएल/1000 के लिए आधा चक्र; 7 .बाइट 2*852*डीएल/1000 के लिए आधा चक्र; 8 .बाइट 2*852*डीएल/1000 के लिए आधा चक्र; 9 .बाइट 2*697*डीएल/1000 के लिए आधा चक्र; ए .बाइट 2*770*डीएल/1000 के लिए आधा चक्र; बी.बाइट 2*852*डीएल/1000 के लिए आधा चक्र; सी.बाइट 2*941*डीएल/1000 के लिए आधा चक्र; डी.बाइट 2*941*डीएल/1000 के लिए आधा चक्र; *.बाइट 2*941*डीएल/1000 के लिए अर्ध-चक्र; # के लिए आधा चक्र;********************************************* ********* ******************************* ; डीटीएमएफ-टीएक्स डीटीएमएफ सबरूटीन;******************************************** ******************************** DTMF_TX mov.b DTMF_NR,RTEMP ; नंबर को एक अस्थायी रजिस्टर mov.b DTMF_L(RTEMP),RCOUNT में संग्रहीत करें; अवधि काउंटर सहेजें; DTMF-Lo फ़्रीक्वेंसी mov.b #0a8h,&TCCTL के लिए 8-बिट टाइमर तैयार करें; एमसीएलके से घड़ी mov.b DTMF_LO(RTEMP),&TCPLD ; रजिस्टर की तैयारी; प्रीलोड mov.b #000,&TCDAT ; एक रजिस्टर से एक काउंटर लोड करना; प्रीलोड bis.b #008h,&IE1 ; व्यवधान सक्षम करें; 8-बिट टाइमर से; DTMF-Hi फ़्रीक्वेंसी rla r15 के लिए टाइमर पोर्ट तैयार करना; * 16-बिट तालिका mov DTMF_HI(RTEMP),&DTMF_TL के लिए 2; के लिए शब्द सहेजें ऊपरी आवृत्तिमूव #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 सक्षम करें; तीसरे इंटरप्ट रेटी पर जाएं टॉगल xor.b #LO_OUT,&TPD ; इनवर्ट डीटीएमएफ-लो आउटपुट मूव #003,आरटीईएमपी; 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; आउटपुट रेटी अक्षम करें; इंटरप्ट वेक्टर एड्रेस.सेक्ट "TP_VECT", 0ffe8h .word TP_INT ;टाइमर-पोर्ट .सेक्ट "TIM_VECT", 0fff8h .word TIM_8B ; 8-बिट टाइमर (P0.0)

3.2.2 1 टाइमर_ए का उपयोग करके वर्गाकार तरंगें उत्पन्न करना

यह DTMF सिग्नल जनरेशन रूटीन दोनों वांछित आवृत्तियों को वर्ग तरंगित करने के लिए केवल Timer_A का उपयोग करता है। असेंबली प्रक्रिया एमसीएलके आवृत्ति मान की परवाह किए बिना प्रोग्राम का उपयोग करने के लिए टाइमर के लिए उचित मानों की गणना करती है। आउटपुट सिग्नल की अवधि मिलीसेकंड में डीएल स्थिरांक द्वारा निर्दिष्ट की जाती है।

; हार्डवेयर परिभाषाएँ; FLLMPY .eq 32 ; 1.048 मेगाहर्ट्ज टीसीएलके पर आवृत्ति गुणक एफएलएल .eq FLLMPY*32768; टीसीएलके: एफएलएलएमपीवाई एक्स एफ क्वार्ट्ज डीएल .ईक्यू 82; एमएस में डीटीएमएफ सिग्नल अवधि; (65..100 एमएस) स्टैक .eq 600 घंटे; स्टैक आरंभीकरण पता; रैम परिभाषाएँ; एसटीडीटीएमएफ .eq 202h ; हाय और लो आवृत्ति स्थिति TIM32B .eq 204; टाइमर रजिस्टर एक्सटेंशन लंबाई .eq 206h; डीटीएमएफ अवधि काउंटर; .पाठ 0F000h ; कार्यक्रम का प्रारंभ पता; ; टाइमर_ए आरंभीकरण: एमसीएलके, सतत मोड, इंटरप्ट सक्षम; टाइमर आउटपुट मॉड्यूल तैयार करना टाइमर_ए एमसीएलके = 1.048 मेगाहर्ट्ज (स्वचालित); INIT MOV #STACK,SP; स्टैक पॉइंटर को आरंभ करना, कॉल #INITSR; गुणक को आरंभ करना; FLL आवृत्तियाँ और RAM MOV #ISMCLK+TAIE+CLR,&TACTL ; टाइमर प्रारंभ करना MOV.B #TA2+TA1,&P3SEL ; पोर्ट P3.5/4 CLR TIM32B पर आउटपुट TA2 और TA1; विस्तारित टाइमर रजिस्टर BIS #MCONT,&TACTL साफ़ करें; टाइमर प्रारंभ करें Timer_A EINT ; सामान्य व्यवधान MAINLOOP को सक्षम करता है...; मुख्य घेरा; ;कीप्रेस: ​​एसडीटीएमएफ में टेबल ऑफसेट शामिल है; उच्च और निम्न बाइट में 2 आवृत्तियों (0..6,0..6) के लिए; MOV&TAR,R5 ; तुरंत प्रारंभ करने के लिए: FDTMFLO,R5 जोड़ें; कम समय के लिए ऑफसेट MOV R5,&CCR1 ; 0.71ms MOV R5,&CCR2 के बाद पहला राज्य परिवर्तन; 1/(2x697) = 0.71ms MOV #OMT+CCIE,&CCTL1; आउटपुट व्युत्क्रम, बिट व्यवधान। MOV #OMT+CCIE,&CCTL2 ; इनवर्ट आउटपुट, इंटरप्ट बिट MOV.B STDTMF,R5; 82 एमएस काउंटर आरआरए आर5; निम्न आवृत्ति स्थिति परिवर्तनों की संख्या MOV.B DTMFL(R5),LENGTH ; सिग्नल अवधि के लिए... ; कार्यक्रम की निरंतरता; ; CCR0 से इंटरप्ट हैंडलर (यहां उपयोग नहीं किया गया); TIMMOD0 ... रेती ; ; कैप्चर-तुलना रजिस्टर 1..4 से हैंडलर को बाधित करें; TIM_HND जोड़ें &TAIV,पीसी ; अनुरोध को उच्चतम के साथ संसाधित करना; आरईटीआई प्राथमिकता; कोई व्यवधान अनुरोध नहीं: RETI JMP HCCR1; CCR1 (DTMF कम आवृत्ति) JMP HCCR2 से अनुरोध; CCR2 (DTMF उच्च आवृत्ति) JMP HCCR3 से अनुरोध; CCR3 JMP HCCR4 से अनुरोध; CCR4 से अनुरोध; टिमोव इंक टीआईएम32बी; टाइमर_ए को 32 बिट आरईटीआई तक विस्तारित करना; ; DTMF कम आवृत्ति: TA1 आउटपुट यूनिट 1 के आउटपुट को उलट देता है; सिग्नल की अवधि को नियंत्रित करने के लिए प्रत्येक स्थिति परिवर्तन को गिना जाता है; एचसीसीआर1 पुश आर5; प्रयुक्त रजिस्टरों को सहेजना MOV.B STDTMF,R5 ; निम्न आवृत्ति स्थिति DTMF ADD FDTMFLO(R5),&CCR1 ; अर्ध-चक्र अवधि DEC.B लंबाई जोड़ें; क्या डीएल सिग्नल की अवधि पूरी हो गई है? जेएनजेड टैरेट; नहीं; ; हाँ, DTMF सिग्नल रोकें: व्यवधान अक्षम करें; बीआईसी #ओएमआरएस+आउट+सीसीआईई,&सीसीटीएल1; TA1 BIC #OMRS+OUT+CCIE,&CCTL2 रीसेट करें; TA2 TARET POP R5 रीसेट करें; R5 RETI पुनर्स्थापित करें; रुकावट से वापसी; ; उच्च आवृत्ति DTMF: TA2 आउटपुट यूनिट 2 के आउटपुट को उलट देता है; एचसीसीआर2 पुश आर5; प्रयुक्त MOV रजिस्टरों को सहेजना। बी एसटीडीटीएमएफ+1,आर5 ; उच्च आवृत्ति स्थिति DTMF ADD FDTMFHI(R5),&CCR2 ; अर्ध-चक्र अवधि POP R5 जोड़ें; R5 RETI पुनर्स्थापित करें; रुकावट से वापसी; HCCR3 ... ;रजिस्टर CCR3 RETI HCCR4 द्वारा नियंत्रित कार्य ... ;रजिस्टर CCR4 RETI द्वारा नियंत्रित कार्य; ; डीटीएमएफ आवृत्ति तालिका: तालिका में शामिल है; प्रति आधा चक्र एमसीएलके चक्रों की संख्या। मानों के लिए समायोजित; असेंबली प्रक्रिया के दौरान प्रभावी आवृत्ति एमसीएलके; और न्यूनतम तक पूर्णांकित किया गया संभावित गलतीआवृत्तियाँ; FDTMFLO .शब्द ((TCLK/697)+1)/2 ; कम आवृत्ति DTMF 697Hz .word ((TCLK/770)+1)/2 ; 770Hz .शब्द ((TCLK/852)+1)/2 ; 852हर्ट्ज .शब्द ((टीसीएलके/941)+1)/2; 941हर्ट्ज एफडीटीएमएफएचआई .शब्द ((टीसीएलके/1209)+1)/2; उच्च आवृत्ति DTMF1209Hz .word ((TCLK/1336)+1)/2 ; 1336हर्ट्ज .शब्द ((टीसीएलके/1477)+1)/2; 1477 हर्ट्ज .वर्ड ((टीसीएलके/1633)+1)/2; 1633 हर्ट्ज; ; तालिका में डीएल सिग्नल (एमएस) की अवधि के लिए आधे-चक्रों की संख्या शामिल है। ; गिनती के लिए निचली DTMF आवृत्ति का उपयोग किया जाता है; डीटीएमएफएल .बाइट 2*697*डीएल/1000; अर्ध-चक्रों की संख्या.बाइट 2*770*डीएल/1000; एमएस.बाइट 2*852*डीएल/1000 में डीएल के लिए; .बाइट 2*941*डीएल/1000 ; ; .सेक्शन "TIMVEC",0FFF0h ; टाइमर इंटरप्ट वैक्टर टाइमर_ए .शब्द TIM_HND ; मॉड्यूल का वेक्टर 1..4 टाइमर.वर्ड TIMMOD0; टाइमर मॉड्यूल 0 वेक्टर.सेक्ट "INITVEC",0FFFEh; वेक्टर रीसेट.शब्द INIT

नीचे थोड़ा तेज़ समाधान दिया गया है। हालाँकि, इसके लिए अधिक RAM की आवश्यकता होती है क्योंकि... तालिकाओं से प्राप्त डेटा को हर बार पुनर्गणना नहीं किया जाता है, बल्कि संक्षेप में RAM DTMFLO और DTMFHI में संग्रहीत किया जाता है। रीडिंग टाइमर_ए टाइमर इंटरप्ट रूटीन से की जाती है। उपयोग की गई तालिकाएँ पिछले उदाहरण में दिखाई गई तालिकाओं के समान हैं।

FLLMPY .eq 32 ; 1.048 मेगाहर्ट्ज टीसीएलके पर आवृत्ति गुणक एफएलएल .eq FLLMPY*32768; टीसीएलके: एफएलएलएमपीवाई एक्स एफ क्वार्ट्ज डीएल .ईक्यू 82; डीटीएमएफ सिग्नल अवधि; एमएस में (65..100 एमएस) एसटीडीटीएमएफ .eq 202 घंटे; हाय और लो आवृत्ति स्थिति TIM32B .eq 204; टाइमर रजिस्टर एक्सटेंशन लंबाई .eq 206h; DTMF अवधि काउंटर DTMFLO .eq 208h; निचली आवृत्ति DTMFHI .eq 20Ah का आधा चक्र; ऊपरी आवृत्ति अर्ध-चक्र स्टैक .eq 600h; स्टैक इनिशियलाइज़ेशन एड्रेस.टेक्स्ट 0F000h; कार्यक्रम का प्रारंभ पता; टाइमर_ए आरंभीकरण: एमसीएलके, सतत मोड, इंटरप्ट सक्षम; टाइमर आउटपुट मॉड्यूल तैयार करना टाइमर_ए एमसीएलके = 1.048 मेगाहर्ट्ज (स्वचालित); आईएनआईटी मूव #स्टैक,एसपी; स्टैक पॉइंटर को प्रारंभ करना CALL #INITSR ; गुणक आरंभीकरण; FLL आवृत्तियाँ और RAM MOV #ISMCLK+TAIE+CLR,&TACTL ; प्रारंभ टाइमर MOV.B #TA2+TA1,&P3SEL ; पोर्ट P3.5/4 CLR TIM32B पर आउटपुट TA2 और TA1; विस्तारित टाइमर रजिस्टर BIS #MCONT,&TACTL को साफ़ करना; टाइमर शुरू करना Timer_A EINT; सामान्य व्यवधान MAINLOOP को सक्षम करता है...; मुख्य लूप; कीस्ट्रोक: एसडीटीएमएफ में टेबल ऑफसेट शामिल है; उच्च और निम्न बाइट में 2 आवृत्तियों (0..6,0..6) के लिए; MOV&TAR,R5 ; तुरंत शुरू करने के लिए FDTMFLO,R5 जोड़ें; कम समय के लिए ऑफसेट MOV R5,&CCR1 ; 0.71ms MOV R5,&CCR2 के बाद पहला राज्य परिवर्तन; 1/(2x697) = 0.71 एमएस; ; डीटीएमएफ आवृत्तियों के लिए दो चक्र गणना प्राप्त करें; MOV.B STDTMF+1,R5 ; उच्च आवृत्ति DTMF MOV FDTMFHI(R5),DTMFHI ; अर्ध-चक्र अवधि MOV.B STDTMF,R5 ; कम आवृत्ति DTMF MOV DTMFLO(R5),DTMFLO; अर्ध-चक्र अवधि; ; अवधि काउंटर आरआरए आर5 ; बाइट इंडेक्स MOV.B DTMFL(R5),LENGTH तैयार करें; निम्न आवृत्ति स्थिति परिवर्तनों की संख्या MOV #OMT+CCIE,&CCTL1 ; आउटपुट व्युत्क्रम, बिट व्यवधान। MOV #OMT+CCIE,&CCTL2 ; आउटपुट व्युत्क्रम, बिट व्यवधान। ... ; मुख्य लूप पर लौटें; ; CCR0 से इंटरप्ट हैंडलर (यहां उपयोग नहीं किया गया); TIMMOD0 ... रेती ; ; कैप्चर-तुलना रजिस्टर 1..4 से हैंडलर को बाधित करें; TIM_HND जोड़ें &TAIV,पीसी ; अनुरोध को उच्चतम के साथ संसाधित करना; आरईटीआई प्राथमिकता; कोई व्यवधान अनुरोध नहीं: RETI JMP HCCR1; CCR1 (DTMF कम आवृत्ति) JMP HCCR2 से अनुरोध; CCR2 (DTMF उच्च आवृत्ति) JMP HCCR3 से अनुरोध; CCR3 JMP HCCR4 से अनुरोध; CCR4 से अनुरोध; टिमोव इंक टीआईएम32बी; टाइमर_ए को 32 बिट आरईटीआई तक विस्तारित करना; ; DTMF कम आवृत्ति: TA1 आउटपुट यूनिट 1 के आउटपुट को उलट देता है; HCCR1 जोड़ें DTMFLO,&CCR1 ; अर्ध-चक्र अवधि DEC.B लंबाई जोड़ें; क्या डीएल सिग्नल की अवधि पूरी हो गई है? जेएनजेड टैरेट; नहीं; ; हाँ, DTMF सिग्नल रोकें: व्यवधान अक्षम करें; बीआईसी #ओएमआरएस+आउट+सीसीआईई,&सीसीटीएल1; TA1 BIC #OMRS+OUT+CCIE,&CCTL2 रीसेट करें; TA2 TARET RETI रीसेट करें; रुकावट से वापसी; उच्च आवृत्ति DTMF: TA2 आउटपुट यूनिट 2 के आउटपुट को उलट देता है; HCCR2 जोड़ें DTMFHI,&CCR2; अर्ध-चक्र अवधि RETI जोड़ें; रुकावट से वापसी; एचसीसीआर3. .. ;रजिस्टर CCR3 RETI HCCR4 द्वारा नियंत्रित कार्य... ;रजिस्टर CCR4 RETI द्वारा नियंत्रित कार्य; ; इंटरप्ट टेबल और वेक्टर पिछले उदाहरण में दिखाए गए समान हैं।

3.3 डीटीएमएफ सिग्नल उत्पन्न करने के लिए हार्डवेयर

जैसा कि ऊपर कहा गया है, आवृत्ति रेंज 200 हर्ट्ज.. 4600 हर्ट्ज में, ट्रांसमिशन आवृत्ति का सिग्नल स्तर बाहरी सिग्नल (शोर) के स्तर से कम से कम 20 डीबी ऊपर होना चाहिए। इसके अलावा, विनिर्देश के आधार पर, "ऊपरी" और "निचले" समूहों के संकेतों में अलग-अलग स्तर होने चाहिए, इसलिए प्रत्येक सिग्नल को अपने स्वयं के फ़िल्टर की आवश्यकता होती है। साइनसोइडल आवृत्ति आयाम फूरियर श्रृंखला से प्राप्त किया जा सकता है।

एनालॉग फ़िल्टर डिज़ाइन करते समय कटऑफ़ आवृत्तियों का चयन करने के लिए, आपको निम्नलिखित आवश्यकताओं का पालन करना होगा:

  • क्योंकि यह सुनिश्चित करना आवश्यक है कि "निचले" समूह की आवृत्तियों के "ऊपरी" समूह की आवृत्तियों के साथ किसी भी संयोजन की संभावना हो, समूह में निम्नतम और उच्चतम आवृत्तियों के बीच के स्तर में अंतर 3 डीबी से अधिक नहीं होना चाहिए;
  • समूह में सबसे कम आवृत्ति (एफ1) के लिए, हार्मोनिक दमन (3एफ1) 20 डीबी से अधिक खराब नहीं होना चाहिए। इस शर्त की पूर्ति समूह में कम आवृत्ति के लिए सबसे महत्वपूर्ण है, क्योंकि यह फ़िल्टर कटऑफ़ आवृत्ति से यथासंभव दूर है।

सूत्र क्रम n के बटरवर्थ हाई-पास फ़िल्टर के आउटपुट पर निरपेक्ष मान के वर्ग का वर्णन करता है:

यह सूत्र आवृत्ति पर बटरवर्थ हाई-पास फ़िल्टर लाभ की निर्भरता का प्रतिनिधित्व करता है। पैरामीटर fg और n क्रमशः फ़िल्टर की कटऑफ आवृत्ति और क्रम निर्धारित करते हैं।

सबसे पहले, उपरोक्त आवश्यकताओं के अनुपालन को ध्यान में रखते हुए, आवश्यक फ़िल्टर क्रम की गणना करना आवश्यक है।

पहली शर्त को पूरा करने के लिए, समूह में निम्नतम और उच्चतम आवृत्तियों के निरपेक्ष मानों के वर्गों का अनुपात 3 डीबी से अधिक नहीं होना चाहिए या:

यदि आवृत्तियों f1 और 3f1 के निरपेक्ष मानों के वर्गों का अनुपात 10/3 से अधिक है, तो दूसरी शर्त स्वचालित रूप से संतुष्ट हो जाएगी इस मामले मेंएक आयताकार सिग्नल में तीसरा हार्मोनिक 1/3 छोटा है (फूरियर श्रृंखला और चित्र 2 देखें):

दोनों समूहों की आवृत्तियों की गणना के परिणामस्वरूप, हमारे पास आवश्यक फ़िल्टर क्रम n=1.15 है। इस प्रकार, आवश्यकताओं को दूसरे क्रम के फ़िल्टर द्वारा संतुष्ट किया जाएगा, जिसे एक परिचालन एम्पलीफायर पर बनाया जा सकता है। यदि आप तीसरे क्रम के फ़िल्टर का उपयोग करते हैं, तो आपको केवल दो की आवश्यकता होगी अतिरिक्त तत्व. हालाँकि, इससे घटक मापदंडों के फैलाव की आवश्यकताएं कम हो जाएंगी। यदि कटऑफ आवृत्ति निम्नलिखित सीमाओं के भीतर है तो उपरोक्त दोनों आवश्यकताएं पूरी की जाएंगी:

निचला समूह एफजी>880 हर्ट्ज़ एफजी<1418 Гц
ऊपरी समूह एफजी>1527 हर्ट्ज़ एफजी<2460 Гц

यदि कटऑफ आवृत्ति न्यूनतम पर है, तो अधिकतम हार्मोनिक कमी होगी। हालाँकि, इस मामले में समूह में न्यूनतम और उच्चतम आवृत्तियों के बीच का अंतर 3 डीबी होगा। उच्चतम संभव कटऑफ आवृत्ति पर, स्तर का अंतर न्यूनतम है, लेकिन हार्मोनिक घटकों को केवल 20 डीबी द्वारा दबा दिया जाता है।

फ़िल्टर की गणना करते समय, हार्मोनिक दमन पर अधिक ध्यान दिया गया था; समूह के भीतर स्तर का अंतर 2 डीबी पर तय किया गया था। परिणामस्वरूप, कटऑफ़ आवृत्तियाँ 977 हर्ट्ज़ और 1695 हर्ट्ज़ हैं। परिणामी हार्मोनिक दमन आवश्यकताओं से काफी अधिक है। उपयोग किए गए घटकों के मापदंडों में प्रसार के साथ जुड़े कटऑफ आवृत्ति के विचलन के मामले में भी समूह में आवृत्ति स्तरों में अंतर आवश्यकताओं के भीतर है। फ़िल्टर तत्वों के मूल्यों की गणना करते समय, प्रतिरोधों का चयन E12 श्रृंखला के मानक मूल्यों से उनकी अधिकतम निकटता के आधार पर किया गया था।

फ़िल्टर आउटपुट पर, परिणाम दो साइनसॉइडल सिग्नल होते हैं जिनमें महत्वपूर्ण रूप से दबे हुए हार्मोनिक्स होते हैं। इन संकेतों को संयोजित करने के लिए, एक अतिरिक्त योजक पेश किया गया है।

इस प्रकार, केवल 3 ऑप-एम्प्स और कुछ निष्क्रिय तत्वों का उपयोग करके, हम महत्वपूर्ण कंप्यूटिंग संसाधनों का उपयोग किए बिना एक माइक्रोकंट्रोलर का उपयोग करके डीटीएमएफ सिग्नल उत्पन्न करने में सक्षम हैं।

सिम्युलेटर कार्यक्रमों का उपयोग करके अनुमानित मूल्यों की जाँच की गई। फ़िल्टर की प्रतिक्रिया गणना की गई आवृत्ति प्रतिक्रिया से बहुत बारीकी से मेल खाती है।


चावल। 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 पर निर्भर करता है, इस तत्व का मान बहुत छोटा नहीं होना चाहिए; अन्यथा, माइक्रोकंट्रोलर आउटपुट अतिभारित हो जाएगा और वर्गाकार तरंग विकृत हो जाएगी। इस मामले में, इंटरमॉड्यूलेशन विरूपण से उत्पन्न अतिरिक्त आवृत्तियों को सिग्नल में जोड़ा जाएगा, जो सिग्नल-टू-शोर अनुपात को नकारात्मक रूप से प्रभावित करेगा।

उच्च क्रम के फिल्टर का स्थानांतरण फ़ंक्शन अकेले निष्क्रिय घटकों का उपयोग करके प्राप्त नहीं किया जा सकता है।

इस प्रकार, दूसरे क्रम के फ़िल्टर में एक ऑप-एम्प होना चाहिए। प्रतिरोधों R1-1 और R1-2 का उपयोग करके सक्रिय फ़िल्टर लाभ 0.2 पर सेट किया गया है। जैसा कि आप देख सकते हैं, सिग्नल कुछ कमजोर हो गया है। ऑप-एम्प पर ओवरलोडिंग से बचने के लिए यह आवश्यक है, क्योंकि स्क्वायर वेव सिग्नल के मौलिक साइनसॉइडल हार्मोनिक का शिखर आयाम स्क्वायर वेव सिग्नल के आयाम से अधिक है (फूरियर श्रृंखला और चित्र 2 देखें)। एक अतिरिक्त योजक आवश्यक आउटपुट स्तर को समायोजित करता है। आयताकार सिग्नल के निरंतर घटक के कारण, ऑप-एम्प का ऑपरेटिंग बिंदु Vcc/2 के स्तर पर सेट होता है (फूरियर श्रृंखला और चित्र 2 भी देखें)। इस स्थिति में, स्थिर घटक को इनपुट डिवाइडर R1-1/R1-2 द्वारा समाप्त नहीं किया जा सकता है। डीसी वोल्टेज द्वारा ओएस सर्किट को अलग करने के लिए, कैपेसिटर सी 3 का उपयोग किया जाता है।

एनालॉग फ़िल्टर के प्रत्येक आउटपुट पर, क्रमशः ऊपरी और निचले आवृत्ति समूहों का एक संकेत उत्पन्न होता है। एक अतिरिक्त योजक में, ये संकेत जोड़े जाते हैं। इस सर्किट तत्व में, आप प्रतिरोधक R4 और R5 का उपयोग करके कुल सिग्नल और आउटपुट सिग्नल स्तर में "निचली" और "ऊपरी" आवृत्तियों के बीच संबंध निर्धारित कर सकते हैं। इस प्रकार, विभिन्न देशों में विभिन्न आवश्यकताओं के अनुरूप आउटपुट आयाम को आसानी से समायोजित किया जा सकता है।

घटक मूल्यों की गणना करते समय, संधारित्र मान, हमेशा की तरह, निश्चित थे, और अवरोधक मानों की गणना उनके अनुसार की गई थी। इस सर्किट में, मानक E12 श्रृंखला के कैपेसिटर और रेसिस्टर्स का उपयोग 10% के प्रसार के साथ किया गया था।

चित्र में. चित्र 10 एनालॉग फिल्टर और एक योजक का एक योजनाबद्ध आरेख दिखाता है:


चावल। 10: एक अतिरिक्त योजक के साथ एनालॉग फिल्टर का योजनाबद्ध आरेख

कैपेसिटर C1-1 और C1-2 Vcc/2 ऑपरेटिंग बिंदु पर दो सिग्नलों को एक साथ जोड़ते हैं। आपको इन तत्वों के लिए बहुत बड़े मानों का चयन नहीं करना चाहिए, क्योंकि वे कम-आवृत्ति सबहार्मोनिक्स को खत्म करने के लिए कम-पास फ़िल्टर तत्व हैं। फ़िल्टर कैपेसिटर C5 संदर्भ वोल्टेज शोर को समाप्त करता है। फीडबैक रेसिस्टर R6 के समानांतर जुड़ा एक अतिरिक्त कैपेसिटर C6 एक प्रथम-क्रम हाई-पास फ़िल्टर बनाता है। यदि सबसे कम फ़िल्टर कटऑफ आवृत्ति का चयन किया जाता है, तो उच्च-आवृत्ति इंटरमॉड्यूलेशन हस्तक्षेप के अतिरिक्त फ़िल्टरिंग से आउटपुट सिग्नल की गुणवत्ता में सुधार होता है, लेकिन "ऊपरी" समूह की उच्चतम आवृत्तियों में कुछ क्षीणन होगा। कुछ मामलों में, 1633 हर्ट्ज की उच्चतम डीटीएमएफ आवृत्ति उत्पन्न करना आवश्यक नहीं है क्योंकि इसका उपयोग केवल सेवा प्रतीक A-D बनाने के लिए किया जाता है, और फ़िल्टर कटऑफ आवृत्ति को कम करके सिग्नल-टू-शोर अनुपात में सुधार किया जा सकता है। इस प्रकार, कटऑफ आवृत्ति बढ़ने से उच्च-आवृत्ति हस्तक्षेप के स्तर में वृद्धि होती है, लेकिन साथ ही डीटीएमएफ सिग्नल के उच्चतम आवृत्ति घटकों पर नकारात्मक प्रभाव कम हो जाता है।

4 डीटीएमएफ ट्रांसमीटर सिग्नल के अध्ययन के परिणाम

नीचे दिए गए स्पेक्ट्रोग्राम (चित्र 11 और 12) विभिन्न आवृत्तियों पर डीटीएमएफ ट्रांसमीटर के आउटपुट सिग्नल दिखाते हैं। चित्र में. चित्र 11 प्रतीक "1" का आयाम स्पेक्ट्रम दिखाता है। इसके प्रसारण के लिए आवश्यक आवृत्तियाँ - 697 और 1207 हर्ट्ज - क्रमशः -10.5 डीबी और -8.5 डीबी के स्तर पर हैं। 2091 और 3621 हर्ट्ज़ पर हार्मोनिक्स लगभग 30 डीबी द्वारा दबा दिए जाते हैं। "डी" प्रतीक को प्रसारित करने के लिए, दो उच्चतम आवृत्तियाँ उत्पन्न होती हैं - 941 और 1633 हर्ट्ज। जैसे कि चित्र से देखा जा सकता है। 12, निम्न आवृत्ति स्तर -12 डीबी है, उच्च आवृत्ति स्तर -11 डीबी है। संबंधित हार्मोनिक्स 30 डीबी से अधिक क्षीण हो जाते हैं। इस प्रकार, मापा गया मान सिमुलेशन परिणामों और विनिर्देश आवश्यकताओं के अनुरूप है।


चावल। 11: प्रतीक "1" का आयाम स्पेक्ट्रम: 697 और 1207 हर्ट्ज़


चावल। 12: प्रतीक "डी" का आयाम स्पेक्ट्रम: 941 और 1633 हर्ट्ज

दो अलग-अलग टाइमर का उपयोग करते समय उत्पन्न वर्ग तरंग संकेतों की पूर्ण आवृत्ति सटीकता प्राप्त नहीं की जा सकती है; परिणाम दो आवृत्तियों के संयोजन और उपयोग किए गए टाइमर के प्रकार पर निर्भर करेगा। इसका कारण टाइमर व्यवधान विरोध है। हालाँकि, ±1.8% की आवश्यक सटीकता बड़े अंतर से पूरी की जाती है।

यदि 8-बिट टाइमर और टाइमर पोर्ट टाइमर का उपयोग एमसीएलके 1.048 मेगाहर्ट्ज की सिस्टम आवृत्ति पर किया जाता है, तो "निचले" समूह की आवृत्तियों को 0.3% से अधिक की सटीकता के साथ उत्पन्न किया जाता है। व्यवहार में, "ऊपरी" समूह की आवृत्तियों के लिए, 0.5% से अधिक का विचलन प्राप्त नहीं हुआ था।

एकमात्र अपवाद डीटीएमएफ वर्ण "डी" है, जिसके लिए उच्चतम आवृत्तियाँ उत्पन्न होती हैं। परिणामस्वरूप, इस संयोजन में "ऊपरी" समूह 1633 हर्ट्ज की आवृत्ति में -0.97% का विचलन होता है।

इस अपवाद के बिना, 1633 हर्ट्ज की उच्चतम आवृत्ति भी 0.5% से बेहतर सटीकता के साथ उत्पन्न होती है। विभिन्न आवृत्तियों के लिए अधिकतम विचलन तालिका में दिए गए हैं:

यदि टाइमर_ए का उपयोग आवृत्तियों को उत्पन्न करने के लिए किया जाता है, तो त्रुटि उपयोग की गई एमसीएलके आवृत्ति पर निर्भर करेगी:

एमसीएलके, मेगाहर्ट्ज 1,048 2,096 3,144 3,800
गुणक एफएलएल 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% सीपीयू संसाधन पर कब्जा कर लेता है। ऐसे मामले में जब टाइमर_ए टाइमर द्वारा आवृत्तियां उत्पन्न की जाती हैं, तो इंटरप्ट रूटीन को संसाधित करने के लिए सीपीयू लोड 6% तक कम हो जाता है। परिणामस्वरूप, डीटीएमएफ सिग्नल प्रसारित होने के दौरान अन्य कार्य चल सकते हैं, या वर्तमान खपत को कम करने के लिए सीपीयू को कम-पावर मोड में रखा जा सकता है।

स्क्वायर वेव सिग्नल का उपयोग करके डीटीएमएफ सिग्नल उत्पन्न करने के लिए वर्णित मॉड्यूल की अच्छी कार्यक्षमता हार्डवेयर सर्किट डिजाइन द्वारा प्रदर्शित की जाती है। क्योंकि सर्किट में मापदंडों की एक विस्तृत श्रृंखला के साथ घटकों का उपयोग करना संभव है; ऐसे समाधान की कीमत बहुत कम है; सभी विशिष्ट आवश्यकताओं को काफी हद तक पूरा किया जाता है, इसलिए नियंत्रण नियंत्रक के रूप में एमएसपी430 का उपयोग करने वाले उपकरणों में एक अलग डीटीएमएफ सिग्नल जनरेटर मॉड्यूल की आवश्यकता नहीं होती है।

यदि किसी विशेष मामले में सिग्नल-टू-शोर अनुपात को बढ़ाना आवश्यक है, तो अतिरिक्त ऑप-एम्प का उपयोग करके, इंटरमॉड्यूलेशन विरूपण को और दबाने के लिए एक फिल्टर का निर्माण किया जा सकता है। ऐसा अतिरिक्त परिचालन एम्पलीफायर DIL14 पैकेज में क्वाड ऑप-एम्प में पहले से मौजूद है।

6 लिंक

बुंडेसमट फर पोस्ट अंड टेलीकॉम्युनिकेशन (डाक और दूरसंचार के लिए संघीय कार्यालय): BAPT 223 ZV 5, Zulassungsvorschrift फर Endeinrichtungen zur Anschaltung an Analog Wahlanschlusse (ausgenommen Notruf- und Durchwahlanschlusse) des Telefonnetzes (एनालॉग टेलीफोन लाइनों से जुड़े टर्मिनल उपकरणों के लिए आधिकारिक विनिर्देश, को छोड़कर) सुरक्षा और कॉल आवश्यकताएँ) / डॉयचे बुंडेसपोस्ट टेलीकॉम का आईएसडीएन; बुंडेसमिनिस्टेरियम फर पोस्ट अंड टेलीकम्यूनिकेशन, ड्राफ्ट, बॉन अप्रैल 1994 पापुला: गणित फर इंजेनिअर 2 (इंजीनियरों के लिए गणित); व्यूएग वेरलाग, ब्राउनश्वेग 1990 टिट्ज़/शेंक: हैलब्लेइटर्सचाल्टुंगस्टेक्निक; (टिट्ज़/शेंक, सेमीकंडक्टर सर्किट इंजीनियरिंग), 10वां संस्करण; स्प्रिंगर वेरलाग, बर्लिन 1993 लुत्ज़ बियर्ल / टेक्सास इंस्ट्रूमेंट्स: एमएसपी430 फैमिली, मीटरिंग एप्लीकेशन रिपोर्ट, टेक्सास इंस्ट्रूमेंट्स, अंक 2.1, जनवरी 1997, एसएलएएई10बी टेक्सास इंस्ट्रूमेंट्स: एमएसपी430 फैमिली, आर्किटेक्चर यूजर गाइड और मॉड्यूल लाइब्रेरी, टेक्सास इंस्ट्रूमेंट्स, 1996, एसएलएयूई10बी टेक्सास इंस्ट्रूमेंट्स: एमएसपी430 फैमिली, सॉफ्टवेयर यूजर गाइड, टेक्सास इंस्ट्रूमेंट्स, 1996 टेक्सास इंस्ट्रूमेंट्स: एमएसपी430 फैमिली, असेंबली लैंग्वेज टूल्स यूजर गाइड, टेक्सास इंस्ट्रूमेंट्स, 1996 सिवी, रॉबर्ट: माइक्रोकंट्रोलर एमएसपी430 (डेवलपमेंट) के साथ सिस्टमेंटविकलंग ईनर टेलीकॉम-एप्लिकेशन सेंडन एंड एम्पफैंगेन वॉन डीटीएमएफ-सिग्नलेन। एमएसपी430 माइक्रोकंट्रोलर पर आधारित डिजिटल सिग्नल प्राप्त करने और प्रसारित करने के लिए दूरसंचार प्रणाली); डिप्लोमरबीट, फछोचस्चुले लैंडशूट, मई 1997

सरल उपकरणों के विषय पर, मैंने उसी ATtiny2313 का उपयोग करके DTMF सिग्नल जनरेटर को इकट्ठा करने का निर्णय लिया। जो लोग नहीं जानते उनके लिए, DTMF (डुअल-टोन मल्टी-फ़्रीक्वेंसी) एक दो-टोन मल्टी-फ़्रीक्वेंसी एनालॉग सिग्नल है जिसका उपयोग टेलीफोन नंबर डायल करने के लिए किया जाता है। विकिपीडिया पढ़ें.

इस तरह के उपकरण को इकट्ठा करने का निर्णय एक माइक्रोकंट्रोलर का उपयोग करके जटिल एनालॉग संकेतों को लागू करने की इच्छा से तय किया गया था। इस उपकरण के लिए किसी व्यावहारिक अनुप्रयोग की योजना नहीं बनाई गई थी, लेकिन शायद किसी को ऐसा उपकरण उपयोगी लगेगा? इसका इस्तेमाल करें!

डीटीएमएफ जनरेटर स्रोत


अब देखते हैं हमें क्या मिला.

सिग्नल PWM का उपयोग करके उत्पन्न किया जाता है और इसे वांछित आकार देने के लिए RC सर्किट का उपयोग किया जाता है। परिणामस्वरूप, आरसी श्रृंखला के बाद, हमें निम्नलिखित संकेत मिलता है (बटन 6 दबाया जाता है):

उपयोगी सिग्नल के पूरे वक्र के साथ, हम एक उच्च-आवृत्ति कंघी का निरीक्षण करते हैं (आवृत्ति श्रव्य से अधिक है, इसलिए यह शोर पैदा नहीं करेगी) - यह आरसी सर्किट का काम है। आप संधारित्र की धारिता या अवरोधक के प्रतिरोध को बढ़ाकर लाइन को चिकना बना सकते हैं, लेकिन इस मामले में उपयोगी सिग्नल की सीमा काफी कम हो जाएगी।

हम सिग्नल के स्पेक्ट्रम को देखते हैं और सुनिश्चित करते हैं कि दो अलग-अलग आवृत्तियाँ हैं (पीडब्लूएम आवृत्ति डिस्प्ले क्षेत्र के बाहर चली गई है), जिसका अर्थ है कि सब कुछ ठीक है - डिवाइस उसी तरह काम करता है जैसे उसे करना चाहिए।

तैयार समाधान

DTMF सिग्नल उत्पन्न करने और डिकोड करने के कार्यों के लिए तैयार समाधान मौजूद हैं। यहां इन माइक्रो-सर्किट के लिए कुछ डेटाशीट दी गई हैं।

डीटीएमएफ जनरेटर
- डीटीएमएफ डिकोडर


पी.एस.यह अफ़सोस की बात है कि ATtiny2313 में ADC नहीं है - आप DTMF डिकोडर का भी उपयोग कर सकते हैं! लेकिन यह ठीक है, मैं इसे मेगा पर दोहराऊंगा, मैं इसे निश्चित रूप से संलग्न करूंगा।

(6,868 बार देखा गया, आज 1 दौरा)