Система уведомлений с несколькими терминалами для совершения звонков между комнатами

TL,DR: Как реализовать систему оповещения с несколькими оконечными устройствами, позволяющую звонить с любого терминала на любой другой терминал? Основными ограничениями являются отказ от использования программируемых чипов/MCU (только универсальная и специализированная жесткая логика), использование проводной связи вместо беспроводной, отсутствие отдельного кабеля между каждыми двумя терминалами, наличие единого источника питания вместо батарей везде. Нет необходимости передавать голос или текст — только целевые уведомления в стиле «дверной звонок между любыми двумя комнатами». Получатель должен знать, кто отправил уведомление.

Это мой первый вопрос по электротехнике SE. Я любитель электроники. Я считаю себя новичком.

Я хотел бы реализовать в своем доме своего рода систему уведомлений для звонков между комнатами, либо разработав ее самостоятельно, либо найдя существующий дизайн. Основная идея заключается в том, что будет несколько терминальных устройств (ниже называемых «терминалами») A, B, C, D, … в разных местах. Каждый терминал будет иметь отдельную кнопку для каждого другого терминала (так, например, терминал A будет иметь кнопки «B», «C», «D» и т. д.), отдельный светодиод для каждого другого терминала (таким образом, терминал A будет иметь светодиоды «B»). », «С», «Д» и так далее), и один звонок (как обычный электрический дверной звонок). Кнопки будут использоваться для совершения звонков, а светодиоды будут указывать на вызывающего абонента.

Как это должно работать

Предположим, Алиса (которая в данный момент находится рядом с терминалом А) хочет позвонить Бобу (который в данный момент находится рядом с терминалом В). Затем Алиса нажимает кнопку «В» на терминальном устройстве А. В результате на терминале В загорается светодиод с пометкой «А», а на терминале В раздается звонок. Терминалы C, D и т. д. молчат. Боб слышит звонок, видит светодиод и идет к терминалу А, чтобы посмотреть/спросить, что произошло.

Дальнейшая разработка

Будет не более 16 терминалов и не менее 5 терминалов.

Вместо нескольких светодиодов на каждом терминале может быть один или два семисегментных дисплея для отображения идентификатора вызывающего абонента.

Опционально, также будет кнопка «позвонить на все другие терминалы одновременно», например, чтобы одновременно позвонить на B, C, D и т. д. с A. Это (как и другие необязательные функции) во многом будет зависеть от того, упрощают ли они вещи или усложняют.

Провода

Все клеммы будут питаться от одного источника питания (вместо батарей в каждой клемме), таким образом, по крайней мере два провода будут проходить через все клеммы (Vcc и GND). В зависимости от схемы может потребоваться третий провод питания. Кроме того, низкочастотная проводная связь предпочтительнее высокочастотной беспроводной связи по нескольким причинам, включая отсутствие опыта работы с радиочастотами. Допускается до 8 дополнительных проводов для связи (т.е. не считая проводов питания), при этом все кабели должны сходиться в одной точке (местоположении источника питания). В качестве альтернативы к каждому терминалу может быть подключено дополнительное промежуточное устройство.

Одновременные вызовы

Могут быть проблемы, если два вызова выполняются одновременно с разных терминалов. Этого можно избежать, заблокировав клеммы B, C, D после активации клеммы A и снова разблокировав их после деактивации клеммы A. В любом случае, эту проблему можно полностью игнорировать, предполагая, что любая комбинация одновременных вызовов не разрушит схему.

Дизайн

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

Однако у меня есть сильное ощущение, что эта или подобная проблема уже решена и реализована в некоторых специализированных интегральных схемах или электронных модулях, которые можно просто подключить с минимальными/умеренными дополнениями. Однако я не уверен, как искать такое решение, а также будет ли цена приемлемой для меня. Мои попытки ввести «многонаправленный дверной звонок», «домашняя система оповещения» и ряд других запросов не дали ничего существенного.

Возможно, пульты дистанционного управления можно было бы перепрофилировать в терминалы (вызывающая часть), с разными командами для разных получателей и разными протоколами для разных вызывающих абонентов, но тогда либо каждый получатель должен понимать всех вызывающих абонентов (несколько принимающих модулей в каждом терминале?), либо должно быть не менее 20 различных команд, поддерживаемых пультом дистанционного управления (для охвата 5 терминалов) до 240 различных поддерживаемых команд (для охвата 16 терминалов). Однако я не исследовал идею с дистанционным управлением.

Вопросы)

Можете ли вы указать на существующее решение с несколькими «одноранговыми» терминальными устройствами, которое в первую очередь предназначено для создания простых неголосовых уведомлений? Или к любым идеям о том, как это может быть реализовано? Или к существующим местам в Интернете, где одно и то же обсуждается под другим именем / в другой обстановке? Существуют ли решения других проблем (например, дистанционного управления), которые можно было бы адаптировать для этой цели?

Обратите внимание, что я не буду принимать ответы, предлагающие программируемые микросхемы/микроконтроллеры/что-либо, что должно быть запрограммировано, даже если это действительно упростит оставшуюся часть схемы. (Я не говорю, что такие ответы будут совершенно бесполезны, так как у других людей с другими навыками может быть такая же проблема! Кроме того, допустимо наличие нескольких перемычек или микропереключателей внутри каждого терминального устройства для назначения терминалам уникальных идентификаторов, даже если это может считать «программированием».)

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

Любой вклад приветствуется!

Это трудно читать.
@MarkoBuršič: Почему? Слишком длинный, плохое форматирование, плохой язык, неправильная терминология? Английский не мой родной язык.
Слишком долго. Нас не волнует ваш опыт, предыдущие проекты и то, как они были построены. Ни ваши маркетинговые исследования. Изложите краткое изложение вашего вопроса желательно в начале, а затем расширите, если это действительно необходимо. И убедитесь, что на вопрос можно ответить, не написав больше половины страницы текста. И мы не рекомендуем продукты.
Просто пытаюсь сократить текст. Мое «исследование рынка» на самом деле состояло в том, чтобы спросить мою семью, что они думают об этом. Всё равно удалил.

Ответы (1)

Интересный. Конечно, любой здравомыслящий человек использовал бы для этого микроконтроллер, например Arduino . Но если вам действительно нужно решение с «жесткой логикой», я бы предложил основывать его на автономном чипе UART — при условии, что они все еще доступны. Вот функциональная блок-схема, объясняющая концепцию.

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

U12 — это DIP-переключатель, который используется для идентификации конкретного терминала (ID источника).

U2 — это микросхема «кодировщика клавиатуры», которая выводит номер клавиши (идентификатор назначения) вместе с «действительным» стробоскопом, указывающим, что клавиша нажата. Вы никогда не указывали, как долго вы хотите, чтобы дисплей сохранялся, поэтому я предполагаю, что это только до тех пор, пока нажата клавиша. Таким образом, каждое нажатие клавиши отправляет два сообщения: одно при нажатии клавиши и одно при ее нажатии. Сообщение о включении отправляет собственный идентификатор терминала в качестве идентификатора получателя, который получатели интерпретируют как «отключение дисплея».

U3 — это мультиплексор, который выбирает выход клавиатуры для нажатия клавиши и собственный идентификатор терминала для нажатия клавиши, а U4 превращает фронты «действительного» сигнала в строб-импульсы для передатчика UART.

Передатчик UART последовательно преобразует два 4-битных кода в 8-битный байт, который затем поступает от приемников всех терминалов. Если идентификатор получателя соответствует собственному идентификатору терминала (определенному U7), то включается отображение, отображающее исходный идентификатор из сообщения. Если идентификатор получателя совпадает с идентификатором источника в сообщении (определяется U11), то дисплей выключается. Триггер U10 запоминает состояние дисплея, а U8 функционирует как декодер для дисплея (U9), который может быть либо отдельным светодиодом, либо 7-сегментным дисплеем.

Поле с пометкой «Шина или концентратор» представляет соединения между всеми терминалами. Вы можете использовать RS-232 в качестве интерфейса сигнализации, и в этом случае вам понадобится концентратор, который объединяет все сигналы передатчика вместе и перенаправляет их на все приемники. Или вы можете использовать RS-485 в качестве интерфейса сигнализации, что позволит вам просто объединить все терминалы вместе с распределением мощности.

Добавление функции «звонить всем» проще всего добавить, назначив этой функции один из идентификаторов адресата (например, 0xF). Вы сможете иметь только 15 терминалов, но потребуется лишь небольшая дополнительная логика на приемнике, чтобы проверить этот конкретный идентификатор, входящий для включения отображения.

Каждый из блоков, показанных на этой диаграмме, доступен в виде отдельного чипа (SSI/MSI TTL плюс UART).

Потребуется время, чтобы переварить ваш ответ. Кажется, что нетрудно изменить логику, чтобы отображение сохранялось в течение нескольких секунд, а затем все в порядке в любом случае. Спасибо, что написали.
Я вижу, как сделать схемы всего, что находится слева от UART (U5 и U6), но с остальным у меня проблемы. Насколько я понимаю, U5 имеет 8 контактов данных, 1 контакт стробоскопа, контакты, идущие к шине, и, возможно, контакты для установки параметров; U6 имеет контакт(ы) от шины, 8 контактов данных и контакты для установки параметров. Я нашел техническое описание HD-6402, в котором показано только взаимодействие с RS-232 (требуется концентратор), и кажется, что его нет в местных магазинах (как и другие автономные UART). Также не нашел примеров реальных схем с автономными UART. Может быть, я просто выброшу UART и буду использовать больше проводов для параллельной передачи...
Для этого потребуется много проводов: 9 на передачу и 9 на прием (8 данных + стробоскоп). Можно было бы заменить UART некоторыми простыми регистрами сдвига, если общие часы распределены по всем терминалам. Я подумаю.
Спасибо; Меня интересует возможная замена UART и буду ждать возможных обновлений. Если я ничего не упускаю, вызов и прием можно осуществлять по одним и тем же 9 проводам. При вызове отправляются два 4-битных идентификатора и «действительный» сигнал. На принимающей стороне «действительный» сигнал объединяется по И с выходом U7 для включения дисплея и звонка. Два одновременных вызова (хотя маловероятно) сделают один неверный вызов. Далее можно использовать только 8 проводов, так как хотя бы один из 8 проводов гарантированно находится на высоком уровне во время звонка (если только caller=receiver=0), что можно интерпретировать как «действительный» сигнал.