ГЕНЕРАТОР ЗАДЕРЖКИ ИМПУЛЬСОВ

Полезная модель относится к импульсной цифровой технике и может быть использована в вычислительных устройствах, автоматике, измерительных устройствах, радиолокации, устройствах связи и т.д. для осуществления линейно-дискретной задержки выходных импульсов относительно входных в пределах его длительности в соответствии с поступающим двоичным кодом.
Известны устройства задержки выходных импульсных сигналов, относительно входных, использующие различные виды RC-цепочек, компараторов, мультивибраторов, логических элементов [1, 2]. Недостатком таких устройств является низкая точность величины временной задержки, присущая элементам аналоговой схемотехники, ограниченная длительность предельных значений задаваемой задержки импульсов.
Известны также цифровые устройства, формирующие временные интервалы заданной величины, таймеры [3, 4], содержащие хронизатор (генератор импульсов), выход которого соединен со счетным входом счетчика импульсов, выходы которого соответственно соединены с входами цифрового компаратора, где другие входы упомянутого компаратора соответственно соединены с выходами регистра, задающего временную задержку. Недостатком которых является высокая стоимость, а настройка прибора требует высокой квалификации обслуживающего персонала.
Наиболее близким к полезной модели устройством по совокупности существенных признаков является программируемый генератор импульсов, содержащий генератор тактовых импульсов, делитель частоты, первый мультиплексор и инвертор, а также четыре элемента «И», два триггера, вычитающий счетчик импульсов, второй мультиплексор, два делителя частоты с переменными коэффициентами деления, датчики тактирования паузы, тактирования импульса, длительности паузы, длительности импульса и количества импульсов. К его недостаткам относится следующее: длительности задержек можно изменять лишь с помощью специальных внешних устройств, воздействующих на датчики тактирования и длительности паузы, не синхронизированных с генератором, в связи с этим невозможно обеспечить надежное программное изменение длительностей пауз.
Сущность полезной модели заключается в использовании контроллера Arduino Uno. Контроллер подключен через USB разъем к ЭВМ. Во флэш-память контроллера загружается управляющая программа. К контроллеру подключены три высокочастотных разъема BNC, первый разъем подключен к аналоговому входу контролера, второй и третий разъемы подключены к цифровым выходам контроллера.
Это позволило уменьшить размеры занимаемой схемой в интегральном ее исполнении, как следствие, уменьшение габаритов прибора. Настройка прибора не требует высокой квалификации. Реализовано минимально возможное значение дискрета линии задержки микросекундной величины за счет использования возможностей программируемого микроконтроллера ATmega328 с программным обеспечением Arduino Uno, загруженным во флеш-память микроконтроллера, позволяющим с помощью ЭВМ, подсоединенной к контролеру через USB, при получении входного управляющего сигнала в виде импульса напряжения выдавать выходной сигнал в зависимости от установленного пользователем устройства порогового значения напряжения, с регулируемыми длительностью и временем задержки. Таким образом, в данном устройстве реализована возможность устанавливать значения напряжения, соответствующие логическому нулю (единице) для формирования выходного сигнала. Диапазоны изменения порогового значения напряжения, а также длительности, времени задержки и амплитуды напряжения выходного сигнала приведены в таблице 1.
Функциональная схема экспериментального образца разработанного генератора задержки импульсов изображена на фиг. 1. Генератор задержки импульсов содержит: программируемый контроллер Arduino Uno (1) на базе микроконтроллера ATmega328 (2), помещенных в корпус (3), на корпусе размещены три высокочастотных разъема BNC (4, 5, 6), один разъем соединен с аналоговым входом контролера Arduino Uno (7), а два других разъема соединены цифровыми выходами контролера Arduino Uno (8, 9). Электропитание платы может осуществляться либо от внешнего источника питания, используя разъемы 2.1 мм (10), либо через USB разъем (И), установленные на плате контролера Arduino Uno.
Корпус изготовлен из полимерного материала, по форме представляет собой прямоугольный параллелепипед, с размерами 120×60×30 мм и выполнен из двух частей, соединяемых между собой с помощью четырех винтов. Одна часть корпуса представляет собой плоское прямоугольное основание - днище, а вторая является тонкостенной крышкой. Контроллер Arduino Uno прикреплен к деревянной подложке, выполненной в виде прямоугольного параллелепипеда и приклеенной к днищу корпуса. Аналоговый вход (7) и два цифровых выхода (8, 9) контроллера Arduino Uno соединены с высокочастотными разъемами BNC с помощью паяного соединения, при этом все три разъема имеют общее заземление. Высокочастотные разъемы установлены в специальные круговые отверстия в крышке корпуса, для удобства эксплуатации устройства два разъема BNC, соединенные с цифровыми выходами контроллера Arduino Uno, расположены на одной боковой грани крышки корпуса, а третий BNC разъем, соединенный с аналоговым входом, расположен на другой боковой грани крышки корпуса. С внешней стороны корпуса каждый разъем BNC также имеет фланец с резьбой, что позволяет производить надежное механическое и электрическое соединение генератора задержки импульсов с другими устройствами.
Через в разъем BNC, соединенный с аналоговым входом контроллера Arduino Uno, подается напряжение в диапазоне от 5 до 12 В, которое формирует входной управляющий сигнал, а на два других BNC разъема приходит уже сформированный выходной сигнал с установленной пользователем длительностью и временем задержки с помощью ЭВМ. Количество потребителей, для которых можно сформировать управляющий сигнал для их функционирования с определенной длительностью и временем задержки, ограничено только количеством цифровых выходов на плате контроллера Arduino Uno.
Программа управления работой генератора, разработанная с помощью программного обеспечения Arduino, и написанная на языке программирования высокого уровня C++, загруженной во флеш-память микроконтроллера ATmega328, позволяет с помощью ЭВМ, подсоединенной к контролеру Arduino Uno через USB разъем, выдавать команду на формирование задержки выходного сигнала различной длительности. Фрагменты исходного кода управляющей программы (один из возможных вариантов) представлены ниже:
Значения напряжения входного сигнала устанавливается в переменной inSignal, а с помощью оператора if формируется условие выполнения формирования выходного сигнала в зависимости от порогового значения напряжения. Регулирование времени начала формирования задержки по фронту и длительность выходного сигнала относительно того момента, когда значение напряжения входного сигнала превысило его пороговое значение, осуществляется по значению аргументов timer1 и timer2 в функции delayMicroseconds() соответственно.
Источники информации
1. SU 2103808 C1, 27.01.1998.
2. RU 2257003 C1, 20.07.2005.
3. RU 2199177 C1, 20.02.2003.
4. RU 2215367 C2, 10.07.2003.