реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Синхронизируем таймеры. Идеи.
Fobes
сообщение Mar 22 2016, 09:42
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 19-01-16
Пользователь №: 90 105



Всем доброго времени суток. Никак не могу додумать алгоритм синхронизации с резервированием. Подкиньте идеек по реализации)
Как сделал я: есть два таймера, тикающие с частотами 4кГц и 12.8кГц... На ногу мк получаю импульс раз в секунду в качестве внешней синхронизации... От этого импульса тактирую третий таймер, он генерит триггер и сбрасывает два вышеуказанных таймера что обеспечивает их одновременный старт... Грубо говоря, действия начинаются в момент прихода синхросигнала(в нулевой момент времени) => последний тик таймеров 4 и 12.8кГц должен быть (n-1)'й, где n - 4к и 12.8к соответственно... А при отсутствии синхронизации n'й тик этих таймеров является нулевым для следующей секунды и т.д.
А теперь о проблемах:
Сделал то что выше указал, но из-за того что синхросигнал внешний, кварцы разные, таймеры 4 и 12.8кГц могут успеть добежать до n'го тика раньше чем придет синхросигнал и их сбросит. Можно сделать остановку таймеров после (n-1)'го тика, а синхросигналом их запускать, но тогда система будет зависть очень сильно от синхросигнала, а нужно чтобы и с синхросигналом работало и без него... Подкиньте идеек, как все это провернуть и можно ли вообще ?

п.с. надеюсь смог объяснить хоть как-то, извиняюсь, начинающий... мк: stm32f4vgt6....
Go to the top of the page
 
+Quote Post
scifi
сообщение Mar 22 2016, 10:09
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Я правильно понял, что нужно "умножить" внешнюю частоту 1 Гц до 4 кГц и 12,8 кГц? Привязка по фазе нужна? Или фазе можно плыть? В каких пределах может плыть фаза (или частота)?
Я бы измерял третьим таймером период синхроимпульсов и вычислял бы, на сколько надо скорректировать период таймеров 4 и 12,8 кГц. Если это делать аккуратно, можно и фазу держать.
Go to the top of the page
 
+Quote Post
Fobes
сообщение Mar 22 2016, 10:43
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 19-01-16
Пользователь №: 90 105



Цитата(scifi @ Mar 22 2016, 10:09) *
Я правильно понял, что нужно "умножить" внешнюю частоту 1 Гц до 4 кГц и 12,8 кГц? Привязка по фазе нужна? Или фазе можно плыть? В каких пределах может плыть фаза (или частота)?
Я бы измерял третьим таймером период синхроимпульсов и вычислял бы, на сколько надо скорректировать период таймеров 4 и 12,8 кГц. Если это делать аккуратно, можно и фазу держать.


Можно и так сказать, но при потере синхроимпульсов система должна продолжать работать... Фаза +- 1мкС может плавать... А если синхросигнал придет на 1 такт позже, то получу лишнее срабатывание ведь ?
Go to the top of the page
 
+Quote Post
Shamil
сообщение Mar 22 2016, 11:13
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 160
Регистрация: 23-12-04
Из: Уфа
Пользователь №: 1 631



Цитата(Fobes @ Mar 22 2016, 16:43) *
Можно и так сказать, но при потере синхроимпульсов система должна продолжать работать... Фаза +- 1мкС может плавать... А если синхросигнал придет на 1 такт позже, то получу лишнее срабатывание ведь ?

Лучше, наверное, не сбрасывать таймеры по синхроимпульсу,
а фиксировать значения таймеров во время прихода синхроимпульсов,
и по отклонению этих значений от требуемых, подстраиваить частоту таймеров.
Т.е. сделать ФАПЧ.
Go to the top of the page
 
+Quote Post
scifi
сообщение Mar 22 2016, 11:44
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Fobes @ Mar 22 2016, 13:43) *
А если синхросигнал придет на 1 такт позже, то получу лишнее срабатывание ведь ?

Вы, наверное, совсем не поняли, что я имел в виду. Ну да ладно. Кстати, а имел в виду именно ФАПЧ, как написал Shamil.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Mar 22 2016, 12:58
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Две идеи

1.
Как-то делал систему, которая должна была измерять время от одного источника частоты, но он мог пропадать и тогда в таких интервалах необходимо было подхватывать менее стабильным на часовом кварце.
Я придумал неплохое рещение без проскальзывания.

Основной источник дает временной интервал с некоторым опережением по сравнению со вторичным. По достижению первичным источником конца временного интервала вторичный источник обнулялся и все начиналось сначала. Если вторичный источник пропадал, то с неболшим сдвигом подхватывал вторичный источник.
Скажем так:
Счетчик первичного сигнала считает миллисекунды до 1000 начиная с нуля, а вторичного начиная с минус двух. При достижении значения 1000 первичный счетчик перезаписывает в себя ноль, а во вторичный -2. Если до 1000 досчитал вторичный счетчик, то он себя обнулил и все. Секундные сигналы генерируются по достижению 1000 любым из счетчиков.

2.
Как синхронизироваться по фазе к синусу.
Самое нетривиальное -- измерить фазу синуса.
Сунус в однобитном представлении позволит определить фазу с точностью до 180 градусов.

Удваиваем точность:
Синус и косинус позволяют определить фазу с точностью до 90 градусов:
первый квадрант 11, второй 10, третий 00 и четвертый 01

Синус из косинуса получается диференцированием, а проще говоря, вычитанием каждого последующего значения из каждого предыдущего.

Учетверяем точность:
квадрат синуса без постоянной составляющей дает функцию удвоенной частоты, плюс ее производная. Добавляем еще один бит.

И так далее. Мне хватило точности в 90 градусов.

Итак расписываем последовательно числа, соответствующие фазам исходного сигнала. Строим машину состояний:
Каждой фазе отдельное состояние. Переходы из любого состояния возможны:
остаться в текущем состоянии
перейти в следующее состояние
перескочить через одно состояние вперед.
Машина состояний получается достаточно консервативной, чтобы устоять перед некоторыми помехами.

Ну в общем понятно.
Go to the top of the page
 
+Quote Post
Fobes
сообщение Mar 23 2016, 16:04
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 19-01-16
Пользователь №: 90 105



Всем большое спасибо за варианты) Хотел сделать что-то на вроде фапч, но подумал может есть что-то аппаратное, о чем я не знаю просто ^_^
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Mar 23 2016, 17:59
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(Fobes @ Mar 23 2016, 20:04) *
Всем большое спасибо за варианты) Хотел сделать что-то на вроде фапч, но подумал может есть что-то аппаратное, о чем я не знаю просто ^_^


В ФАПЧ всегда за скобками остается частотная подстройка на случай если частоты разные. Лучшая схема, что я знаю это сформировать короткие импульсы из фронтов опорной и настраиваемой частот и подавать их на входа RS-триггера. Выходное напряжение триггера фильтруется и за сцчет обратной связи ФАПЧ подсраивается до половины напряжения единицы.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 5th July 2025 - 16:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01413 секунд с 7
ELECTRONIX ©2004-2016