Перейти к содержанию
    

Цифровой измеритель интервалов на ПЛИС

Всем добрый день! На работе дали задание спроектировать измеритель временных интервалов между двумя метками времени (период импульсов 1 с, длительность импульсов примерно 60 мкс). Решил сделать методом дискретного счёта, выделяя интервал между метками и подавая разрешение счета счетчику. Когда метки разнесены и импульсы не перекрываются отлично работает JK-триггер в качестве выделителя интервала, но при перекрытии начинаются проблемы, так как при единицах он переходит в toggle режим. Данную проблему пытался решить при помощи подачи каждой из меток сначала на T-триггер, а затем на XOR, но у этой реализации недостаток в том, что, грубо говоря теряется половина измерений и при потери импульса одной из меток она может начать выдавать неверные данные. Есть еще вариант подать метки на XOR, а потом на T-триггер, но опять же вылезают проблемы при перекрытии импульсов.

Буду рад любым мыслям по поводу решения данной проблемы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только что, oleg679976 сказал:

Когда метки разнесены и импульсы не перекрываются отлично работает JK-триггер в качестве выделителя интервала, но при перекрытии начинаются проблемы, так как при единицах он переходит в toggle режим. Данную проблему пытался решить при помощи подачи каждой из меток сначала на T-триггер, а затем на XOR, но у этой реализации недостаток в том, что, грубо говоря теряется половина измерений и при потери импульса одной из меток она может начать выдавать неверные данные. Есть еще вариант подать метки на XOR, а потом на T-триггер, но опять же вылезают проблемы при перекрытии импульсов.

Буду рад любым мыслям по поводу решения данной проблемы.

1. На каждую метку ставим синхронизатор из двух триггеров + формирователь единичного импульса по фронту.
2. Подаём сформированные импульсы на синхронные входы SET и RESET триггера. На выходе формируем сигнал EN.
3. Сигнал EN подаём на вход разрешения счёта счётчика.

Всё.

Нужно сбрасывать счётчик по окончанию чтения данных из него.
Защита от потери меток можно строить например на анализе максимально возможного времени между метками или ещё как то. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 29.12.2018 в 12:28, MegaVolt сказал:

1. На каждую метку ставим синхронизатор из двух триггеров + формирователь единичного импульса по фронту.
2. Подаём сформированные импульсы на синхронные входы SET и RESET триггера. На выходе формируем сигнал EN.
3. Сигнал EN подаём на вход разрешения счёта счётчика.

Всё.

Нужно сбрасывать счётчик по окончанию чтения данных из него.
Защита от потери меток можно строить например на анализе максимально возможного времени между метками или ещё как то. 

Спасибо за помощь!
Правда, не совсем понимаю зачем синхронизатор из двух триггеров, даже если нужно привязать метку к clk, то хватит одного триггера, 2 триггера надо при разных clk, хотя может я просто чего-то не понимаю. Вообще, планирую обойтись без синхронизатора, так как с ним растет погрешность измерения.
При этом если формировать единичный импульс длительностью импульса clk, то при подаче их на синхронные входы триггера, он не успевает среагировать. Как выход вижу поделить clk триггером для формирователя импульсов и на RS подать инвертированный clk.

И сигнал EN формирует же триггер или под " На выходе формируем сигнал EN." подразумевалось какое-то промежуточное звено?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вам описали типовой 5-битный автомат, это минимально возможная схема для 100% надёжного решения задачи, а большее разрешение получают цифро-аналоговым способом, т.е. интегратором и АЦП.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 минут назад, Plain сказал:

Вам описали типовой 5-битный автомат, это минимально возможная схема для 100% надёжного решения задачи, а большее разрешение получают цифро-аналоговым способом, т.е. интегратором и АЦП.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Первой парой триггеров два входных сигнала приводятся в 100% определённое состояние для работы последующей тактируемой схемы, вторая пара даёт историю этих двух сигналов во времени, а значит, возможность выделить логикой нужные их перепады, по которым менять состояние пятого триггера, т.е. вся схема — это два 2-битных сдвиговых регистра, 1-битная ячейка памяти и логика их работы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 hours ago, Plain said:

Вам описали типовой 5-битный автомат, это минимально возможная схема для 100% надёжного решения задачи, а большее разрешение получают цифро-аналоговым способом, т.е. интегратором и АЦП.

есть ещё цифровой вариант на плис без аналога, на задержках распространения, когда куча триггеров от одного клока захватывает выходы последовательно соединённых буферов.

десятки пс разрешения можно получить, только автокалибровка нужна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 03.01.2019 в 00:03, oleg679976 сказал:

Спасибо за помощь!
Правда, не совсем понимаю зачем синхронизатор из двух триггеров, даже если нужно привязать метку к clk, то хватит одного триггера, 2 триггера надо при разных clk, хотя может я просто чего-то не понимаю. Вообще, планирую обойтись без синхронизатора, так как с ним растет погрешность измерения.
При этом если формировать единичный импульс длительностью импульса clk, то при подаче их на синхронные входы триггера, он не успевает среагировать. Как выход вижу поделить clk триггером для формирователя импульсов и на RS подать инвертированный clk.

И сигнал EN формирует же триггер или под " На выходе формируем сигнал EN." подразумевалось какое-то промежуточное звено?

Синхронизатор нужен для случае когда входные импульсы формируются на частоте отличной от внутренней частоты ПЛИС. Если имульсы СТАРТ и СТОП приходят синхронно то само собой синхронизатор не нужен.
Если хватит знаний и понимания того что делаете можно от них отказаться. Но судя по уровню вопросов я бы настаивал на их наличии в проекте. А если сильно важна точность то удвоил бы рабочую частоту.
Хотя синхронизатор не влияет на точность если не возникает метастабильность. Если же она возникает то точность поплывёт как с синхронизатором так и без.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 04.01.2019 в 10:25, MegaVolt сказал:

Синхронизатор нужен для случае когда входные импульсы формируются на частоте отличной от внутренней частоты ПЛИС. Если имульсы СТАРТ и СТОП приходят синхронно то само собой синхронизатор не нужен.
Если хватит знаний и понимания того что делаете можно от них отказаться. Но судя по уровню вопросов я бы настаивал на их наличии в проекте. А если сильно важна точность то удвоил бы рабочую частоту.
Хотя синхронизатор не влияет на точность если не возникает метастабильность. Если же она возникает то точность поплывёт как с синхронизатором так и без.

Почитал статью Иосифа Григорьевича Каршенбойма про асинхронные частоты и понял смысл синхронизатора и то, что вы имели в виду. Так и сделаю.
Правда проблема одновременности прихода импульсов остается открытой, ситуация, конечно, маловероятная, но все равно нужно бы такой исход проработать, как мне кажется. Вижу решение в анализе того что считает счетчик до прихода очередного импульса метки.
Проблема перекрытия решилась, большое спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 минут назад, oleg679976 сказал:

Проблема перекрытия решилась, большое спасибо!

Как?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, MegaVolt сказал:

Как?

Так генерацией единичного импульса по фронту метки. Раньше я триггер возводил самой меткой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...