Вопрос:
возникла проблема: нужен модуль измерения тока и напряжения для проведения ФДК на большом количестве модулей одновременно.
Есть большая сложная распределенная система, состоящая из кучи модулей, распределенная на площади в несколько десятков квадратных метров. Она потребляет большую мощность, питается от 220, 380, 50 Гц, 400 Гц, жрет кучу киловатт, содержит в себе мощные силовые потребители, привода, етс, источники импульсных помех и вообще все радости жизни. Возник вопрос: требуется сделать ей ФДК в реальном времени.
После долгих обсуждений выяснилось, что в одном случае я должен оценивать качество питания модуля, который имеет 4 питающих напряжения (5,9,12,33 В), и принимать в себя от етого модуля 2 SPI интерфейса (приемный и передающий), и еще одну логическую линию. Мой контролирующий модуль должен обслуживать одновременно 4 таких модуля. При етом нет потребности делать все ето с большой скоростью, раз в секунду достаточно.
Во втором случае нужно просто оценивать состояния 16 дискретных линий. Но линии ети могут иметь на себе довольно великие наводки, и даже возможно выбросы по напряжению. Т.е. для достоверности было очень неплохо передавать значения 0 или 1 в такой линии токовым интерфейсом, а в идеале воопще через оптрон.
При етом предполагается, что система имеет великую и могучую землю, на которой нет никаких помех, и что все модули корректно заземлены, и кабели связи выполнены очень качественно. Вот в етом лично я очень сильно сомневаюсь. Короче я думаю нужно исходить из предположения, что по земле может ползти всякая дрянь.
По всему выходит, что нужно лепить 2 модуля. Но с некой политической точки зрения, желательно бы получить весь етот чудесный функционал в 1 устройстве. Подчеркиваю, ето достаточное условие.
Так как я цифровик, то задача для меня тяжеловата. Но после часа чесания в затылке мне пришла идея: а что если поставить на входе аналоговый мультиплексор, и коммутировать входные каналы им ?
Нашел прекрасный обзор http://www.chipfind.ru/datasheet/multiplexer/1.htm
из него видно, что например MC14053B - мультиплексор 8 к 1 имеет максимальный ток через канал +- 10 ма - вполне прилично для токовой петли, типовое сопротивление канала 80 Ом.
Вот я и думаю, что если земли всех каналов объединить на входе мультиплексора, далее на выходе мультиплексора поставить подключаемый релюхой нагрузочный резистор - подключили резистор - получаем канал измерения логического уровня в токовой петле.
Убираем резистор - вуаля - получаем канал ацэпирования напряжения питания модуля. Или даже релюху просто заменить перемычкой. Тип модуля определяется при установке в систему.
С моей дилетантской точки зрения задача решена. Единственный вопрос, который меня тревожит - как сделать программируемый аттенюатор для подстройки диапазона входного напряжения ?
В принципе тут вроде можно пойти двумя путями.
1. Реализовать отдельный канал измерения - фиксированный аттенюатор на 33 в, и отдельный мультиплексор 4:1, отдельный канал оцифровки.
2. На всех остальных привести все к 12 на full scale и надеться что точности оцифровки мне хватит. В принципе, мне и в самом деле великая точность не нужна. Изначально задача была поставлена - определить наличие либо отсутствие. А моя идея - изыски.
На мой взгляд, прелесть етого решения в том, что используя VCO для ацэпирования, я могу гальванически развязать цифровую часть (которая объединяется в большую сеть) от "местной земли", и по моему ето есть хорошо.
Да, совсем забыл про SPI. Но с ним что-то не срастается пока... По ходу он мне точно развязаться не даст. Возможно от него придется отказаться(((((
Попрошу профи бросить в меня грязью, где я не прав, или может подсказать, как подобные задачи решаются правильным образом.