Полное руководство по переключению Debounce (Часть 6)
Еще в глубине веков, когда у меня были ясные глаза и пушистый хвост, когда я писал первые слова в этом квесте по изучению темы дребезга и устранения дребезга переключателей, я действительно думал, что это займет всего одно, а может быть, два столбцы. Как это ни прискорбно, но по мере того, как дни превращались в недели, а недели в месяцы, я стал гораздо более печальным и мудрым человеком.
Не могу поверить, что мы сейчас подошли к шестой части. Когда я сижу здесь за кухонным столом (см. серии, но я никогда не знаю точно, что собираюсь написать, пока слова не начинают капать с кончиков моих пальцев, где эти веселые и веселые маленькие красавицы (слова, а не кончики моих пальцев) только что собираются на рассвете на северной стороне холма, пока утренняя роса еще блестит на их дерзких и веселых засечках, шпорах и хвостах. Суть в том, что нам всем придется подождать, пока мы не дойдем до конца этого столбца, чтобы увидеть, действительно ли это конец серии. («Дум дум дум дууууууум… Дум дум дум дууууууум…» Напряжение нарастает.)
Прежде чем мы с азартом и азартом окунемся в бой с головой, давайте кратко напомним себе, как мы дошли до этой точки в наших рассуждениях. В первой части мы представили концепцию дребезга переключателя. Позже, в части 2, мы более подробно рассмотрели подпрыгивание, связанное с однополюсным тумблером с одним ходом (SPST) и тумблером с одним полюсом и двойным ходом (SPDT).
В части 3 мы начали рассматривать аппаратные решения для переключения дребезга, начиная с идеи использования RC-сети, за которой следует триггер Шмитта для устранения дребезга тумблера SPST. В части 4 мы рассмотрели использование различных моностабильных мультивибраторов для устранения дребезга тумблеров SPST (к сожалению, в конечном итоге мы пришли к выводу, что использование моностабильных мультивибраторов — не лучший способ).
Совсем недавно, в части 5, мы вернулись к переключателям SPDT и рассмотрели методы устранения дребезга, основанные на защелках, реализованных с использованием двух инверторов, защелок SR (как на основе NAND, так и NOR), а также защелок и триггеров D-типа.
В этой статье мы рассмотрим еще одну оставшуюся категорию аппаратных решений по устранению дребезга в виде специальных интегральных схем (ИС). Если судьба улыбнется нам, мы также коснемся реализации устранения дребезга в конструкциях программируемых вентильных матриц (FPGA). Наконец, мы обратим внимание на методы устранения дребезга программного обеспечения.
Если что-то из этого вам незнакомо, возможно, вы захотите взглянуть на мои соответствующие столбцы «Типы коммутаторов» и «Терминология коммутаторов». Возможно, вам также будет интересно просмотреть и обдумать мою колонку «Регистры, защелки и триггеры». И последнее, но не менее важное: как мы уже отмечали ранее, тумблеры, кулисные переключатели и кнопочные переключатели демонстрируют дребезг переключателей практически одинаково. Фактически, единственные переключатели, которые не отскакивают, — это те, которые большинство из нас использует редко, если вообще когда-либо, например, ртутные переключатели наклона.
Характеристика системы
Прежде чем мы начнем углубляться, и пока я об этом думаю, когда я беседовал с гуру встраиваемых систем Джеком Гансслом несколько недель назад, он упомянул, что его рекомендации всем, кто занимается проектированием системы – особенно людям, разрабатывающим критически важные и критически важные для безопасности системы – это то, что они характеризуют коммутаторы, которые планируют использовать, прежде чем развертывать их в ничего не подозревающем мире.
Как разработчикам оборудования, так и разработчикам программного обеспечения слишком легко вернуться к «проверенным и надежным» решениям, не продумав все до конца. Например, в первой части классического руководства Джека по устранению дребезга он упомянул тип переключателя, в котором использовались позолоченные контакты, нанесенные на печатную плату (PCB). Соответствующая резиновая крышка при нажатии представляла собой своего рода проводящий эластомер на золотых контактах. Джек отметил, что аналоговый результат представлял собой медленное изменение напряжения от нуля до пяти вольт без шума, стирания или другой неопределенности, а также без следов дребезга. К сожалению, когда этот сигнал был подан на вход TTL, его медленное нарастание через «запретную зону» (от 0,8 до 2,0 В) привело к диким колебаниям в течение миллисекунды (мс), которые можно было бы рассматривать как «виртуальные отскоки».