|
|
  |
Измерение длительности импульса с точностью до пары наносекунд |
|
|
|
Oct 29 2013, 12:56
|
Знающий
   
Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458

|
Старт и стоп - это два одинаковых независимых друг от друга канала. В каждом из них время прихода фронта соответствующего сигнала измеряется отдельно. Тактовая частота - общая для обоих каналов.
Т.е. в каждом из них имеется по два ТАС, работающих по разным фронтам тактовой частоты. При регистрации события (фронта сигнала) запоминается результат того ТАС, отсчет которого находится в диапазоне 0.25..0.75 от шкалы (периода тактовой частоты) и значение соответствующего счетчика тактов (тут есть варианты).
Пусть тактовая - 1 ГГц и фронт сигнала (момент запуска обоих ТАС) пришел через 100 пкс после положительного фронта тактовой. Тогда один ТАС (работающий (т.е. останавливающийся) по положительному фронту тактовой) даст 900 пкс (0.9 шкалы), второй (работающий по отрицательному) - 400 пкс. Соответственно выбирается второй.
Если сигнал прийдет через 400 пкс - будет 0.6 шкалы по первому ТАС и 0.1 по второму - будет выбран первый ТАС. Если 600 пкс - 0.4 и 0.9 шкалы - будет снова выбран первый Если 900 - 0.1 и 0.6 - второй.
Т.е. работа по двум фронтам, кроме устранения неопределенностей, устраняет начальные нелинейности ТАС (ограничивая его работу диапазоном 0.25..0.75 шкалы) и, фактически, удваивает рабочую тактовую частоту (эффективная частота - 2 ГГц). А сложность схемы возрастает не очень существенно - доля компонент, совместно используемых обеими частями схемы, велика.
|
|
|
|
|
Oct 29 2013, 13:25
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Спасибо... заброшу идею в копилку... Я, как и net, пропускал один такт. А неправильные результаты измерений просто отбрасывал, ждал следующего измерения. Можно попробовать не игнорировать измерения из диапазона, скажем, 1/8...1/4 и 3/4...7/8, а использовать вместе с "правильным" измерением - сдвинуть на полтакта и усреднить. Точнее будет, но не во всем диапазоне 0...1, увы. Можно еще хитрее - усреднять измерения по фронту и срезу с разным весом - то, что ближе к середине - с весом 1, что рядом с краями - уменьшать до 0. А форма этой кривой...? ("Остапа понесло"  )
|
|
|
|
|
Oct 29 2013, 17:37
|
Знающий
   
Группа: Свой
Сообщений: 858
Регистрация: 9-08-04
Пользователь №: 473

|
QUOTE (ViKo @ Oct 29 2013, 17:25)  Спасибо... заброшу идею в копилку... Я, как и net, пропускал один такт. А неправильные результаты измерений просто отбрасывал, ждал следующего измерения. Можно попробовать не игнорировать измерения из диапазона, скажем, 1/8...1/4 и 3/4...7/8, а использовать вместе с "правильным" измерением - сдвинуть на полтакта и усреднить. Точнее будет, но не во всем диапазоне 0...1, увы. Можно еще хитрее - усреднять измерения по фронту и срезу с разным весом - то, что ближе к середине - с весом 1, что рядом с краями - уменьшать до 0. А форма этой кривой...? ("Остапа понесло"  ) откуда неправильный результат? там всегда все правильно и весь сигнал идет по одному каналу и по одному фронту
|
|
|
|
|
Oct 29 2013, 18:00
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Неправильный результат - это моё, программное. Диапазон возможных значений все время корректируется, основываясь на среднем и на среднем отклонении от среднего. Кроме того, сбои возможны из-за улета в метастабильное состояние триггеров в ПЛИС (наверное). Кстати, насчет требования удвоения разрешающей способности АЦП, когда меряем до второго такта. На моей схемке в сообщении 73 резистор R52 смещает диапазон, так что время до первого такта не равно половине выходного напряжения, а намного меньше. Большая часть напряжения приходится на диапазон между первым тактом и вторым. И еще, (пропустил сообщение rudy_b) - у диодов BAW56 максимальное время восстановления 4 нс, не 6. Дифференциальный каскад - надо подумать, может быть...
|
|
|
|
|
Oct 29 2013, 19:56
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(net @ Oct 29 2013, 21:28)  так для этого через такт и делается - чтобы не было никакой гонки фронтов Надо еще точно задать это "через такт". Допустим, старт совпал с тактом. Куда этот такт относить (где будет "через такт")? А диоды у меня NXP trr reverse recovery time - - 4 ns Цитата(rudy_b @ Oct 29 2013, 22:06)  Насчет метастабильных состояний - вряд-ли, их вероятность очень низка. А вот если фронт сигнала близок к фронту тактовой (в пределах порядка наносекунды), тут будут пролеты на 1 такт. Да, так... Ответ топикстартеру. Измерить время с точностью пара наносекунд - значит, использовать тактовую частоту 500 МГц, например. Вполне по силам ПЛИС. У Cyclone III PLL работает на частоте до 1300 МГц. Сдвиговый регистр (счетчик Джонсона называется) будет работать на 500 МГц. А дальше - дело техники. Может, и двоичный счетчик какой-то длины получится.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|