УДК 004.3
УСТРАНЕНИЕ ДРЕБЕЗГА И ФИЛЬТРАЦИЯ ИМПУЛЬСНЫХ ПОМЕХ В ЦИФРОВЫХ УСТРОЙСТВАХ СБОРА ДАННЫХ
Хомутов В.С., Краснокутский В.А. Устранение дребезга и фильтрация импульсных помех в цифровых устройствах сбора данных. Рассмотрены особенности проблемы фильтрации дребезга и импульсных помех в цифровых и аналоговых сигналах в проводниках. Приведены варианты решения проблемы для разных типов сигналов. Приведён вариант программного алгоритма фильтрации ложных импульсов, возникающих вследствие влияния импульсных помех.
Ключевые слова: дребезг контактов, фильтрация помех, RC-цепочка, триггер, цифровые устройства
Abstract: Khomutov V.S., Krasnokutsky V.A. Chatter elimination and impulse noise filtering in digital data acquisition devices. The features of the problem of filtering bounce and impulse noise in digital and analog signals in conductors are considered. The solutions to the problem for different types of signals are given. A version of the software algorithm for filtering false pulses arising due to the influence of pulsed interference is presented.
Keywords: contact bounce, noise filtering, RC-circuit, trigger, digital devices
Общая постановка проблемы
Ещё с начала девяностых – конца восьмидесятых годов двадцатого века происходит резкое удешевление, а вследствие этого и распространение микроэлектроники. В наше время количество различных бытовых цифровых устройств превысило количество людей на планете. А если взять в расчёт ещё и цифровые устройства, выпускающиеся для промышленности, то их количество станет ещё больше. Большой процент от этих устройств составляют микропроцессорные и микроконтроллерные устройства управления.
Микроконтроллеры используются в системах управления автомобилями, в различной бытовой электронике, в системах охраны и сигнализации, в станках с числовым программным управлением и много где ещё. Для выполнения своих функций, зачастую, таким устройствам необходима связь с внешним миром. Такую связь обеспечивают различные датчики. Датчики могут быть разных типов, начиная от обычных резисторов, меняющих своё сопротивление в зависимости от температуры, освещенности и так далее, до сложных цифровых устройств, передающих микроконтроллеру преобразованный цифровой сигнал, например датчики движения или расстояния. Устройства также могут отличаться способом передачи информации от датчика к контроллеру. Данные могут передаваться по проводникам, по оптическому кабелю и по радио. Наиболее распространена передача сигнала по проводам. Такой метод самый простой в реализации и, в большинстве случаев, самый дешёвый, так как при его применении нет нужды в сторонних устройствах, таких как радиоприёмники и преобразователи оптического сигнала в электрический. Однако передача сигнала по проводам имеет серьёзные недостатки, главный из которых низкая помехозащищённость.
Помехи – одна из самых серьёзных проблем, с которыми сталкиваются разработчики цифровых систем управления. В зависимости от типа передаваемого сигнала помехи оказывают различное влияние на восприятие сигнала. При передаче данных широко распространен дискретный сигнал, например датчик скорости в автомобиле, он посылает N-ое количество импульсов 5В на 1 пройденный метр. Или датчики температуры, представляющие собой простой терморезистор, на выходе получаем плавное изменение напряжения или тока, в зависимости от способа подключения датчика, в определённом диапазоне.
Если датчик имеет подвижные элементы, может возникать «дребезг» контактов. Помимо «дребезга» наиболее частыми являются импульсные помехи или «наведённые шумы».
Рисунок 1 – «Дребезг» датчика при переключении состояния
Так как провод представляет собой антенну, различные внешние источники электромагнитного излучения могут наводить на него помехи. Это могут быть как различные радио излучатели вроде мобильных телефонов, вышек сотовой связи, wi-fi роутеры, так и просто сторонние провода под напряжением, помехи от некачественных блоков питания, так же различные металлические объекты, обладающие своим магнитным полем, также могут искажать сигнал.
Способы борьбы с дребезгом и импульсными помехами в цифровых сигналах
Применение RC-фильтра
Для устранения импульсных помех и «дребезга» в импульсном сигнале часто применяется простейший фильтр нижних частот на базе RC- цепочки, который будет сглаживать высокочастотные импульсы «дребезга» и наведённого шума.
Рисунок 2 – Фильтрация дребезга RC-фильтром
Однако данный метод, так же «сглаживает» импульс полезного сигнала, делая его пологим, поэтому необходимо подбирать номиналы конденсатора и резистора таким образом, чтобы время полного заряда и разряда было, хотя бы в 3 раза меньше минимальной длительности импульса.
Считается, что время заряда определяется временем , когда напряжение на нем достигает 95% от установившегося значения. Для того, что бы время разряда и заряда конденсатора не поглощала весь информационный импульс и он оставался достаточной длины для нормального распознавания(в случае, когда информационно несущим является уровень), R и C необходимо подбирать таким образом, что бы tз было не больше чем 1/3 от времени импульса.
RC- фильтр нижних частот можно так же применять для фильтрации импульсных помех аналогового сигнала низкой частоты или постоянного напряжения. В таком случае величины R и C необходимо выбирать исходя из предполагаемой длительности помехи и максимального напряжения на выходе датчика. Во многих практических случаях время «дребезга» составляет порядка 5-10 мс. Исходя из этого, рассмотрим пример для аналогового сигнала с заданными параметрами. Пусть максимальный уровень напряжения на выходе датчика составляет 5В, а максимальный ток, который может выдержать аналого-цифровой преобразователь микроконтроллера составляет 100 мА, это значит, что минимальный допустимый номинал резистора равен 50 ом. Чтобы минимизировать мощность рассеивания резистором выберем его величину, равную 1ком.
Однако у RC фильтра есть серьёзный недостаток, в случае если дискретный сигнал имеет высокую частоту в десятки килогерц и выше, использование RC фильтра может потерять свою эффективность, вплоть до того, что будет полностью подавлять не только помехи, но и сам сигнал. В таком случае необходимо применять другие методы устранения помех.
Фильтр на базе DC триггера
Часто для фильтрации импульсной помехи в дискретных сигналах используют схемы на базе DC триггера(рис.4), срабатывающего по уровню, так как каналы, в которых информационно несущим является фронт сигнала, являются наиболее уязвимыми для импульсной помехи.
Рисунок 4 – Схема защиты дискретного сигнала от импульсной помехи на базе DC триггера
Для корректной работы устройства частота синхросигнала должна быть значительно больше, чем максимальное значение частоты, а длина импульса синхросигнала должна быть минимум вдвое меньше, чем длина информационного импульса. Иначе, может возникнуть ситуация, когда информационный импульс будет проскакивать между импульсами синхросигнала. Так же важно, что бы длина синхроимпульса была больше, чем предполагаемое время импульсной помехи.
Рисунок 5 – Временная диаграмма 2-х примеров обработки помех, наихудшего и наилучшего
На рис. 5 представлены два варианта прохождения помехи. В сигнале «инф1» помехи попадают на конец синхросигнала и создают период неопределённости до следующего синхроимпульса и в худшем случае, вместо одного длинного информационного импульса мы получим два коротких импульса и ещё один импульс посреди логического нуля. Результаты моделирования худшего возможного варианта появления импульсной помехи в среде MicroCap показаны на рис.7.
Рисунок 6 – 1-й график – информационный сигнал с помехами, 2-й график – синхросигнал, 3-й график – сигнал на выходе триггера
Из-за возможности появления подобных ситуаций необходима дополнительная программная обработка сигнала. Рассмотрим пример для системы, в которой информационно несущим является фронт, как наиболее уязвимый для данной помехи. Для программной фильтрации нам необходимо знать длительность во времени получаемых импульсов. Так как в рассматриваемой системе мы не можем напрямую отследить окончание импульса, необходимо принимать не только непосредственно информационный сигнал, но и инверсный ему сигнал на отдельный канал микроконтроллера(рис. 7).
Рисунок 7 – Схема подачи сигнала на контроллер
В таком случае засекая время между фронтами импульсов первого и второго канала становится возможным отследить длину получаемых импульсов, а засекая время между ними, мы получим длину импульсов логического нуля. Учитывая, что длина синхроимпульса значительно меньше, чем длина информационного импульса и то, что сигнал не выйдет из состояния неопределённости пока не придёт следующий синхроимпульс, а так же учитывая задержку на срабатывание триггера, в худшем случае, сигнал перестанет быть неопределённым немногим более, чем за полупериод синхроимпульса. В таком случае зная время импульсов, можно не учитывать импульсы, длина которых меньше периода синхросигнала. Для корректной работы такой программы во всех возможных случаях должно выполняться условие- длительность информационного импульса должна быть в 4 раза больше периода синхроимпульса(Т). Пример данного алгоритма представлен на рис.8.
Рисунок 8 – Граф схема программы фильтрации импульсов
Вывод
Была рассмотрена проблема возникновения «дребезга» во время работы датчиков, имеющих подвижные части и проблема возникновения наведённой импульсной помехи в дискретных и аналоговых сигналах. Были выработаны решения данных проблем с учётом специфики различных типов сигналов.
Литература
- Дребезг контактов и способы подавления дребезга[Электронный ресурс]: https://uscr.ru/drebezg-kontaktov-i-sposoby-podavleniya-drebezga/
- Конденсатор и RC цепочка[Электронный ресурс]: http://easyelectronics.ru/kondensator-i-rc-cepochka.html
- Фильтрация дребезга контактов переключателя[Электронный ресурс]: http://home.roboticlab.eu/ru/examples/digi/switch_debounce
- Белоус А.И. СВЧ-электроника в системах радиолокации и связи. Техническая энциклопедия/ Белоус А.И., Мерданов М.К., Шведов С.В. – Москва: Техносфера, 2018,-819с.
- Виды помех в линиях передачи информации и способы борьбы с ними [Электронный ресурс]: http://www.electrosad.ru/Jornal/VidPom0.htm
