реклама на сайте
подробности

 
 
> AVR и телефон.., определения вызова и отбоя АТС
defunct
сообщение Mar 24 2006, 16:10
Сообщение #1


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Здравствуйте!
Задумал сделать простенькое устройство без реле, с питанием от телефонной линии, управляемое на tiny13. Функции устройства - по сигналу "вызов" снять трубку, подключить усилитель или динамик к телефонной линии, по сигналу "отбой" - положить трубку. Собственно снять и положить трубку и подключить усилитель к линии - не проблема, уже девайс это делает по нажатию на кнопку.. Но вот когда дело дошло до автоматики - появился вопрос, где мне явно не хватает знаний и опыта..

Вопрос этот больше к знатокам телефонии.

Как можно (имея в аресенале: аналоговый компаратор, АЦП, конденсаторы, резисторы, диоды) распознавать сигнал "вызов" и сигнал "отбой" приходящий с АТС?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Mar 27 2006, 14:22
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Спасибо всем принимавшим участие в обсуждении. Устройство сделано на том чем и задумывалось - tiny13. Сразу отвечу тем, кто советовал использовать MSP - питать от линии "прозрачно для линии" получилось не только tiny13, но и яркий светодиод (2ма) в режиме ожидания.

Сигнал "вызов" обрабатывать получилось очень просто - через делитель 1k-100k завел плюс линии на АЦП контроллера и по уровню >60В просто снимаю трубку.

Сигнал "отбой" обрабатываю с помощью аналогового компаратора, к которому через фазосдвигающую цепочку подключил "плюс" линии. Частоту не определяю, т.к. в tiny13 отсутствует режим Timer Capture. Работаю с длительностями перида - запустил таймер в режиме ОС-CTC на подсчет 100 тактов. В прерывании таймера увеличиваю счетчик. Если по прерыванию от аналогового компаратора в счетчике находится число от 27 до 29 - то предположительно это период сигнала "отбой". Подсчитывается количество таких периодов и если оно больше чем (425Гц * 0.35с)*0.5, то делается вывод, что это сигнал отбой и устройство ложит трубку.
Пробовал дудеть в трубку, за "отбой" такие вопли не принимаются. smile.gif

Привожу кусок программы с используемыми обработчиками, может кому пригодится:

Код
; Чип настроен на работу от внутреннего RC с частотой 1.2Mhz

;****************************************************
; Основной цикл программы
;****************************************************
MainCycle:          ; <----------- ОСНОВНОЙ ЦИКЛ ПРОГРАММЫ
    rcall ADC_Read
    cpi   AL, CALLING_LEVEL
    brlo  MainCycle
    ATA
    rjmp  MainCycle


;****************************************************
; Обработчик прерывания TMR1 (Timer 1 OC)
;****************************************************
TIM0_COMPA:; Timer1 Compare Handler
    in   SREGM, SREG        
    cpi  Counter, MAX_TIMER   ; Если значение счетчика не равно максимально допустимому
    brsh _skip_inc          
    inc  Counter              ; тогда инкрементировать счетчик отсчетов
_skip_inc:
    out  SREG, SREGM
    reti


;****************************************************
; Обработчик прерывания аналогового компаратора
;****************************************************
AC_Handler:
    in    SREGM, SREG

    cpi   Counter, 27       ; частота больше 1 / ((27*100)/1.2Mhz) = 444.4 Гц
    brlo  _skip_detect      ; не наша частота - выход
    cpi   Counter, 30       ; частота ниже 1 / ((30*100)/1.2Mhz) = 400 Гц
    brsh  _skip_detect      ; не наша частота - выход

    cpi   PeriodCounter, MAX_TIMER; проверить накопленное число периодов частоты сигнала "отбой"
    brsh  _skip_inc_period        ; если больше требуемого для распознавания - пропустить инкремент
    inc   PeriodCounter           ; увеличить число распознанных периодов

_skip_inc_period:
; <-- здесь можно например мигнуть светодиодом и т.п.

_skip_detect:
    cpi   Counter, MAX_TIMER        ; Если значение счетчика меньше максимального
    brlo  _skip_period_correction   ; обработку счетчика периодов пропустить

    cpi   PeriodCounter, PERIODS_AMOUNT; Сравнить значение счетчика периодов, с минимальным требуемым для
    brlo  _just_drop_pcounter          ; устойчивого распознавания сигнала "отбой"

    DROP                            ; Если отбой распознан - положить трубку

_skip_drop_signal:

_just_drop_pcounter:
    clr   PeriodCounter         ; Сбросить счетчик числа периодов

_skip_period_correction:

    clr   Counter               ; Сбросить счетчик
    out   SREG, SREGM
    reti
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- defunct   AVR и телефон..   Mar 24 2006, 16:10
- - Kovrov   ну вызов особой проблемы не должен доставлять... и...   Mar 24 2006, 16:31
|- - defunct   Цитата(Kovrov @ Mar 24 2006, 18:31) ну вы...   Mar 24 2006, 17:00
|- - Shamil   Цитата(defunct @ Mar 24 2006, 22:00) А во...   Mar 24 2006, 17:46
|- - defunct   Цитата(Shamil @ Mar 24 2006, 19:46) Посмо...   Mar 26 2006, 13:01
- - Kovrov   в том то и проблема что от погоды на марсе это зав...   Mar 24 2006, 17:20
|- - defunct   Цитата(Kovrov @ Mar 24 2006, 19:20) к при...   Mar 24 2006, 17:36
- - vesago   Хороший результат дает использование корреляционно...   Mar 25 2006, 15:04
- - Kovrov   Можете расписать более подробно что куды чаво и ка...   Mar 25 2006, 16:22
- - vesago   Есть исходничек, правда для пика - если надо - выш...   Mar 26 2006, 10:25
- - Kovrov   Когда разберешься, нас то не забудь!! :-) ...   Mar 26 2006, 16:08
- - Old1   ЦитатаЕсть исходничек, правда для пика - если надо...   Mar 26 2006, 18:01
- - $ilent   только не переборщите с потреблением устройства, т...   Mar 27 2006, 06:18
- - vesago   Выкладывать на всеобщее обозрение не стану. Не хоч...   Mar 27 2006, 06:57
- - Rash   можно в разыв линии поставить оптрон с резюком, и ...   Mar 27 2006, 08:27
- - АДИКМ   Вставлю пять копеек. Выбор AVR здесь не совсем пра...   Mar 27 2006, 08:37
- - SasaVitebsk   Цитата(АДИКМ @ Mar 27 2006, 12:37) Вставл...   Mar 27 2006, 09:47
- - АДИКМ   >К тому же MSP стоит значительно дороже Скажите...   Mar 27 2006, 10:15
|- - defunct   Цитата(АДИКМ @ Mar 27 2006, 12:15) >К ...   Mar 27 2006, 14:36
- - АДИКМ   Сколько потребляет ваша схема от тел. линии в режи...   Mar 27 2006, 15:01
- - defunct   50В/20k - 2.5 ma (-+ 0.5 ma)   Mar 27 2006, 15:22
- - александр_в   Для координатных АТС (АТСК, АТСКУ, АТС50\200...   Mar 27 2006, 15:51
|- - GeorgyBey   Цитата(александр_в @ Mar 27 2006, 18:51) ...   Mar 27 2006, 16:34
- - _artem_   На конечной стадии проект на tiny13 с потреблением...   Mar 27 2006, 17:48
|- - defunct   Цитата(_artem_ @ Mar 27 2006, 19:48) На к...   Mar 27 2006, 20:54
- - Laptop   Если хочется выделять сигнал занято с большей дост...   Mar 27 2006, 18:57
- - _artem_   тини 100 штук по 80 центов покупал от arrow. Да еш...   Mar 28 2006, 01:16
- - АДИКМ   Вы ничего не напутали? я спросил - Сколько потребл...   Mar 28 2006, 09:53
|- - defunct   Цитата(АДИКМ @ Mar 28 2006, 11:53) Вы нич...   Mar 28 2006, 10:11
|- - Make_Pic   Цитата(defunct @ Mar 28 2006, 13:11) Дума...   Mar 29 2006, 10:00
|- - defunct   Цитата(Make_Pic @ Mar 29 2006, 12:00) Да ...   Mar 29 2006, 20:45
- - muravei   Для поднятой трубки 20 мА -нормально, в режиме ожи...   Mar 29 2006, 10:33
- - Rash   Сделай, как показано в приклеплённой схеме, и не п...   Mar 29 2006, 10:37
|- - _artem_   Цитата(Rash @ Mar 29 2006, 13:37) Сделай,...   Mar 29 2006, 11:00
- - Rash   ЦитатаВход диодного моста должен быть соединен с л...   Mar 29 2006, 11:57
- - _artem_   Цитата(Rash @ Mar 29 2006, 14:57) ЦитатаВ...   Mar 30 2006, 00:04


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 07:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01383 секунд с 7
ELECTRONIX ©2004-2016