Технологии из прошлого: проводной телефон. Разбираемся в устройстве, строим микро АТС

от автора

image

Историю проводной телефонной связи принято отсчитывать с 7 марта 1876 года, когда Александром Беллом был получен патент на изобретение телефона. Интересное совпадение, но практически в то же время, с разницей в несколько часов, другой изобретатель — Элайша Грей – тоже подал заявку на получение патента на изобретение телефона. Но, так или иначе, приоритет и имя в истории остались за Беллом, который 25 июня 1876 года впервые продемонстрировал свой телефон на первой Всемирной электротехнической выставке в Филадельфии.

Первый телефон был очень несовершенен. Даже на небольшом расстоянии он мог передавать лишь едва различимые звуки. Затем профессор Эймос Эмерсон Долбеар предложил добавить электромагнит для усиления вибрации мембраны. B 1878 году русский электротехник П. M. Голубицкий применил в телефонных аппаратах конденсатор и разработал первый русский телефон оригинальной конструкции, в котором было применено уже несколько постоянных магнитов. В 1877—1878 годах Томас Эдисон предложил использовать в угольных микрофонах вместо угольного стержня угольный порошок, то есть изобрёл микрофон с угольным порошком, который практически без изменений широко использовался до начала 1990-х годов, а в некоторых местах работает и до сих пор.

В самом простом виде схема телефонной связи выглядит следующим образом:

image

Простейшая схема телефонной связи

В каждом из телефонных аппаратов (ТА1, ТА2) включены последовательно угольный микрофон (BM) и электромагнитный телефонный капсюль (BA). Угольный микрофон содержит в себе угольный (графитовый) порошок, засыпанный в область за звуковой мембраной. Порошок может проводить электрический ток. Колебания мембраны сжимают или разжимают частицы порошка, что приводит к изменению его проводимости. Таким образом, угольный микрофон – токовый прибор. Звуковые колебания преобразуются в колебание тока через микрофон.

Для работы микрофона нужно обеспечить протекание некоторого постоянного тока через него. Это обеспечивается батареей GB1. На схеме указана полярность, но на самом деле она не важна. И микрофон и телефонный капсюль – неполярные устройства.

Электромагнитный телефонный капсюль состоит из катушки, к которой подводится входной сигнал переменного тока, постоянный магнит и гибкую мембрану из ферромагнитного сплава, способную притягиваться под действием магнитного поля, создаваемого магнитом и катушкой. Постоянный магнит нужен для того, чтобы мембрана была немного выгнута в одну сторону, тогда переменный ток, проходящий через катушку, сможет или ослаблять или наоборот усиливать изгиб мембраны, в зависимости от полярности тока. Таким образом, переменный ток преобразуется в пропорциональное колебание мембраны. Без «преднатяга», обеспечиваемого постоянным магнитом, мембрана бы притягивалась при любой полярности тока, что привело бы к огромным искажениям воспроизводимого сигнала.

Если говорить в микрофон BM1, то постоянный ток, текущий в замкнутой цепи начнет изменяться пропорционально звуковому давлению. Изменяющийся ток приводит к пропорциональному колебанию мембран в капсюлях BA1 и BA2, поскольку ток, протекающий в цепи одинаков для всех элементов, включенных последовательно. Колебания мембран преобразуются в звуковые колебания. Говорящий в микрофон BM1 слышит свой собственный голос в капсюле BA1 и точно также его слышит абонент за другим телефонным аппаратом в капсюле BA2. Аналогично, если говорить в микрофон BM2, абонент за вторым аппаратом будет слышать сам себя и также его будет слышать абонент за первым аппаратом. Если одновременно говорить в оба микрофона, то сумма колебаний их токов будет слышна в обоих капсюлях. Благодаря тому, что звуковой сигнал передается не напряжением, а током, его уровень не зависит от длины линии связи (в определенных пределах, естественно, до тех пор пока хватает напряжения батареи компенсировать потери в проводах).

В телефонии эффект прослушивания абонентом через телефонный аппарат местных шумов и собственной речи получило название «местный эффект». Для его уменьшения применяют те или иные противоместные схемы. Чаще всего применяется схема мостового типа. Трансформатор в схемах телефонных аппаратов – это и есть элемент противоместной схемы. Однако, полное подавление самопрослушивания сложно осуществимо, да и не нужно. Как оказалось, если абонент при разговоре не слышит сам себя, он начинает испытывать дискомфорт, думая что его аппарат неисправен или же произошел обрыв связи.

Часть схемы телефонного аппарата с микрофоном, капсюлем и противоместной схемой получила название «разговорная часть» или «разговорная схема».

Схема телефонной связи, при которой источник питания находится вне телефонных аппаратов, получила название схема с «центральной батареей» (ЦБ). Батарея обычно располагается на общей для всех аппаратов телефонной станции. Также существует схема, при которой источник питания микрофона находится в каждом телефонном аппарате. Такая схема называется схемой с «местной батареей» (МБ). Схема с местной батареей широко применяется в т. н. полевых телефонах, например, в широко известном телефоне ТА-57. Полевые телефоны могут соединяться непосредственно друг с другом без какой-либо АТС и используются в полевых условиях в различных армиях мира, а также и в мирном деле, обычно, вдалеке от цивилизации, там, где вообще отсутствует какая либо связь.

image

Электромеханический звонок

Для приема вызывного сигнала долгое время использовался простой электромеханический звонок. Переменное напряжение около 100 – 120 В с помощью электромагнитной катушки преобразуется в механическое движение молоточка, который попеременно ударяет то в одну, то в другую чашку, издавая громкий звенящий звук. Звонок подключается через конденсатор и переключатель, механически связанный с рычагами, на которых лежит трубка. Когда трубка положена, телефонная линия подключена к звонку, когда трубка снята – линия подключается к разговорной части. Конденсатор отделяет постоянную составляющую напряжения линии, чтобы оно не замыкалось через катушку звонка.

Для чего же в линии нужно постоянное напряжение? Постоянное напряжение нужно для определения момента, когда абонент снял трубку и желает поговорить. В отечественных сетях это напряжение порядка 60 В, в иностранных 48 В. При снятии трубки оно замыкается через разговорную схему и падает до величины 5 — 16 В и через разговорную часть начинает течь ток порядка 20-40 мА. Станция фиксирует падение напряжения и протекание тока и переходит в режим ожидания набора номера (автоматическая станция) или подает сигнал телефонистке (если коммутация ручная).

Некоторое время после изобретения телефона коммутация абонентов производилась исключительно вручную – телефонистками. Затем, в 1891 году Элмон Бра́ун Стро́уджер изобрел АТС – автоматическую телефонную станцию. Как гласит легенда, Строуджер, владевший похоронным бюро, был весьма обескуражен тем, что почти все заказы доставались конкуренту, жена которого работала телефонисткой. Он поклялся навсегда избавить общество от телефонисток и изобрёл автоматический телефонный коммутатор декадно-шагового типа ёмкостью до 99 абонентов на базе декадно-шагового искателя. Строуджер является также изобретателем номеронабирателя в виде вращающегося диска, который в течение десятилетий использовался в выпускаемых промышленностью телефонных аппаратах.

Как же передать номер абонента по двум проводам, по которым и так уже передается звуковой сигнал и вызывной сигнал? Для этого используется быстрое замыкание-размыкание линии, количество которых соответствует передаваемой цифре. Это осуществляется с помощью номеронабирателя.

image

Устройство номеронабирателя

На схеме телефона у номеронабирателя есть два контакта – нормально замкнутый и нормально разомкнутый. Если чуть-чуть сдвинуть диск, то первым замыкается разомкнутый контакт и тем самым блокирует разговорную часть, чтобы в ней не было слышно щелчков при наборе номера. Затем диск проворачивается на угол, пропорциональный выбранной цифре. При обратном движении диска под действием возвратной пружины происходит быстрое размыкание и замыкание нормально замкнутого контакта.

image

Механизм номеронабирателя

Замыкания и размыкания линии отслеживаются станцией аналогично отслеживанию поднятия трубки, таким образом, станция распознает набранную цифру. Это — так называемый импульсный тип набора номера. Современные аппараты кроме импульсного поддерживают и тональный набор – когда набранная цифра передается не количеством импульсов, а звуком, сформированным особой комбинацией двух тонов четырех различных частот. Таким образом можно передать 4х4=16 различных комбинаций, что хватает для десяти цифр и шести служебных сигналов (типа * или #).

Проводная телефония прошла длинный путь, в следующем году она отметит своеобразный юбилей – 150 лет. Однако, использование проводной телефонии постепенно сокращается. После широкого распространения мобильной связи в середине-конце 00-х, телефоны, по большей части, исчезли из частных домовладений. А после расцвета мессенджеров в конце 10-х (благодаря ковиду) проводная связь постепенно уходит и из корпоративного сегмента. Телефонные аппараты становятся никому не нужны. Например, телефонный аппарат Panasonic (на первом фото) мне удалось приобрести на распродаже списанной офисной техники за сумму, порядка всего 30 р. Причем, аппарат оказался полностью в рабочем состоянии. При подаче на него переменного напряжения 110 В, он звонил, а при подаче постоянного тока величиной 30 мА, в трубке появлялось самопрослушивание.

Аппарат содержит в себе небольшую печатную плату в почти пустом корпусе.

image

Устройство телефона Panasonic

Вся основная логика аппарата реализована на специализированной микросборке в виде бескорпусной микросхемы, залитой компаундом.

image

Плата телефона крупным планом

Ради интереса я раздобыл еще аппарат ASTER польской фирмы RWT с дисковым номеронабирателем и механическим звонком.

image

Устройство телефона ASTER

Этот аппарат стоил уже на порядок дороже, порядка 300 р. Он, типа, уже считается раритетом и за него хотят больше денег. Судя по штампикам даты на капсюле и микрофоне, аппарат был выпущен где-то в начале 80-х годов прошлого века. На плате аппарата были обнаружены сгоревшие резисторы. Шнур телефона оканчивался стандартным электрическим штепселем и, видимо, у кого-то хватило ума включить его в розетку. А когда аппарат начал истошно звонить – еще и снять трубку и сказать «алло». Как ни удивительно, но на работоспособности аппарата это никак не сказалось – помимо резисторов отгорели еще и пара дорожек на плате, что и спасло аппарат (дорожки были восстановлены перемычками еще до меня).

image

Плата телефона крупным планом

В сам аппарат изготовителем была заботливо положена схема электрическая принципиальная. В сложенном состоянии она была зажата между трансформатором и кронштейном рычажного механизма.

image

Схема аппарата

Благодаря схеме заменить сгоревшие детали не составило никакого труда. На схеме есть опциональный элемент – неоновая лампочка индикации вызова. Я нашел в закромах подходящую и тоже добавил в схему.

image

Добавляем лампочку в телефон

Световая индикация использовалась в варианте исполнения с отключенным звонком. Это, видимо, вариант для помещений, где требовалось соблюдать тишину.

Также мне достался советский аппарат VEF TA-12 известной латвийской фирмы VEF. Он уже имеет электронный кнопочный набор и функцию повтора последнего набранного номера. Аппарат оказался тоже неисправным.

image

Устройство аппарата VEF. Плата электронного номеронабирателя.

Сгнили некоторые дорожки, а также один из проводов, соединяющих две платы устройства. Но и после ремонта аппарат работал как-то ненадежно, через раз. Виной всему оказались контакты кнопки 8. Они как-то не так изогнулись и постоянно замыкали между собой, из-за чего микросхема электронного номеронабирателя была постоянно в режиме набора номера.

image

Устройство аппарата VEF. Плата электронного звонка и разговорная часть.

Интересной особенностью аппарата является то, что он не начинает работать сразу после подключения к линии. Его необходимо подержать под напряжением линии некоторое время, чтобы зарядилась внутренняя накопительная емкость. Эта емкость поддерживает работу логики микросхемы в ждущем режиме, а также сохраняет состояние памяти при временном отключении от линии. При снятии трубки питание микросхемы (и подзарядка емкости) обеспечивается специальным высокочастотным импульсным преобразователем. В общем, схема достаточно сложная.

Что же интересного можно сделать с этими аппаратами? Можно создать небольшую локальную частную телефонную сеть. Такая сеть может стать как просто игрушкой для детей, так и нести и полезную нагрузку – например, можно телефонизировать дачный участок, установить связь между первым и вторым этажом дома, а также баней и теплицей.

Связать напрямую два аппарата никаких сложностей не представляет, эти схемы давно гуляют по сети и в различной литературе.

image

Схема связи двух аппаратов. Вариант 1.

В этой схеме применена трехпроводная линия связи. Третий провод необходим для передачи напряжения вызова. Посылка вызова осуществляется нажатием на кнопку, расположенную рядом с аппаратом. Переменное напряжение для вызывного сигнала и постоянное напряжение питания разговорных частей получаются с помощью простейшего трансформаторного источника питания.

image

Схема связи двух аппаратов. Вариант 2.

В другой схеме используется стандартная двухпроводная линия и реализована простейшая релейная автоматика. При снятии трубки на одном из аппаратов, текущий через него ток вызывает срабатывание реле, которое подключает другой аппарат к вызывному сигналу. Когда на втором аппарате снимают трубку, срабатывает второе реле и одним контактом размыкает цепь посылки вызова, а другим контактом замыкает разговорную цепь. Питание происходит также от простейшего трансформаторного блока питания.

Реализовать схему с бОльшим числом аппаратов на реле уже проблематично, поскольку нужно вводить схему распознавания набранного номера и логика существенно усложняется. Что же делать? Можно использовать VoIP роутер. На той же распродаже офисной техники мной был приобретен DLink DVG-5008S. Девайс также оказался неисправен (неудивительно, иначе бы его не списали). После вскрытия обнаружилась выгоревшая микросхема на 1 и 2 канале FXS и вспухший конденсатор. В инструкции на роутер было прямо запрещено подключать к портам FXS внешнюю телефонную сеть или соединять их между собой. Видимо, нарушение этого правила и привело к выходу из строя аппарата. Сгоревшая микросхема просаживала питание остальных микросхем, из-за чего не работали и остальные, исправные порты.

image

Внутри роутера

Микросхема была выпаяна, конденсатор заменен. Роутер без проблем запустился, но, помимо 1 и 2 порта, перестал видеть микросхему, отвечающую за 7 и 8 порты, хотя та и была полностью исправна. Видимо, они были как то внутри завязаны между собой. Я не стал копать глубже, поскольку для моей задумки вполне хватало и четырех портов – 3, 4, 5, 6.

Для настройки роутера необходимо зайти на него через WEB-интерфейс. Для работы в качестве микро АТС достаточно лишь назначить каналам их внутренний телефонный номер. В DLink это делается на странице SIP.

image

Настройка DLink

Я назначил номера с 1 по 4, соответствующие исправным каналам. Все остальные параметры можно оставить по умолчанию. Подключив телефонные аппараты можно убедиться в работоспособности системы. Роутер полностью имитирует АТС – при снятии трубки выдает длинный гудок – ответ станции, принимает набор номера (как импульсный, так и тональный), посылает сигнал вызова на другой телефон (для этого на плате присутствует высоковольтный преобразователь питания), а после отбоя выдает короткие гудки – в общем, все как на настоящей АТС.

Если требуется больше портов, чем есть на роутере, можно соединить между собой по сети два роутера, как это сделано здесь. Также этот роутер можно использовать еще и как обычный свитч для домашних устройств. В общем, полезная штука.

image

Микро АТС из роутера DLink

Интересный получился момент: аппараты производства разных стран — КНР, ПНР, СССР и Японии без проблем работают совместно в одной сети, несмотря на то, что их разделяют десятилетия развития технологий! Вот что значит стандартизация!

А если нет роутера? Можно ли сделать простейшую АТС на 4 абонента из подручных радиодеталей? А почему бы и нет.

Чтобы упростить схему, всю логику можно засунуть в микроконтроллер. Для упрощения источника питания можно применить трансформатор. Отлично подойдет трансформатор от источников бесперебойного питания, они достаточно мощные и их достать не проблема. Почти все они имеют идентичные характеристики: мощная вторичная обмотка с отводом от середины, по 7 В на каждой половине и маломощная обмотка на 19-20В для заряда батареи. Первичная обмотка иногда имеет дополнительную секцию последовательно с основной, которая подключается чтобы компенсировать уменьшение выходного напряжения по мере разрядки батареи. Первичную обмотку лучше использовать полностью, вместе с дополнительной секцией для уменьшения тока холостого хода. Низковольтная вторичная обмотка используется для получения напряжения 5 В, высоковольтная включена последовательно с 5 В и там в сумме после выпрямления набегает порядка 33 В. Это напряжение подойдет для питания линии.

image

Схема самодельной АТС

Для питания разговорной части телефонов используются транзисторы VT1, VT2, VT4, VT5. Они образуют схему источника тока для каждого из аппаратов. Величина этого тока выбрана в районе 30 мА. Снятие трубки детектируется по падению напряжения на резисторах R1, R2, R17, R18. Ими же детектируется набор номера. Помимо детектирования, этот вывод микроконтроллера генерирует и звуковые сигналы ответа станции. Соотношения сопротивлений R1 и R3 (для линии 1) подобраны так, чтобы величина звукового сигнала была около 0,4…0,5 В. Емкость конденсатора подобрана так, чтобы немного сглаживать прямоугольную форму сигнала. Также этот конденсатор сглаживает импульсы и помехи, возникающие в линии при наборе номера. На время посылки сигналов ответа станции транзистор VT3 открыт и блокирует разговорную линию на корпус, обеспечивая прохождение сигнала ответа станции через телефон по цепи: Корпус – R3-ТА1-С3-VT3 -Корпус (для линии 1). После того как вызываемый абонент снимет трубку, транзистор закрывается и не мешает прохождению сигнала разговора. Разговорный ток течет по следующей цепи (если скоммутированы линии 1 и 3): Корпус – R1C1-TA1-C3-C5-TA3-R17C9-Корпус.

Вызывной сигнал ~85В получается с помощью маломощного сетевого трансформатора от блока питания на ~18 В. Трансформатор включен наоборот и на его вторичную обмотку подается 7 В. Поскольку это напряжение меньше 18 В, то и на выходе получаем не 220, а порядка 85 В без нагрузки и около 75 В, если его нагрузить на звонок. Хоть это напряжение и меньше 110 В, механическому звонку его более чем достаточно, а электронному и подавно. Вызывной сигнал подключается к телефону с помощью реле. В качестве реле применены герконовые РЭС55. Их рабочий ток срабатывания составляет порядка 15-20 мА при 5 В. И поэтому их можно подключить напрямую к выходу микроконтроллера. Также можно применить и обычные реле на 5 В. В этом случае их следует включить через дополнительный транзистор BC640, включенный по схеме с общим эмиттером. Ток вызова течет по следующей цепи (для ТА1): ТА1-R1C1-Корпус. Поскольку линии до аппаратов предполагаются короткими, никаких защит от грозовых разрядов не используется. Входы микроконтроллера защищены встроенными диодами и токоограничивающими резисторами R3, R4, R15, R16.

Схема собрана на макетной плате, крупные элементы соединены проводами.

image

Внешний вид макета

Несмотря на экстремально простую схему, она обеспечивает почти полное соответствие поведению реальной АТС. При снятии трубки она выдает ответ станции в виде непрерывного гудка, распознает импульсный набор номера (из одной цифры), посылает вызывной сигнал абоненту, коммутирует голосовой канал после ответа абонента и выдает сигнал отбоя после того как один из абонентов положил трубку. Единственное, эта схема имеет только один общий канал связи и одновременно позволяет связать только 2 аппарата из четырех.

Программа тоже достаточно проста.

Текст программы

#include <iotiny2313.h>  //variables declare unsigned char busy,cnt1,cnt2,read=0,tone,voice,state=0,i,ab1,ab2,bl,cnt3; unsigned int timer;  //main function void main(void) {     DDRA=0x00;          //init ports     PORTA=0x00;     DDRB=0x10;     PORTB=0x10;     DDRD=0x1F;     PORTD=0x1F;      TCCR0A=0x02;            //init timers     TCCR0B=0x02;     OCR0A=0x92;     TCCR1A=0x00;     TCCR1B=0x0A;     TCCR1C=0x00;     OCR1A=0xA000;      MCUCR=0x80;         //init others     TIMSK=0x41;     SREG|=128;    while(1)              //main loop   {         if(cnt3>16)         {             cnt3=0;             PORTD^=0x10;         }          switch(state)         {             case 0: //On hook                 ab1=0;                 ab2=0;                 voice=1;                 tone=0;                 PORTD|=0x0F;                  if(read)                 {                     state=1;                     timer=0;                 }                 break;              case 1: //Off hook                 tone=read;                  if(timer>65000)                     state=5;                  switch(tone)                 {                 case 0:                     state=2;                     timer=0;                     bl=0;                     break;                  case 1:                     ab1=1;                                       break;                  case 2:                     ab1=2;                     break;                  case 4:                     ab1=3;                     break;                  case 8:                     ab1=4;                     break;                  default:                     ab1=0;                     state=5;                 }                  break;              case 2: //Wait number                  if((timer>200) && (ab2==0))                     state=0;                  if((read&(1<<(ab1-1))) && (timer<60) && (timer>40) && (!bl))                 {                     timer=0;                     ab2++;                       bl=1;                 }                  if((!read) && (timer<60) && (timer>20) && bl)                 {                     bl=0;                     timer=0;                 }                  if(read && (timer>200) && ab2)                 {                     state=3;                     bl=0;                 }                 break;              case 3: //Ringing                 if((ab1==ab2)||(ab2>4))                     state=5;                 else                     if(cnt2<3)                     {                         PORTD&=~(0x01<<(ab2-1));                         tone=(0x01<<(ab1-1));                     }                     else                     {                         PORTD|=0x0F;                         tone=0;                         if((read&(0x01<<(ab2-1))) && (cnt2>3))                         {                             PORTD|=0x0F;                             state=4;                             voice=0;                         }                     }                  if((!read) && (!bl))                 {                     bl=1;                     timer=0;                 }                  if((!read) && (timer>100) && bl)                     state=0;                                  if(read&(~((0x01<<(ab2-1))|(0x01<<(ab1-1)))))                 {                     state=5;                     PORTD|=0x0F;                 }                 break;              case 4: //Connecting                 if(read!=((0x01<<(ab2-1))|(0x01<<(ab1-1))))                     state=5;                 break;              case 5: //Disconnecting                 tone=busy;                 voice=1;                  if(!read)                     state=0;                 break;              default:                 break;         }     } }  #pragma vector=TIMER0_COMPA_vect __interrupt void timer0(void)           //tone generator {     cnt1^=0x01;     cnt3++;      if(timer<255)         timer++;      if(cnt1)     {         DDRB=0x10|tone;         PORTB=voice<<4;     }     else     {         DDRB=0x10;         DDRB=0x10;         DDRB=0x10;         read=PINB&0x0F;     }     return; }  #pragma vector=TIMER1_COMPA_vect __interrupt void timer1(void)           //tone duration {     busy^=0x0F;     cnt2++;     cnt2&=0x0F;     return; }

Вначале инициализируются порты и таймеры. 8-битный таймер 0 используется для генерации тона ответа станции (425 Гц), 16-битный таймер генерирует интервалы длительности этого сигнала. Минимальный интервал – 0,31 с (сигнал отбоя), максимальный – 5 с (посылка вызова), получается как 16 минимальных интервалов.

Таблица:

Сигнал Частота, Гц Период, с
Ответ станции (dial tone) 425±3 Непрерывно
Занятость (busy tone) 425±3 Посылка 0.3-0.4 Пауза — 0.3-0.4
Контроль посылки вызова КПВ (ringback tone) 425±3 Посылка 1±0.1 Пауза — 4±0.4

В обработчике таймера 0 дополнительно постоянно опрашивается состояние линий. Опрос происходит в момент между формированием импульсов тонального сигнала. Также в нем постоянно инкрементируется счетчик таймера.

Затем контроллер попадает в бесконечный цикл обработки конечного автомата. У автомата 6 состояний: трубка повешена (0), трубка снята (1), набор номера (2), посылка вызова (3), разговор (4), отбой (5).

В состоянии 0 инициализируются некоторые переменные и постоянно опрашивается состояние линий. Если на какой то линии снята трубка, осуществляется переход в состояние 1. В этом состоянии тикает таймер и, если трубка снята больше положенного, осуществляется переход в состояние 5 (отбой). У реальной АТС после некоторой выдержки в состоянии «отбой» техник вручную отключает абонента от линии, чтобы тот не занимал дефицитный ресурс. В самодельной АТС это не имеет смысла. Также в этом состоянии вычисляется номер вызывающего абонента и присваивается переменной ab1. Если трубку снимают несколько абонентов, то происходит переход в состояние «отбой». Если начался набор номера или положили трубку происходит переход в состояние 2. При этом обнуляется таймер. Если трубку положили надолго, то по таймеру происходит переход в состояние 0. Если же таймером детектируется короткий перепад (от 40 до 60 мс), то это означает начала набора номера. Отдельно анализируются длительности замкнутого и разомкнутого состояния линии, чтобы гарантированно отсечь короткие помехи в линии. После приема цифры происходит переход в состояние 3. Набранный номер абонента сохраняется в переменной ab2. В состоянии 3 прежде всего сравниваются переменные ab1 и ab2. Если абонент набрал свой собственный номер, то происходит переход в состояние 5 и выдача звука «отбой». То же самое происходит, если набран несуществующий номер (больше 4). В противном случае начинается посылка вызова. Длительности вызывного сигнала формируются с помощью таймера 1. При этом параллельно вызывающему абоненту генерируются длинные гудки контроля посылки вызова. В момент паузы контролируется снятие трубки вызываемого абонента. Если трубка снята происходит переход в состояние 4. В этом состоянии разблокируется разговорная линия и происходит постоянный контроль линий. Если один из разговаривающих абонентов кладет трубку, происходит переход в состояние 5 (отбой). То же самое происходит, если кто-то во время разговора снимает трубку на третьем аппарате. Это сделано для того, чтобы никто не мог прослушать разговор двух собеседников.

В состоянии 5 блокируется разговорная линия и выдается звуковой сигнал отбоя всем абонентам. Когда все положат трубки, автомат вернется в состояние 0.

При необходимости схему легко масштабировать до 8 абонентов, применив микроконтроллер AVR с большим числом выводов и немного доработав ПО.

В итоге получилась простая и приятная игрушка, которую можно собрать за один вечер (при наличии всех деталей, разумеется). Видео работы можно посмотреть на YouTube.

Вопросы и замечания прошу писать в комментариях.


Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале ↩


ссылка на оригинал статьи https://habr.com/ru/articles/897696/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *