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

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

|
Здравствуйте! Задумал сделать простенькое устройство без реле, с питанием от телефонной линии, управляемое на tiny13. Функции устройства - по сигналу "вызов" снять трубку, подключить усилитель или динамик к телефонной линии, по сигналу "отбой" - положить трубку. Собственно снять и положить трубку и подключить усилитель к линии - не проблема, уже девайс это делает по нажатию на кнопку.. Но вот когда дело дошло до автоматики - появился вопрос, где мне явно не хватает знаний и опыта..
Вопрос этот больше к знатокам телефонии.
Как можно (имея в аресенале: аналоговый компаратор, АЦП, конденсаторы, резисторы, диоды) распознавать сигнал "вызов" и сигнал "отбой" приходящий с АТС?
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 36)
|
Mar 24 2006, 17:46
|
Частый гость
 
Группа: Свой
Сообщений: 160
Регистрация: 23-12-04
Из: Уфа
Пользователь №: 1 631

|
Цитата(defunct @ Mar 24 2006, 22:00)  А вот "отбой"... Может подскажете какой частоты там гудки и какая их приблизительная длительность или ссылочкой на описание сигналов АТС поделитесь, а то под рукой есть только древний справочник по ремонту телефонов, и в нем ничего нет по сигналам. Посмотри довольно свежий документ по системам сигнализации. Чтоб не обалдеть от обилия информации, смотри раздел 7.2.2, там как раз интересующие тебя параметры акустических сигналов. Только надо понимать что там даны требования к устройствам формирующим эти сигналы, а для устройства принимающего эти сигналы надо расчитывать на гораздо худшие параметры. К примеру, многие офисные АТС могут выдавать не синус, а меандр, да и частоту +/- лапоть. Длительности посылки и паузы то же не очень то соблюдаются, но тут можно зацепиться за то, что они обычно одинаковой длительности при сигнале "занято".
|
|
|
|
|
Mar 26 2006, 13:01
|

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

|
Цитата(Shamil @ Mar 24 2006, 19:46)  Посмотри довольно свежий документ по системам сигнализации. Чтоб не обалдеть от обилия информации, смотри раздел 7.2.2, Очень благодарен за столь точную ссылку! Цитата(vesago @ Mar 26 2006, 12:25)  Есть исходничек, правда для пика - если надо - вышлю. Буду премного благодарен за пример для пика, если Вам не жалко и не трудно выслать его на dsx(собака)ukr.net С пиками знаком, код прочитать думаю смогу...
|
|
|
|
|
Mar 27 2006, 08:37
|

Знающий
   
Группа: Свой
Сообщений: 630
Регистрация: 2-08-05
Пользователь №: 7 294

|
Вставлю пять копеек. Выбор AVR здесь не совсем правильный. Если вы хотите все это питать от линии, лучше применить MSP430. Вот вам даже готовый аплекейшн http://focus.ti.com/docs/mcu/catalog/resou...actName=slaa178Приавда цепочку вызова там лучше переделать. Как правильно сказали выше - ставите оптрон и смотрите частоту на его выходе при вызове. На разных АТС она сильно колеблется 13-95 Герц. Амплитудный вызов не будет работать на всех АТС. Верный путь - частотный анализ. Тем более реализуется он элементарно.
--------------------
летаю на пепелаце...
|
|
|
|
|
Mar 27 2006, 14:22
|

кекс
     
Группа: Свой
Сообщений: 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, то делается вывод, что это сигнал отбой и устройство ложит трубку. Пробовал дудеть в трубку, за "отбой" такие вопли не принимаются.  Привожу кусок программы с используемыми обработчиками, может кому пригодится: Код ; Чип настроен на работу от внутреннего 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
|
|
|
|
|
Mar 27 2006, 15:51
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 7-01-06
Пользователь №: 12 918

|
Для координатных АТС (АТСК, АТСКУ, АТС50\200, АТС100\2000) допускается потребление не более 0.2 мА
|
|
|
|
|
Mar 27 2006, 16:34
|
Местный
  
Группа: Свой
Сообщений: 205
Регистрация: 21-12-04
Из: Киев
Пользователь №: 1 593

|
Цитата(александр_в @ Mar 27 2006, 18:51)  Для координатных АТС (АТСК, АТСКУ, АТС50\200, АТС100\2000) допускается потребление не более 0.2 мА Смущает слово "потребление" Трубка лежит, аппарат отключен, кто потребляет ? Телефонисты "греются" когда нагружают генератор вызова параллельными телефонами  т.е. увеличенной емкостью (1 телефон = 1мкф), а при отключенном телефоне "потребление" - это утечки в линии, способные вызывать ложное срабатывание. Включаете миллиамперметр с потенциометром на линию, крутите и замечаете ТОК срабатывания АТС. Если таки потребляете заметно меньше - обломаются искать, спишут на утечку. Кстати, на древних АТСках можно было не дать напряжению упасть ниже "нормы" (последовательно стабилитрон), и тогда связь УЖЕ включилась, а тарификатор ЕЩЕ НЕТ  Народ пользовался...
--------------------
На "нет" и "нах" :)
|
|
|
|
|
Mar 29 2006, 11:57
|
Знающий
   
Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231

|
Цитата Вход диодного моста должен быть соединен с линией через кондер с емкостю меньше чем нужно для сгорания светодиода оптрона от избыточного тока. 200 Ом включенных паралельно светодиоду может и не хватить. Если не ошибаюсь, ток в режиме вызова может достигать 100 мА а напряжение до 100 и больше . Но это было для старых АТС. А расчёт этой емкости можно огласить? 100 В не на самом диодном мосте или оптроне на всей этой схемке упадёт ~3В, а оптроном в линии и резюками можно поиграться для достижения нужного эфекта. У меня сейчас такая схема и всё работает.
|
|
|
|
|
Mar 29 2006, 20:45
|

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

|
Цитата(Make_Pic @ Mar 29 2006, 12:00)  Да уж! Для радиолюбительской поделки потянет, а если делать как изделие и сответственно сертифицировать, то от винта!  В изделии просто не будет светодиода, итого 2ma-2ma = ~0ma  так что все ок. Tiny13 сама по себе очень мало потребляет. Цитата(muravei @ Mar 29 2006, 12:33)  Для поднятой трубки 20 мА -нормально, в режиме ожидания очень много.Слышал, надо не более 1мА. Но почему бы не сделать имп. источник? В линии у Вас ~60 в , а надо 3в итого получите 20 мА потребляя 1мА Спасибо! учту такую возможность если потребуется большой ток. Но пока вопрос о потреблении вообще не стоит, т.к. устройство предназначено для оповещения конкретного помещения, и будет работать с конкретной одной ATC.. Цитата(Rash @ Mar 29 2006, 12:37)  Сделай, как показано в приклеплённой схеме, и не парься. и трубку определиш, и вызов и даже набираемый номер, только это всё дело определяется по частоте. Не у вас что-то сильно мудреное, у меня в схеме нет ни оптронов ни реле... Диодный мостик, ключ на КТ940А нагруженный на резистор 1.6к. Когда ключ открыт - трубка снята. Цитата Если не ошибаюсь, ток в режиме вызова может достигать 100 мА а напряжение до 100 и больше . Вы правы, у меня в реальных условиях сигнал вызова ~120В (АТС Alcatel).
|
|
|
|
|
Mar 30 2006, 00:04
|

учащийся
    
Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249

|
Цитата(Rash @ Mar 29 2006, 14:57)  Цитата Вход диодного моста должен быть соединен с линией через кондер с емкостю меньше чем нужно для сгорания светодиода оптрона от избыточного тока. 200 Ом включенных паралельно светодиоду может и не хватить. Если не ошибаюсь, ток в режиме вызова может достигать 100 мА а напряжение до 100 и больше . Но это было для старых АТС. А расчёт этой емкости можно огласить? 100 В не на самом диодном мосте или оптроне на всей этой схемке упадёт ~3В, а оптроном в линии и резюками можно поиграться для достижения нужного эфекта. У меня сейчас такая схема и всё работает. в грубом виде возьмите реактивное сопротивление кондера на 25 герц (если не ошибаюсь такова частота вызова АТС) и по закону ома падение на ваших резисторах с учетом падения напряжения на светодиоде 2-3 вольта. А потом и ток через светодиод. Но может статься так что АТС будет генерировать меандр , тогда пики на светодиоде могут быть большие, опят таки зависит от станции и вдобавок линии . Вот здесь немного попроше сделано: http://www.broadcastboxes.com/pdf/mpc2book.pdfНо я все таки разделил бы R2 на первой схеме из линка наверху на два сопротивления в середину подключил катод стабилитрона а его анод к аноду светодиода оптрона а шунтируюший диод по обратному напряжению убрал бы. Хотя эти люди говорят что у них типа FCC апрувед.
--------------------
Зачем лаять на караван , когда на него можно плюнуть?
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|