Двутональний багаточастотний (DTMF) генератор на AVR. Генерація та розпізнавання DTMF-сигналів Мікросхема генератор тональних dtmf сигналів

Головна / Основний функціонал

Винахід відноситься до області генерації цифровими методами двотональних частотних сигналів (DTMF), призначених для передачі даних, наприклад, в області телефонії. Технічний результат, що досягається - зменшення кількості надлишкових схемних елементів, підвищення економічної ефективності. Генератор DTMF сигналів, що реалізує Спосіб генерації DTMF сигналів, містить два накопичувальні суматори, два фіксуючих регістра, два запам'ятовуючі пристрої, підсумковий суматор, цифроаналоговий перетворювач, перетворювач кодів DTMF сигналів у послідовності цілих чисел, дільник задає частоти генератора DTMF сигналів кодів DTMF сигналів код коефіцієнта поділу. 2 с. та 3 з.п. ф-ли, 2 іл.

Винахід відноситься до способів генерації цифровими методами DTMF (двотональних частотних) сигналів, призначеним для передачі даних, наприклад, в області телефонії при тонально-частотному наборі номера. патент США № 5034977 від 04.04.89 р., опубл. 23.07.91 р., М.кл. 5 Н 04 М 1/00. Відомий спосіб генерації DTMF сигналів включає вибір першого і другого кодів кутів дискретизації, відповідних першої та другої частоти складових DTMF сигналу, накопичувальне підсумовування окремо першого і другого кодів кутів дискретизації з відповідно періодично фіксуються, з періодом, частоті дискретизації, першим і другим результатами накопичувального сумування, отримання першого і другого дискретних значень складових DTMF сигналу, що зберігаються в адресно розташованих клітинках відповідних таблиць дискретних значень складових DTMF сигналу, шляхом зчитування з відповідних таблиць за адресами першого та другого дискретних значень складових DTMF сигналу для отримання третього дискретного значення, що відповідає значенню DTMF сигналу. Відомий спосіб генерації DTMF сигналів полягає в наступному: F сигналу за допомогою першого перетворення кодів DTMF сигналів вибирається перший код, що визначає кут дискретизації сигналу з частотою, що відповідає групі верхніх частот - стовпців, а за допомогою другого перетворення кодів DTMF сигналів вибирається другий код, що визначає кут дискретизації сигналу з частотою, що відповідає групі нижніх частот - рядків , періодично, з періодом, що відповідає тактовій частоті дискретизації, перший код кута дискретизації підсумовується у відповідному накопичувальному суматорі і фіксується у відповідному регістрі, на виході якого знаходиться результат, значення якого відповідає адресі осередку таблиці, що зберігається у відповідному постійному запам'ятовуючому пристрої дискретні значення синусів, що визначають верхню частоту DTMF сигналу таким же чином, періодично, з періодом, що відповідає тактовій частоті дискретизації, другий код кута дискретизації підсумовується у відповідному накопичувачі м суматорі і фіксується у відповідному регістрі, на виході якого знаходиться результат, значення якого відповідає адресі комірки таблиці, що зберігається у відповідному постійному запам'ятовуючому пристрої і в якій знаходяться відповідні дискретні значення синусів, що визначають нижню частоту DTMF сигналу, дискретні значення синусів, що визначають верхню частоти DTMF сигналу, сумуються в підсумковому суматорі, визначаючи дискретне значення сигналу DTMF і через цифроаналогове перетворення подаються на вихід, формуючи ступінчасто-синусоїдальний сигнал DTMF, відповідний вхідному коду DTMF сигналу. Відомий спосіб є низькоефективним, що зумовлено його низькими техніко-економічними показниками і технологічними показниками.Техніко-економічні показники визначаються необхідними витратами при реалізації способу досягнення необхідних параметрів, що пред'являються до DTMF сигналів. У відомому способі точність генерації частот залежить від розрядності коду, що відповідає куту дискретизації, що вимагає наявності великої розрядності накопичувального суматора, що ускладнює реалізацію способу простими апаратними засобами. А саме, код кута дискретизації у відомому способі визначається виразом K = (F / F т) 32 ..., (1.1) де К - код, відповідний куту дискретизації; F - генерована частота; F т - частота дискретизації. Як видно, точність генерованої частоти однозначно залежить від відношення генерованої та частоти дискретизації. Для досягнення необхідної точності генерованої частоти, а саме, не гірше 1,5%, очевидно, потрібно не менше двох значущих цифр після коми, що вимагає подання даних з розрядністю для нижніх частот не менше 8 біт, а верхніх частот щонайменше 9 біт, а накопичувального підсумовування відповідно щонайменше 12 біт, що веде збільшення кількості комплектуючих елементів пристроїв, реалізують відомий метод. Відомі пристрої для реалізації відомого способу, а саме суматори, регістри, постійні пристрої, що запам'ятовують, мають входи/виходи з розрядністю 4 і 8 біт. Тому за більшої розрядності потрібні додаткові техніко-економічні витрати при реалізації рівнофункціональних пристроїв. При цьому у відомому способі зменшення кількості розрядів після коми призводить до похибки частоти, що перевищує допустиму. Широкопоширені мікроконторолери, що застосовуються в телефонії та телеметричних вимірюваннях, використовують 8-бітові дані та 8-бітовий арифметико-логічний пристрій, що вимагає при реалізації відомого способу додаткових обчислювальних операцій, пов'язаних з підсумовуванням даних, з розрядністю більше 8 біт, та аналізом сигналу переносу, що збільшує число команд і, відповідно, тактову частоту мікроконтролера, а також обсяг оперативної пам'яті мікроконтролера, що веде до подорожчання пристроїв, що використовують відомий спосіб генерації сигналів DTMF. Даний висновок наведено при аналізі застосування відомого способу в тональному номеронабирачі на базі мікроконтролерів виробництва фірм Atmel, Microchip tnс та ін. , так як має обмеження при використанні способу, в тому числі у складі мікроконтролерів широкого застосування, що виражається в підвищених технічних характеристиках, що пред'являються до мікроконтролерів, що знижує їх багатофункціональність. сигналів, представлений у патенті № 5034977 від 04.04.89 р., опубл. 23.07.91 р., М.кл. 5 Н 04 М 1/00. Відомий генератор DTMF сигналів включає: перший накопичувач з входом першого фіксуючого регістру, вихід першого фіксуючого регістру з'єднаний з входом першого запам'ятовуючого пристрою, а також з одним із входів першого накопичувального суматора, вихід першого запам'ятовуючого пристрою з'єднаний з одним із входів підсумкового суматора, вихід другого накопичувального суматора з'єднаний з входом другого фіксуючого регістру, вихід другого фіксуючого регістру з'єднаний з входом другого запам'ятовуючого пристрою, а також з одним із входів другого накопичувального суматора, вихід другого запам'ятовуючого пристрою з'єднаний з іншим входом підсумкового суматора, вихід підсумкового суматора з'єднаний з входом цифроана логового перетворювача, вихід якого є виходом генератора DTMF сигналів. Відомий генератор містить також перший перетворювач кодів DTMF сигналів у відповідні коди кутів дискретизації, відповід вихід першого перетворювача кодів DTMF сигналів з'єднаний з іншим входом першого накопичувального суматора, вихід другого перетворювача кодів DTMF сигналів з'єднаний з іншим входом другого накопичувального суматора, входи першого і другого перетворювачів кодів DTMF сигналів є входами генератора DTMF сигналів, а тактові входи першого з'єднані між собою та є входом тактової частоти дискретизації генератора DTMF сигналів. Відомий генератор DTMF сигналів забезпечує низький технічний результат, зумовлений надмірною кількістю схемних елементів, пов'язаних з різною, а також надмірною розрядністю однаково функціональних елементів. Крім того, реалізація відомого технічного рішення ефективно можлива у вигляді окремої інтегральної мікросхеми, проте це вимагає організації спеціалізованого виробництва, але з огляду на те, що генератори DTMF сигналів є частиною багатофункціональних пристроїв (телефонні апарати з розширеними можливостями, пристрої передачі телеметричної інформації по телефонних лініях тощо). д.), що реалізуються в даний час на базі універсальних мікроконтролерів, виробництво окремих мікросхем DTMF сигналів економічно неефективне. способу з високими техніко-економічними показниками, обумовленими зменшенням розрядності однотипних операцій, високими технологічними показниками, при реалізації способу, як у схемотехнічному виконанні простими апаратними засобами, так і у складі багатофункціонального мікроконтролера, пов'язана з повторюваністю, при реалізації однаково функціональних елементів. кількості надлишкових схемних елементів, і відповідно підвищується економічна ефективність, пов'язана з можливістю реалізації технічного рішення, що заявляється широкодоступними засобами. сигналу, накопичувальне підсумовування окремо першого і другого кодів кутів дискретизації з відповідно періодично фіксуються, з періодом, що відповідає тактовій частоті дискретизації, першим і другим результатами на копітельного підсумовування, отримання першого і другого дискретних значень складових DTMF сигналу, сигналу для отримання третього дискретного значення, що відповідає значенню DTMF сигналу, новим є те, що отримання першого і другого дискретних значень складових DTMF сигналу, що зберігаються в адресно розташованих осередках відповідних таблиць дискретних значень складових DTMF сигналу, проводиться шляхом зчитування з відповідних таблиць результатам накопичувального підсумовування відповідно до першої та другої послідовностей цілих чисел, усереднене значення яких відповідає кодам кутів дискретизації, відповідних складовим DTMF сигналу. Крім того, усереднене значення послідовності цілих чисел, що формують результат накопичувального підсумовування, може бути середнім арифметичним цих чисел. вирішується також тим, що у відомому генераторі DTMF сигналів, що включає перший накопичувальний суматор, перший фіксуючий регістр, перше запам'ятовуючий пристрій, другий накопичувальний суматор, другий фіксуючий регістр, друге запам'ятовуючий пристрій, підсумковий суматор, цифроаналоговий перетворювач, причому вихід першого накопичувального суматора першого фіксуючого регістру, вихід першого фіксуючого регістру з'єднаний з входом першого запам'ятовуючого пристрою, а також з одним із входів першого накопичувального суматора, вихід першого запам'ятовуючого пристрою з'єднаний з одним із входів у підсумкового суматора, вихід другого накопичувального суматора з'єднаний з входом другого фіксуючого регістру, вихід другого фіксуючого регістру з'єднаний з входом другого накопичувача, а також з одним з входів другого накопичувального суматора, вихід другого запам'ятовуючого пристрою з'єднаний з іншим входом підсумкового суматора з'єднаний з входом цифроаналогового перетворювача, вихід якого є виходом генератора DTMF сигналів, новим, згідно винаходу, є те, що генератор DTMF сигналів додатково містить перетворювач кодів DTMF сигналів у послідовності цілих чисел, дільник частоти генератора DTMF сигналів, що задає, з регульованим коефіцієнтом поділу, перетворювач кодів DTMF сигналів в код коефіцієнта поділу, причому перший вихід перетворювача кодів DTMF сигналів у послідовності цілих чисел з'єднаний з іншим входом першого накопичувального суматора, другий вихід перетворювача кодів DTMF сигналів ледовательности цілих чисел з'єднаний з іншим входом другого накопичувального суматора, вихід дільника задаючої частоти генератора DTMF сигналів в послідовності цілих чисел, а також з тактовим входом першого фіксуючого регістру і такт вихід перетворювача кодів DTMF сигналів в код коефіцієнта поділу з'єднаний з входом установки коефіцієнта розподілу коду в код з'єднаний із входом перетворювача кодів DTMF сигналів у послідовності цілих чисел і є входом генератора DTMF сигналів. Крім того, перетворювач кодів DTMF сигналів у послідовності цілих чисел може бути виконаний у вигляді керованого програмованого запам'ятовуючого пристрою, пам'ять якого складається з відповідних кількості DTMF сигналів, областей пам'яті, що складаються з відповідних довжині послідовності цілих чисел, осередків пам'яті, виконаних так, що в одній половині комірки пам'яті зберігається число, що відноситься до першої послідовності цілих чисел, а в іншій половині комірки пам'яті зберігається число, що відноситься, відповідно, до іншої послідовності цілих чисел, що є складовими відповідних накопичувальних суматорів, а управління програмованим запам'ятовуючим пристроєм виконано з можливістю роздільної здатності області пам'яті і окремої комірки пам'яті. печується новий необхідний технічний результат. Причинно-наслідковий зв'язок між сукупністю ознак заявляється способу і досягається технічним результатом пояснюється наступним. Для розкриття суті запропонованого технічного рішення зручними будуть наступні викладки: y (P) = sin (n) (1.2), де y (P ) - дискретне значення функції синуса; = wT = 27F / Fr (1.3) - кут дискретизації, що вимірюється в радіанах; n - порядковий номер вибірки - дискрета; пристрої; kd - регульований коефіцієнт поділу. Тоді = 2FК D / F OSC. (1.4)Як загальновідомо, функція синуса періодична з періодом 2. Щоб перетворити кут дискретизації з радіан у відносні одиниці та отримати код кута дискретизації, розбиваємо весь період на m частин, де m – ціле двійкове число. Таким чином, отримаємо одну мінімальну дискретну частину періоду = 2/m. (1.5)Код кута дискретизації - це відносне значення кута дискретизації відповідно до однієї частини періоду, а саме,К=/=2F/F т:2P/m=Fm/F т. (1.6)Наприклад, для генерованих частот 1477 Гц і 697 Гц (відповідає коду DTMF сигналу “3”), при m=64, і тактової частоти F т =32768 ГцК 697 =1,36;K l477 =2,88.Очевидно, що для двійкового відображення коду кута дискретизації =1,36 відповідно 136 потрібно 8 біт (1281+640+320+160+81+40+20+10), а До 1477 =2,88 відповідно 288 потрібно 9 біт (2561+1280+640+321+ 160+80+40+ 20+10).При цьому для накопичувального підсумовування відповідно у двійковому поданні потрібно 12 біт, що визначило вищеописані недоліки відомого рішення. Пропоноване технічне рішення визначає, наприклад, число 1,36 як усереднене значення послідовності цілих чисел 1 і 2, а саме 1,36=(1х+2у)/(х+у), де х та у - відповідно кількість чисел 1 та 2 , періодично повторюваних з періодом (х + у). Значення коду кута дискретизації складається з цілої частини Ц і дробової, тобто. наприклад, 1,36 = 1 +0,36. Відносна точність такої заміни відповідно до виразу (1.7)=К/Ц (1.7) підвищується зі збільшенням цілої частини значення коду кута дискретизації. Наприклад, для генерованої частоти 697 Гц, m=64, і тактової частоти F т =32768 Гц похибка заміни До 697 =1,36 значення чисел 1 і 2 відповідно 36 і 32%.В той же час, якщо збільшити значення m= 256, то похибка заміни До 697 =5,45 значення чисел 5 і 6 відповідно зменшується 9 і 10%.При цьому похибка генерованої частоти, наприклад, при заміні К 697 =5,45 значення чисел 5 і 6 при періоді повторення, рівному 16, 5,45=(5х+6у)/(х+у),де (х+у)=16.Вирішаючи рівняння, отримаємо х=9, у=7, тобто. з шістнадцяти операцій накопичувального підсумовування дев'ять разів сумується доданок 5 і сім разів доданок 6, при цьому фактично До 697 =5,4375, підставляючи це значення у вираз (1.6) для m=256, F т =32768 Гц, визначимо фактичне розрахункове значення генерованої частоти F=696 Гц, при цьому похибка залишила 0,1%. Таким чином, накопичувальне підсумовування послідовності цілих чисел, усереднене значення яких відповідає відповідним кутам дискретизації, дозволяє досягти високих техніко-економічних показників за рахунок зменшення розрядності операцій накопичувального підсумовування, обумовлених можливістю складовими вищенаведених виразів, і відповідно зменшення розрядності пристроїв, що реалізують пропонований спосіб, що веде до зменшення апаратних та енергетичних витрат при реалізації способу, та забезпечити високі технологічні показники пропонованого способу при використанні в багатофункціональних пристроях, обумовлених зниженим і технічними вимогами. Причинно-наслідковий зв'язок між сукупністю ознак заявляється технічного рішення і досягається технічним результатом пояснюється наступним. Високий технічний результат генератора DTMF сигналів забезпечується введенням нових елементів перетворювача кодів DTMF сигналів в послідовності цілих чисел , перетворювача кодів DTMF сигналів код коефіцієнта дільника, які забезпечують реалізацію способу схемотехнічними елементами з однаковою розрядністю, що не перевищує 8-біт, при цьому відсутня надмірність елементів, необхідних для вирішення декількох завдань, наприклад, і для фіксування результату накопичувального підсумовування, і для адресації відповідного запам'ятовуючого пристрою використовується однакова кількість розрядів, що реалізуються не більше ніж 8-розрядним регістром, який може бути виконаний загальнодоступними засобами у вигляді однієї мікросхеми або, в мікропроцесорному виконанні, одним осередком пам'яті. Крім того, реалізація накопичувальних суматорів може бути виконана у вигляді однакових пристроїв, з однаковою розрядністю, у вигляді загальнодоступних мікросхем суматорів, що оперують з 4-розрядними доданками. відповідні коди кутів дискретизації, можуть бути і з іншою розрядністю, але найбільш оптимальні, з точки зору виконання поставлених рішенням цілей, є 4-розрядні числа. Крім того, високий технічний результат забезпечується також при реалізації запропонованого технічного рішення у складі мікроконтролерів, де система команд мікроконтролерів обов'язково включає команди, що оперують з 4-розрядними числами - напівбайтами. Таким чином, заявляється технічне рішення генератора DTMF сигналів дозволяє забезпечити високий технічний результат, пов'язаний зі зменшенням кількості схемних елементів, а також забезпечує універсальність при реалізації генератора DTMF сигналів як загальнодоступними апаратними засобами, так і у складі багатофункціональних мікроконтролерів, що визначає високу економічну ефективність технічного рішення. DTMF сигналів включає перетворювач 1 кодів DTMF сигналів в послідовності цілих чисел, дільник 2 задає частоти генератора DTMF сигналів з регульованим коефіцієнтом поділу, перетворювач 3 кодів DTMF сигналів в код коефіцієнт поділу, перший накопичувальний суматор 4, перший фіксуючий регістр 5, перше запам'ятовуючий пристрій друге запам'ятовуючий пристрій 7, другий фіксуючий регістр 8, другий накопичувальний суматор, підсумковий суматор 10, цифроаналоговий перетворювач 11.Робота генератора сигналів DTMF ілюструється на прикладі реалізації способу генерації DTMF сигналів. арительно на підставі виразів (1.4, 1.6) і технічних даних, зокрема задає частоти пристрою, де буде реалізований пропонований спосіб, розраховуються послідовності цілих чисел, що визначають відповідні коди кутів дискретизації, і коди коефіцієнтів поділу для дільника 2 задає частоти генератора DTMF сигналів з регульованим коефіцієнтом поділу, які записуються у відповідні осередки областей пам'яті перетворювача 1 кодів DTMF сигналів у послідовності цілих чисел і перетворювача 3 кодів DTMF сигналів у коди коефіцієнтів поділу, також попередньо розраховують дискретні значення відповідних функцій синуса, кількість яких визначається числом дискретів т, і записують запам'ятовуючі пристрої 6 і 7, при генерації DTMF сигналу, на входах перетворювача 1 і перетворювача 3, що є входами генератора, на час дії DTMF сигналу, встановиться код DTMF сигналу, що генерується, на виході перетворювача 3 установитьс я код, визначальний коефіцієнт поділу для дільника 2, при цьому на виході дільника 2 встановиться тактова частота дискретизації періодично, з періодом, що відповідає тактовій частоті дискретизації, з першого виходу перетворювача 1 надходитимуть на вхід першого накопичувального суматора 4 двійкові числа, що входять в першу послідовність цілих чисел, а з другого виходу перетворювача 1 надходитимуть на вхід другого накопичувального суматора 9 двійкові числа, що входять в другу послідовність цілих чисел, відповідних складовим DTMF сигналу, результати накопичувального підсумовування подаються з виходів накопичувальних суматорів на входи відповідних фіксують 8 виходів фіксуючих регістрів 5 і 8 результати накопичувального підсумовування, з періодом, що відповідає тактовій частоті дискретизації, надходять на інші входи відповідних накопичувальних суматорів 4 і 9, а також на входи відповідних пристроїв 6 і 7, встановлюючи адресу а дискретних значень синусів відповідних складових DTMF сигналу, з виходів запам'ятовуючих пристроїв 6 і 7 дискретні значення відповідних складових DTMF сигналу надходять на відповідні входи підсумкового суматора 10, на виході якого утворюється дискретний двійковий DTMF сигнал, який надходить на вхід цифроаналогового утворюється ступінчастий синусоїдальний сигнал DTMF, відповідний вхідному коду DTMF сигналу. Перетворювач 1 кодів DTMF сигналів у послідовності цілих чисел (фіг.1) може бути виконаний у вигляді, зображеному на фіг.2, де перетворювач кодів DTMF сигналів у послідовності цілих чисел включає пристрій керування 12, програмований запам'ятовуючий пристрій 13.Робота генератора DTMF сигналів ілюструється далі на конкретному прикладі реалізації заявляється способу в телефонному тонально-частотному номеронабирателе.Попередньо на підставі виразів (1.4, 1.6) і технічних даних розраховуються послідовності цілих чисел, що визначають відповідні коди кутів дискретизації, і коди коефіцієнтів поділу для дільника 2 дає частоти сигналу регульованим коефіцієнтом поділу. Враховуючи, що реалізація способу включає однотипні розрахунки, то для ілюстрації роботи в конкретному прикладі наводиться реалізація способу для генерації сигналу DTMF, відповідного натискання клавіші “7” у складі тонально-імпульсного номеронабирателя. Як частота генератора, що задає, встановлена ​​кварцова частота, найбільш поширена в телефонній техніці, а саме F OSC =3579545 Гц. Натискання клавіші “7” відповідає сигнал DTMF з верхньої (стовпці) частотою 1209 Гц і нижньої (рядки) частотою 852 Гц. Так як DTMF сигнал одночасно передає дві частоти, то коефіцієнти розподілу розраховують для більшої - верхньої частоти так, щоб відповідний код кута дискретизації відповідно до виразу (1,6) був близький до максимального значення - 16, що реалізується не більше ніж 4-бітами даних. Таким чином, при F OSC =3579545 Гц, числі дискретних значень синусів m=128 розраховані значення коефіцієнта поділу для дільника 2 частоти, що задає генератора DTMF сигналів з регульованим коефіцієнтом поділу K D =240=460, при цьому відповідні коди кутів /852 =10,376, для нижньої частоти К 852/1209 =7,312.Згідно з винаходом коди кутів дискретизації замінюємо на послідовності цілих чисел відповідно 10/11 і 7/8.10,375=(10х+11у)/(x+у), при цьому фактично K 1209 / 852 =10,3757,312=(7х+8у)/(x+у), причому фактично K 952/1209 =7,313,при (х+у)=16.Таким чином, 10,375 замінюється на періодично повторювану послідовність цілих чисел 10 по 10 разів і 11 по 6 разів, а 7,312 замінюється як 7 по 11 разів і 8 по 5 разів.
Таким чином розраховують шістнадцять таблиць, відповідних кодам DTMF сигналів, а саме 0, 1, 2...9, *, #, А, В, С, D, і попередньо записують в пам'ять програмованого пристрою 13 (перетворювач коду символу DTMF в послідовності цілих чисел).При натисканні на клавішу, наприклад, “7” на вході генератора на час дії DTMF сигналу встановлюється двійковий код DTMF сигналу “7” (0111), перетворювач 3 коду DTMF сигналу коефіцієнт розподілу перетворює код DTMF сигналу в код коефіцієнта поділу kd для дільника 2 задає частоти генератора з регульованим коефіцієнтом поділу, на виході дільника 2 встановиться тактова частота дискретизації F т = F OSC / K D . Код DTMF сигналу також надходить на адресні входи старших розрядів програмованого пам'яті 13 (перетворювач кодів DTMF сигналів у послідовності цілих чисел) і присутній там протягом часу дії DTMF сигналу. Керований пристрій 12, виконаний, наприклад, у вигляді лічильника (перетворювач кодів DTMF сигналів у послідовності цілих чисел), під впливом тактових сигналів з частотою циклічно змінює своє значення на паралельних виходах послідовно від 0000 до 1111, змінюючи відповідно значення адресних входів молодших розрядів програмованого запам'ятовуючого пристрою 13 (перетворювач кодів DTMF сигналів у послідовності цілих чисел), на виході програмованого запам'ятовуючого пристрою 13з тактовою частотою дискретизації з'являються 8-розрядні (байтові) числа, при цьому відповідно до таблиці 1 старші чотири розряди (старший напівбайт) формують послідовність цілих чисел , сукупність яких, а саме, середнє арифметичне, визначає код кута дискретизації, що відповідає верхній (стовпці) частоті, а молодші чотири розряди (молодший напівбайт) формують послідовність цілих чисел, сукупність яких, а саме, середнє арифметичне, визначає код кута дискретизації, відповідний нижній (рядки) частоті, чотирирозрядні дані, відповідно до таблиці 1, з виходу програмованого запам'ятовуючого пристрою 13 (перетворювач кодів DTMF сигналів у послідовності цілих чисел) роздільно надходять на входи відповідних накопичувальних суматорів 4 і 9, на виходах відповід 4 і 9 дані змінюються з тактовою частотою дискретизації від 0 до m (в даному випадку m=128), визначаючи і фіксуючи за допомогою фіксуючих регістрів 5 і 8 адреси для запам'ятовуючих пристроїв 6 і 7, які відповідно записані двійкові дискретні значення відповідних синусоїдальних складових DTMF сигналу, з виходів запам'ятовуючих пристроїв 6 і 7 двійкові дискретні значення відповідних синусоїдальних складових DTMF сигналу надходять на відповідні входи підсумкового суматора 10, на виході якого формуються двійкові дискретні значення сигналу DTMF, які далі надходять на вхід цифроаналогового перетворювача 1 виході якого формується ступінчастий синусоїдальний сигнал DTMF. Генератор DTMF сигналів може бути реалізований на базі загальновідомих технічних засобів, описаних, наприклад,: Застосування інтегральних мікросхем в електронній обчислювальній техніці. Довідник/За ред. Б.М. Файзулаєва, Б.В. Тарабріна. - М.: Радіо і зв'язок, 1986. При цьому перетворювач 3 кодів DTMF сигналів коди коефіцієнтів поділу може бути виконаний, наприклад, у вигляді мікросхеми постійного запам'ятовуючого пристрою 155РЕ 3 (с. 343), реалізація регістрів описана на с. 108 реалізація накопичувальних суматорів описана на с. 114. Заявляється спосіб та генератор DTMF сигналів також реалізовані на базі технічних засобів фірми Microchip Inc. (8-розрядних однокристальних мікроконтролерів типу pic16f628), у складі імпульсно-тонального телефонного номеронабирача "Кадран - НКТ - 01" виробництва фірми "Кадран" (Україна, м. Запоріжжя). Система команд та внутрішній пристрій вузлів мікроконтролера описані у: Прокопенко Б.Я. Однокристальні мікроконтролери. Додека, 2000, ISBN8-87835-056-4.Опис параметрів DTMF сигналу наведено, наприклад, в: Інтегральні мікросхеми: Мікросхеми для телефонії. Вип.1. - М: Додека, 1994, 256 с. – ISBN-5-87835-003-3., с. 12, 13.

ФОРМУЛА ВИНАХОДУ

1. Спосіб генерації двотональних частотних (DTMF) сигналів, що включає вибір першого і другого кодів кутів дискретизації, відповідних першої та другої частотам складових DTMF сигналу, накопичувальне підсумовування окремо першого та другого кодів кутів дискретизації з відповідно періодично фіксуються періодом, відповідним тактовим і другим результатами накопичувального підсумовування, отримання першого та другого дискретних значень складових DTMF сигналу, що зберігаються в адресно розташованих осередках відповідних таблиць дискретних значень складових DTMF сигналу, шляхом зчитування з відповідних таблиць за адресами, відповідними результатами накопичувального підсумовування дисків значень складових DTMF сигналу для отримання третього дискретного значення, що відповідає значенню DТМF сигналу, що відрізняється тим, що отримання першого та другого дискретних значень складової їх DTMF сигналу, що зберігаються в адресно розташованих осередках відповідних таблиць дискретних значень складових DTMF сигналу, .2. Спосіб за п.1, який відрізняється тим, що усереднене значення послідовності цілих чисел, що формують результат накопичувального підсумовування, є середнім арифметичним цих чисел.3. Спосіб за п.1, який відрізняється тим, що періодичне фіксування першого та другого результатів накопичувального підсумовування проводиться з періодом, що відповідає тактовій частоті дискретизації, різної для різних DТМF сигналов.4. Генератор DТМF сигналів, що включає перший накопичувальний суматор, перший фіксуючий регістр, перше запам'ятовуючий пристрій, перший запам'ятовуючий пристрій регістру з'єднаний з входом першого запам'ятовуючого пристрою, а також з одним із входів першого накопичувального суматора, вихід першого запам'ятовуючого пристрою з'єднаний з одним із входів підсумкового суматора, вихід другого накопичувального суматора з'єднаний з входом другого фіксуючого регістру, вихід другого фіксуючого регістру з'єднаний з входом другого пристрої, а також з одним із входів другого накопичувального суматора, вихід другого запам'ятовуючого пристрою з'єднаний з іншим входом підсумкового суматора, вихід підсумкового суматора з'єднаний з входом цифроаналогового перетворювача. ля, вихід якого є виходом генератора DТМF сигналів, який відрізняється тим, що генератор DTMF сигналів додатково містить перетворювач кодів DTMF сигналів у послідовності цілих чисел, дільник задає частоти генератора DTMF сигналів з регульованим коефіцієнтом поділу, перетворювач кодів DTMF сигналів код коефіцієнта поділу, причому перший вихід перетворювача кодів DTMF сигналів у послідовності цілих чисел з'єднаний з іншим входом першого накопичувального суматора, другий вихід перетворювача кодів DTMF сигналів у послідовності цілих чисел з'єднаний з іншим входом другого накопичувального суматора, вихід дільника задає частоти генератора DTMF сигналів з регульованим коефіцієнтом поділу перетворювача кодів DTMF сигналів у послідовності цілих чисел, а також з тактовим входом першого фіксуючого регістру і тактовим входом другого фіксуючого регістру, вихід перетворювача кодів DTMF сигналів код коефіцієнта поділу з'єднаний з входом установки коефіцієнта поділу дільника задаючої частоти генератора DTMF сигналів, вхід перетворювача кодів DTMF сигналів в код коефіцієнта поділу з'єднань з входом послідовності цілих чисел є входом генератора DTMF сигналів. 5. Генератор DTMF сигналів по п.4, який відрізняється тим, що перетворювач кодів DTMF сигналів у послідовності цілих чисел виконаний у вигляді керованого програмованого запам'ятовуючого пристрою, пам'ять якого складається з відповідних кількості DТМF сигналів, областей пам'яті, що складаються з відповідних довжині послідовності цілих чисел пам'яті, виконаних так, що в одній половині осередку пам'яті зберігається число, що відноситься до першої послідовності цілих чисел, а в другій половині осередку пам'яті зберігається число, що відноситься відповідно до іншої послідовності цілих чисел, що є складовими відповідних накопичувальних суматорів, а керування програмованим запам'ятовуючим пристроєм виконано з можливістю роздільного управління вибором області пам'яті та окремої комірки пам'яті.

У міру впровадження сучасних цифрових АТС у телефонних мережах Російської Федерації поступово поширюється багаточастотний спосіб передачі сигналів набору номера, що позначається англійською абривіатурою DTMF (Dual-Tone Multiple-Frequency). Іноді найменування цієї системи передачі сигналів набору використовується інший англомовний термін - Touch-None (тоновий набір). Такий спосіб розроблено 1960 р., але реальне його поширення почалося з 80-х роках у міру поширення цифрових (електронних) АТС.

При цьому способі передачі сигналів управління кожен багаточастотний сигнал цифри номера складається з двох тональних сигналів відповідно до рекомендації Q.23 ITU-T "Технічні особливості телефонів з тастатурним набором номера".

Частоти DTMF підібрані не гармонійно. Це означає, що частоти не мають відмінного від 1 цілого дільника. Наприклад, частоти 1200 та 1600 Гц - гармоніки частоти 400 Гц (3х400 = 1200 та 4х400 = 1600), а частоти 697 та 770 Гц - негармонічні.

Кожен сигнал містить дві частоти: одна вибирається із нижньої, а друга - із верхньої групи частот.

Відповідність між інформацією, що передається, і частотами наведено в таблиці на передній панелі лабораторної установки.

Рівень передачі у двочастотному посиланні, виміряний на навантаженні 600 Ом, становить: для нижньої групи частот - мінус 6дБмО ±2дБ, для верхньої групи частот - мінус 3 дБмО ±2 дБ. Рівень частоти верхньої групи частот у сумарному сигналі на 2±1 дБ перевищує рівень частоти нижньої групи. Сумарний рівень всіх частотних складових вищого порядку принаймні на 20 дБ нижче рівня частоти нижньої групи.

Умови, за яких повинен здійснюватись нормальний прийом сигналів, такі: наявність у сигналі двох частот, одна з яких вибрана з нижньої групи, а інша – з верхньої; частоти не відрізняються від своїх номінальних значень більш ніж 1,8%; рівень кожної із двох частот лежить у межах від мінус 7 до мінус 30 дБмО; різницю рівнів двох частот не перевищує 3 дБ; тривалість частотного сигналу щонайменше 40 мс.

Перед увімкненням установки виконайте такі операції:

Перемикач S6 встановити у нижнє положення;

Перемикач S13 встановити у верхнє положення;

Вимикачі генераторів верхньої та нижньої груп частот встановити у положення "Вимк.";

Перемикач аналогового ключа (АК) встановити у положення "Увімк.";

Ручки регулювання вихідної напруги генераторів та резистора R3 повернути проти годинникової стрілки до упору.

Формування сигналу dtmf

1.1 Увімкнути установку.

1.2 Підключити осцилограф до контрольної точки КТ3.

1.3 Включити генератор верхньої групи частот, натисканням однієї з клавіш перемикача вибрати будь-яку з частот цієї групи.

1.4 Повертаючи ручку регулювання вихідної напруги генератора встановити амплітуду сигналу в КТ3, що дорівнює 0,5 Вольт.

1.5 Переключити вхід осцилографа до контрольної точки КТ4. Повторити операції п.п.1.3, 1.4 для генератора нижньої групи частот, встановивши КТ4 напруга 0,5 В.

ПРИМІТКА: в результаті виконаних операцій на вхід суматора подано рівні по амплітуді сигнали верхньої та нижньої групи частот. Після встановлення цих рівнів ручки регулювання вихідної напруги зафіксувати генераторів.

1.6 Переключити вхід осцилографа до контрольної точки КТ7. Повертаючи ручку резистора (R3) регулювання вихідної напруги формувача сигналів DTMF, встановити напругу в КТ7 дорівнює 0,5 Вольт.

ПРИМІТКА: в результаті виконаних операцій на вхід приймача подано безперервний двотональний сигнал, при цьому на індикаторі прийнятого символу повинен індикуватися символ, що відповідає комбінації частот генераторів верхньої та нижньої груп частот, відповідно до таблиці. Індикацією прийнятого та розпізнаного сигналу є наявність сигналу на виході STD приймача (світлення світлодіода).

      Перемикаючи частоти верхньої і нижньої груп частот переконатися у відповідності комбінацій цих частот символів, що приймаються.

Відмінні особливості:

  • Генерація синусоїдальних сигналів з використанням широтно-імпульсної модуляції (ШІМ)
  • Об'єднання різних синусоїдальних сигналів в один сигнал DTMF
  • Вихідні коди мовами асемблер і Сі
  • Розроблено для спільної роботи з STK500
  • Розмір коду програми 260 байт/розмір таблиці констант 128 байт
  • Використання методу табличного перетворення

Вступ

Цей документ описує методику генерації DTMF-сигналів (двотональні багаточастотні сигнали) з використанням будь-якого AVR-мікроконтролера, що містить блок широтно-імпульсної модуляції (ШІМ) та статичне ОЗУ. Дані сигнали знаходять широке застосування телефонії, де вони відтворюються при натисканні на кнопки набору номера телефону. Для правильної генерації DTMF-сигналу необхідно накласти дві частоти: низьку частоту (fb) і високу частоту (fa). У таблиці 1 показано, як змішуються різні частоти для отримання DTMF-тонів при натисканні на різні клавіші.

Рисунок 1 – Схема генератора DTMF-сигналу

Таблиця 1 - Матриця формування тонального сигналу

fb/fa 1209 Гц 1336 Гц 1477 Гц 1633 Гц
697 Гц 1 2 3 A
770 Гц 4 5 6 B
852 Гц 7 8 9 C
941 Гц * 0 # D

У рядках таблиці 1 представлені значення низької частоти, а стовпчиках – значення високої частоти. Наприклад, у матриці показано, що при натисканні на кнопку "5" повинні змішуватися частоти fb = 770 Гц та fa = 1336 Гц. В результаті складання двох синусоїдальних сигналів різних частот утворюється DTMF-сигнал

де відношення амплітуд K=A b /A aвихідних сигналів має відповідати умові

Принцип дії

Крім загальних відомостей про використання широтно-імпульсної модуляції, далі буде показано як широтно-імпульсна модуляція дозволяє генерувати синусоїдальні сигнали. У наступному параграфі описується як, використовуючи базову частоту ШІМ отримати різні частоти. Після розгляду теоретичних основ буде надано опис безпосередньо генератора DTMF-сигналу. Генерація синусоїдальних сигналів

Залежно від співвідношення тривалості високого VH та низького VL рівнів напруги середнє значення на виході ШІМ змінюється. Якщо співвідношення між тривалостями обох рівнів утримувати постійним, то в результаті генеруватиметься постійний рівень напруги VAV. Малюнок 2 показує сигнал із широтно-імпульсною модуляцією.


Рисунок 2 – Генерація рівня постійної напруги

Рівень напруги визначається виразом:

(3)

Синусоїдальний сигнал може генеруватися за умови, що середнє значення напруги, що генерується широтно-імпульсною модуляцією, буде змінюватися кожен період ШІМ. Співвідношення між високим і низьким рівнями має задаватися у відповідність до рівня напруги синусоїдального сигналу при відповідному часі. На малюнку 3 ілюструється цей процес. Вихідні дані для ШІМ обчислюються для кожного періоду і записуються в таблицю перетворення (ТП).

Рисунок 3 також ілюструє залежність між частотою основного синусоїдального сигналу та кількістю вибірок. Чим вище кількість вибірок (Nc) – ​​тим вище точність моделювання результуючого сигналу:

(4)

Частота ШІМ залежить від роздільної здатності ШІМ. При 8-розрядній роздільній здатності, кінцеве значення (вершина рахунку) таймера дорівнює 0xFF (255). Т.к. таймер виконує рахунок у прямому та зворотному напрямках, то дане значення має бути подвоєне. Тому частота ШІМ може бути обчислена шляхом розподілу тактової частоти таймера f CK на 510. Таким чином, при частоті тактування таймера 8 МГц результуюча частота ШІМ складе 15.6 кГц.


Рисунок 3 – Генерація синусоїдального сигналу з використанням ШІМ

Зміна частоти синусоїдального сигналу

Припустимо, що синусоїдальні вибірки зчитуються з таблиці перетворення не послідовно, а через одну. В цьому випадку при тій же частоті читання вибірок генеруватиметься сигнал з подвоєною частотою (див. рис. 4).


Рисунок 4 – Подвоєння результуючої частоти (XSW = 2)

За аналогією, якщо зчитувати не кожне друге значення, а кожне третє, четверте, п'яте (відповідно ширина кроку 3, 4, 5 ...) і т.д. можна генерувати Nc-частот у діапазоні . Зауважте, що для високих частот результуюча форма сигналу не буде синусоїдальною. Ширину кроку по таблиці перетворення позначимо як X SW, де

(5)

Обчислення поточної позиції ТП для наступного періоду ШІМ (при переповненні таймера) виконується за допомогою виразу (6). Нове значення у позиції X LUTзалежить від його попереднього стану в позиції X" LUTз додаванням ширини кроку X SW

(6)

Складання різних частот для отримання DTMF-сигналу

DTMF-сигнал може бути згенерований за допомогою виразів (1) та (2). Для простоти арифметичних дій значення коефіцієнта приймається рівним 0.75, щоб арифметичну дію замінити логічними зрушеннями. З урахуванням виразу (6) поточне значення для управління ШІМ може бути обчислено за виразом:

а з урахуванням того, що X LUTa=X" LUTa + X SWa ,X LUTb=X" LUTb + X SWb, остаточно запишемо

Реалізація DTMF-генератора

У даному додатку розглядається побудова DTMF тонального генератора з використанням виходу 8-розрядної ШІМ (OC1A) та таблиці з 128 вибірками значень синусоїдальної функції (Nc), кожна з яких визначається 7 бітами (n). Наступні вирази показують цю залежність, а також показують, як обчислити елементи таблиці перетворення:

(9)

Перевагою використання 7 біт є те, що сума значень сигналів високої та низької частоти має розмір одного байта. Для підтримки повного набору DTMF-тонів необхідно обчислити 8 значень кожної DTMF-частоти з таблиці 1 і занести їх у таблицю перетворення.

Для досягнення більш високої точності виконано наступне рішення: значення, обчислені за виразом 5, вимагають всього 5 байт. Для використання всіх 8 байт, що дозволить зменшити похибку округлення, це значення множиться на 8. Покажчик таблиці перетворення записується таким же способом. Але в цьому випадку потрібно два байти для запам'ятовування 8-кратного значення. Це означає, що необхідно виконати 3 правосторонніх зсуву та операцію модуля з підстави Nc (логічне множення на Nc-1) перед використанням цих байт як покажчика на значення синусоїди в


Рисунок 5 – Схема модуля для підключення до STK500

ШИМ сигнал формується на виведенні OC1A (PD5). Додатковий вихідний фільтр сприятиме більшій відповідності синусоїдальної форми сигналу. При зменшенні частоти ШІМ може виникнути необхідність застосування фільтра з крутішим АЧХ для отримання хорошого результату.

Підключення клавіатури показано на малюнку 1. Робота клавіатури повинна бути організована таким чином, щоб була можливість визначення натиснутої кнопки. Це може бути виконано за таким алгоритмом:

  1. Визначення рядка натиснутої клавіші
    • настроїти молодший зошит порту В на вихід і встановити балку. "0"
    • настроїти старший зошит порту В на вхід з підключенням резисторів, що підтягують.
    • рядок з натиснутою кнопкою визначається як розряд старшого зошита з балкою. "0"
  2. Визначення стовпчика натиснутої клавіші
    • настроїти старшу зошит порту на вихід і встановити лог. "0"
    • настроїти молодший зошит порту на вхід з підключенням підтягуючих резисторів
    • стовпець з натиснутою кнопкою визначається як розряд молодшого зошита з балка. "0"

Примітка: В STK200 між виводами роз'єму PORTB і виводами мікроконтролера BP5, PB6 і PB7 послідовно включені резистори (див. схему STK200). Це викликає проблеми, якщо клавіатура підключена до гнізда PORTB.

Малюнок 6 ілюструє роботу підпрограми визначення натиснутої клавіші. Залежно від натиснутої кнопки визначається тривалість інтервалу. Процедура обробки переривання використовує це значення для обчислення установок ШІМ для двох синусоїдів DTM-тону. Процедуру обробки переривання показано на рисунках 7 та 8.

Ця процедура обчислює значення для порівняння з виходом таймера наступного періоду ШІМ. Процедура обробки переривань спочатку обчислює позицію значення наступної вибірки таблиці перетворення і зчитує збережене там значення.

Позиція вибірки в таблиці перетворення визначається тривалістю імпульсу, а власне тривалість імпульсу визначається частотою, що генерується.

Остаточне значення, яке записується в регістр порівняння таймера, визначається з використанням формули (7), де враховуються значення вибірок обох частот DTMF.


Рисунок 6 – Блок-схема основної програми

Відмінні особливості

  • Генерація синусоїдальних сигналів з використанням широтно-імпульсної модуляції (ШІМ)
  • Об'єднання різних синусоїдальних сигналів в один сигнал DTMF
  • Вихідні коди мовами асемблер і Сі
  • Розроблено для спільної роботи з STK500
  • Розмір коду програми 260 байт/розмір таблиці констант 128 байт
  • Використання методу табличного перетворення

Вступ

Цей документ описує методику генерації DTMF-сигналів (двотональні багаточастотні сигнали) з використанням будь-якого AVR-мікроконтролера, що містить блок широтно-імпульсної модуляції (ШІМ) та статичне ОЗУ. Дані сигнали знаходять широке застосування телефонії, де вони відтворюються при натисканні на кнопки набору номера телефону. Для правильної генерації DTMF-сигналу необхідно накласти дві частоти: низьку частоту (fb) і високу частоту (fa). У таблиці 1 показано, як змішуються різні частоти для отримання DTMF-тонів при натисканні на різні клавіші.


Рисунок 1. Схема генератора DTMF-сигналу

Таблиця 1. Матриця формування тонального сигналу

fb/fa 1209 Гц 1336 Гц 1477 Гц 1633 Гц
697 Гц 1 2 3 A
770 Гц 4 5 6 B
852 Гц 7 8 9 C
941 Гц * 0 # D

У рядках таблиці 1 представлені значення низької частоти, а стовпчиках – значення високої частоти. Наприклад, у матриці показано, що при натисканні на кнопку "5" повинні змішуватися частоти fb = 770 Гц та fa = 1336 Гц. В результаті складання двох синусоїдальних сигналів різних частот утворюється DTMF-сигнал

де відношення амплітуд K=A b /A a вихідних сигналів має відповідати умові

Принцип дії

Крім загальних відомостей про використання широтно-імпульсної модуляції, далі буде показано як широтно-імпульсна модуляція дозволяє генерувати синусоїдальні сигнали. У наступному параграфі описується як, використовуючи базову частоту ШІМ отримати різні частоти. Після розгляду теоретичних основ буде надано опис безпосередньо генератора DTMF-сигналу. Генерація синусоїдальних сигналів

Залежно від співвідношення тривалості високого VH та низького VL рівнів напруги середнє значення на виході ШІМ змінюється. Якщо співвідношення між тривалостями обох рівнів утримувати постійним, то в результаті генеруватиметься постійний рівень напруги VAV. Малюнок 2 показує сигнал із широтно-імпульсною модуляцією.


Рисунок 2. Генерація рівня постійної напруги

Рівень напруги визначається виразом:

(3)

Синусоїдальний сигнал може генеруватися за умови, що середнє значення напруги, що генерується широтно-імпульсною модуляцією, буде змінюватися кожен період ШІМ. Співвідношення між високим і низьким рівнями має задаватися у відповідність до рівня напруги синусоїдального сигналу при відповідному часі. На малюнку 3 ілюструється цей процес. Вихідні дані для ШІМ обчислюються для кожного періоду і записуються в таблицю перетворення (ТП).

Рисунок 3 також ілюструє залежність між частотою основного синусоїдального сигналу та кількістю вибірок. Чим вище кількість вибірок (Nc) – ​​тим вище точність моделювання результуючого сигналу:

(4)

Частота ШІМ залежить від роздільної здатності ШІМ. При 8-розрядній роздільній здатності, кінцеве значення (вершина рахунку) таймера дорівнює 0xFF (255). Т.к. таймер виконує рахунок у прямому та зворотному напрямках, то дане значення має бути подвоєне. Тому частота ШІМ може бути обчислена шляхом розподілу тактової частоти таймера f CK на 510. Таким чином, при частоті тактування таймера 8 МГц результуюча частота ШІМ складе 15.6 кГц.


Малюнок 3. Генерація синусоїдального сигналу з використанням ШІМ

Зміна частоти синусоїдального сигналу

Припустимо, що синусоїдальні вибірки зчитуються з таблиці перетворення не послідовно, а через одну. В цьому випадку при тій же частоті читання вибірок генеруватиметься сигнал з подвоєною частотою (див. рис. 4).


Рисунок 4. Подвоєння результуючої частоти (XSW = 2)

За аналогією, якщо зчитувати не кожне друге значення, а кожне третє, четверте, п'яте (відповідно ширина кроку 3, 4, 5 ...) і т.д. можна генерувати Nc-частот у діапазоні . Зауважте, що для високих частот результуюча форма сигналу не буде синусоїдальною. Ширину кроку по таблиці перетворення позначимо як X SW де

(5)

Обчислення поточної позиції ТП для наступного періоду ШІМ (при переповненні таймера) виконується за допомогою виразу (6). Нове значення позиції X LUT залежить від його попереднього стану позиції X" LUT з додаванням ширини кроку X SW

(6)

Складання різних частот для отримання DTMF-сигналу

DTMF-сигнал може бути згенерований за допомогою виразів (1) та (2). Для простоти арифметичних дій значення коефіцієнта приймається рівним 0.75, щоб арифметичну дію замінити логічними зрушеннями. З урахуванням виразу (6) поточне значення для управління ШІМ може бути обчислено за виразом:

а з урахуванням, що X LUTa = X" LUTa + X SWa ,X LUTb =X" LUTb + X SWb , остаточно запишемо

Реалізація DTMF-генератора

У даному додатку розглядається побудова DTMF тонального генератора з використанням виходу 8-розрядної ШІМ (OC1A) та таблиці з 128 вибірками значень синусоїдальної функції (Nc), кожна з яких визначається 7 бітами (n). Наступні вирази показують цю залежність, а також показують, як обчислити елементи таблиці перетворення:

(9)

Перевагою використання 7 біт є те, що сума значень сигналів високої та низької частоти має розмір одного байта. Для підтримки повного набору DTMF-тонів необхідно обчислити 8 значень кожної DTMF-частоти з таблиці 1 і занести їх у таблицю перетворення.

Для досягнення більш високої точності виконано наступне рішення: значення, обчислені за виразом 5, вимагають всього 5 байт. Для використання всіх 8 байт, що дозволить зменшити похибку округлення, це значення множиться на 8. Покажчик таблиці перетворення записується таким же способом. Але в цьому випадку потрібно два байти для запам'ятовування 8-кратного значення. Це означає, що необхідно виконати 3 правосторонніх зсуву та операцію модуля з підстави Nc (логічне множення на Nc-1) перед використанням цих байт як покажчика на значення синусоїди в


Рисунок 5. Схема модуля для підключення до STK500

ШИМ сигнал формується на виведенні OC1A (PD5). Додатковий вихідний фільтр сприятиме більшій відповідності синусоїдальної форми сигналу. При зменшенні частоти ШІМ може виникнути необхідність застосування фільтра з крутішим АЧХ для отримання хорошого результату.

Підключення клавіатури показано на малюнку 1. Робота клавіатури повинна бути організована таким чином, щоб була можливість визначення натиснутої кнопки. Це може бути виконано за таким алгоритмом:

  1. Визначення рядка натиснутої клавіші
    • настроїти молодший зошит порту В на вихід і встановити балку. "0"
    • настроїти старший зошит порту В на вхід з підключенням резисторів, що підтягують.
    • рядок з натиснутою кнопкою визначається як розряд старшого зошита з балкою. "0"
  2. Визначення стовпчика натиснутої клавіші
    • настроїти старшу зошит порту на вихід і встановити лог. "0"
    • настроїти молодший зошит порту на вхід з підключенням підтягуючих резисторів
    • стовпець з натиснутою кнопкою визначається як розряд молодшого зошита з балка. "0"

Примітка: В STK200 між виводами роз'єму PORTB і виводами мікроконтролера BP5, PB6 і PB7 послідовно включені резистори (див. схему STK200). Це викликає проблеми, якщо клавіатура підключена до гнізда PORTB.

Малюнок 6 ілюструє роботу підпрограми визначення натиснутої клавіші. Залежно від натиснутої кнопки визначається тривалість інтервалу. Процедура обробки переривання використовує це значення для обчислення установок ШІМ для двох синусоїдів DTM-тону. Процедуру обробки переривання показано на рисунках 7 та 8.

Ця процедура обчислює значення для порівняння з виходом таймера наступного періоду ШІМ. Процедура обробки переривань спочатку обчислює позицію значення наступної вибірки таблиці перетворення і зчитує збережене там значення.

Позиція вибірки в таблиці перетворення визначається тривалістю імпульсу, а власне тривалість імпульсу визначається частотою, що генерується.

Остаточне значення, яке записується в регістр порівняння таймера, визначається з використанням формули (7), де враховуються значення вибірок обох частот DTMF.


Рисунок 6. Блок-схема основної програми


Рисунок 7. Блок-схема процедури обробки переривання з переповнення таймера


Малюнок 8. Блок-схема процедури читання вибірки GetSample

Публікація: www.cxem.net

Дивіться інші статтірозділу.

Тему нескладних пристроїв вирішив зібрати генератор DTMF сигналу на тій же ATtiny2313. Хто не знає, DTMF (Dual-Tone Multi-Frequency) – це двотональний багаточастотний аналоговий сигнал, що використовується для набору телефонного номера. Читати Вікіпедію.

Рішення зібрати такий пристрій продиктовано бажанням спробувати продати складні аналогові сигнали за допомогою мікроконтролера. Ніякого практичного застосування для цього пристрою не планувалося, але може кому нагоді такий пристрій? Користуйтесь!

Вихідник DTMF генератора


Тепер побачимо, що в нас вийшло.

Сигнал формується за допомогою ШІМ і для того, щоб надати йому потрібну форму застосовується RC-ланцюжок. У результаті, після RC-ланцюжка, отримуємо такий сигнал (натиснена кнопка 6):

По всій кривій корисного сигналу ми спостерігаємо гребінці високої частоти (частота вище чутної, так що шуму вона не буде створювати) – це робота RC-ланцюжка. Можна зробити лінію більш плавною, збільшивши ємність конденсатора або опір резистора, але в цьому випадку значно зменшитися розмах корисного сигналу.

Дивимося спектр сигналу і переконуємось у наявності двох окремих частот (частота ШІМ пішла за межі області відображення), отже, все нормально – пристрій працює як треба.

Готові рішення

Для задач генерування та декодування DTMF-сигналу існують готові рішення. Ось кілька даташитів на ці мікросхеми.

DTMF генератор
- DTMF декодер


P.S.Жаль ні в ATtiny2313 АЦП - можна було ще й декодер DTMF забахати! Але нічого, повторюватиму на мезі обов'язково прироблю.

(Visited 6 868 times, 1 visits today)

© 2022 androidas.ru - Все про Android