Реализация аппаратной защиты по току

Сегодня моя статья будет носить исключительно теоретический характер, вернее в ней не будет «железа» как в предыдущих статьях, но не расстраивайтесь — менее полезной она не стала. Дело в том, что проблема защиты электронных узлов напрямую влияет на надежность устройств, их ресурс, а значит и на ваше важное конкурентное преимущество — возможность давать длительную гарантию на продукцию. Реализация защиты касается не только моей излюбленной силовой электроники, но и любого устройства в принципе, поэтому даже если вы проектируете IoT-поделки и у вас скромные 100 мА — вам все равно нужно понимать как обеспечить безотказную работу своего устройства.

Защита по току или защита от короткого замыкания (КЗ) — наверное самый распространенный вид защиты потому, что пренебрежение в данном вопросе вызывает разрушительные последствия в прямом смысле. Для примера предлагаю посмотреть на стабилизатор напряжения, которому стало грустно от возникшего КЗ:

1unrycqnbzqqqvuq7ffb7yhkkvu.jpeg

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

Что касается самой нагрузки… Если у вас электронное устройство размером со спичечный коробок, нет таких токов, то не думайте, что вам не может стать так же грустно, как стабилизатору. Наверняка вам не хочется сжигать пачками микросхемы по 10–1000$? Если так, то приглашаю к ознакомлению с принципами и методами борьбы с короткими замыканиями!

Цель статьи


Свою статью я ориентирую на людей для которых электроника это хобби и начинающих разработчиков, поэтому все будет рассказываться «на пальцах» для более осмысленного понимания происходящего. Для тех, кому хочется академичности — идем и читаем любой ВУЗовский учебники по электротехники + «классику» Хоровица, Хилла «Искусство схемотехники».

Отдельно хотелось сказать о том, что все решения будут аппаратными, то есть без микроконтроллеров и прочих извращений. В последние годы стало совсем модно программировать там где надо и не надо. Часто наблюдаю «защиту» по току, которая реализуется банальным измерением напряжения АЦП какой-нибудь arduino или микроконтроллером, а потом устройства все равно выходят из строя. Я настоятельно не советую вам делать так же! Про эту проблему я еще дальше расскажу более подробно.

Немного о токах короткого замыкания


Для того, чтобы начать придумывать методы защиты, нужно сначала понять с чем мы вообще боремся. Что же такое «короткое замыкание»? Тут нам поможет любимый закон Ома, рассмотрим идеальный случай:

knrmcqjnl7jjy19abukvzaelqwk.png

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

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

$I = U/R$


Теперь представим, что дядя Вася уронил гаечный ключ на провода идущие к лампочке и наша нагрузка уменьшилась в 100 раз, то есть вместо R она стала 0,01*R и с помощью нехитрых вычислений мы получаем ток в 100 раз больше. Если лампочка потребляла 5А, то теперь ток от нагрузки будет отбираться около 500А, чего вполне хватит чтобы расплавить ключ дяди Васи. Теперь небольшой вывод…

Короткое замыкание — значительное уменьшение сопротивления нагрузки, которое ведет к значительному увеличению тока в цепи.


Стоит понимать, что токи КЗ обычно в сотни и тысячи раз больше, чем ток номинальный и даже короткого промежутка времени хватает, чтобы устройство вышло из строя. Тут наверняка многие вспомнят о электромеханических устройствах защиты («автоматы» и прочие), но тут все весьма прозаично… Обычно розетка бытовая защищена автоматом с номинальным током 16А, то есть отключение произойдет при 6–7 кратном токе, что уже около 100А. Блок питания ноутбука имеет мощность около 100 Вт, то есть ток нем менее 1А. Даже если произойдет КЗ, то автомат долго будет этого не замечать и отключит нагрузку, только когда все уже сгорит. Это скорее защита от пожара, а не защита техники.

Теперь давайте рассмотрим еще один, часто встречающийся случай — сквозной ток. Покажу я его на примере dc/dc преобразователя с топологией синхронный buck, все MPPT контроллеры, многие LED-драйвера и мощные DC/DC преобразователи на платах построены именно по ней. Смотрим на схему преобразователя:

0wbadvedtmctvosg7e_bauaseco.png

На схеме обозначены два варианта превышения тока: зеленый путь для «классического» КЗ, когда произошло уменьшение сопротивления нагрузки («сопля» между дорог после пайки, например) и оранжевый путь. Когда ток может протекать по оранжевому пути? Я думаю многие знают, что сопротивление открытого канала полевого транзистора очень небольшое, у современных низковольтных транзисторов оно составляет 1–10 мОм. Теперь представим, что на ключи одновременно пришел ШИМ с высоким уровнем, то есть оба ключа открылись, для источника «VCCIN — GND» это равносильно подключению нагрузки сопротивлением около 2–20 мОм! Применим великий и могучий закон Ома и получим даже при питании 5В значение тока более 250А! Хотя не переживайте, такого тока не будет — компоненты и проводники на печатной плате сгорят раньше и разорвут цепь.

Данная ошибка очень часто возникает в системе питания и особенно в силовой электронике. Она может возникать по разным причинам, например, из-за ошибки управления или длительных переходных процессах. В последнем случае не спасет даже «мертвое время» (deadtime) в вашем преобразователе.

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

Принцип работы защиты по току


Тут необходимо применить обычную логику и увидеть причинно-следственную связь:
1) Основная проблема — большое значения тока в цепи;
2) Как понять какое значение тока? → Измерить его;
3) Измерили и получили значение → Сравниваем его с заданным допустимым значением;
4) Если превысили значение → Отключаем нагрузку от источника тока.

Измерить ток → Узнать превысили ли допустимый ток → Отключить нагрузку


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

Теперь предлагаю по порядку пройти по всей цепочки построения защиты и решить все возникающие технические проблемы. Хорошая защита — это защита, которую предусмотрели заранее и она работает. Значит без моделирования нам не обойтись, я буду использовать популярный и бесплатный MultiSIM Blue, который активно продвигается Mouser-ом. Скачать его можно там же — ссылка. Также заранее скажу, что в рамках данной статьи я не буду углубляться в схемотехнические изыски и забивать вам голову лишними на данном этапе вещами, просто знайте, что все немного сложнее в реальном железе будет.

Измерение тока


Это первый пункт в нашей цепочке и наверное самый простой для понимания. Измерить ток в цепи можно несколькими способами и у каждого есть свои достоинства и недостатки, какой из них применить конкретно в вашей задаче — решать только вам. Я же расскажу, опираясь на свой опыт, о этих самых достоинствах и недостатках. Часть из них «общепринятые», а часть мои мироощущения, прошу заметить, что как какую-то истину даже не пытаюсь претендовать.

1) Токовый шунт. Основа основ, «работает» все на том же великом и могучем законе Ома. Самый простой, самый дешевый, самый быстрый и вообще самый самый способ, но с рядом недостатков:

а) Отсутствие гальванической развязки. Ее вам придется реализовывать отдельно, например, с помощью быстродействующего оптрона. Реализовать это не сложно, но требует дополнительного места на плате, развязанного dc/dc и прочие компоненты, которые стоят денег и добавляют габаритных размеров. Хотя гальваническая развязка нужна далеко не всегда разумеется.

б) На больших токах ускоряет глобально потепление. Как я ранее писал, «работает» это все на законе Ома, а значит греется и греет атмосферу. Это приводит к уменьшению КПД и необходимости охлаждать шунт. Есть способ минимизировать этот недостаток — уменьшить сопротивления шунта. К сожалению бесконечно уменьшать его нельзя и вообще я бы не рекомендовал уменьшать его менее 1 мОм, если у вас пока еще мало опыта, ибо возникает необходимость борьбы с помехами и повышаются требования к этапу конструирования печатной платы.

В своих устройствах я люблю использовать вот такие шунты PA2512FKF7W0R002E:
atcpkgtyncrgg25pfgfaothboty.png

Измерение тока происходит путем измерения падения напряжения на шунте, например, при протекании тока 30А на шунте будет падение:

$U_{пад} = I * R = 0.002 Ом * 30А = 0.06В = 60 мВ$


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

$P_{шунт} = I^2 *R_{шунт} = 30^2 * 0.002 = 1,8 [Вт]$


Не мало, правда? Этот момент надо учитывать, т.к. предельная мощность моего шунта составляет 2 Вт и превышать ее нельзя, так же не стоит припаивать шунты легкоплавким припоем — отпаяться может, видел и такое.

Рекомендации по использованию:

  • Используйте шунты, когда у вас большое напряжение и не сильно большие токи
  • Следите за количеством выделяемого на шунте тепла
  • Используйте шунты там, где нужно максимальное быстродействие
  • Используйте шунты только из специальным материалов: константана, манганина и подобных

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

а) Дешевые, например, ACS712 и подобные. Из плюсов могу отметить простоту использования и наличия гальванической развязки, на этом плюсы кончаются. Основным недостатком является крайне нестабильное поведение под воздействием ВЧ помех. Любой dc/dc или мощная реактивная нагрузка — это помехи, то есть в 90% случаев данные датчики бесполезны, ибо «сходят с ума» и показывают скорее погоду на Марсе. Но не зря же их делают?

Они имеют гальваническую развязку и могут измерять большие токи? Да. Не любят помехи? Тоже да. Куда же их поставить? Правильно, в систему мониторинга с низкой ответственностью и для измерения тока потребления с аккумуляторов. У меня они стоят в инверторах для СЭС и ВЭС для качественной оценки тока потребления с АКБ, что позволяет продлить жизненный цикл аккумуляторов. Выглядят данные датчики вот так:
hzhcmaeeistnc6-f03ykwytqrsc.jpeg

б) Дорогие. Имеют все плюсы дешевых, но не имеют их минусов. Пример такого датчика LEM LTS 15-NP:
1cbs8ht47ya-ng7-4eqw1o-ry64.jpeg

Что мы имеем в итоге:
1) Высокое быстродействие;
2) Гальваническую развязку;
3) Удобство использования;
4) Большие измеряемые токи независимо от напряжения;
5) Высокая точность измерения;
6) Даже «злые» ЭМИ не мешают работе и не; влияют на точность.

Но в чем тогда минус? Те, кто открывали ссылку выше однозначно его увидели — это цена. 18$, Карл! И даже на серии 1000+ штук цена не упадет ниже 10$, а реальная закупка будет по 12–13$. В БП за пару баксов такое не поставить, а как хотелось бы… Подведем итог:

а) Это лучшее решение в принципе для измерения тока, но дорогое;
б) Применяйте данные датчики в тяжелых условиях эксплуатации;
в) Применяете эти датчики в ответственных узлах;
г) Применяйте их если ваше устройство стоит очень много денег, например, ИБП на 5–10 кВт, там он себя однозначно оправдает, ведь цена устройства будет несколько тысяч $.

3) Трансформатор тока. Стандартное решение во многих устройствах. Минуса два — не работают с постоянным током и имеют нелинейные характеристики. Плюсы — дешево, надежно и можно измерять просто огромнейшие токи. Именно на трансформаторах тока построены системы автоматики и защиты в РУ-0.4, 6, 10, 35 кВ на предприятиях, а там тысячи ампер вполне себе нормальное явление.

Честно говоря, я стараюсь их не использовать, ибо не люблю, но в различных шкафах управления и прочих системах на переменном токе все таки ставлю, т.к. стоят они пару $ и дают гальваническую развязку, а не 15–20$ как LEM-ы и свою задачу в сети 50 Гц отлично выполняют. Выглядят обычно вот так, но бывают и на всяких EFD сердечниках:

apibqlemb0lccrl19arizy4qlly.jpeg

Пожалуй с методами измерения тока можно закончить. Я рассказал об основных, но разумеется не обо всех. Для расширения собственного кругозора и знаний, советую дополнительно хотя бы погуглить да посмотреть различные датчики на том же digikey.

Усиление измеренного падения напряжения


Дальнейшее построение системы защиты пойдет на базе шунта в роли датчика тока. Давайте строить систему с ранее озвученным значением тока в 30А. На шунте мы получаем падение 60 мВ и тут возникают 2 технические проблемы:

а) Измерять и сравнивать сигнал с амплитудой 60 мВ неудобно. АЦП имеют обычно диапазон измерений 3.3В, то есть при 12 битах разрядности мы получаем шаг квантования:

$U_{квант} = V_{ref} / 2^{12} = 3.3 / 4095 = 0,0008 [В] = 0,8 [мВ]$

Это означает, что на диапазон 0–60 мВ, который соответствует 0–30А мы получим небольшое количество шагов:

$n = U_{шунт} / U_{квант} = 60 / 0.8 = 75 [шагов]$


Получаем, что разрядность измерения будет всего лишь:

$k = I_{max} / n = 30 / 75 = 0,4 [А/шаг]$


Стоит понимать, что это идеализированная цифра и в реальности они будет в разы хуже, т.к. АЦП сам по себе имеет погрешность, особенно в районе нуля. Конечно АЦП для защиты мы использовать не будем, но измерять ток с этого же шунта для построения системы управления придется. Тут задача была наглядно объяснить, но это так же актуально и для компараторов, которые в районе потенциала земли (0В обычно) работают весьма нестабильно, даже rail-to-rail.

б) Если мы захотим протащить по плате сигнал с амплитудой 60 мВ, то через 5–10 см от него ничего не останется из-за помех, а в момент КЗ рассчитывать на него точно не придется, т.к. ЭМИ дополнительно возрастут. Конечно можно схему защиты повесить прямо на ногу шунта, но от первой проблемы мы не избавимся.

Для решения данных проблем нам понадобится операционный усилитель (ОУ). Рассказывать о том, как он работает не буду — тема отлично гуглится, а вот о критичных параметрах и выборе ОУ мы поговорим. Для начала давайте определимся со схемой. Я говорил, что особых изяществ тут не будет, поэтому охватим ОУ отрицательной обратной связью (ООС) и получим усилитель с известным коэффициентов усиления. Данное действия я смоделирую в MultiSIM (картинка кликабельна):

csfe7gq3hcww1tbym35nb9mvtxk.png

Скачать файл для симуляции у себя можно — тут.

Источник напряжения V2 выполняет роль нашего шунта, вернее он симулирует падение напряжения на нем. Для наглядности я выбрал значение падения равное 100 мВ, теперь нам нужно усилить сигнал так, чтобы перенести его в более удобное напряжение, обычно между ½ и 2/3 Vref. Это позволит получить большое количество шагов квантования в диапазон токов + оставить запас на измерения, чтобы оценить насколько все плохо и посчитать время нарастания тока, это важно в сложных системах управления реактивной нагрузкой. Коэффициент усиления в данном случае равен:

$U_{out} = U_{in} * (1+\frac{R2}{R1}) = 0.1 * (1 + \frac{9}{1}) = 0.1 * 10 = 1 [В]$


Таким образом мы имеем возможность усилить сигнал наш сигнал до требуемого уровня. Теперь рассмотрим на какие параметры стоит обратить внимание:

  • ОУ должен быть rail-to-rail, чтобы адекватно работать с сигналами около потенциала земли (GND)
  • Стоит выбирать ОУ с высокой скоростью нарастания выходного сигнала. У моего любимого OPA376 этот параметр равен 2В/мкс, что позволяет достигать максимальное выходное значение ОУ равное VCC 3.3В всего за 2 мкс. Этого быстродействия вполне достаточно, чтобы спасти любой преобразователь или нагрузку с частотами до 200 кГц. Данные параметры стоит понимать и включать голову при выборе ОУ, иначе есть шанс поставить ОУ за 10$ там, где хватило бы и усилителя за 1$
  • Полоса пропускания, выбираемого ОУ, должна быть как минимум в 10 раз больше, чем максимальная частота коммутации нагрузки. Опять же ищите «золотую середину» в соотношение «цена/ТТХ», все хорошо в меру

В большинстве своих проектов я использую ОУ от Texas Instruments — OPA376, его ТТХ хватает для реализации защиты в большинстве задач и ценник в 1$ вполне себе хорош. Если вам необходимо дешевле, то смотрите на решения от ST, а если еще дешевле, то на Microchip и Micrel. Я по религиозным соображениям использую только TI и Linear, ибо оно мне нравится и сплю так спокойнее.

Добавляем реализм в систему защиты


Давайте теперь в симуляторе добавим шунт, нагрузку, источник питания и прочие атрибуты, которые приблизят нашу модель к реальности. Полученный результат выглядит следующим образом (картинка кликабельная):

adev_jqj2khspbcdoofr8wboy30.png

Скачать файл симуляции для MultiSIM можно — тут.

Тут уже мы видим наш шунт R1 с сопротивлением все те же 2 мОм, источник питания я выбрал 310В (выпрямленная сеть) и нагрузкой для него является резистор 10.2 Ом, что опять по закону Ома дает нам ток:

$I = U/R = 310 / 10.2 = 30.39[A]$


На шунте как видите падают, ранее посчитанные, 60 мВ и их мы усиливаем с коэффициентом усиления:

$k = 1+\frac{R2}{R7} = 1 + \frac{45300}{910} = 50,78$


На выходе мы получаем усиленный сигнал с амплитудой 3.1В. Согласитесь, его уже и на АЦП можно подать, и на компаратор и протащить по плате 20–40 мм без каких либо опасений и ухудшения стабильности работы. С этим сигналом мы и будем далее работать.

Сравнение сигналов с помощью компаратора


Компаратор — это схема, которая принимает на вход 2 сигнала и в случае если амплитуда сигнала на прямом входе (+) больше, чем на инверсном (-), то на выходе появляется лог. 1 (VCC). В противном случае лог. 0 (GND).


Формально любой ОУ можно включить как компаратор, но такое решение по ТТХ будет уступать компаратору по быстродействию и соотношению «цена/результат». В нашем случае, чем выше быстродействие, тем выше вероятность, что защита успеет отработать и спасти устройство. Я люблю применять компаратор, опять же от Texas Instrumets — LMV7271. На что стоит обратить внимание:

  • Задержка срабатывания, по факту это основной ограничитель быстродействия. У указанного выше компаратора это время около 880 нс, что достаточно быстро и во многих задачах несколько избыточно по цене в 2$ и вы можете подобрать более оптимальный компаратор
  • Опять же — советую использовать rail-to-rail компаратор, иначе на выходе у вас будет не 5В, а меньше. Убедиться в этом вам поможет симулятор, выберите что-то не rail-to-rail и поэкспериментируйте. Сигнал с компаратора обычно подается на вход аварии драйверов (SD) и хорошо бы иметь там устойчивый TTL сигнал
  • Выбирайте компаратор с выходом push-pull, а не open-drain и другие. Это удобно и имеем прогнозируемые ТТХ по выходу

Теперь давайте добавим компаратор в наш проект в симуляторе и посмотрим на его работу в режиме, когда защита не сработала и ток не превышает аварийный (кликабельная картинка):

wpzv4iuxhvhmka8vs6uj93izqfg.png

Скачать файл для симуляции в MultiSIM можно — тут.

Что нам нужно… Нужно в случае превышения тока более 30А, чтобы на выходе компаратора был лог. 0 (GND), этот сигнал будет подавать на вход SD или EN драйвера и выключать его. В нормальном состоянии на выходе должна быть лог. 1 (5В TTL) и включать работу драйвера силового ключа (например, «народный» IR2110 и менее древние).

Возвращаемся к нашей логике:
1) Измерили ток на шунте и получили 56.4 мВ;
2) Усилили наш сигнал с коэффициентом 50.78 и получили на выходе ОУ 2.88В;
3) На прямой вход компаратора подаем опорный сигнал с которым будем сравнивать. Его задаем с помощью делителя на R2 и выставляет 3.1В — это соответствует току примерно в 30А. Данным резистором регулируется порог срабатывания защиты!
4) Теперь сигнал с выхода ОУ подаем на инверсный и сравниваем два сигнала: 3.1В > 2.88В. На прямом входу (+) напряжение выше, чем на инверсном входе (-), значит ток не превышен и на выходе лог. 1 — драйвера работают, а наш светодиод LED1 не горит.

Теперь увеличиваем ток до значения >30А (крутим R8 и уменьшаем сопротивление) и смотрим на результат (кликабельная картинка):

mptrubve-gukevwcqokagqdb0f8.png

Давайте пересмотри пункты из нашей «логики»:
1) Измерили ток на шунте и получили 68.9 мВ;
2) Усилили наш сигнал с коэффициентом 50.78 и получили на выходе ОУ 3.4В;
4) Теперь сигнал с выхода ОУ подаем на инверсный и сравниваем два сигнала: 3.1В < 3.4В. На прямом входу (+) напряжение НИЖЕ, чем на инверсном входе (-), значит ток превышен и на выходе лог. 0 — драйвера НЕ работают, а наш светодиод LED1 горит.

Почему аппаратная?


Ответ на этот вопрос простой — любое программируемое решение на МК, с внешним АЦП и прочее, могут попросту «зависнуть» и даже если вы достаточно грамотный софтописатель и включили сторожевой таймер и прочие защиты от зависания — пока оно все обработается ваше устройство сгорит.

Аппаратная защита позволяет реализовать систему с быстродействием в пределах нескольких микросекунд, а если бюджет позволяет, то в пределах 100–200 нс, чего достаточно вообще для любой задачи. Также аппаратная защита не сможет «зависнуть» и спасет устройство, даже если по каким-то причинам ваш управляющий микроконтроллер или DSP «зависли». Защита отключит драйвер, ваша управляющая схема спокойно перезапустится, протестирует аппаратную часть и либо подаст ошибку, например, в Modbus или запустится если все хорошо.

Тут стоит отметить, что в специализированных контроллерах для построения силовых преобразователей есть специальные входы, которые позволяют аппаратно отключить генерацию ШИМ сигнала. Например, у всеми любимого STM32 для этого есть вход BKIN.

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

Эпилог


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

Формат статьи без «железа» для меня новый и попрошу высказать ваше мнение в опросе.

© Geektimes