62172 (611439), страница 2

Файл №611439 62172 (Автоматический фазометр) 2 страница62172 (611439) страница 22016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

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

мА

Согласно этому в качестве диодов мостового выпрямителя был выбран диодный мост 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. Описание алгоритма программы для МК

Микроконтроллер должен осуществлять такие действия:

  1. начальную настройку своих узлов и периферийных устройств;

  2. прием параметров измерения фазы от компьютера;

  3. измерение частоты сигнала;

  4. выбор режима измерения фазы;

  5. выдача информации о частоте и фазе компьютеру.

Соответственно этому МК будет работать по алгоритму указанному на рис.5.

Рис.5. Блок-схема алгоритма программы для МК

5. Программа для МК

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

Программа, которая будет выполняться ПК должна осуществить следующие действия:

  1. определить у пользователя параметры измерения фазы;

  2. инициировать начало работы фазометра;

  3. считать сообщение о исправности фазометра;

  4. в случае если он исправен послать сообщение о параметрах измерения фазы;

  5. считать числа соответствующие фазе и частоте;

  6. преобразовать частоту в герцы, а фазу в радианы и сохранить;

  7. в конце измерения вывести на экран среднее значение фазы и частоты;

  8. повторить все начиная с пункта 1.

Рис.6. . Блок-схема алгоритма программы для ПК

7. Программа для ПК

uses crt;

var i,k,z,contr,l,ms:Byte;

Base : word ;

Value : byte;

t :Boolean;

fase,freaquency:integer;

fase_r,freaquency_r,divider:real;

data:array[1..100,1..2]of real absolute $6B00:$0000;

Procedure OpenCom(Base:word ; Baudrate:word ; Config :byte);

begin

while Port[Base+5] and $60 <> $60 do;

Port[Base+3] := $80;

Port[Base+1] := BaudRate shr 8;

Port[Base+0] := BaudRate and $FF;

Port[Base+3] := Config;

Port[Base+4] := 0;

Port[Base+1] := 0;

end;

Procedure send_char(Base : word ; Value : byte);

begin

while ((Port[Base+5] and $20) = 0) do ;

Port[Base] := Byte(Value);

end;

Function get_char( Base : word ) : Boolean;

var status : word;

begin

Status := Port[Base + 5];

if ((Status and $1E) <> 0) or ((Status and 1) = 0 ) then get_char := False

else

begin

Value := Port[Base];

contr:=contr+Value;

get_char := True;

end;

end;

begin

z:=1;

while(z=1) do

begin

clrscr;

contr:=0;

writeln('Progam measure of fase');

writeln;

writeln('Input count measures');

Readln(i);

writeln;

writeln('Input time of measurements');

Readln(l);

Base:=MemW[$40:2]; {COM2}

OpenCom(Base,24,3 + 0 + 0); {4800,8-bit,1 stop-bit,no control error}

send_char(Base , 0); {start}

if(get_char(BASE)=TRUE) then k:=Value; {meassage about working of device}

k:=k and 1;

if(k=0) then

begin

send_char(Base , i); {number of measurements}

send_char(Base , l); {time of measurement}

for k:=1 to i do

begin

if(get_char(BASE)=TRUE) then k:=Value; {higer byte of freaquency}

freaquency:=k*256;

if(get_char(BASE)=TRUE) then k:=Value; {lower byte of freaquency}

freaquency:=freaquency+k;

freaquency_r:=10e5/freaquency; {convertion in Hz}

if(get_char(BASE)=TRUE) then k:=Value; {higer byte of fase}

fase:=k*256;

if(get_char(BASE)=TRUE) then k:=Value; {lower byte of fase}

fase:=fase+k;

if(freaquency<7) then {60MHz}

begin

divider:=1;

end;

if(freaquency>6)and(freaquency<$0E00) then {60/Nd+2}

begin

divider:=(75*freaquency)/512+1;

end;

if(freaquency>$0DFF)and(freaquency<$1C00) then {30/Nd+2}

begin

divider:=(75*freaquency)/1024+2;

end;

if(freaquency>$1BFF)and(freaquency<$3700) then {15/Nd+2}

begin

divider:=(75*freaquency)/2048+2;

end;

if(freaquency<$3700) then fase_r:=360*(freaquency_r*divider/6e7) {convertion}

else {fase measured MK}

begin

fase_r:=360*((2*fase)/freaquency);

end;

data[k][1]:=freaquency_r;

data[k][2]:=fase_r;

end;

if(get_char(BASE)=TRUE) then

begin

if(Value<>contr) then {control}

begin

z:=0;

writeln('Error COM port');

end

else

begin

l:=0;

while l=0 do

begin

clrscr;

writeln('Input number of measurements');

Readln(ms);

if(ms>100) then l:=1

else writeln('f=',data[ms,1],' fase=',data[ms,2]);

ReadKey;

end;

freaquency_r:=0;

fase_r:=0;

for k:=1 to i do {medium measurements}

begin

freaquency_r:=freaquency_r+data[k,1];

fase_r:=fase_r+data[k,2];

end;

freaquency_r:=freaquency_r/i;

fase_r:=fase_r/i;

Writeln('Medium f=',freaquency_r,' fase=',fase_r,' o');

end;

end;

end

else

begin

clrscr;

writeln('Error COM port');

z:=0;

end;

end;

end.

Выводы

В данной работе был спроектирован автоматический фазометр. Основной сложностью при его проектирование был выбор компонентой базы, так как данный фазометр должен измерять фазу у сигнала с частотой 100кГц с точностью 0.2%. Это эквивалентно измерению временных интервалов длительностью 20нс. Интегральных таймеров на такую частоту найдено не было. Из-за чего таймер был спроектирован на базе трех 4-разрядных счетчиков и генератора с программируемой частотой. Для измерения фазы сигнала вначале измеряется его частота с помощью микроконтроллера, а затем генератор программируется на частоту в 212 раз большую, чем частота сигнала. При активном уровне с выхода системы перехода напряжений через ноль, счетчик считает импульсы генератора, а затем микроконтроллер считывает их и передает компьютеру, где константы соответствующие частоте и фазе преобразуются в герцы и градусы и показываются оператору по его запросу.

Характеристики

Тип файла
Документ
Размер
1,84 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее