PDA

Просмотр полной версии : Схемотехника управления - 0, или 1



UN7RX
20.04.2019, 20:56
Название немного корявое наверное, но ничего другого в голову не пришло.
Разрабатываю очередную ПП и оказалось, что в одном месте куда удобнее, если бы режим узла управлялся бы логическим нулем - при том что остальные части схемы переводятся в active единицей. Уровни неважны. Подумалось, что нигде не попадалось какого то сравнения этих вариантов. Как минимум, в 80% схем активным считается высокий уровень.
Но если управлять низким уровнем, то получается что можно одним ключом управлять узлами с совершенно разными параметрами логической единицы, если развязать их диодами, а ключ выбрать по максимальному уровню. Никто не задавался такими вопросами?

serge22
20.04.2019, 21:32
С точки зрения помехоустойчивости выгоднее использовать низкий уровень в качестве активного.
(Это связано с понятием "запасов помехоустойчивости для верхнего и нижнего уровней".)
Если посмотреть на микросхемы ТТЛ, то найдем там много элементов с инверсными входами. То есть уровень "0" там активный.
Для большинства целей (уверен, что и для ваших тоже) удобно управлять именно "нулем".

vadim_d
20.04.2019, 21:42
можно одним ключом управлять узлами с совершенно разными параметрами логической единицы, если развязать их диодами, а ключ выбрать по максимальному уровню
Роберт, если к быстродействию и потреблению особых требований нет, то это вполне разумное решение

Если посмотреть на микросхемы ТТЛ, то найдем там много элементов с инверсными входами. То есть уровень "0" там активный
Там исторически он имел гораздо большее потребление, за счет входного тока многоэмиттерного транзистора, выполнявшего по сути функцию ИЛИ для нулей. Поэтому всякие сбросы и предустановы делали активным нулем. С переходом к КМОП выбор уровней стал более свободным

rx3apf
20.04.2019, 22:00
Зависит от схемотехники входа узла. Если это, например, "логические транзисторы" или ULN200x - вполне естественным будет активная "1". Если же это входы выборки логики - чаще встречается активный "0". Светодиод оптрона или индикаторный светодиод - 50/50. Конфигурация, задаваемая джамперами или DIP-переключателями - pull-up, и замыкание на "землю" (опять же активный "0"). Может быть, стоит "покурить" сервис-мануалы на готовую связную или, скажем, измерительную аппаратуру...

RA3PKJ
20.04.2019, 22:34
Управление нулём не редкость. Используется во многих устройствах, управляемых извне.

UN7RX
20.04.2019, 22:35
Речь не идет о готовых деталях. Понятно, что если у всех используемых микросхем active=1 то городить огород ради инвертации нет смысла.
Но под проектируемые, которые можно под любой уровень "заточить", есть смысл выбрать.
Насчет нулевого активного, сейчас прикинул, тоже все не так просто. К примеру помехоустойчивость логической единицы с CMOS уровнями очень высока, относительно нуля это несколько вольт, а то и 10-15. А вот с нулем не все так просто, взять какой нибудь интегральный стабилизатор имеющий вход EN для управления. Чтобы его закрыть нужно подать 0, при уровне порядка 0.8В. Если закрыть его даже через диод Шоттки, то теряем еще 0.1-0.15В, уровень 1 для него ТТЛ, то есть около 2.4В. То есть помехоустойчивость по наводкам не фонтан... :roll:

rx3apf
20.04.2019, 22:57
CMOS, опять же, разная бывает. Есть и с TTL-смещенными уровнями. А если 10-15, так это с "высоковольтным" питанием, и ей от низковольтной логики уже через открытый коллектор или сток, напрямую уже нельзя.

Что же до "0" при TTL-смещенных уровнях (<0.8), то через диодную развязку закрывать это уже лишь при крайней нужде, и да, брать Шоттки. А иначе, если управляем через типичный CMOS-выход, то и проблемы нет. Токи-то мизерные. Это во времена TTL была лимитирована нагрузочная способность по "0", сейчас оно уже неактуально.

И все же не вполне понятен исходный вопрос - речь о узлах в пределах одной платы, или о стыковке нескольких плат и их управлении ? К слову, когда не требуется очень высокое быстродействие управления, нередко вообще основная масса управления делается через цепочку 4094/HC595, проходящую через все узлы (помню, в AR5000 насчитал полтора десятка 4094 такой гирляндой). Соответственно, все управление - три провода, а уж какие там по ходу дела полярности - определяется только и исключительно конкретными входами конкретных узлов. Лишние инверторы ставить ни к чему, а вот если равнозначный выбор 0/1 для самодельного узла - я бы посмотрел, какие активные уровни у окружающих компонентов. Чисто ради эстетичности, не из соображения помехозащищенности.

UN7RX
20.04.2019, 23:08
речь о узлах в пределах одной платы, или о стыковке нескольких плат и их управлении ?
Ну можно и в пределах одной платы множество "разносортных" узлов коммутировать. Причем их разносортность вынужденная. Можно взять более масштабный вариант, где такая разносортица - правило, например, трансивер, где нужно управлять режимами TX/RX, где всяких уровней 1 хватает и если управлять единицей, то нужно как то все приводить к одному уровню, согласовывать. Если нулем, то все упрощается, но всплывает вопрос помехозащищенности для узлов с низкой логической единицей. А усложнять - придешь к первому варианту.
Нет в мире совершенства :smile:

vadd
21.04.2019, 01:48
Ну можно и в пределах одной платы множество "разносортных" узлов коммутировать.

В свое время нам на одном предприятии Минобщемаша развернули разработку. Повод/причина был такой - в случае активации режима
повышенной кратковременной нагрузки (очень условно говоря - включение высокого напряжения, режим ТХ) цепь межблочного управления будто бы должна активироваться единицей, а у нас через межплатные соединения по проводу шел активным ноль.

Мы решили выяснить причину столь странного пожелания. Оказалось, что у них существовал некий норматив, основанный на анализе причин и видов отказов. По их результатам выходило, что для длинных проводных соединений более частым видом КЗ являлось КЗ на землю. И поэтому использование активной единицы в несколько раз снижала вероятность аварийного включения того, что включаться самопроизвольно никак не должно было. На внутриплатные и внутриблочные сигналы управления это требование не распространялось.
Больше я нигде такое требование не встречал. Наверное всем остальным борьба за надежность на таких уровнях не требовалась :)

rx3apf
21.04.2019, 08:43
Ну можно и в пределах одной платы множество "разносортных" узлов коммутировать. Причем их разносортность вынужденная.
Вот как раз тот случай, когда последовательными расширителями 4094 или 595 удобно, и особо задумываясь о полярности (там, где я это встречал, делалось ради отказа от мешанины проводов в первую очередь, как я понимаю). Но с условием, что аппаратный сброс регистров ("0" на выходе) не должен приводить к нежелательным активным действиям до загрузки требуемого состояния. И тут выбор активного уровня уже становится ограничен.

IMHO, однозначного заочного решения нет. Вот если бы был представлен некий условный образец дизайна, можно бы обсудить-покритиковать. Что же до проблем помехозащищенности - на мой взгляд, это не стоит такого внимания. Ну, ясное дело, что не должно срабатывать по причине прямого детектирования радиочастотной наводки, но до такого довести, это надо очень постараться. А вот про что точно не надо забывать (и в особенности если применяются сдвиговые расширители или что-то иное тактируемое фронтом), так это про согласование и подавление звонов (грешен, исхитрился на 20-см шлейфе получить звон и артефакты загрузки. Казалось бы, ну что такое 20 см ?).

serge22
21.04.2019, 09:34
...помехоустойчивост ь логической единицы с CMOS уровнями очень высока...

...с нулем не все так просто,

То есть помехоустойчивость по наводкам не фонтан...
Вы правильно все рассудили, только вывод сделали противоположный.
Как раз "фонтан"!
Предположим, у вас на шине управления при отсутствии команды стоит "0". Ждем команды, которая будет "единицей".
За время ожидания может прийти помеха и в результате - ложная сработка. Ибо запас помехоустойчивости по "нулю" у микросхем логики невелик.
А вот если шина управления в "единице", то понадобится очень сильная помеха, чтобы опустить уровень шины до порога срабатывания.
К тому же продолжительность команды ("0") как правило, невелика, и вероятность помехи снижается.
Аксиома: Запас помехоустойчивости для высокого уровня выше, чем запас помехоустойчивости для низкого уровня.

UN7RX
21.04.2019, 09:41
Вы правильно все рассудили, только вывод сделали противоположный.
Вы прочитали наоборот. :smile: Еще раз перечитайте то, что процитировали. "Не фонтан" это как раз про управление активным нулем. И кстати, vadd привел свой пример такой ненадежности, хоть и не связанный с наводками, но актуальный.

serge22
21.04.2019, 10:33
Нет-нет, я как раз правильно вас понял, что активный ноль - это "не фонтан".
Соответственно и ответил.
А пример уважаемого vadd - это отдельный частный случай "на одном предприятии Минобщемаша".
Они подстраховались от КЗ на линии (на основании статистики) , а что будет, если обрыв?! Тоже не редкая ситуация. Вот вам и аварийное включение.
--
Мое мнение: если в конструкции не будет длинных линий, ужасных импульсных помех и т.д., то схемотехнически удобнее и проще выдавать команды низким уровнем.

ra3qdp
21.04.2019, 12:16
Здесь речь идет не о входных уровнях, помехозащищенности и прочем, а об использования логического выхода для управления ключом.
Все просто - стандартные ТТЛ микросхемы имеют нагрузочную способность 1,6 мА по нулю и 40мкА по единице (в других сериях ТТЛ - другие величины, но соотношение соблюдается). Многие более современные микросхемы (микропроцессоры, например) имеют входы-выходы совместимые с ТТЛ (хотя сами могут быть сделаны по другой технологии). Поэтому логично использовать для открывания ключа именно - ноль. Если надо управлять реле, то ключ делается так: используется pnp транзистор, с логического выхода на базу сигнал идет через резистор, эмиттер на плюсе питания, параллельно база-эмиттер ставится еще один резистор, реле включается с коллектора на корпус. Обмотку зашунтировать диодом в обратном направлении.

Слушатель эфира
21.04.2019, 12:35
что будет, если обрыв?! Тоже не редкая ситуация. Вот вам и аварийное включение.Для этого есть резисторы, которые со входа управления сидят на плюсе питания

vadd
21.04.2019, 12:45
Для этого есть резисторы, которые со входа управления сидят на плюсе питания

Совершенно верно. Любая входная цепь должна притягиваться к "пассивному" уровню. Поэтому обрыв, в отличие от КЗ обычно относится к неэкстренным аварийным ситуациям.

ra3qdp
21.04.2019, 13:15
а что будет, если обрыв?!
Вы, наверное, думаете, что обрыв это - логический ноль ?

AlexSh
21.04.2019, 13:16
Старый интерфейс ИК-1 (начало 80-х разработки ), забыл, какой аналог американского, имел активный ноль.

rx9cim
21.04.2019, 15:52
Есть еще один момент - защита от ложных выдач. В случае выдачи команды 0 надо прям обязательно подтяжку к 1 делать, чтобы при вклбчении пока проц не настроил свои выходы не было выдачи команды.
Ситуация с мионобщемашем относится к другой области - логике КОНТРОЛЯ.
Т.е. если допустим есть две системы, одна контролирует другую. Если сделана выдача команды в виде 1, то в случае обрыва или кз или пропадания питания выдающей системы, контролирующая система никогда эту 1 не примет.
Если выдавать 0, то по умолчанию в линии висит 1, контролирующая система видит, что объект контррля жив. Кз на 0 будет расценено как выдача команды и контролер ее воспримет, по сути ложно. Для защиты от подобных ситуаций применяют резервирование с выборкой или самое простое решение - выдача команды по двум инверсным связям - например, выдача команды это комбинация 1 0, не выдача - 0 1.
У автора темы все проще, надо позаботиться от выдач при переходных процессах и вовремя настройки устройства. Если это актуально.

iHam
21.04.2019, 16:08
С точки зрения помехозащищенности выбор одинаков. Но есть негласные договоренности. Например сброс делать переходом в 0.