Смекни!
smekni.com

Автоматический фазометр (стр. 2 из 3)

Определим разрядность счетчика для удовлетворения заданной точности. Погрешность измерения фазы 0.2%, следовательно максимальное число на выходе счетчика должно быть

. Но учитывая, что частота генератора не может быть установлена в точности в 500 раз больше чем у измеряемого сигнала, но может, отличаться максимум в 2 раза N=1000. Разрядность счетчика тогда равна
. 10-битные счетчики не выпускаются, поэтому выбираем 12-битный счетчик NXP 74HC4040. Тогда N=212=4096. Учитывая, что минимальная частота генератора равна 30кГц, то минимальная частота измеряемого сигнала равна
. Поэтому фазу сигналов, частота которых меньших 7.5 данный прибор измерить не сможет.

Принцип измерения фазы

Измерение фазы ведется в такой последовательности:

1. Микроконтроллер с помощью встроенного таймера измеряет частоту сигнала;

2. Если частота сигнала находиться в промежутке от 7.5 Гц до 15кГц (60МГц/4000), то МК записывает в генератор импульсов константу так, чтобы его частота была в 4096 раз больше чем частота сигнала (точнее в Nраз, гдеN – максимально возможное число меньшее 4096);

Если частота сигнала больше 15кГц, то в генератор импульсов записывается константа так, чтобы его частота равнялась 60МГц;

3. Микроконтроллер считывает значение фазы;

4. Микроконтроллер передает по каналу UART число соответствующие фазе сигнала.

2. Расчет блока питания

В данной работе используются микросхемы с напряжением питания +5В. Поэтому блок питания также надо проектировать на 5В.

Рассчитаем потребление схемы. Ток потребления компараторов 40 мА. Генератор потребляет 50 мА, счетчик 50 мА, триггер (Texas InstrumentsSN7474 – 20 мА, инвертор (STMicroelectronicsHCF4069) – 10 мА, микросхема 2И-НЕ – 4 мА, микроконтроллер (ATMega48) – 20 мА, преобразователь уровней (MAX232) – 10 мА. То есть суммарная нагрузка на блок питания равна 154 мА. Будем рассчитывать на ток 200 мА. Потребляемая мощность всех элементов платы чуть более 1 Вт. Блок питания на основе неуправляемого мостового выпрямителя с понижающим трансформатором. Для получения стабильного напряжения используем интегральный стабилизатор LM7805. Выбираем стандартный трансформатор типа ТПП – ТПП234-127/220-50 (ток вторичных обмоток 200 мА, номинальная мощность – 10Вт, напряжение вторичных обмоток 10В).

Каждый диод выпрямителя должен выдерживать обратное напряжение

и прямой ток

мА

Согласно этому в качестве диодов мостового выпрямителя был выбран диодный мост B40S (Iпр=1А, Uобр=40В). При стандартном подключении стабилизатора LM7805 на его входе и выходе следует включить конденсаторы номиналом 20 мкФ марки К50-6.


3. Разработка алгоритма работы программы

Рассмотрим алгоритм измерения фазы и частоты сигнала.

Частота будет измеряться с помощью сигнала с выхода усилителя на транзисторе VT2. Этот сигнал будет подсоединен к входу внешнего прерывания INT0. Микроконтроллер будет настроен так, чтобы прерывание вызывалось когда на этом выводе будет сигнал низкого уровня. Перед измерением частоты сигнала в переменной FRQ заносится ноль, разрешается прерывание INT0 (в регистр маски EIMSK отправляется 1). Когда на этом входе буде сигнал низкого уровня то прерывание будет вызываться и увеличивать значение регистра DPTR на 1. Подсчитаем сколько циклов занимает одно выполнение подпрограммы прерывания. Один цикл занимает вызов прерывания, два цикла инкремент регистра и еще два - выход из подпрограммы прерывания. С учетом, того что время цикла МК составляет 1 мкс, то подпрограмма обработки прерывания занимает 5мкс. Так можно измерять отрезки времени от 5мкс (200 кГц)..5мкс·65536(3Гц). С учетом того, что измеряется только время половины периода (отрицательный полупериод сигнала) диапазон измеряемых частот будет составлять 100 кГц. При этом значение FRQ будет прямо пропорционально периоду сигнала. Пересчет в частоту будет осуществляться по формуле:

,

где N – содержимое FRQ. Исходя из этого частоте 15 кГц соответствует число 6.

Сигнал с помощью которого определяется фаза подсоединен к входу внешнего прерывания INT1. Разность фаз прямопропорциональна сигналу низкого уровня. Подпрограмма обработки этого прерывания будет иметь следующий вид:

Fase:

Inc DPTR

NOP

NOP

NOP

NOP

NOP

reti

Эта подпрограмма выполняется 10 мкс. Увеличение времени выполнения этой подпрограммы вызвано тем, что сигнал фазы может иметь максимальную длительность равную периоду сигнала (а не половине как при измерение частоты), что может привести к переполнению регистра DPTR в случае если подпрограмма занимает 5 мкс. Поэтому время выполнения этой подпрограммы увеличено вдвое.

Рассмотрим алгоритм нахождения константы пересчета для загрузки в генератор.

Если частота сигнала больше 15 кГц (N<7), то в 9-разрядный регистр MUX генератора, с помощью которого определяется режим работы программного делителя частоты, загружается число 000110010В. При занесении в регистр MUX данного числа частота генератора будет равна 60 МГц.

Если частота сигнала меньше 15 кГц (N>6), то в 9-разрядный регистр MUX генератора, с помощью которого определяется режим работы программного делителя частоты, загружается число 000110100В. При занесении в регистр MUX данного числа частота генератора будет равна (60/(ND+2)) МГц, где ND – число загружаемое в 9-разрядный регистр-делитель. Так как необходимо получать частоту генератора равную


и исходя из справочной документации частота генератора имеет зависимость от константы пересчета :

,

то имеем систему исходя из которой найдем зависимость

ND(N):

(1).

С учетом того, что вычисление по формуле (1) константы ND будет выполняться с погрешностью, то следует увеличить ее значение на 1, для того чтобы частота генератора гарантированно была меньше числа

, и не произошло переполнения счетчика. Тогда

(2).

Посчитаем при каком N в формуле (2) ND будет неотрицательным

То есть фактически формулу (2) для пересчета можно применять для частот при которых N>6. Так как максимальное значение программного делителя составляет 513 (29+2), то минимальная частота генератора при которой применим этот алгоритм деления частоты составляет


кГц.

При этом из формулы (2)

,

а частота сигнала равна

Гц.

Для получения более низкой частоты нужно изменить значение регистра MUX генератора на такое значение 000111000В. Тогда частота на выходе генератора будет меньше чем частота резонатора генератора (60 МГц) в 2·(ND+2) раза. Тогда уравнение, из которого вычисляется константа ND, изменится, и будет иметь вид

Поэтому значение ND согласно формуле (2) нужно поделить на 2 и добавить 1. Тогда

(3)

При этом константа ND, вычисленная по формуле (3) программируется в генератор при частоте сигнала в диапазоне

Гц, что соответствует значению N=3496..6977=0DA8h..1B41h.

При частотах сигнала в диапазоне fc=7.5..14.3 Гц в регистр MUX генератора программируется следующее значение 000110000В. Тогда частота на выходе генератора будет меньше чем частота резонатора генератора (60 МГц) в 4·(ND+2) раза. Поэтому значение ND согласно формуле (2) нужно поделить на 4 и добавить 1. Тогда

что соответствует значению N=6978..13954=1B42h..3682h.

Рассчитаем, какое число нужно загрузить в регистр TH1 для настройки последовательного интерфейса на скорость 4800 бод/с. Частота передачи данных рассчитывается по формуле:

.

Из этой формулы находим константу которую нужно загрузить в TH1.

Так как число 243 округлялось найдем фактическую скорость передачи данных.

бод/с

Погрешность составляет 0.15%. Такая погрешность скорости не вызывает ошибок при передаче данных.


4. Описание алгоритма программы для МК