PDA

Просмотр полной версии : ЦАПЧ



Relayer
14.08.2006, 14:42
День добрый!

я думаю никто не будет спорить что стабильность гпд - это архиважная весчь. собственно методов решения этой проблемы не так уж и много: параметрическая стабилизация, dds, фапч и цапч. у каждого из этих методов есть свои сторонники и свои противники. так что я не хочу раздувать флейм по поводу что лучше :) я просто хочу поговорить за цапч :пиво:

классический цапч - берем младший десятичный разряд частотомера (например десятки герц), сравниваем с 5кой, в зависимости от результата сравнения выдаем корректирующие импульсы. получим сетку с интервалом в 100гц. при этом т.к. мы измеряем с точностью до десятков гц - частота может неконтролируемо плавать +-5гц. максимальная скорость коррекции ухода частоты - 10гц. если мы захотим чтобы частота не плавала в пределах младшего разряда - мы вынуждены будем увеличивать время счета, что снизит максимальную скорость коррекции. что не есть хорошо.
т.е. мы приходим к тем же баранам - хотим точнее мерять/удерживать частоту - увеличиваем интервал измерения - теряем в скорости коррекции.

теперь немного отвлечемся от всего вышесказанного. возьмем 2/10 счетчик. подадим на него наш гпд. время счета - 1сек - на счетчике еденицы герц. 0.1 сек - десятки. 0.01 сек - сотни и т.д. это общеизвестно. но можно это применить хитрым образом. сделаем генератор временных меток. первую метку мы сгенерируем после 0.01 сек с начала счета. вторую - через 0.1-0.01=0.99сек после первой. и третью через 1-0.1=0.9сек после второй. общее время счета не изменилось - 1сек. но значение разряда сотен герц нам с тало известно через 0.01сек, десятков - через 0.1сек и еденицы мы узнали в конце счета. если мы по этим временным меткам будем запоминать (например в защелках) значения, а с другой стороны независимо их отображать, то мы получим 3х-разрядный частотомер, значения которого будут "устаканиваться" от старшего знакоместа к младшему.

теперь задумаемся - нужен ли нам 2/10 счетчик? правильно - не нужен. вполне достаточно одного бита. казалось бы это уже сделали до нас - достаточно взглянуть на Huff-Puff или стабилизатор гпд для YES-98. но во всех этих схемах цапч выдает один сигнал коррекции в зависимости от полярности которого частота гпд корректируется вверх или вниз. это приводит к тому что буржуи называют ripple. приходится увеличивать постоянную времени интегрирующей цепи и как следствие снижать быстродействие петли цапч. поэтому очень желательно наличие третьего сигнала а точнее возможность цапч выдавать корректирующие импульсы раздельно. или не выдавать их если гпд в коррекции не нуждается.

вернемся к нашему одному биту. вполне можно обойтись D-тригером в режиме счета. нас будут интересовать скажем 6 младших бит двоичного представления частоты гпд. это даст нам сетку в 64гц. будем отталкиваться от того что в "устаканившемся" режиме эти 6 младших бит должны принять значение 100000b (т.е. еденица в старшем 6-ом разряде). теперь разберемся с интервалами счета. 1/32сек - в тригере 6й разряд, 1/16сек - 5й, 1/8сек - 4й, ... 1сек - 1й самый младший. все эти интервалы перекроем и будем отсчитывать с начала цикла измерения. первую метку выдадим через 1/32сек, вторую через 1/16-1/32=1/16сек после первой, третью через 1/8-1/16=1/16сек после второй и тд. по меткам сравниваем младшие 6ть битов частоты гпд (поступающие в порядке от старшего к младшему) с нашей константой 100000b. как только мы обнаруживаем несоответствие в какомто бите мы сразу можем принять решение в какую сторону надо корректировать частоту гпд. соответственно мы выдаем импульс коррекции, после чего сбрасываем наш тригер и начинаем весь интервал измерения заново (т.к. считать дальше в этом интервале уже не имеет смысла). если по 6й временной метке которая сформируется через 1сек мы так и не обнаружим несовпадения, то и никаких импульсов коррекции на гпд не выдадим.
на выходе цапч построенной по такой схеме будут формироваться импульсы коррекции с частотой от 0 до 32гц. причем чем больше уход гпд - тем выше частота импульсов.

вот такие вот размышления на тему цапч. буду рад выслушать конструктивную критику :)

Ю-2
14.08.2006, 14:52
Ниасилил.. :)

Relayer
14.08.2006, 14:56
Ниасилил.. :)

йад пить рекомендовать не буду :) постараюсь позжее нарисовать временные диаграмы и примерно схемку набросать.

Genadi Zawidowski
14.08.2006, 15:03
Главный момент - после закончившегося периода измерения ошибки - делитель в канале опорного сигнала тоже надо сбрасывать - для того, чтобы не ждать секунду до начала следующего цикла измерения?

Relayer
14.08.2006, 15:16
Главный момент - после закончившегося периода измерения ошибки - делитель в канале опорного сигнала тоже надо сбрасывать - для того, чтобы не ждать секунду до начала следующего цикла измерения?

ага! т.е. суть в чем - период измерения у нас не постоянный как это общепринято (максимальный который обеспечивает требуемую погрешность) а переменный.