.

Система ПЭВМ IBM PC/AT – автоматический фазометр (курсовая)

Язык: русский
Формат: курсова
Тип документа: Word Doc
97 1871
Скачать документ

Национальный Технический Университет Украины

«Киевский Политехнический институт»

Курсовая работа по курсу:

«Специализированные и промышленные микропроцессорные системы»

тема: «Система ПЭВМ IBM PC/AT – автоматический фазометр»

Киев 2009

Содержание

Введение

Выбор структуры автоматического фазометра

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

Расчетная часть

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

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

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

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

Выводы

Схема электрическая принципиальная

Введение

Фазометр – это устройство, которое измеряет разность фаз между эталонным
и исследуемым гармоническими сигналами. Фазой гармонического напряжения
U(t)=Umsin(щt+ц0) называется аргумент функции U(t), описывающей
колебательный процесс. Фаза гармонического напряжения является линейной
функцией времени. Угол сдвига фаз представляет собой модуль разности фаз
двух гармонических сигналов U1(t) b U2(t) одинаковой частоты. Таким
образом, если U1(t)=U1msin(щt+ц1), a U2(t)=U2msin(щt+ц2), то согласно
определению угол сдвига фаз Дц равен Дц=|ц1 – ц2|. Если ц1 и ц2
постоянны во времени, то Дц+ от времени не зависит. При Дц = 0
гармонические напряжения называются синфазными, при Дц = ±р –
противофазными. Выбор метода измерения угла сдвига фаз зависит
отдиапазона частот, амплитуды сигнала и, главным образом, от требуемой
точности измерения. Измерение угла сдвига фаз может выполняться как
методом непосредственной оценки, так и методом сравнения. Результат
измерения выражается либо в градусах, либо в радианах. Измерительные
приборы, специально предназначенные для измерения угла сдвига фаз,
называются фазометрами.

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

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

Выбор структуры автоматического фазометра

Для нахождения фазы сигнала проще всего измерять время между
прохождением эталонного и измеряемого сигналов через ноль t±. При этом
зная частоту измеряемого сигнала можно найти его фазу исходя из
следующей формулы:

picscalex1000100090000030302000002008f0000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c024002
a0081300000026060f001c00ffffffff00004e0010000000c0ffffffa6ffffff60080000
e60100000b00000026060f000c004d617468547970650000600005000000090200000002
05000000140280012b061c000000fb0280fe000000000000900100000000000200105469
6d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d01
00000c000000320a000000000300000033363000c000c000000305000000140280019802
1c000000fb0280fe0000000000009001010000000002001054696d6573204e657720526f
6d616e001643c7771f43c77720c0c97700003000040000002d01010004000000f0010000
0a000000320a000000000200000074661f02000305000000140280011c001c000000fb02
80fe0000000000009001010000010002001053796d626f6c00774000000039050ade1643
c7771f43c77720c0c97700003000040000002d01000004000000f001010009000000320a
00000000010000006a660003050000001402e3010a031c000000fb0222ff000000000000
9001000000010002001053796d626f6c00774000000032050a691643c7771f43c77720c0
c97700003000040000002d01010004000000f001000009000000320a0000000001000000
b166bc01050000001402800178011c000000fb0280fe0000000000009001000000010002
001053796d626f6c00774000000039050adf1643c7771f43c77720c0c977000030000400
00002d01000004000000f00101000c000000320a00000000030000003dd7d7696702c801
00038f00000026060f0014014d6174685479706555550801050100050244534d54350000
1357696e416c6c4261736963436f6465506167657300110554696d6573204e657720526f
6d616e00110353796d626f6c001105436f7572696572204e65770011044d542045787472
6100120008212f458f442f4150f4100f475f4150f21f1e4150f4150f4100f445f425f48f
425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f417f48f4100f412a
5f445f45f45f45f45f410f0c01000100010202020200020001010100030001000400000a
0100020484d5036a0204863d003d020083740003001b00000b0100020486b100b1000101
000a020486c522d70200836600020486c522d70200883300020088360002008830000000
0b00000026060f000c00ffffffff01000000000000001c000000fb021000070000000000
bc02000000cc0102022253797374656d000000000a0021008a010000000001000000f8e4
12002942c777040000002d01010004000000f0010000030000000000 (1),

где t± – время между прохождением эталонного и измеряемого сигнала через
ноль, f – частота измеряемого сигнала, множитель 360 переводит
безразмерную величину в градусы.

Исходя из того, что данные измерений следует передавать в компьютер
через COM-порт, то фазометр будет содержать микроконтроллер, так как с
помощью него наиболее просто реализовать связь с компьютером по
интерфейсу RS-232.

Также микроконтроллер можно использовать для измерения фазы, так как
почти каждый микроконтроллер имеет интегрированный таймер-счетчик.
Возможность этого нужно проверить исходя из поставленного задания, а
именно – максимальных частоты сигнала fmax=100кГц и погрешности
измерения фазы д=0.2%. Используя эти данные можно определить минимальное
время, которое необходимо измерять, чтобы выполнить вышеуказанные
условия. Это время находится по формуле:

picscalex1000100090000037f0300000400cb0000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c024004
20101300000026060f001c00ffffffff00004e0010000000c0ffffffb8ffffffe00f0000
f80300000b00000026060f000c004d617468547970650000f00008000000fa0200001300
000000000002040000002d0100000500000014020002b20305000000130200021a090500
000014020002b20a0500000013020002d00c05000000090200000002050000001402c302
a0001c000000fb0222ff0000000000009001000000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d0101000c000000320a
00000000030000006d696e00a9003e00bc01050000001402e002260c1c000000fb0222ff
0000000000009001000000000002001054696d6573204e657720526f6d616e001643c777
1f43c77720c0c97700003000040000002d01020004000000f001010009000000320a0000
0000010000003779bc01050000001402ef038f041c000000fb0222ff0000000000009001
000000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977
00003000040000002d01010004000000f00102000c000000320a00000000030000006d61
7831a9006100bc010500000014026e01d40a1c000000fb0280fe00000000000090010000
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d01020004000000f00101000c000000320a0000000003000000302e3251
c000600000030500000014026002620e1c000000fb0280fe000000000000900100000000
0002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000
040000002d01010004000000f00102000a000000320a00000000020000003230c0000003
0500000014028c03ce061c000000fb0280fe000000000000900100000000000200105469
6d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d01
020004000000f00101000f000000320a0000000005000000313030313000c000c0005202
c000000305000000140260022e001c000000fb0280fe0000000000009001010000000002
001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977000030000400
00002d01010004000000f001020009000000320a00000000010000007430000305000000
14028c0312041c000000fb0280fe0000000000009001010000000002001054696d657320
4e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d0102000400
0000f001010009000000320a0000000001000000663000030500000014026e01e2051c00
0000fb0280fe0000000000009001010000010002001053796d626f6c007740000000ac05
0a541643c7771f43c77720c0c97700003000040000002d01010004000000f00102000900
0000320a000000000100000064300003050000001402600280021c000000fb0280fe0000
000000009001000000010002001053796d626f6c007740000000ae000a351643c7771f43
c77720c0c97700003000040000002d01020004000000f00101000c000000320a00000000
030000003d3d3d540007b60300030500000014028c03680609000000320a000000000100
0000d7300003cb00000026060f008c014d6174685479706555558001050100050244534d
543500001357696e416c6c4261736963436f6465506167657300110554696d6573204e65
7720526f6d616e00110353796d626f6c001105436f7572696572204e65770011044d5420
457874726100120008212f458f442f4150f4100f475f4150f21f1e4150f4150f4100f445
f425f48f425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f417f48f4
100f412a5f445f45f45f45f45f410f0c0100010001020202020002000101010003000100
0400000a0100020083740003001b00000b01000202826d0002008269000200826e000001
01000a0204863d003d03000b00000100020484b40364000100020083660003001b00000b
01000202826d0002008261000200827800000101000a020486c522d70200883100020088
3000020088300000000204863d003d03000b0000010002008830000200822e0002008832
000001000200883100020088300003001c00000b010101000200883700000000000a0204
863d003d0200883200020088300000000b00000026060f000c00ffffffff010000000000
000008000000fa0200000000000000000000040000002d0101001c000000fb0210000700
00000000bc02000000cc0102022253797374656d000000000a0021008a0100000000ffff
ffff94e412002942c777040000002d01030004000000f0010200030000000000нс
(2).

Для измерения такого времени микроконтроллер должен обладать таким же
или меньшим временем цикла. При этом он должен иметь частоту f=50·n МГц,
где n – количество тактов в машинном цикле микроконтроллера, то есть как
минимум 50 МГц (микроконтроллеры с RISC архитектурой). Микроконтроллеры
с такой частотой очень дороги и их нецелесообразно использовать для
данной задачи. Поэтому для измерения фазы следует использовать отдельный
таймер и генератор прямоугольных импульсов с тактовой частотой 50 МГц
или выше, при этом требования к микроконтроллеру по времени цикла
смягчаться. В данном случае микроконтроллер, раз за период сигнала, фаза
которого измеряется, должен считать со счетчика данные. Так как
максимальная частота сигнала 100 кГц, то это он должен суметь сделать за
10 мкс. К тому же этот микроконтроллер должен иметь встроенный
контроллер интерфейса RS-232C для связи с компьютером. Согласно этим
требованиям подходит широко известный микроконтроллер фирмы Atmel
AT89C51 с тактовой частотой 12МГц и временем цикла 1 мкс.

Обоснование структурной схемы

Структурная схема проектируемого устройства изображена на рис. 1

picscalex1210100090000031602000002009601000000009601000026060f002203574d
464301000000000001004ea9000000000100000000030000000000000003000001000000
6c0000000000000000000000350000006f0000000000000000000000273c0000f8200000
20454d46000001000003000010000000020000000000000000000000000000007f120000
771a0000c80000001f010000000000000000000000000000000f03005860040016000000
0c000000180000000a0000001000000000000000000000000900000010000000330e0000
cc070000520000007001000001000000a4ffffff00000000000000000000000090010000
000000cc04400022430061006c0069006200720069000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
00002e0050952e0010000000b4982e0034962e00e4502665b4982e00ac952e0010000000
1c972e0098982e008a4f2665b4982e00ac952e002000000080e01e64ac952e00b4982e00
20000000fffffffffc246b01fbe01e64ffffffffffff0180ffff01807fff0180ffffffff
006f000000080000000800006903176401000000000000005802000025000000372e9001
cc00020f0502020204030204ff0200e1ffac004009000000000000009f01000000000000
430061006c0069006200720000000000f0007c7674962e00334e2064282efd64d4992e00
e0952e00d532186420000000010000001c962e001c962e00007616642000000044962e00
fc246b016476000800000000250000000c00000001000000250000000c00000001000000
250000000c00000001000000120000000c00000001000000180000000c00000000000002
54000000540000000000000000000000350000006f00000001000000e7298740a48e8740
0000000057000000010000004c000000040000000000000000000000360e0000ca070000
50000000200000003600000046000000280000001c0000004744494302000000ffffffff
ffffffff340e0000cd070000000000004600000014000000080000004744494303000000
250000000c0000000e000080250000000c0000000e0000800e0000001400000000000000
10000000140000000400000003010800050000000b0200000000050000000c02ef00b401
040000002e0118001c000000fb02f5ff0000000000009001000000cc0440002243616c69
62726900000000000000000000000000000000000000000000000000040000002d010000
040000002d010000040000002d0100000400000002010100050000000902000000020d00
0000320a0a0000000100040000000000b301f000200006001c000000fb02020001000000
0000bc02000000cc0102022253797374656d003f00003f3f3f3f3f3f3f3f3f3f08000000
01003f3f3f3f3f00040000002d010100040000002d010100030000000000

Рис. 1. Структурная схема фазометра

Объясним работу автоматического фазометра по структурной схеме. На
систему определения перехода напряжений через ноль подается эталонное
напряжение и напряжение, фазу которого нужно измерять. Эта система
включает таймер в интервале времени, начиная с момента, когда эталонное
напряжение перешло через ноль (например, при переходе напряжения из
области отрицательных положений в положительную область), а измеряемое
напряжение – еще нет. В этот интервал времени таймер считает такты
генератора импульсов, а при исчезновения сигнала запуска от системы
перехода через ноль – в таймере будет храниться число, которое
соответствует разности фаз эталонного и измеряемого сигналов. Это число
считывается микроконтроллером и передается по интерфейсу RS-232C, через
преобразователь уровней, компьютеру. В компьютере это число переводится
в градусы и записывается в область памяти, которая указана в задании.

Рассмотрим каждый функциональный узел автоматического фазометра более
подробно.

Система определения перехода напряжений через ноль

Данная система должна выполнять следующие действия:

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

2) Таймер продолжает работать пока эталонное напряжение не перейдет из
отрицательных значений напряжения в положительные.

Также в этом узле целесообразно выполнить гальваническую развязку.

Функциональная схема этого узла изображена ниже.

picscalex1000100090000032a0200000200a20100000000a201000026060f003a03574d
46430100000000000100708b000000000100000018030000000000001803000001000000
6c0000000000000000000000350000006f0000000000000000000000413f0000a62c0000
20454d46000001001803000012000000020000000000000000000000000000007f120000
771a0000c80000001f010000000000000000000000000000000f03005860040016000000
0c000000180000000a0000001000000000000000000000000900000010000000f10e0000
8c0a0000250000000c0000000e000080250000000c0000000e000080120000000c000000
01000000520000007001000001000000a4ffffff00000000000000000000000090010000
000000cc04400022430061006c0069006200720069000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
00002e0050952e0010000000b4982e0034962e00e4502665b4982e00ac952e0010000000
1c972e0098982e008a4f2665b4982e00ac952e002000000080e01e64ac952e00b4982e00
20000000fffffffffc246b01fbe01e64ffffffffffff0180ffff01807fff0180ffffffff
006f000000080000000800006903176401000000000000005802000025000000372e9001
cc00020f0502020204030204ff0200e1ffac004009000000000000009f01000000000000
430061006c0069006200720000000000f0007c7674962e00334e2064282efd64d4992e00
e0952e00d532186420000000010000001c962e001c962e00007616642000000044962e00
fc246b016476000800000000250000000c00000001000000250000000c00000001000000
250000000c00000001000000180000000c00000000000002540000005400000000000000
00000000350000006f00000001000000e7298740a48e8740000000005700000001000000
4c000000040000000000000000000000f10e00008c0a0000500000002000570036000000
46000000280000001c0000004744494302000000fffffffffffffffff20e00008d0a0000
000000004600000014000000080000004744494303000000250000000c0000000e000080
250000000c0000000e0000800e0000001400000000000000100000001400000004000000
03010800050000000b0200000000050000000c024401cb01040000002e0118001c000000
fb020200010000000000bc02000000cc0102022253797374656d003f00003f3f3f3f3f3f
3f3f3f3f0800000001003f3f3f3f3f00040000002d010000040000002d01000004000000
020101001c000000fb02f5ff0000000000009001000000cc0440002243616c6962726900
000000000000000000000000000000000000000000000000040000002d01010004000000
2d010100040000002d010100050000000902000000020d000000320a0a00000001000400
00000000ca01440120000600040000002d010000040000002d010000030000000000

Рис.2. Функциональная схема системы определения перехода через ноль

Функциональная схема системы определения перехода напряжений через ноль

Объясним работу системы определения перехода напряжений через ноль.

Измеряемое и эталонное напряжение подается на вход компараторов через
ограничители напряжения, который обрезает напряжения большие некоторой
величины. Это сделано из-за того, что максимальное значение напряжения
сигнала может достигать 100В, а на компараторы нельзя подавать
напряжение большей величины чем значение напряжения питания. После
компараторов сделана гальваническая развязка. Гальваническая развязка
сделана в этом месте из таких соображений:

1) по этим линиям передается цифровой сигнал, что дает возможность
использовать оптическую развязку;

2) гальванически развязанной с измеряемыми напряжениями будет почти вся
измерительная система (кроме 2-ух компараторов).

Эти компараторы выдает сигнал высокого уровня если соответствующее
напряжение больше нуля или сигнал низкого уровня – если меньше нуля. То
есть на выходе компараторов будет меандр. С выходов компараторов эти
сигналы поступают на вход защелки C D-триггеров DD2.1 и DD2.2. По
переднему фронте на входе С этих триггеров на их прямых выходах появится
уровень сигнала, который подавался на его вход D (при условии, что на
входы асинхронной установки триггеров S и R будут подаваться неактивные
уровни сигналов).

Триггер DD2.2 включен таким образом, что при появлении на его прямом
выходе сигнала низкого уровня, через время равное задержке
распространения сигнала через два инвертора на его выходе вновь
установится сигнал высокого уровня. Это связано с тем, что сигнал с
выхода этого триггера подается на его вход S асинхронной установки
логической «1». Так как активный уровень сигнала у этого входа низкий,
то при появлении на выходе этого триггера логического «0», он дважды
проинвертировавшись (что сделано лишь для задержки сигнала) поступит на
вход S и вызовет переключение триггера. Но при этом на выходе триггера
DD2.2 появится кратковременный импульс отрицательной полярности.

Исходя из этого, узел на микросхемах DD1-DD3 работает следующим образом.
Объяснение работы схемы лучше всего начать с момента прихода
положительного фронта на вход защелки триггера DD2.2 (переход эталонного
напряжения из отрицательного значения в положительное). В этот момент
времени на прямом выходе триггера DD2.2 установится логический «0», что
вызовет установку на выходе триггера DD2.1 логического «0» (так как
выход триггера DD2.2 связан со входом сброса триггера DD2.1), на выходе
триггера DD2.2 вновь появится сигнал высокого уровня. Фактически по
первому переднему фронту на защелке триггера DD2.2 происходит
инициализация этой системы. Теперь она готова к работе. При переходе
измеряемого напряжения из отрицательных значений в положительные, на
вход C триггера DD2.1 поступает положительный фронт. Так как на его вход
D поступает сигнал логической «1», то и на выходе триггера DD2.1
появится сигнал логической «1». До этого на его выходе был логический
«0». Так как сигналы с выходов триггеров DD2.1 и DD2.2 поступают на
входы микросхемы 2И DD3.1, то на ее выходе в промежуток времени между
переходами измеряемого и эталонного напряжения через ноль будет сигнал
логической «1». После того как напряжение эталонного сигнала перейдет из
отрицательного значения в положительное, то произойдет процесс
инициализации и на выходе системы вновь появится сигнал логического «0».
Согласно этому, на выходе системы будет сигнал логической «1» в
промежуток времени между событиями перехода из отрицательного значения в
положительное напряжений измеряемого и эталонного сигналов. Для научного
представления представим этот процесс в виде временных диаграмм.

picscalex1220100090000032a0200000200a20100000000a201000026060f003a03574d
464301000000000001002864000000000100000018030000000000001803000001000000
6c0000000000000000000000350000006f0000000000000000000000c63c000074450000
20454d46000001001803000012000000020000000000000000000000000000007f120000
771a0000c80000001f010000000000000000000000000000000f03005860040016000000
0c000000180000000a00000010000000000000000000000009000000100000005b0e0000
68100000250000000c0000000e000080250000000c0000000e000080120000000c000000
01000000520000007001000001000000a4ffffff00000000000000000000000090010000
000000cc04400022430061006c0069006200720069000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
00002e0050952e0010000000b4982e0034962e00e4502665b4982e00ac952e0010000000
1c972e0098982e008a4f2665b4982e00ac952e002000000080e01e64ac952e00b4982e00
20000000fffffffffc246b01fbe01e64ffffffffffff0180ffff01807fff0180ffffffff
006f000000080000000800006903176401000000000000005802000025000000372e9001
cc00020f0502020204030204ff0200e1ffac004009000000000000009f01000000000000
430061006c0069006200720000000000f0007c7674962e00334e2064282efd64d4992e00
e0952e00d532186420000000010000001c962e001c962e00007616642000000044962e00
fc246b016476000800000000250000000c00000001000000250000000c00000001000000
250000000c00000001000000180000000c00000000000002540000005400000000000000
00000000350000006f00000001000000e7298740a48e8740000000005700000001000000
4c0000000400000000000000000000005b0e000068100000500000002000350036000000
46000000280000001c0000004744494302000000ffffffffffffffff5c0e000069100000
000000004600000014000000080000004744494303000000250000000c0000000e000080
250000000c0000000e0000800e0000001400000000000000100000001400000004000000
03010800050000000b0200000000050000000c02f801b901040000002e0118001c000000
fb020200010000000000bc02000000cc0102022253797374656d003f00003f3f3f3f3f3f
3f3f3f3f0800000001003f3f3f3f3f00040000002d010000040000002d01000004000000
020101001c000000fb02f5ff0000000000009001000000cc0440002243616c6962726900
000000000000000000000000000000000000000000000000040000002d01010004000000
2d010100040000002d010100050000000902000000020d000000320a0a00000001000400
00000000b801f90120000600040000002d010000040000002d010000030000000000

Рис.3. Временные диаграммы системы перехода через ноль

Реализация делителя напряжения, гальванической развязки

Так как следует сделать защиту от перенапряжения до 500В, а на вход
компаратора нельзя подавать напряжение большее чем напряжение источника
питания (5В), то на входе компаратора следует поставить ограничитель
напряжения. Схема включения компаратора указана ниже.

picscalex1300100090000032a0200000200a20100000000a201000026060f003a03574d
46430100000000000100ccb0000000000100000018030000000000001803000001000000
6c0000000000000000000000350000006f00000000000000000000007e40000053160000
20454d46000001001803000012000000020000000000000000000000000000007f120000
771a0000c80000001f010000000000000000000000000000000f03005860040016000000
0c000000180000000a00000010000000000000000000000009000000100000003c0f0000
46050000250000000c0000000e000080250000000c0000000e000080120000000c000000
01000000520000007001000001000000a4ffffff00000000000000000000000090010000
000000cc04400022430061006c0069006200720069000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
00002e0050952e0010000000b4982e0034962e00e4502665b4982e00ac952e0010000000
1c972e0098982e008a4f2665b4982e00ac952e002000000080e01e64ac952e00b4982e00
20000000fffffffffc246b01fbe01e64ffffffffffff0180ffff01807fff0180ffffffff
006f000000080000000800006903176401000000000000005802000025000000372e9001
cc00020f0502020204030204ff0200e1ffac004009000000000000009f01000000000000
430061006c0069006200720000000000f0007c7674962e00334e2064282efd64d4992e00
e0952e00d532186420000000010000001c962e001c962e00007616642000000044962e00
fc246b016476000800000000250000000c00000001000000250000000c00000001000000
250000000c00000001000000180000000c00000000000002540000005400000000000000
00000000350000006f00000001000000e7298740a48e8740000000005700000001000000
4c0000000400000000000000000000003c0f000046050000500000002000350036000000
46000000280000001c0000004744494302000000ffffffffffffffff3d0f000047050000
000000004600000014000000080000004744494303000000250000000c0000000e000080
250000000c0000000e0000800e0000001400000000000000100000001400000004000000
03010800050000000b0200000000050000000c02a200d401040000002e0118001c000000
fb020200010000000000bc02000000cc0102022253797374656d003f00003f3f3f3f3f3f
3f3f3f3f0800000001003f3f3f3f3f00040000002d010000040000002d01000004000000
020101001c000000fb02f5ff0000000000009001000000cc0440002243616c6962726900
000000000000000000000000000000000000000000000000040000002d01010004000000
2d010100040000002d010100050000000902000000020d000000320a0a00000001000400
00000000d201a20020000600040000002d010000040000002d010000030000000000

Рис.4. Блок гальванической развязки

Опишем функциональное значение каждого компонента данного узла. В
качестве компаратора в данном узле используется операционный усилитель
(ОУ) DA1. Резисторы R1 и R2 предназначены для деления напряжения
сигнала. Их соотношение должно быть таким, чтобы при максимальной
амплитуде входного сигнала (500В), напряжение на прямом входе ОУ не
превышало 5В. Исходя из этого
picscalex100010009000003bc0200000400ac0000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c024004
c0081300000026060f001c00ffffffff00004e0010000000c0ffffffb9ffffff80080000
f90300000b00000026060f000c004d617468547970650000f00008000000fa0200001300
000000000002040000002d01000005000000140200024000050000001302000299040500
000014020002310605000000130200026b0805000000090200000002050000001402d001
9a021c000000fb0222ff0000000000009001000000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d01010009000000320a
00000000010000003279bc01050000001402ef032a011c000000fb0222ff000000000000
9001000000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0
c97700003000040000002d01020004000000f00101000a000000320a0000000002000000
3132c902bc010500000014026e01ee061c000000fb0280fe000000000000900100000000
0002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000
040000002d01010004000000f001020009000000320a0000000001000000313200030500
000014028c031f061c000000fb0280fe0000000000009001000000000002001054696d65
73204e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d010200
04000000f00101000c000000320a00000000030000003130304bc000c000000305000000
14026d01bc011c000000fb0280fe0000000000009001010000000002001054696d657320
4e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d0101000400
0000f001020009000000320a0000000001000000523200030500000014028c0364001c00
0000fb0280fe0000000000009001010000000002001054696d6573204e657720526f6d61
6e001643c7771f43c77720c0c97700003000040000002d01020004000000f00101000a00
0000320a00000000020000005252b10200030500000014026002ff041c000000fb0280fe
0000000000009001000000010002001053796d626f6c0077400000009f060a4d1643c777
1f43c77720c0c97700003000040000002d01010004000000f001020009000000320a0000
0000010000003d5200030500000014028c03ef0109000000320a00000000010000002b52
0003ac00000026060f004d014d6174685479706555554101050100050244534d54350000
1357696e416c6c4261736963436f6465506167657300110554696d6573204e657720526f
6d616e00110353796d626f6c001105436f7572696572204e65770011044d542045787472
6100120008212f458f442f4150f4100f475f4150f21f1e4150f4150f4100f445f425f48f
425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f417f48f4100f412a
5f445f45f45f45f45f410f0c01000100010202020200020001010100030001000400000a
010003000b00000100020083520003001b00000b0100020088320000010100000a010002
0083520003001b00000b01000200883100000101000a0204862b002b020083520003001b
00000b010002008832000001010000000a0204863d003d03000b00000100020088310000
010002008831000200883000020088300000000000000b00000026060f000c00ffffffff
010000000000000008000000fa0200000000000000000000040000002d0102001c000000
fb021000070000000000bc02000000cc0102022253797374656d000000000a0021008a01
00000000ffffffff94e412002942c777040000002d01030004000000f001010003000000
0000. Так как входное сопротивление ОУ составляет сотни килом, то
сопротивление R2 можно взять достаточно большим. Возьмем R2=10 кОм.
Тогда R1=990 кОм ?1 МОм. Через сопротивление R3 заземляется инверсный
вход ОУ. Сопротивление R4 используется как токозадающий элемент для
оптопары. Его величину рассчитывают исходя из соотношения:

picscalex1000100090000034b0300000400b40000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c028004
a0091300000026060f001c00ffffffff00004e0010000000c0ffffffabffffff60090000
2b0400000b00000026060f000c004d617468547970650000f00008000000fa0200001300
000000000002040000002d0100000500000014024002400005000000130240020c050500
0000090200000002050000001402fe006f011c000000fb0222ff00000000000090010000
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d01010009000000320a00000000010000003179bc010500000014020303
ac081c000000fb0222ff0000000000009001000000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d01020004000000f001
010009000000320a00000000010000002e79bc010500000014022f04d4021c000000fb02
22ff0000000000009001000000000002001054696d6573204e657720526f6d616e001643
c7771f43c77720c0c97700003000040000002d01010004000000f001020009000000320a
00000000010000003479bc010500000014020d0266011c000000fb0222ff000000000000
9001010000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0
c97700003000040000002d01020004000000f001010009000000320a0000000001000000
6b79fc021c000000fb0222ff0000000000009001010000cc0002001054696d6573204e65
7720526f6d616e001643c7771f43c77720c0c97700003000040000002d01010004000000
f001020009000000320a0000000001000000e479bc0105000000140203033a071c000000
fb0222ff0000000000009001010000cc0002001054696d6573204e657720526f6d616e00
1643c7771f43c77720c0c97700003000040000002d01020004000000f00101000d000000
320a0000000004000000edeeece46f006f00ce00bc01050000001402aa0134001c000000
fb0280fe0000000000009001010000000002001054696d6573204e657720526f6d616e00
1643c7771f43c77720c0c97700003000040000002d01010004000000f00102000a000000
320a00000000020000005555ff020003050000001402a002a4061c000000fb0280fe0000
000000009001010000000002001054696d6573204e657720526f6d616e001643c7771f43
c77720c0c97700003000040000002d01020004000000f001010009000000320a00000000
0100000049550003050000001402cc03f6011c000000fb0280fe00000000000090010100
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d01010004000000f001020009000000320a000000000100000052550003
050000001402aa0143021c000000fb0280fe000000000000900100000001000200105379
6d626f6c007740000000a5030ae21643c7771f43c77720c0c97700003000040000002d01
020004000000f001010009000000320a00000000010000002d550003050000001402a002
6c0509000000320a0000000001000000b3550003b400000026060f005d014d6174685479
706555555101050100050244534d543500001357696e416c6c4261736963436f64655061
67657300110554696d6573204e657720526f6d616e00110353796d626f6c001105436f75
72696572204e65770011044d5420457874726100120008212f458f442f4150f4100f475f
4150f21f1e4150f4150f4100f445f425f48f425f4100f4100f435f4100f48f45f42a5f48
f48f4100f4100f40f48f417f48f4100f412a5f445f45f45f45f45f410f0c010001000102
02020200020001010100030001000400000a010003000b00000100020083550003001d00
000b01000200836b00000100020088310000000a02048612222d020083550003001b0000
0b0100020083340400010100000a0100020083520003001b00000b010002008834000001
010000000a0204866522b3020083490003001b00000b01000200833d040200833e040200
833c040200822e000200833404000101000000530b00000026060f000c00ffffffff0100
00000000000008000000fa0200000000000000000000040000002d0101001c000000fb02
1000070000000000bc02000000cc0102022253797374656d000000000a0021008a010000
0000ffffffff94e412002942c777040000002d01030004000000f0010200030000000000
,

где
picscalex1000100090000038401000002007b0000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c026002
00021300000026060f001c00ffffffff00004e0010000000c0ffffffb5ffffffc0010000
150200000b00000026060f000c004d617468547970650000600005000000090200000002
050000001402f40051011c000000fb0222ff000000000000900100000000000200105469
6d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d01
000009000000320a00000000010000003179bc01050000001402030248011c000000fb02
22ff0000000000009001010000000002001054696d6573204e657720526f6d616e001643
c7771f43c77720c0c97700003000040000002d01010004000000f001000009000000320a
00000000010000006b79bc01050000001402a00116001c000000fb0280fe000000000000
9001010000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0
c97700003000040000002d01000004000000f001010009000000320a0000000001000000
557900037b00000026060f00ec004d617468547970655555e000050100050244534d5435
00001357696e416c6c4261736963436f6465506167657300110554696d6573204e657720
526f6d616e00110353796d626f6c001105436f7572696572204e65770011044d54204578
74726100120008212f458f442f4150f4100f475f4150f21f1e4150f4150f4100f445f425
f48f425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f417f48f4100f
412a5f445f45f45f45f45f410f0c01000100010202020200020001010100030001000400
000a0100020083550003001d00000b01000200836b000001000200883100000000000b00
000026060f000c00ffffffff01000000000000001c000000fb021000070000000000bc02
000000cc0102022253797374656d000000000a0021008a01000000000100000094e41200
2942c777040000002d01010004000000f0010000030000000000 – напряжение
логической «1» на выходе компаратора (5В),

picscalex1000100090000034f0100000200780000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c024002
00021300000026060f001c00ffffffff00004e0010000000c0ffffffa6ffffffc0010000
e60100000b00000026060f000c004d617468547970650000600005000000090200000002
050000001402e30145011c000000fb0222ff0000000000009001010000cc000200105469
6d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d01
000009000000320a0000000001000000e479bc01050000001402800116001c000000fb02
80fe0000000000009001010000000002001054696d6573204e657720526f6d616e001643
c7771f43c77720c0c97700003000040000002d01010004000000f001000009000000320a
0000000001000000557900037800000026060f00e6004d617468547970655555da000501
00050244534d543500001357696e416c6c4261736963436f646550616765730011055469
6d6573204e657720526f6d616e00110353796d626f6c001105436f7572696572204e6577
0011044d5420457874726100120008212f458f442f4150f4100f475f4150f21f1e4150f4
150f4100f445f425f48f425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40
f48f417f48f4100f412a5f445f45f45f45f45f410f0c0100010001020202020002000101
0100030001000400000a0100020083550003001b00000b01000200833404000101000000
0b00000026060f000c00ffffffff01000000000000001c000000fb021000070000000000
bc02000000cc0102022253797374656d000000000a0021008a01000000000000000094e4
12002942c777040000002d01000004000000f0010100030000000000 – напряжение на
открытом светодиоде (около 1.5В),

picscalex1000100090000038f0100000200820000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c024002
40031300000026060f001c00ffffffff00004e0010000000c0ffffffa6ffffff00030000
e60100000b00000026060f000c004d617468547970650000600005000000090200000002
050000001402e3014e021c000000fb0222ff000000000000900100000000000200105469
6d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d01
000009000000320a00000000010000002e79bc01050000001402e301dc001c000000fb02
22ff0000000000009001010000cc0002001054696d6573204e657720526f6d616e001643
c7771f43c77720c0c97700003000040000002d01010004000000f00100000d000000320a
0000000004000000edeeece46f006f00ce00bc01050000001402800146001c000000fb02
80fe0000000000009001010000000002001054696d6573204e657720526f6d616e001643
c7771f43c77720c0c97700003000040000002d01000004000000f001010009000000320a
0000000001000000497900038200000026060f00fa004d617468547970655555ee000501
00050244534d543500001357696e416c6c4261736963436f646550616765730011055469
6d6573204e657720526f6d616e00110353796d626f6c001105436f7572696572204e6577
0011044d5420457874726100120008212f458f442f4150f4100f475f4150f21f1e4150f4
150f4100f445f425f48f425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40
f48f417f48f4100f412a5f445f45f45f45f45f410f0c0100010001020202020002000101
0100030001000400000a0100020083490003001b00000b01000200833d040200833e0402
00833c040200822e0002008334040001010000000b00000026060f000c00ffffffff0100
0000000000001c000000fb021000070000000000bc02000000cc0102022253797374656d
000000000a0021008a01000000000100000094e412002942c777040000002d0101000400
0000f0010000030000000000 – номинальный ток светодиода (30 мА).

Исходя из этого
picscalex100010009000003320400000400df0000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c028004
60111300000026060f001c00ffffffff00004e0010000000c0ffffffabffffff20110000
2b0400000b00000026060f000c004d617468547970650000f00008000000fa0200001300
000000000002040000002d01000005000000140240024403050000001302400210080500
000014024002a80905000000130240027a0d05000000090200000002050000001402fe00
73041c000000fb0222ff0000000000009001000000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d01010009000000320a
00000000010000003179bc01050000001402030324011c000000fb0222ff000000000000
9001000000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0
c97700003000040000002d01020004000000f001010009000000320a0000000001000000
3479bc010500000014022f044e061c000000fb0222ff0000000000009001000000000002
001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977000030000400
00002d01010004000000f001020009000000320a00000000010000002e79bc0105000000
1402ae01b4091c000000fb0280fe0000000000009001000000000002001054696d657320
4e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d0102000400
0000f00101000d000000320a000000000400000035312e35e001c0006000000305000000
1402a002e20e1c000000fb0280fe0000000000009001000000000002001054696d657320
4e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d0101000400
0000f00102000c000000320a00000000030000003131307cc000c0000003050000001402
cc034a0a1c000000fb0280fe0000000000009001000000000002001054696d6573204e65
7720526f6d616e001643c7771f43c77720c0c97700003000040000002d01020004000000
f00101000d000000320a0000000004000000302e3033c0006000c0000003050000001402
0d026a041c000000fb0222ff0000000000009001010000000002001054696d6573204e65
7720526f6d616e001643c7771f43c77720c0c97700003000040000002d01010004000000
f001020009000000320a00000000010000006b79fc021c000000fb0222ff000000000000
9001010000cc0002001054696d6573204e657720526f6d616e001643c7771f43c77720c0
c97700003000040000002d01020004000000f001010009000000320a0000000001000000
e479bc010500000014022f04dc041c000000fb0222ff0000000000009001010000cc0002
001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977000030000400
00002d01010004000000f00102000d000000320a0000000004000000edeeece46f006f00
ce00bc01050000001402aa0138031c000000fb0280fe0000000000009001010000000002
001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977000030000400
00002d01020004000000f00101000a000000320a00000000020000005555ff0200030500
00001402a00246001c000000fb0280fe0000000000009001010000000002001054696d65
73204e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d010100
04000000f001020009000000320a000000000100000052550003050000001402cc034604
1c000000fb0280fe0000000000009001010000000002001054696d6573204e657720526f
6d616e001643c7771f43c77720c0c97700003000040000002d01020004000000f0010100
09000000320a000000000100000049550003050000001402aa0147051c000000fb0280fe
0000000000009001000000010002001053796d626f6c0077400000009d040a521643c777
1f43c77720c0c97700003000040000002d01010004000000f001020009000000320a0000
0000010000002d550003050000001402ae01aa0a09000000320a00000000010000002d55
0003050000001402a00212020c000000320a00000000030000003d3d3d8064066a050003
df00000026060f00b3014d617468547970655555a701050100050244534d543500001357
696e416c6c4261736963436f6465506167657300110554696d6573204e657720526f6d61
6e00110353796d626f6c001105436f7572696572204e65770011044d5420457874726100
120008212f458f442f4150f4100f475f4150f21f1e4150f4150f4100f445f425f48f425f
4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f417f48f4100f412a5f44
5f45f45f45f45f410f0c01000100010202020200020001010100030001000400000a0100
020083520003001b00000b01000200883400000101000a0204863d003d03000b00000100
020083550003001d00000b01000200836b00000100020088310000000a02048612222d02
0083550003001b00000b0100020083340400010100000a0100020083490003001b00000b
01000200833d040200833e040200833c040200822e0002008334040001010000000a0204
863d003d03000b00000100020088350002048612222d02008831000200822e0002008835
0000010002008830000200822e000200883000020088330000000204863d003d02008831
00020088310002008830000000000b00000026060f000c00ffffffff0100000000000000
08000000fa0200000000000000000000040000002d0102001c000000fb02100007000000
0000bc02000000cc0102022253797374656d000000000a0021008a0100000000ffffffff
94e412002942c777040000002d01030004000000f0010100030000000000Ом.

Описание таймера

В данное время большинство таймеров интегрированы в микроконтроллеры и
являются его неотъемлемой периферией. Дискретные таймеры, тем более
рассчитанные на частоту работы 50 МГц, никто не производит. Поэтому
таймер в данной работе будет реализован следующим образом. В качестве
генератора импульсов будет использован генератор/делитель фирмы DALLAS
Semiconductor DS1065-60, частоту которого можно менять программным
способом в широком диапазоне частот (30 кГц..60МГц). Программирование
этой микросхемы осуществляется по однопроводному интерфейсу MicroLan. К
выходу этого генератора будет подсоединен счетчик импульсов, который
будет считать такты этого генератора, когда на выходе системы перехода
через ноль будет высокий уровень напряжения. В конце цикла счета МК
считает число тактов с выхода счетчика и определит эквивалентное время
разности фаз эталонного и измеряемого сигналов.

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

picscalex100010009000003790200000400a10000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c02e003
200d1300000026060f001c00ffffffff00004e0010000000c0ffffffb8ffffffe00c0000
980300000b00000026060f000c004d617468547970650000c00008000000fa0200001300
000000000002040000002d0100000500000014020002fe02050000001302000206040500
0000140200029e0505000000130200021c09050000000902000000020500000014026e01
22031c000000fb0280fe0000000000009001000000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d0101000a000000320a
00000000020000003131db0300030500000014026002a20a1c000000fb0280fe00000000
00009001000000000002001054696d6573204e657720526f6d616e001643c7771f43c777
20c0c97700003000040000002d01020004000000f00101000c000000320a000000000300
00003530303ac000c00000030500000014028c03b0051c000000fb0280fe000000000000
9001000000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0
c97700003000040000002d01010004000000f00102000f000000320a0000000005000000
302e30303200c0006000c000c000000305000000140260024c001c000000fb0280fe0000
000000009001010000000002001054696d6573204e657720526f6d616e001643c7771f43
c77720c0c97700003000040000002d01020004000000f001010009000000320a00000000
010000004e3100030500000014028c03fe021c000000fb0280fe00000000000090010100
00010002001053796d626f6c00774000000017070a3c1643c7771f43c77720c0c9770000
3000040000002d01010004000000f001020009000000320a000000000100000064310003
0500000014026002cc011c000000fb0280fe000000000000900100000001000200105379
6d626f6c0077400000002d070a9d1643c7771f43c77720c0c97700003000040000002d01
020004000000f00101000c000000320a00000000030000003d3d3d3ca00216050003a100
000026060f0037014d6174685479706555552b01050100050244534d543500001357696e
416c6c4261736963436f6465506167657300110554696d6573204e657720526f6d616e00
110353796d626f6c001105436f7572696572204e65770011044d54204578747261001200
08212f458f442f4150f4100f475f4150f21f1e4150f4150f4100f445f425f48f425f4100
f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f417f48f4100f412a5f445f45
f45f45f45f410f0c01000100010202020200020001010100030001000400000a01000200
834e000204863d003d03000b000001000200883100000100020484b4036400000204863d
003d03000b00000100020088310000010002008830000200822e00020088300002008830
00020088320000000204863d003d0200883500020088300002008830000000000b000000
26060f000c00ffffffff010000000000000008000000fa02000000000000000000000400
00002d0101001c000000fb021000070000000000bc02000000cc0102022253797374656d
000000000a0021008a0100000000ffffffff94e412002942c777040000002d0103000400
0000f0010200030000000000

Но учитывая, что частота генератора не может быть установлена в точности
в 500 раз большая чем у измеряемого сигнала, но может, максимум,
отличаться в 2 раза то число которое должен хранить счетчик
соответственно удваивается и равно N=1000. Разрядность счетчика для
такого числа равна

picscalex1000100090000037502000002009e0000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c028002
e00a1300000026060f001c00ffffffff00004e0010000000c0ffffffa6ffffffa00a0000
260200000b00000026060f000c004d617468547970650000700005000000090200000002
050000001402bf0187031c000000fb02f7fde30000000000900100000001000200105379
6d626f6c007740000000af040a051643c7771f43c77720c0c97700003000040000002d01
000009000000320a00000000010000005b790000050000001402bf015f071c000000fb02
f7fde300000000009001000000010002001053796d626f6c00774000000076070a691643
c7771f43c77720c0c97700003000040000002d01010004000000f001000009000000320a
00000000010000005d79000005000000140203024f051c000000fb0222ff000000000000
9001000000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0
c97700003000040000002d01000004000000f001010009000000320a0000000001000000
3279bc01050000001402a00114041c000000fb0280fe0000000000009001000000000002
001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977000030000400
00002d01010004000000f00100000d000000320a00000000040000006c6731306600ad04
c0000003050000001402030266011c000000fb0222ff0000000000009001010000000002
001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977000030000400
00002d01000004000000f001010009000000320a00000000010000005079bc0105000000
1402a0014c001c000000fb0280fe0000000000009001010000000002001054696d657320
4e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d0101000400
0000f00100000a000000320a00000000020000004e4edf050003050000001402a0017302
1c000000fb0280fe0000000000009001000000010002001053796d626f6c007740000000
af040a081643c7771f43c77720c0c97700003000040000002d01000004000000f0010100
0a000000320a00000000020000003d3db20500039e00000026060f0031014d6174685479
706555552501050100050244534d543500001357696e416c6c4261736963436f64655061
67657300110554696d6573204e657720526f6d616e00110353796d626f6c001105436f75
72696572204e65770011044d5420457874726100120008212f458f442f4150f4100f475f
4150f21f1e4150f4150f4100f445f425f48f425f4100f4100f435f4100f48f45f42a5f48
f48f4100f4100f40f48f417f48f4100f412a5f445f45f45f45f45f410f0c010001000102
02020200020001010100030001000400000a01000200834e0003001b00000b0100020083
5000000101000a0204863d003d030003030001000202826c00020082670003001b00000b
01000200883200000101000a0200834e00000200965b000200965d00000204863d003d02
0088310002008830000000000b00000026060f000c00ffffffff01000000000000001c00
0000fb021000070000000000bc02000000cc0102022253797374656d000000000a002100
8a01000000000100000094e412002942c777040000002d01010004000000f00100000300
00000000

Так как в качестве секций счетчика будут использованы 4-разрядные
счетчики, то для полного использования их возможностей надо взять Np=12.
Тогда N=212=4096. Учитывая, что минимальная частота генератора равна
30кГц, то минимальная частота измеряемого сигнала равна

picscalex100010009000003ea0300000400d50000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c022004
60121300000026060f001c00ffffffff00004e0010000000c0ffffffa9ffffff20120000
c90300000b00000026060f000c004d617468547970650000c00008000000fa0200001300
000000000002040000002d01000005000000140240021104050000001302400225070500
000014024002bd080500000013024002fa0c050000000902000000020500000014020201
5b0c1c000000fb0222ff0000000000009001000000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d01010009000000320a
00000000010000003379bc01050000001402e001ee041c000000fb0222ff000000000000
9001000000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0
c97700003000040000002d01020004000000f00101000c000000320a0000000003000000
6d696ee2a9003e00bc010500000014020303ff001c000000fb0222ff0000000000009001
000000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977
00003000040000002d01010004000000f00102000c000000320a00000000030000006d69
6e00a9003e00bc01050000001402ae01c9081c000000fb0280fe00000000000090010000
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d01020004000000f00101000d000000320a000000000400000033303130
c0005001c0000003050000001402a002860e1c000000fb0280fe00000000000090010000
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d01010004000000f00102000c000000320a0000000003000000372e3560
c00060000003050000001402cc0361091c000000fb0280fe000000000000900100000000
0002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000
040000002d01020004000000f00101000d000000320a000000000400000034303936c000
c000c0000003050000001402e0016e061c000000fb0222ff000000000000900101000000
0002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000
040000002d01010004000000f001020009000000320a00000000010000006779bc010500
000014027d0171041c000000fb0280fe0000000000009001010000000002001054696d65
73204e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d010200
04000000f001010009000000320a000000000100000066790003050000001402a0028200
1c000000fb0280fe0000000000009001010000000002001054696d6573204e657720526f
6d616e001643c7771f43c77720c0c97700003000040000002d01010004000000f0010200
09000000320a00000000010000006679fc0f1c000000fb0280fe00000000000090010100
00cc0002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d01020004000000f00101000a000000320a0000000002000000c3f6d800
0003050000001402cc0314051c000000fb0280fe00000000000090010100000000020010
54696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000300004000000
2d01010004000000f001020009000000320a00000000010000004ef60003050000001402
ae01730a1c000000fb0280fe0000000000009001000000010002001053796d626f6c0077
4000000039070a641643c7771f43c77720c0c97700003000040000002d01020004000000
f001010009000000320a0000000001000000d7f60003050000001402a002df020c000000
320a00000000030000003d3d3de7ac04d5050003d500000026060f009f014d6174685479
706555559301050100050244534d543500001357696e416c6c4261736963436f64655061
67657300110554696d6573204e657720526f6d616e00110353796d626f6c001105436f75
72696572204e65770011044d5420457874726100120008212f458f442f4150f4100f475f
4150f21f1e4150f4150f4100f445f425f48f425f4100f4100f435f4100f48f45f42a5f48
f48f4100f4100f40f48f417f48f4100f412a5f445f45f45f45f45f410f0c010001000102
02020200020001010100030001000400000a0100020083660003001b00000b0100020282
6d0002008269000200826e00000101000a0204863d003d03000b00000100020083660003
001b00000b01000202826d0002008269000200826e00020083670000010100000a010002
00834e0000000204863d003d03000b0000010002008833000200883000020486c522d702
00883100020088300003001c00000b0101010002008833000000000a0100020088340002
008830000200883900020088360000000204863d003d02008837000200822e0002008835
00020083130402008346040000000b00000026060f000c00ffffffff0100000000000000
08000000fa0200000000000000000000040000002d0101001c000000fb02100007000000
0000bc02000000cc0102022253797374656d000000000a0021008a0100000000ffffffff
94e412002942c777040000002d01030004000000f0010200030000000000

Поэтому фазу сигналов, частота которых меньших 7.5 Гц, будет измерять
сам микроконтроллер с помощью интегрированного таймера.

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

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

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

2.1) если частота сигнала меньше 7.5 Гц, то разность фаз между сигналами
он измеряет сам;

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

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

3) микроконтроллер в конце цикла измерения считывает значение фазы;

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

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

Для данной системы понадобиться двухканальный блок питания. Напряжение
обоих каналов +5В. Два канала питания берется для того, чтобы сделать
гальваническую развязку системы измерения фаз с диагностируемым
устройством. Так как до гальванической развязки стоят два компаратора,
то для них нужен отдельный канал питания. Это компараторы NE5682N фирмы
PHILIPS.Компаратор потребляют максимум 40 мА. Поэтому первый канал
источника должен иметь нагрузочную способность минимум 40 мА. Второй
канал источника будет запитывать всю остальную часть схемы. Посчитаем на
какой ток должен быть рассчитан второй канал. Генератор потребляет 50
мА, каждый счетчик 15 мА, триггер – 8 мА, инвертор – 4 мА, микросхема
2И-НЕ 4 мА, система согласования сигнала с оптопары – 6 мА,
микроконтроллер – 20 мА, преобразователь уровней – 10 мА. То есть
суммарная нагрузка на второй канал блока питания равна 153 мА. Будем
рассчитывать второй канал на ток 200 мА. Потребляемая мощность всех
элементов платы чуть более 1 Вт.

Блок питания будет строиться по стандартной схеме – переменное
напряжение 220В подается на вход трансформатора, где амплитуда этого
напряжение уменьшается до необходимой величины, затем переменное
напряжение выпрямляется с помощью мостового выпрямителя и сглаживается
стабилизатором КР142ЕН8.

Для конструирования блока питания возьмем стандартные элементы. В
качестве трансформатора – трансформатор питания типа ТПП –
ТПП234-127/220-50 (ток вторичных обмоток 200 мА, номинальная мощность –
10Вт, напряжение вторичных обмоток 10В).

Каждый диод выпрямителя должен выдерживать обратное напряжение
picscalex1000100090000038302000007009d0000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c02a002
c00a1300000026060f001c00ffffffff00004e0010000000c0ffffffbaffffff800a0000
5a0200000b00000026060f000c004d617468547970650000700008000000fa0200000000
000000000002040000002d0100000500000014025d014d04050000001302480175040500
00001302de01d1040500000013024f0037050500000013024f00140607000000fc020000
000000020000040000002d01010008000000fa0205000100000000000000040000002d01
02001a00000024030b004a0458017f043b01d204b6013005460014064600140659003e05
5900db04de01c804de016b04550150046301040000002d01000005000000090200000002
05000000140223021c071c000000fb0222ff000000000000900100000000000200105469
6d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d01
030009000000320a00000000010000003279bc01050000001402c00148051c000000fb02
80fe0000000000009001000000000002001054696d6573204e657720526f6d616e001643
c7771f43c77720c0c97700003000040000002d01040004000000f00103000c000000320a
00000000030000003231342fc403c0000003050000001402230245011c000000fb0222ff
0000000000009001010000cc0002001054696d6573204e657720526f6d616e001643c777
1f43c77720c0c97700003000040000002d01030004000000f00104000c000000320a0000
000003000000eee1f0366f006f00bc01050000001402c00116001c000000fb0280fe0000
000000009001010000000002001054696d6573204e657720526f6d616e001643c7771f43
c77720c0c97700003000040000002d01040004000000f00103000a000000320a00000000
020000005555d4050003050000001402c00118031c000000fb0280fe0000000000009001
000000010002001053796d626f6c00774000000044020a311643c7771f43c77720c0c977
00003000040000002d01030004000000f00104000a000000320a00000000020000003d3d
f20400039d00000026060f0030014d6174685479706555552401050100050244534d5435
00001357696e416c6c4261736963436f6465506167657300110554696d6573204e657720
526f6d616e00110353796d626f6c001105436f7572696572204e65770011044d54204578
74726100120008212f458f442f4150f4100f475f4150f21f1e4150f4150f4100f445f425
f48f425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f417f48f4100f
412a5f445f45f45f45f45f410f0c01000100010202020200020001010100030001000400
000a0100020083550003001b00000b01000200833e040200833104020083400400010100
0a0204863d003d03000a000001000200883200000b0101000a020083550003001b00000b
01000200883200000101000a0204863d003d0200883100020088340000000b0000002606
0f000c00ffffffff010000000000000008000000fa020000000000000000000004000000
2d01040007000000fc020000000000000000040000002d0105001c000000fb0210000700
00000000bc02000000cc0102022253797374656d000000000a0021008a0100000000ffff
ffff94e412002942c777040000002d01060004000000f0010300030000000000 и
прямой ток
picscalex1000100090000039502000004009d0000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c02e003
00091300000026060f001c00ffffffff00004e0010000000c0ffffffb9ffffffc0080000
990300000b00000026060f000c004d617468547970650000c00008000000fa0200001300
000000000002040000002d01000005000000140200027203050000001302000228050500
0000090200000002050000001402600290061c000000fb0280fe00000000000090010000
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d0101000c000000320a00000000030000003130303ac000c00000030500
000014028c03f3031c000000fb0280fe0000000000009001000000000002001054696d65
73204e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d010200
04000000f001010009000000320a000000000100000032790003050000001402d0013204
1c000000fb0222ff0000000000009001010000cc0002001054696d6573204e657720526f
6d616e001643c7771f43c77720c0c97700003000040000002d01010004000000f0010200
09000000320a0000000001000000cd79bc01050000001402c302dc001c000000fb0222ff
0000000000009001010000cc0002001054696d6573204e657720526f6d616e001643c777
1f43c77720c0c97700003000040000002d01020004000000f00101000a000000320a0000
000002000000eff06f00bc010500000014026d0196031c000000fb0280fe000000000000
9001010000cc0002001054696d6573204e657720526f6d616e001643c7771f43c77720c0
c97700003000040000002d01010004000000f001020009000000320a0000000001000000
b2f00003050000001402600246001c000000fb0280fe0000000000009001010000000002
001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977000030000400
00002d01020004000000f001010009000000320a000000000100000049f0000305000000
1402600240021c000000fb0280fe0000000000009001000000010002001053796d626f6c
007740000000ad060a7e1643c7771f43c77720c0c97700003000040000002d0101000400
0000f00102000a000000320a00000000020000003d3d4e0300039d00000026060f002f01
4d6174685479706555552301050100050244534d543500001357696e416c6c4261736963
436f6465506167657300110554696d6573204e657720526f6d616e00110353796d626f6c
001105436f7572696572204e65770011044d5420457874726100120008212f458f442f41
50f4100f475f4150f21f1e4150f4150f4100f445f425f48f425f4100f4100f435f4100f4
8f45f42a5f48f48f4100f4100f40f48f417f48f4100f412a5f445f45f45f45f45f410f0c
01000100010202020200020001010100030001000400000a0100020083490003001b0000
0b01000200833f040200834004000101000a0204863d003d03000b000001000200830604
03001b00000b01000200831d0400010100000a0100020088320000000204863d003d0200
883100020088300002008830000000000b00000026060f000c00ffffffff010000000000
000008000000fa0200000000000000000000040000002d0102001c000000fb0210000700
00000000bc02000000cc0102022253797374656d000000000a0021008a0100000000ffff
ffff94e412002942c777040000002d01030004000000f0010100030000000000мА.
Согласно этому в качестве диодов мостового выпрямителя был выбран диод
КД504А (Iпр=0.16А, Uобр=40В). При стандартном подключении стабилизатора
КР142ЕН8 на его входе и выходе следует включить конденсаторы номиналом
20 мкФ марки К50-6.

Расчетная часть

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

Частота сигнала будет измеряться с помощью сигнала с выхода усилителя на
транзисторе VT2. Этот сигнал будет подсоединен к входу внешнего
прерывания INT0. Микроконтроллер будет настроен так, чтобы прерывание
вызывалось когда на этом выводе будет сигнал низкого уровня. А
подпрограмма обработки прерывания будет иметь вид:

Freq:

Inc DPTR

reti

Перед измерением частоты сигнала в регистр DPTR заносится ноль,
разрешается прерывание INT0 (причем срабатывает оно при низком уровне
сигнала на выводе INT0). Когда на этом входе буде сигнал низкого уровня
то прерывания будет вызываться и увеличивать значение регистра DPTR на
1. Как только значение на этом входе станет равным 1 следует сохранить
значение DPTR. Подсчитаем сколько циклов занимает одно выполнение
подпрограммы прерывания.

Один цикл занимает определение условия возникновения прерывания; по два
цикла инкремент регистра и выход из подпрограммы прерывания. С учетом,
что время цикла МК составляет 1 мкс, то подпрограмма обработки
прерывания занимает 5мкс и позволяет измерить временные отрезки 5мкс
(200 кГц)..5мкс·65536(3Гц). С учетом того, что меряется только время
половины периода (отрицательный полупериод сигнала) диапазон измеряемых
частот буде составлять 1-100 кГц. При этом значение регистра DPTR будет
прямопропорционально периоду сигнала. Пересчет в частоту будет
осуществляться следующим
образом:picscalex100010009000003ee01000004008a00000000000500000002010100
0000050000000102ffffff00050000002e0119000000050000000b020000000005000000
0c02e003a0071300000026060f001c00ffffffff00004e0010000000c0ffffffb8ffffff
60070000980300000b00000026060f000c004d617468547970650000c00008000000fa02
00001300000000000002040000002d0100000500000014020002ce020500000013020002
4807050000000902000000020500000014026e01bc021c000000fb0280fe000000000000
9001000000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0
c97700003000040000002d01010010000000320a0000000006000000313030303030c000
c000c000c000c0000003050000001402600282001c000000fb0280fe0000000000009001
010000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977
00003000040000002d01020004000000f001010009000000320a00000000010000006679
00030500000014028c0384041c000000fb0280fe00000000000090010100000000020010
54696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000300004000000
2d01010004000000f001020009000000320a00000000010000004e790003050000001402
60029c011c000000fb0280fe0000000000009001000000010002001053796d626f6c0077
400000005a050a2c1643c7771f43c77720c0c97700003000040000002d01020004000000
f001010009000000320a00000000010000003d7900038a00000026060f000a014d617468
547970655555fe00050100050244534d543500001357696e416c6c4261736963436f6465
506167657300110554696d6573204e657720526f6d616e00110353796d626f6c00110543
6f7572696572204e65770011044d5420457874726100120008212f458f442f4150f4100f
475f4150f21f1e4150f4150f4100f445f425f48f425f4100f4100f435f4100f48f45f42a
5f48f48f4100f4100f40f48f417f48f4100f412a5f445f45f45f45f45f410f0c01000100
010202020200020001010100030001000400000a010002008366000204863d003d03000b
000001000200883100020088300002008830000200883000020088300002008830000001
000200834e00000000000b00000026060f000c00ffffffff010000000000000008000000
fa0200000000000000000000040000002d0101001c000000fb021000070000000000bc02
000000cc0102022253797374656d000000000a0021008a0100000000ffffffff94e41200
2942c777040000002d01030004000000f0010200030000000000, где N – содержимое
регистра DPTR после измерения частоты сигнала. Исходя из этого частоте
15 кГц соответствует число 6, а частоте 7.5 Гц – 15333.

Фаза сигнала с помощью МК будет измеряться таким же методом, но с
учетом, что МК измеряет фазы сигналов только с малой частотой. Сигнал с
помощью которого определяется фаза подсоединен к входу внешнего
прерывания 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-разрядный регистр-делитель. Так как необходимо
получать частоту генератора равную
picscalex100010009000003940200000400bc0000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c02e003
20121300000026060f001c00ffffffff00004e0010000000c0ffffffb8ffffffe0110000
980300000b00000026060f000c004d617468547970650000c00008000000fa0200001300
000000000002040000002d0100000500000014020002a30905000000130200021d0e0500
00000902000000020500000014026e0191091c000000fb0280fe00000000000090010000
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d01010010000000320a0000000006000000313030303030c000c000c000
c000c000000305000000140260021d051c000000fb0280fe000000000000900100000000
0002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000
040000002d01020004000000f001010013000000320a0000000008000000343039363430
3936c000c000c0008c07c000c000c0000003050000001402c30202011c000000fb0222ff
0000000000009001010000cc0002001054696d6573204e657720526f6d616e001643c777
1f43c77720c0c97700003000040000002d01010004000000f00102000a000000320a0000
000002000000e363ce02bc01050000001402600282001c000000fb0280fe000000000000
9001010000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0
c97700003000040000002d01020004000000f00101000a000000320a0000000002000000
6666d40200030500000014028c03590b1c000000fb0280fe000000000000900101000000
0002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000
040000002d01010004000000f001020009000000320a00000000010000004e6600030500
000014026002e2011c000000fb0280fe0000000000009001000000010002001053796d62
6f6c00774000000013060a651643c7771f43c77720c0c97700003000040000002d010200
04000000f00101000d000000320a00000000040000003dd73dd7ab02e403e8050003bc00
000026060f006d014d6174685479706555556101050100050244534d543500001357696e
416c6c4261736963436f6465506167657300110554696d6573204e657720526f6d616e00
110353796d626f6c001105436f7572696572204e65770011044d54204578747261001200
08212f458f442f4150f4100f475f4150f21f1e4150f4150f4100f445f425f48f425f4100
f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f417f48f4100f412a5f445f45
f45f45f45f410f0c01000100010202020200020001010100030001000400000a01000200
83660003001b00000b01000200833304000101000a0204863d003d020083660003001b00
000b01000200836300000101000a020486c522d702008834000200883000020088390002
008836000204863d003d03000b0000010002008831000200883000020088300002008830
00020088300002008830000001000200834e000000020486c522d7020088340002008830
00020088390002008836000000000b00000026060f000c00ffffffff0100000000000000
08000000fa0200000000000000000000040000002d0101001c000000fb02100007000000
0000bc02000000cc0102022253797374656d000000000a0021008a0100000000ffffffff
94e412002942c777040000002d01030004000000f0010200030000000000, и исходя
из справочной документации частота генератора имеет зависимость от
константы пересчета :

picscalex100010009000003b20200000400a70000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c024004
80091300000026060f001c00ffffffff00004e0010000000c0ffffffb8ffffff40090000
f80300000b00000026060f000c004d617468547970650000f00008000000fa0200001300
000000000002040000002d01000005000000140200021403050000001302000232090500
00000902000000020500000014026e0126031c000000fb0280fe00000000000090010000
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d01010013000000320a00000000080000003630303030303030c000c000
c000c000c000c000c00000030500000014028c0373071c000000fb0280fe000000000000
9001000000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0
c97700003000040000002d01020004000000f001010009000000320a0000000001000000
32790003050000001402c30202011c000000fb0222ff0000000000009001010000cc0002
001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977000030000400
00002d01010004000000f001020009000000320a0000000001000000e379bc0105000000
1402ef034b051c000000fb0222ff0000000000009001010000000002001054696d657320
4e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d0102000400
0000f001010009000000320a00000000010000004479bc01050000001402600282001c00
0000fb0280fe0000000000009001010000000002001054696d6573204e657720526f6d61
6e001643c7771f43c77720c0c97700003000040000002d01010004000000f00102000900
0000320a0000000001000000667900030500000014028c0331041c000000fb0280fe0000
000000009001010000000002001054696d6573204e657720526f6d616e001643c7771f43
c77720c0c97700003000040000002d01020004000000f001010009000000320a00000000
010000004e7900030500000014026002e2011c000000fb0280fe00000000000090010000
00010002001053796d626f6c00774000000099060a3f1643c7771f43c77720c0c9770000
3000040000002d01010004000000f001020009000000320a00000000010000003d790003
0500000014028c03590609000000320a00000000010000002b790003a700000026060f00
43014d6174685479706555553701050100050244534d543500001357696e416c6c426173
6963436f6465506167657300110554696d6573204e657720526f6d616e00110353796d62
6f6c001105436f7572696572204e65770011044d5420457874726100120008212f458f44
2f4150f4100f475f4150f21f1e4150f4150f4100f445f425f48f425f4100f4100f435f41
00f48f45f42a5f48f48f4100f4100f40f48f417f48f4100f412a5f445f45f45f45f45f41
0f0c01000100010202020200020001010100030001000400000a0100020083660003001b
00000b01000200833304000101000a0204863d003d03000b000001000200883600020088
300002008830000200883000020088300002008830000200883000020088300000010002
00834e0003001b00000b01000200834400000101000a0204862b002b0200883200000000
00000b00000026060f000c00ffffffff010000000000000008000000fa02000000000000
00000000040000002d0102001c000000fb021000070000000000bc02000000cc01020222
53797374656d000000000a0021008a0100000000ffffffff94e412002942c77704000000
2d01030004000000f0010100030000000000

то имеем систему исходя из которой найдем зависимость ND(N):

picscalex100010009000003a40200000400bf0000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c02e003
40131300000026060f001c00ffffffff00004e0010000000c0ffffffb8ffffff00130000
980300000b00000026060f000c004d617468547970650000c00008000000fa0200001300
000000000002040000002d0100000500000014020002be030500000013020002e2060500
000014020002820c0500000013020002da0e050000000902000000020500000014026e01
33041c000000fb0280fe0000000000009001000000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d0101000f000000320a
0000000005000000363030373506c000c0004107c000000305000000140260023c0a1c00
0000fb0280fe0000000000009001000000000002001054696d6573204e657720526f6d61
6e001643c7771f43c77720c0c97700003000040000002d01020004000000f00101000a00
0000320a00000000020000003232f80700030500000014028c03d6031c000000fb0280fe
0000000000009001000000000002001054696d6573204e657720526f6d616e001643c777
1f43c77720c0c97700003000040000002d01010004000000f001020012000000320a0000
0000070000003430393635313200c000c000c0007806c000c0000003050000001402c302
66011c000000fb0222ff0000000000009001010000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d01020004000000f001
010009000000320a00000000010000004432bc0105000000140260024c001c000000fb02
80fe0000000000009001010000000002001054696d6573204e657720526f6d616e001643
c7771f43c77720c0c97700003000040000002d01010004000000f00102000c000000320a
00000000030000004e4e4e6d7407f807000305000000140260028c021c000000fb0280fe
0000000000009001000000010002001053796d626f6c0077400000003b060a6e1643c777
1f43c77720c0c97700003000040000002d01020004000000f001010010000000320a0000
0000060000003dd72d3dd72d92040a022802c6030a020003bf00000026060f0073014d61
74685479706555556701050100050244534d543500001357696e416c6c4261736963436f
6465506167657300110554696d6573204e657720526f6d616e00110353796d626f6c0011
05436f7572696572204e65770011044d5420457874726100120008212f458f442f4150f4
100f475f4150f21f1e4150f4150f4100f445f425f48f425f4100f4100f435f4100f48f45
f42a5f48f48f4100f4100f40f48f417f48f4100f412a5f445f45f45f45f45f410f0c0100
0100010202020200020001010100030001000400000a01000200834e0003001b00000b01
000200834400000101000a0204863d003d03000b00000100020088360002008830000200
88300000010002008834000200883000020088390002008836000000020486c522d70200
834e0002048612222d02008832000204863d003d03000b00000100020088370002008835
000001000200883500020088310002008832000000020486c522d70200834e0002048612
222d02008832000000000b00000026060f000c00ffffffff010000000000000008000000
fa0200000000000000000000040000002d0101001c000000fb021000070000000000bc02
000000cc0102022253797374656d000000000a0021008a0100000000ffffffff94e41200
2942c777040000002d01030004000000f0010200030000000000 (1)

С учетом того, что вычисление по формуле (1) константы ND будет
выполняться с погрешностью, то следует увеличить ее значение на 1, для
того чтобы частота генератора гарантированно была меньше числа
picscalex100010009000003c50100000200860000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c024002
80051300000026060f001c00ffffffff00004e0010000000c0ffffffa6ffffff40050000
e60100000b00000026060f000c004d617468547970650000600005000000090200000002
050000001402800148021c000000fb0280fe000000000000900100000000000200105469
6d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d01
00000d000000320a000000000400000034303936c000c000c0000003050000001402e301
02011c000000fb0222ff0000000000009001010000cc0002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d01010004000000f001
000009000000320a0000000001000000e379bc01050000001402800182001c000000fb02
80fe0000000000009001010000000002001054696d6573204e657720526f6d616e001643
c7771f43c77720c0c97700003000040000002d01000004000000f001010009000000320a
0000000001000000667900030500000014028001b8011c000000fb0280fe000000000000
9001000000010002001053796d626f6c0077400000007c030a4c1643c7771f43c77720c0
c97700003000040000002d01010004000000f001000009000000320a0000000001000000
d77900038600000026060f0001014d617468547970655555f500050100050244534d5435
00001357696e416c6c4261736963436f6465506167657300110554696d6573204e657720
526f6d616e00110353796d626f6c001105436f7572696572204e65770011044d54204578
74726100120008212f458f442f4150f4100f475f4150f21f1e4150f4150f4100f445f425
f48f425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f417f48f4100f
412a5f445f45f45f45f45f410f0c01000100010202020200020001010100030001000400
000a0100020083660003001b00000b01000200833304000101000a020486c522d7020088
34000200883000020088390002008836000000ff0b00000026060f000c00ffffffff0100
0000000000001c000000fb021000070000000000bc02000000cc0102022253797374656d
000000000a0021008a01000000000000000094e412002942c777040000002d0100000400
0000f0010100030000000000, и не произошло переполнения счетчика. Тогда
picscalex100010009000003620200000400990000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c02e003
200a1300000026060f001c00ffffffff00004e0010000000c0ffffffb8ffffffe0090000
980300000b00000026060f000c004d617468547970650000c00008000000fa0200001300
000000000002040000002d0100000500000014020002be03050000001302000216060500
00000902000000020500000014026e0130041c000000fb0280fe00000000000090010000
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d0101000a000000320a00000000020000003735c0000003050000001402
600246091c000000fb0280fe0000000000009001000000000002001054696d6573204e65
7720526f6d616e001643c7771f43c77720c0c97700003000040000002d01020004000000
f001010009000000320a0000000001000000313500030500000014028c03ca031c000000
fb0280fe0000000000009001000000000002001054696d6573204e657720526f6d616e00
1643c7771f43c77720c0c97700003000040000002d01010004000000f00102000c000000
320a000000000300000035313289c000c0000003050000001402c30266011c000000fb02
22ff0000000000009001010000000002001054696d6573204e657720526f6d616e001643
c7771f43c77720c0c97700003000040000002d01020004000000f001010009000000320a
00000000010000004435bc0105000000140260024c001c000000fb0280fe000000000000
9001010000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0
c97700003000040000002d01010004000000f00102000a000000320a0000000002000000
4e4ea806000305000000140260028c021c000000fb0280fe000000000000900100000001
0002001053796d626f6c0077400000004f020a8b1643c7771f43c77720c0c97700003000
040000002d01020004000000f00101000c000000320a00000000030000003dd72d04c603
0a0200039900000026060f0028014d6174685479706555551c01050100050244534d5435
00001357696e416c6c4261736963436f6465506167657300110554696d6573204e657720
526f6d616e00110353796d626f6c001105436f7572696572204e65770011044d54204578
74726100120008212f458f442f4150f4100f475f4150f21f1e4150f4150f4100f445f425
f48f425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f417f48f4100f
412a5f445f45f45f45f45f410f0c01000100010202020200020001010100030001000400
000a01000200834e0003001b00000b01000200834400000101000a0204863d003d03000b
000001000200883700020088350000010002008835000200883100020088320000000204
86c522d70200834e0002048612222d020088310000000b00000026060f000c00ffffffff
010000000000000008000000fa0200000000000000000000040000002d0101001c000000
fb021000070000000000bc02000000cc0102022253797374656d000000000a0021008a01
00000000ffffffff94e412002942c777040000002d01030004000000f001020003000000
0000(2). Посчитаем при каком N в формуле (2) ND будет
неотрицательнымpicscalex1000100090000031f02000004008b0000000000050000000
20101000000050000000102ffffff00050000002e0119000000050000000b02000000000
50000000c02e003e0071300000026060f001c00ffffffff00004e0010000000c0ffffffb
8ffffffa0070000980300000b00000026060f000c004d617468547970650000c00008000
000fa0200001300000000000002040000002d0100000500000014020002fe02050000001
30200025605050000000902000000020500000014026e010a031c000000fb0280fe00000
00000009001000000000002001054696d6573204e657720526f6d616e001643c7771f43c
77720c0c97700003000040000002d0101000c000000320a000000000300000035313200c
000c00000030500000014026002e2061c000000fb0280fe0000000000009001000000000
002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977000030000
40000002d01020004000000f001010009000000320a00000000010000003779000305000
00014028c0370031c000000fb0280fe0000000000009001000000000002001054696d657
3204e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d0101000
4000000f00102000a000000320a00000000020000003735c000000305000000140260024
c001c000000fb0280fe0000000000009001010000000002001054696d6573204e6577205
26f6d616e001643c7771f43c77720c0c97700003000040000002d01020004000000f0010
10009000000320a00000000010000004e3500030500000014026002cc011c000000fb028
0fe0000000000009001000000010002001053796d626f6c007740000000cb040aaa1643c
7771f43c77720c0c97700003000040000002d01010004000000f00102000a000000320a0
0000000020000003d3df00300038b00000026060f000b014d617468547970655555ff000
50100050244534d543500001357696e416c6c4261736963436f646550616765730011055
4696d6573204e657720526f6d616e00110353796d626f6c001105436f7572696572204e6
5770011044d5420457874726100120008212f458f442f4150f4100f475f4150f21f1e415
0f4150f4100f445f425f48f425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100
f40f48f417f48f4100f412a5f445f45f45f45f45f410f0c0100010001020202020002000
1010100030001000400000a01000200834e000204863d003d03000b00000100020088350
0020088310002008832000001000200883700020088350000000204863d003d020088370
00000010b00000026060f000c00ffffffff010000000000000008000000fa02000000000
00000000000040000002d0102001c000000fb021000070000000000bc02000000cc01020
22253797374656d000000000a0021008a0100000000ffffffff94e412002942c77704000
0002d01030004000000f0010100030000000000. То есть фактически формулу (2)
для пересчета можно применять для частот при которых N>6. Так как
максимальное значение программного делителя составляет 513 (29+2), то
минимальная частота генератора при которой применим этот алгоритм
деления частоты составляет

picscalex1000100090000037a0200000400a80000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c02e003
400c1300000026060f001c00ffffffff00004e0010000000c0ffffffb8ffffff000c0000
980300000b00000026060f000c004d617468547970650000c00008000000fa0200001300
000000000002040000002d01000005000000140200026d0405000000130200024b080500
0000090200000002050000001402c302ff001c000000fb0222ff00000000000090010000
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d0101000d000000320a00000000040000006d696e31a9003e007800bc01
0500000014026e017f041c000000fb0280fe000000000000900100000000000200105469
6d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d01
020004000000f00101000f000000320a0000000005000000363030303000c000c000c000
c00000030500000014026002b3091c000000fb0280fe0000000000009001000000000002
001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977000030000400
00002d01010004000000f00102000c000000320a0000000003000000313137c5c000c000
00030500000014028c0342051c000000fb0280fe00000000000090010000000000020010
54696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000300004000000
2d01020004000000f00101000c000000320a00000000030000003531334dc000c0000003
050000001402600282001c000000fb0280fe000000000000900101000000000200105469
6d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d01
010004000000f001020009000000320a0000000001000000667900030500000014026002
3b031c000000fb0280fe0000000000009001000000010002001053796d626f6c00774000
00006c030ac71643c7771f43c77720c0c97700003000040000002d01020004000000f001
01000a000000320a00000000020000003d3d76050003a800000026060f0045014d617468
5479706555553901050100050244534d543500001357696e416c6c4261736963436f6465
506167657300110554696d6573204e657720526f6d616e00110353796d626f6c00110543
6f7572696572204e65770011044d5420457874726100120008212f458f442f4150f4100f
475f4150f21f1e4150f4150f4100f445f425f48f425f4100f4100f435f4100f48f45f42a
5f48f48f4100f4100f40f48f417f48f4100f412a5f445f45f45f45f45f410f0c01000100
010202020200020001010100030001000400000a0100020083660003001b00000b010002
02826d0002008269000200826e000200883100000101000a0204863d003d03000b000001
000200883600020088300002008830000200883000020088300000010002008835000200
883100020088330000000204863d003d0200883100020088310002008837000000000b00
000026060f000c00ffffffff010000000000000008000000fa0200000000000000000000
040000002d0101001c000000fb021000070000000000bc02000000cc0102022253797374
656d000000000a0021008a0100000000ffffffff94e412002942c777040000002d010300
04000000f0010200030000000000кГц.

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

picscalex100010009000003440300000400d80000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c02e003
a01b1300000026060f001c00ffffffff00004e0010000000c0ffffffb9ffffff601b0000
990300000b00000026060f000c004d617468547970650000c00008000000fa0200001300
000000000002040000002d0100000500000014020002fe020500000013020002300a0500
000014020002c80b05000000130200020e11050000000902000000020500000014026d01
0a031c000000fb0280fe0000000000009001000000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d01010010000000320a
0000000006000000353132283129c000c000c000b403a20000030500000014026e01d40b
1c000000fb0280fe0000000000009001000000000002001054696d6573204e657720526f
6d616e001643c7771f43c77720c0c97700003000040000002d01020004000000f0010100
10000000320a0000000006000000353132353132c000c0006e01c000c000000305000000
1402600294121c000000fb0280fe0000000000009001000000000002001054696d657320
4e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d0101000400
0000f001020010000000320a0000000006000000333439353037c000c000c0003402ca02
00030500000014028c03dd051c000000fb0280fe00000000000090010000000000020010
54696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000300004000000
2d01020004000000f00101000d000000320a000000000400000037353735c0001407c000
0003050000001402d00100071c000000fb0222ff00000000000090010100000000020010
54696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000300004000000
2d01010004000000f001020009000000320a00000000010000004479bc01050000001402
6d01e6051c000000fb0280fe0000000000009001010000000002001054696d6573204e65
7720526f6d616e001643c7771f43c77720c0c97700003000040000002d01020004000000
f001010009000000320a00000000010000004e79000305000000140260024c001c000000
fb0280fe0000000000009001010000000002001054696d6573204e657720526f6d616e00
1643c7771f43c77720c0c97700003000040000002d01010004000000f00102000d000000
320a00000000040000004e4441688e171401b00100030500000014026d010e081c000000
fb0280fe0000000000009001000000010002001053796d626f6c007740000000ed040a33
1643c7771f43c77720c0c97700003000040000002d01020004000000f001010009000000
320a00000000010000002b7900030500000014026e013e0e09000000320a000000000100
0000d77900030500000014026002cc010d000000320a00000000040000003d3d3d3dca08
de066e040003d800000026060f00a5014d6174685479706555559901050100050244534d
543500001357696e416c6c4261736963436f6465506167657300110554696d6573204e65
7720526f6d616e00110353796d626f6c001105436f7572696572204e65770011044d5420
457874726100120008212f458f442f4150f4100f475f4150f21f1e4150f4150f4100f445
f425f48f425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f417f48f4
100f412a5f445f45f45f45f45f410f0c0100010001020202020002000101010003000100
0400000a01000200834e000204863d003d03000b00000100020088350002008831000200
88320002008228000200834e0003001b00000b01000200834400000101000a0204862b00
2b020088310002008229000001000200883700020088350000000204863d003d03000b00
000100020088350002008831000200883200020486c522d7020088350002008831000200
8832000001000200883700020088350000000204863d003d020088330002008834000200
88390002008835000204863d003d02008830000200834400020083410002008837000200
8368000000000b00000026060f000c00ffffffff010000000000000008000000fa020000
0000000000000000040000002d0101001c000000fb021000070000000000bc02000000cc
0102022253797374656d000000000a0021008a0100000000ffffffff94e412002942c777
040000002d01030004000000f0010200030000000000

а частота сигнала равна
picscalex100010009000003590300000400d80000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c02e003
80121300000026060f001c00ffffffff00004e0010000000c0ffffffb9ffffff40120000
990300000b00000026060f000c004d617468547970650000c00008000000fa0200001300
000000000002040000002d0100000500000014020002e80405000000130200020c080500
000014020002a40905000000130200021e0e05000000090200000002050000001402d001
ef051c000000fb0222ff0000000000009001000000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d0101000d000000320a
00000000040000006d696e31a9003e007800bc01050000001402c3027a011c000000fb02
22ff0000000000009001000000000002001054696d6573204e657720526f6d616e001643
c7771f43c77720c0c97700003000040000002d01020004000000f00101000d000000320a
00000000040000006d696e31a9003e007800bc010500000014026e0192091c000000fb02
80fe0000000000009001000000000002001054696d6573204e657720526f6d616e001643
c7771f43c77720c0c97700003000040000002d01010004000000f001020010000000320a
0000000006000000313137303030c000c000c000c000c00000030500000014026002b00f
1c000000fb0280fe0000000000009001000000000002001054696d6573204e657720526f
6d616e001643c7771f43c77720c0c97700003000040000002d01020004000000f0010100
0d000000320a000000000400000032382e36c000c000600000030500000014028c030005
1c000000fb0280fe0000000000009001000000000002001054696d6573204e657720526f
6d616e001643c7771f43c77720c0c97700003000040000002d01010004000000f0010200
13000000320a00000000080000003430393634303936c000c000c0002703c000c000c000
0003050000001402c302fc001c000000fb0222ff00000000000090010100000000020010
54696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000300004000000
2d01020004000000f001010009000000320a00000000010000006379bc01050000001402
6d0172051c000000fb0280fe0000000000009001010000000002001054696d6573204e65
7720526f6d616e001643c7771f43c77720c0c97700003000040000002d01010004000000
f001020009000000320a000000000100000066790003050000001402600282001c000000
fb0280fe0000000000009001010000000002001054696d6573204e657720526f6d616e00
1643c7771f43c77720c0c97700003000040000002d01020004000000f001010009000000
320a0000000001000000667900030500000014026002b6031c000000fb0280fe00000000
00009001000000010002001053796d626f6c007740000000cc040ad31643c7771f43c777
20c0c97700003000040000002d01010004000000f00102000c000000320a000000000300
00003d3d3d8cbc0412060003d800000026060f00a5014d61746854797065555599010501
00050244534d543500001357696e416c6c4261736963436f646550616765730011055469
6d6573204e657720526f6d616e00110353796d626f6c001105436f7572696572204e6577
0011044d5420457874726100120008212f458f442f4150f4100f475f4150f21f1e4150f4
150f4100f445f425f48f425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40
f48f417f48f4100f412a5f445f45f45f45f45f410f0c0100010001020202020002000101
0100030001000400000a0100020083660003001b00000b010002008363000202826d0002
008269000200826e000200883100000101000a0204863d003d03000b0000010002008366
0003001b00000b01000202826d0002008269000200826e00020088310000010100000a01
00020088340002008830000200883900020088360000000204863d003d03000b00000100
020088310002008831000200883700020088300002008830000200883000000100020088
340002008830000200883900020088360000000204863d003d0200883200020088380002
00822e0002008836000000000b00000026060f000c00ffffffff01000000000000000800
0000fa0200000000000000000000040000002d0102001c000000fb021000070000000000
bc02000000cc0102022253797374656d000000000a0021008a0100000000ffffffff94e4
12002942c777040000002d01030004000000f0010100030000000000Гц.

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

picscalex100010009000003070300000400dc0000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c024004
40111300000026060f001c00ffffffff00004e0010000000c0ffffffb8ffffff00110000
f80300000b00000026060f000c004d617468547970650000f00008000000fa0200001300
000000000002040000002d01000005000000140200021403050000001302000232090500
000014020002ca0a0500000013020002e210050000000902000000020500000014026e01
26031c000000fb0280fe0000000000009001000000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d0101001f000000320a
000000001000000036303030303030303330303030303030c000c000c000c000c000c000
c0007002c000c000c000c000c000c000c00000030500000014028c0338031c000000fb02
80fe0000000000009001000000000002001054696d6573204e657720526f6d616e001643
c7771f43c77720c0c97700003000040000002d01020004000000f00101000f000000320a
0000000005000000322832293200c000de03c00090060003050000001402c30202011c00
0000fb0222ff0000000000009001010000cc0002001054696d6573204e657720526f6d61
6e001643c7771f43c77720c0c97700003000040000002d01010004000000f00102000900
0000320a0000000001000000e379bc01050000001402ef03ae051c000000fb0222ff0000
000000009001010000000002001054696d6573204e657720526f6d616e001643c7771f43
c77720c0c97700003000040000002d01020004000000f00101000a000000320a00000000
0200000044445007bc01050000001402600282001c000000fb0280fe0000000000009001
010000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977
00003000040000002d01010004000000f001020009000000320a00000000010000006644
00030500000014028c0394041c000000fb0280fe00000000000090010100000000020010
54696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000300004000000
2d01020004000000f00101000a000000320a00000000020000004e4e5007000305000000
14026002e2011c000000fb0280fe0000000000009001000000010002001053796d626f6c
007740000000f9050aa71643c7771f43c77720c0c97700003000040000002d0101000400
0000f00102000a000000320a00000000020000003d3db60700030500000014028c03bc06
0a000000320a00000000020000002b2b50070003dc00000026060f00ae014d6174685479
70655555a201050100050244534d543500001357696e416c6c4261736963436f64655061
67657300110554696d6573204e657720526f6d616e00110353796d626f6c001105436f75
72696572204e65770011044d5420457874726100120008212f458f442f4150f4100f475f
4150f21f1e4150f4150f4100f445f425f48f425f4100f4100f435f4100f48f45f42a5f48
f48f4100f4100f40f48f417f48f4100f412a5f445f45f45f45f45f410f0c010001000102
02020200020001010100030001000400000a0100020083660003001b00000b0100020083
3304000101000a0204863d003d03000b0000010002008836000200883000020088300002
008830000200883000020088300002008830000200883000000100020088320002008228
000200834e0003001b00000b01000200834400000101000a0204862b002b020088320002
0082290000000204863d003d03000b000001000200883300020088300002008830000200
88300002008830000200883000020088300002008830000001000200834e0003001b0000
0b01000200834400000101000a0204862b002b0200883200000000000b00000026060f00
0c00ffffffff010000000000000008000000fa0200000000000000000000040000002d01
02001c000000fb021000070000000000bc02000000cc0102022253797374656d00000000
0a0021008a0100000000ffffffff94e412002942c777040000002d01030004000000f001
0100030000000000

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

picscalex1000100090000032c0200000400960000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c02e003
00091300000026060f001c00ffffffff00004e0010000000c0ffffffb8ffffffc0080000
980300000b00000026060f000c004d617468547970650000c00008000000fa0200001300
000000000002040000002d0100000500000014020002be030500000013020002b8060500
00000902000000020500000014026e0181041c000000fb0280fe00000000000090010000
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d0101000a000000320a00000000020000003735c0000003050000001402
8c03ac031c000000fb0280fe0000000000009001000000000002001054696d6573204e65
7720526f6d616e001643c7771f43c77720c0c97700003000040000002d01020004000000
f00101000d000000320a000000000400000031303234c000c000c0000003050000001402
c30266011c000000fb0222ff0000000000009001010000000002001054696d6573204e65
7720526f6d616e001643c7771f43c77720c0c97700003000040000002d01010004000000
f001020009000000320a00000000010000004435bc0105000000140260024c001c000000
fb0280fe0000000000009001010000000002001054696d6573204e657720526f6d616e00
1643c7771f43c77720c0c97700003000040000002d01020004000000f00101000a000000
320a00000000020000004e4e4a07000305000000140260028c021c000000fb0280fe0000
000000009001000000010002001053796d626f6c007740000000c6040a6e1643c7771f43
c77720c0c97700003000040000002d01010004000000f00102000a000000320a00000000
020000003dd7680400039600000026060f0022014d617468547970655555160105010005
0244534d543500001357696e416c6c4261736963436f6465506167657300110554696d65
73204e657720526f6d616e00110353796d626f6c001105436f7572696572204e65770011
044d5420457874726100120008212f458f442f4150f4100f475f4150f21f1e4150f4150f
4100f445f425f48f425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f
417f48f4100f412a5f445f45f45f45f45f410f0c01000100010202020200020001010100
030001000400000a01000200834e0003001b00000b01000200834400000101000a020486
3d003d03000b000001000200883700020088350000010002008831000200883000020088
320002008834000000020486c522d70200834e0000000b00000026060f000c00ffffffff
010000000000000008000000fa0200000000000000000000040000002d0102001c000000
fb021000070000000000bc02000000cc0102022253797374656d000000000a0021008a01
00000000ffffffff94e412002942c777040000002d01030004000000f001010003000000
0000 (3)

При этом константа ND, вычисленная по формуле (3) программируется в
генератор при частоте сигнала в диапазоне
picscalex100010009000003dd0100000200950000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c024002
20091300000026060f001c00ffffffff00004e0010000000c0ffffffa6ffffffe0080000
e60100000b00000026060f000c004d617468547970650000600005000000090200000002
0500000014028001e5021c000000fb0280fe000000000000900100000000000200105469
6d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d01
000016000000320a000000000a00000031342e332e2e32382e36c000c0006000c0006000
6000c000c00060000003050000001402e301fc001c000000fb0222ff0000000000009001
010000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977
00003000040000002d01010004000000f001000009000000320a00000000010000006379
bc01050000001402800182001c000000fb0280fe00000000000090010100000000020010
54696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000300004000000
2d01000004000000f001010009000000320a000000000100000066790003050000001402
8001e3011c000000fb0280fe0000000000009001000000010002001053796d626f6c0077
400000006d060abb1643c7771f43c77720c0c97700003000040000002d01010004000000
f001000009000000320a00000000010000003d7900039500000026060f001f014d617468
5479706555551301050100050244534d543500001357696e416c6c4261736963436f6465
506167657300110554696d6573204e657720526f6d616e00110353796d626f6c00110543
6f7572696572204e65770011044d5420457874726100120008212f458f442f4150f4100f
475f4150f21f1e4150f4150f4100f445f425f48f425f4100f4100f435f4100f48f45f42a
5f48f48f4100f4100f40f48f417f48f4100f412a5f445f45f45f45f45f410f0c01000100
010202020200020001010100030001000400000a0100020083660003001b00000b010002
00836300000101000a0204863d003d020088310002008834000200822e00020088330002
00822e000200822e00020088320002008838000200822e00020088360000000d0b000000
26060f000c00ffffffff01000000000000001c000000fb021000070000000000bc020000
00cc0102022253797374656d000000000a0021008a01000000000000000094e412002942
c777040000002d01000004000000f0010100030000000000Гц, что соответствует
значению N=3496..6977=0DA8h..1B41h.

При частотах сигнала в диапазоне fc=7.5..14.3 Гц в регистр MUX
генератора программируется следующее значение 000110000В. Тогда частота
на выходе генератора будет меньше чем частота резонатора генератора (60
МГц) в 4·(ND+2) раза. Поэтому значение ND согласно формуле (2) нужно
поделить на 4 и добавить 1.
Тогдаpicscalex1000100090000032c02000004009600000000000500000002010100000
0050000000102ffffff00050000002e0119000000050000000b0200000000050000000c0
2e00320091300000026060f001c00ffffffff00004e0010000000c0ffffffb8ffffffe00
80000980300000b00000026060f000c004d617468547970650000c00008000000fa02000
01300000000000002040000002d0100000500000014020002be030500000013020002dc0
6050000000902000000020500000014026e0193041c000000fb0280fe000000000000900
1000000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c97
700003000040000002d0101000a000000320a00000000020000003735c00000030500000
014028c03d6031c000000fb0280fe0000000000009001000000000002001054696d65732
04e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d010200040
00000f00101000d000000320a000000000400000032303438c000c000c00000030500000
01402c30266011c000000fb0222ff0000000000009001010000000002001054696d65732
04e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d010100040
00000f001020009000000320a00000000010000004435bc0105000000140260024c001c0
00000fb0280fe0000000000009001010000000002001054696d6573204e657720526f6d6
16e001643c7771f43c77720c0c97700003000040000002d01020004000000f00101000a0
00000320a00000000020000004e4e6e07000305000000140260028c021c000000fb0280f
e0000000000009001000000010002001053796d626f6c007740000000ca040a0d1643c77
71f43c77720c0c97700003000040000002d01010004000000f00102000a000000320a000
00000020000003dd78c0400039600000026060f0022014d6174685479706555551601050
100050244534d543500001357696e416c6c4261736963436f64655061676573001105546
96d6573204e657720526f6d616e00110353796d626f6c001105436f7572696572204e657
70011044d5420457874726100120008212f458f442f4150f4100f475f4150f21f1e4150f
4150f4100f445f425f48f425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f4
0f48f417f48f4100f412a5f445f45f45f45f45f410f0c010001000102020202000200010
10100030001000400000a01000200834e0003001b00000b01000200834400000101000a0
204863d003d03000b0000010002008837000200883500000100020088320002008830000
20088340002008838000000020486c522d70200834e0000000b00000026060f000c00fff
fffff010000000000000008000000fa0200000000000000000000040000002d0102001c0
00000fb021000070000000000bc02000000cc0102022253797374656d000000000a00210
08a0100000000ffffffff94e412002942c777040000002d01030004000000f0010100030
000000000 что соответствует значению N=6978..13954=1B42h..3682h.

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

picscalex100010009000003f00300000400040100000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c026004
601a1300000026060f001c00ffffffff00004e0010000000c0ffffffa8ffffff201a0000
080400000b00000026060f000c004d617468547970650000e00008000000fa0200001300
000000000002040000002d0100000500000014024002ce020500000013024002500e0500
000014024002e80f05000000130240021a1a050000000902000000020500000014020201
85161c000000fb0222ff0000000000009001000000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d01010009000000320a
00000000010000003679bc01050000001402ad015b051c000000fb0280fe000000000000
9001000000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0
c97700003000040000002d01020004000000f001010009000000320a0000000001000000
32790003050000001402ae01ef121c000000fb0280fe0000000000009001000000000002
001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977000030000400
00002d01010004000000f00102000d000000320a000000000400000032343130c0005001
c0000003050000001402cc03da021c000000fb0280fe0000000000009001000000000002
001054696d6573204e657720526f6d616e001643c7771f43c77720c0c977000030000400
00002d01020004000000f001010024000000320a00000000130000003332313228323536
312933383428323536312900c0005001c00074018a00c000c000f603a2003402c000c000
74018a00c000c000f603a2000003050000001402010127061c000000fb0222ff00000000
00009001010000000002001054696d6573204e657720526f6d616e001643c7771f43c777
20c0c97700003000040000002d01010004000000f00102000d000000320a000000000400
0000534d4f446f00b7009f00bc010500000014021002400a1c000000fb0222ff00000000
00009001010000000002001054696d6573204e657720526f6d616e001643c7771f43c777
20c0c97700003000040000002d01020004000000f00101000a000000320a000000000200
00004d4bb700bc01050000001402ad01c0091c000000fb0280fe00000000000090010100
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d01010004000000f001020009000000320a0000000001000000664b0003
050000001402a00282001c000000fb0280fe000000000000900101000000000200105469
6d6573204e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d01
020004000000f001010009000000320a0000000001000000664b0003050000001402cc03
200b1c000000fb0280fe0000000000009001010000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d01010004000000f001
02000d000000320a000000000400000054485448d800f20ad8000003050000001402ad01
e8081c000000fb0280fe0000000000009001000000010002001053796d626f6c00774000
00006d060ab11643c7771f43c77720c0c97700003000040000002d01020004000000f001
010009000000320a0000000001000000d74b0003050000001402ae01991409000000320a
0000000001000000d74b0003050000001402a0029c010a000000320a0000000002000000
3d3d1a0d0003050000001402cc0384040f000000320a0000000005000000d7d72dd72d00
100290033a08900300030401000026060f00fe014d617468547970655555f20105010005
0244534d543500001357696e416c6c4261736963436f6465506167657300110554696d65
73204e657720526f6d616e00110353796d626f6c001105436f7572696572204e65770011
044d5420457874726100120008212f458f442f4150f4100f475f4150f21f1e4150f4150f
4100f445f425f48f425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f
417f48f4100f412a5f445f45f45f45f45f410f0c01000100010202020200020001010100
030001000400000a010002008366000204863d003d03000b00000100020088320003001c
00000b0101010002008353000200834d000200834f00020083440000000a020486c522d7
020083660003001b00000b01000200834d000200834b0000010100000a01000200883300
0200883200020486c522d702008831000200883200020486c522d7020082280002008832
000200883500020088360002048612222d02008354000200834800020088310002008229
0000000204863d003d03000b0000010002008832000200883400020486c522d702008831
00020088300003001c00000b0101010002008836000000000a0100020088330002008838
000200883400020486c522d7020082280002008832000200883500020088360002048612
222d0200835400020083480002008831000200822900000000000b00000026060f000c00
ffffffff010000000000000008000000fa0200000000000000000000040000002d010100
1c000000fb021000070000000000bc02000000cc0102022253797374656d000000000a00
21008a0100000000ffffffff94e412002942c777040000002d01030004000000f0010200
030000000000

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

picscalex100010009000003b40200000400bd0000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c022004
e0111300000026060f001c00ffffffff00004e0010000000c0ffffffa7ffffffa0110000
c70300000b00000026060f000c004d617468547970650000c00008000000fa0200001300
000000000002040000002d0100000500000014024002d8070500000013024002ea0d0500
00000902000000020500000014020201650c1c000000fb0222ff00000000000090010000
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d01010009000000320a00000000010000003679bc01050000001402ae01
cf081c000000fb0280fe0000000000009001000000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d01020004000000f001
01000d000000320a000000000400000032343130c0005001c0000003050000001402a002
20021c000000fb0280fe0000000000009001000000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d01010004000000f001
020012000000320a000000000700000031323536323433002202c000c000ba09c000c000
0003050000001402cc03e4071c000000fb0280fe00000000000090010000000000020010
54696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000300004000000
2d01020004000000f001010012000000320a00000000070000003338343438303000c000
c0007a01c000c000c0000003050000001402a00222001c000000fb0280fe000000000000
9001010000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0
c97700003000040000002d01010004000000f00102000a000000320a0000000002000000
5448d8000003050000001402ae01790a1c000000fb0280fe000000000000900100000001
0002001053796d626f6c007740000000f4050a6a1643c7771f43c77720c0c97700003000
040000002d01020004000000f001010009000000320a0000000001000000d74800030500
00001402a00216030c000000320a00000000030000003d2d3ddba8039207000305000000
1402cc034e0a09000000320a0000000001000000d7480003bd00000026060f0070014d61
74685479706555556401050100050244534d543500001357696e416c6c4261736963436f
6465506167657300110554696d6573204e657720526f6d616e00110353796d626f6c0011
05436f7572696572204e65770011044d5420457874726100120008212f458f442f4150f4
100f475f4150f21f1e4150f4150f4100f445f425f48f425f4100f4100f435f4100f48f45
f42a5f48f48f4100f4100f40f48f417f48f4100f412a5f445f45f45f45f45f410f0c0100
0100010202020200020001010100030001000400000a0100020083540002008348000200
8831000204863d003d02008832000200883500020088360002048612222d03000b000001
0002008832000200883400020486c522d70200883100020088300003001c00000b010101
0002008836000000000a0100020088330002008838000200883400020486c522d7020088
340002008838000200883000020088300000000204863d003d0200883200020088340002
0088330000000b00000026060f000c00ffffffff010000000000000008000000fa020000
0000000000000000040000002d0101001c000000fb021000070000000000bc02000000cc
0102022253797374656d000000000a0021008a0100000000ffffffff94e412002942c777
040000002d01030004000000f0010200030000000000

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

picscalex100010009000003970200000400ab0000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c022004
000c1300000026060f001c00ffffffff00004e0010000000c0ffffffa7ffffffc00b0000
c70300000b00000026060f000c004d617468547970650000c00008000000fa0200001300
000000000002040000002d0100000500000014024002ce0205000000130240022a070500
0000090200000002050000001402020180061c000000fb0222ff00000000000090010000
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d01010009000000320a00000000010000003679bc01050000001402ae01
ea021c000000fb0280fe0000000000009001000000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d01020004000000f001
01000d000000320a000000000400000032343130c0005001c0000003050000001402a002
bc081c000000fb0280fe0000000000009001000000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d01010004000000f001
02000d000000320a000000000400000034383038c000c000c0000003050000001402cc03
da021c000000fb0280fe0000000000009001000000000002001054696d6573204e657720
526f6d616e001643c7771f43c77720c0c97700003000040000002d01020004000000f001
01000f000000320a0000000005000000333834313300c000c0005001c000000305000000
1402a00282001c000000fb0280fe0000000000009001010000000002001054696d657320
4e657720526f6d616e001643c7771f43c77720c0c97700003000040000002d0101000400
0000f001020009000000320a000000000100000066790003050000001402ae0194041c00
0000fb0280fe0000000000009001000000010002001053796d626f6c007740000000cc06
0a1f1643c7771f43c77720c0c97700003000040000002d01020004000000f00101000900
0000320a0000000001000000d7790003050000001402a0029c010a000000320a00000000
020000003d3df4050003050000001402cc03440509000000320a0000000001000000d73d
0003ab00000026060f004c014d6174685479706555554001050100050244534d54350000
1357696e416c6c4261736963436f6465506167657300110554696d6573204e657720526f
6d616e00110353796d626f6c001105436f7572696572204e65770011044d542045787472
6100120008212f458f442f4150f4100f475f4150f21f1e4150f4150f4100f445f425f48f
425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f417f48f4100f412a
5f445f45f45f45f45f410f0c01000100010202020200020001010100030001000400000a
010002008366000204863d003d03000b0000010002008832000200883400020486c522d7
0200883100020088300003001c00000b0101010002008836000000000a01000200883300
02008838000200883400020486c522d70200883100020088330000000204863d003d0200
88340002008838000200883000020088380000000b00000026060f000c00ffffffff0100
00000000000008000000fa0200000000000000000000040000002d0101001c000000fb02
1000070000000000bc02000000cc0102022253797374656d000000000a0021008a010000
0000ffffffff94e412002942c777040000002d01030004000000f0010200030000000000
бод/с

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

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

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

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

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

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

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

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

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

picscalex1100100090000032a0200000200a20100000000a201000026060f003a03574d
464301000000000001004a56000000000100000018030000000000001803000001000000
6c0000000000000000000000350000006f000000000000000000000014400000004a0000
20454d46000001001803000012000000020000000000000000000000000000007f120000
771a0000c80000001f010000000000000000000000000000000f03005860040016000000
0c000000180000000a0000001000000000000000000000000900000010000000260f0000
79110000250000000c0000000e000080250000000c0000000e000080120000000c000000
01000000520000007001000001000000a4ffffff00000000000000000000000090010000
000000cc04400022430061006c0069006200720069000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
00002e0050952e0010000000b4982e0034962e00e4502665b4982e00ac952e0010000000
1c972e0098982e008a4f2665b4982e00ac952e002000000080e01e64ac952e00b4982e00
20000000fffffffffc246b01fbe01e64ffffffffffff0180ffff01807fff0180ffffffff
006f000000080000000800006903176401000000000000005802000025000000372e9001
cc00020f0502020204030204ff0200e1ffac004009000000000000009f01000000000000
430061006c0069006200720000000000f0007c7674962e00334e2064282efd64d4992e00
e0952e00d532186420000000010000001c962e001c962e00007616642000000044962e00
fc246b016476000800000000250000000c00000001000000250000000c00000001000000
250000000c00000001000000180000000c00000000000002540000005400000000000000
00000000350000006f00000001000000e7298740a48e8740000000005700000001000000
4c000000040000000000000000000000230f00007b110000500000002000350036000000
46000000280000001c0000004744494302000000ffffffffffffffff260f00007a110000
000000004600000014000000080000004744494303000000250000000c0000000e000080
250000000c0000000e0000800e0000001400000000000000100000001400000004000000
03010800050000000b0200000000050000000c021902d101040000002e0118001c000000
fb020200010000000000bc02000000cc0102022253797374656d003f00003f3f3f3f3f3f
3f3f3f3f0800000001003f3f3f3f3f00040000002d010000040000002d01000004000000
020101001c000000fb02f5ff0000000000009001000000cc0440002243616c6962726900
000000000000000000000000000000000000000000000000040000002d01010004000000
2d010100040000002d010100050000000902000000020d000000320a0a00000001000400
00000000d0011a0220000600040000002d010000040000002d010000030000000000

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

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

BSEG

ORG 0h

Cell_Tr: DBIT 1

DSEG

ORG 30h

Fr_low: DS 1

Fr_high: DS 1

Fase_low: DS 1

Fase_high: DS 1

Contr_sum: DS 1

CSEG

ORG 0h

Jmp On_Reset:

ORG 3h

Jmp Freq

ORG 0Bh

Reti

ORG 13h

Jmp Fase

ORG 1Bh

Reti

ORG 23h

Reti

ORG 40h

On_Reset :

Mov IE, #0 ; запрет всех прерываний

Mov Sp, #40h ; установка вершины стека

Mov IP, #0 ; все приоритеты прерываний одинаковы

Mov TCON,#0 ; внешние прерывания вызываются по низкому уровню

; на входах INT0,INT1

Mov TMOD,#00100000B ; таймер/счетчик Т1 работает в режиме 8-битного с

; таймера c автоперезагрузкой

Mov SCON,#11001100B ; 8-битовый приемопередатчик + бит паритета

Mov PCON,#10000000B ; удвоенная скорость передачи данных (SMOD=1)

Mov A, #243 ; настройка скорости последовательного интерфейса

Mov TH1, A ; 4800 бод/с

Setb TR1 ; запуск таймера T1

Mov DPTR, #0 ;

Mov IE, #10000001B ; разрешение прерываний от INT0 измерение частоты

Mov R0, #100 ; проверка правильности работы фазометра

Next_wait: ; при разрешенном прерывании

Acall Del_10 ; каждые 10 мс проверяется содержимое DPL

Mov A, R0 ;

Mov R1, A ;

Fr_beat:

NOP

Djnz R1, Fr_beat ; этот участок кода нужен для обнаружения частот

Mov A, DPL ; с периодом кратным 10 мс

Jnz Work ; если в DPL не ноль то фазометр работает нормально

Djnz R0, Next_wait ; иначе снова проверять

Clr EA ; запрет прерываний

Clr Cell_tr ; сбросить флаг работоспособности

Rjmp Send_error

Work:

Setb Cell_tr ; установить флаг работоспособности

Send_error:

Acall Get_COM ; ждать сообщения от ПК

Mov Acc.0, Cell_tr

Acall Transmit_COM ; послать сообщение ПК о работоспособности

Jb Cell_tr, To_do ; если фазометр работает, то продолжать работу

Ret ; иначе конец программы

To_do:

Acall Get_COM ; получить количество измерений

Mov R1, A

Acall Get_COM ; получить период измерений

Mov R5, A

Clr A

Mov Contr_sum, A ; обнуляем контрольную сумму

Next_measure:

Mov DPTR, #0 ; померять частоту

Mov IE, #10000001B ; разрешение прерываний от INT0 измерение частоты

Jnb IE0, $

Jb IE0, $

Clr EA

Mov A, DPH

Acall Transmit_COM ; передача ПК

Mov Fr_high, A ; сохранить старший байт

Mov A, DPL

Acall Transmit_COM ; передача ПК

Mov Fr_low, A ; сохранить младший байт

Mov A, Fr_high

Subb A, #36h

Jnc Meas_MK ; если DPH > 36h, то фазу меряет MK

Mov A, Fr_high

Subb A, #1Bh ; если DPH > 1Bh, то фазу меряет таймер с

Jnc Meas_T4 ; предделением частоты на 4

Mov A, Fr_high

Subb A, #0Dh ; если DPH > Dh, то фазу меряет таймер с предделением

Jnc Meas_T2 ; частоты на 2

Mov A, Fr_low

Subb A, #06h ; если DPL > 6, то фазу меряет таймер без предделения

Jnc Meas_T ; частоты, иначе таймер работает на

; максимальной частоте 60 МГц

Acall First_reset ; начальный сброс генератора

Mov A, #1 ; код команды записи в регистр DIV

Acall Write_Byte ; запись в генератор

Mov A, #00110010В ; загрузка 8 бит константы для задания частоты

; генератора

Acall Write_Byte ; запись в генератор

Acall Write_0 ; 9-ый бит

Ajmp Meas_G

Meas_T:

Mov R2, Fr_low ; вычисление
picscalex100010009000003620200000400990000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c02e003
200a1300000026060f001c00ffffffff00004e0010000000c0ffffffb8ffffffe0090000
980300000b00000026060f000c004d617468547970650000c00008000000fa0200001300
000000000002040000002d0100000500000014020002be03050000001302000216060500
00000902000000020500000014026e0130041c000000fb0280fe00000000000090010000
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d0101000a000000320a00000000020000003735c0000003050000001402
600246091c000000fb0280fe0000000000009001000000000002001054696d6573204e65
7720526f6d616e001643c7771f43c77720c0c97700003000040000002d01020004000000
f001010009000000320a0000000001000000313500030500000014028c03ca031c000000
fb0280fe0000000000009001000000000002001054696d6573204e657720526f6d616e00
1643c7771f43c77720c0c97700003000040000002d01010004000000f00102000c000000
320a000000000300000035313289c000c0000003050000001402c30266011c000000fb02
22ff0000000000009001010000000002001054696d6573204e657720526f6d616e001643
c7771f43c77720c0c97700003000040000002d01020004000000f001010009000000320a
00000000010000004435bc0105000000140260024c001c000000fb0280fe000000000000
9001010000000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0
c97700003000040000002d01010004000000f00102000a000000320a0000000002000000
4e4ea806000305000000140260028c021c000000fb0280fe000000000000900100000001
0002001053796d626f6c0077400000004f020a8b1643c7771f43c77720c0c97700003000
040000002d01020004000000f00101000c000000320a00000000030000003dd72d04c603
0a0200039900000026060f0028014d6174685479706555551c01050100050244534d5435
00001357696e416c6c4261736963436f6465506167657300110554696d6573204e657720
526f6d616e00110353796d626f6c001105436f7572696572204e65770011044d54204578
74726100120008212f458f442f4150f4100f475f4150f21f1e4150f4150f4100f445f425
f48f425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f417f48f4100f
412a5f445f45f45f45f45f410f0c01000100010202020200020001010100030001000400
000a01000200834e0003001b00000b01000200834400000101000a0204863d003d03000b
000001000200883700020088350000010002008835000200883100020088320000000204
86c522d70200834e0002048612222d020088310000000b00000026060f000c00ffffffff
010000000000000008000000fa0200000000000000000000040000002d0101001c000000
fb021000070000000000bc02000000cc0102022253797374656d000000000a0021008a01
00000000ffffffff94e412002942c777040000002d01030004000000f001020003000000
0000

Mov R3, Fr_high

Mov R1, #4

Acall Dividing

Mov A, R2

Mov B, #75

MUL AB

Mov R2, A

Mov A, B

Mov R3, A

Mov R1, #5

Acall Dividing

Dec R2

Mov A, R3

Jnc Meas_G

Dec A

Mov R3, A

Acall First_reset ; начальный сброс

Mov A, #1 ; код команды записи в регистр DIV

Acall Write_Byte ; запись в генератор

Mov A, #00110100В ; загрузка 8 бит константы для задания частоты

; генератора

Acall Write_Byte ; запись в генератор

Acall Write_0 ; 9-ый бит

Ljmp Meas_G

Meas_T2:

Mov R2, Fr_low ; вычисление
picscalex1000100090000032c0200000400960000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c02e003
00091300000026060f001c00ffffffff00004e0010000000c0ffffffb8ffffffc0080000
980300000b00000026060f000c004d617468547970650000c00008000000fa0200001300
000000000002040000002d0100000500000014020002be030500000013020002b8060500
00000902000000020500000014026e0181041c000000fb0280fe00000000000090010000
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d0101000a000000320a00000000020000003735c0000003050000001402
8c03ac031c000000fb0280fe0000000000009001000000000002001054696d6573204e65
7720526f6d616e001643c7771f43c77720c0c97700003000040000002d01020004000000
f00101000d000000320a000000000400000031303234c000c000c0000003050000001402
c30266011c000000fb0222ff0000000000009001010000000002001054696d6573204e65
7720526f6d616e001643c7771f43c77720c0c97700003000040000002d01010004000000
f001020009000000320a00000000010000004435bc0105000000140260024c001c000000
fb0280fe0000000000009001010000000002001054696d6573204e657720526f6d616e00
1643c7771f43c77720c0c97700003000040000002d01020004000000f00101000a000000
320a00000000020000004e4e4a07000305000000140260028c021c000000fb0280fe0000
000000009001000000010002001053796d626f6c007740000000c6040a6e1643c7771f43
c77720c0c97700003000040000002d01010004000000f00102000a000000320a00000000
020000003dd7680400039600000026060f0022014d617468547970655555160105010005
0244534d543500001357696e416c6c4261736963436f6465506167657300110554696d65
73204e657720526f6d616e00110353796d626f6c001105436f7572696572204e65770011
044d5420457874726100120008212f458f442f4150f4100f475f4150f21f1e4150f4150f
4100f445f425f48f425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f
417f48f4100f412a5f445f45f45f45f45f410f0c01000100010202020200020001010100
030001000400000a01000200834e0003001b00000b01000200834400000101000a020486
3d003d03000b000001000200883700020088350000010002008831000200883000020088
320002008834000000020486c522d70200834e0000000b00000026060f000c00ffffffff
010000000000000008000000fa0200000000000000000000040000002d0102001c000000
fb021000070000000000bc02000000cc0102022253797374656d000000000a0021008a01
00000000ffffffff94e412002942c777040000002d01030004000000f001010003000000
0000

Mov R3, Fr_high

Mov R1, #5

Acall Dividing

Mov A, R2

Mov B, #75

MUL AB

Mov R2, A

Mov A, B

Mov R3, A

Mov R1, #5

Acall Dividing

Acall First_reset ; начальный сброс

Mov A, #1 ; код команды записи в регистр DIV

Acall Write_Byte ; запись в генератор

Mov A, #00111000В ; загрузка 8 бит константы для задания частоты

; генератора

Acall Write_Byte ; запись в генератор

Acall Write_0 ; 9-ый бит

Ljmp Meas_G

Meas_T4:

Mov R2, Fr_low ; вычисление
picscalex1000100090000032c0200000400960000000000050000000201010000000500
00000102ffffff00050000002e0119000000050000000b0200000000050000000c02e003
20091300000026060f001c00ffffffff00004e0010000000c0ffffffb8ffffffe0080000
980300000b00000026060f000c004d617468547970650000c00008000000fa0200001300
000000000002040000002d0100000500000014020002be030500000013020002dc060500
00000902000000020500000014026e0193041c000000fb0280fe00000000000090010000
00000002001054696d6573204e657720526f6d616e001643c7771f43c77720c0c9770000
3000040000002d0101000a000000320a00000000020000003735c0000003050000001402
8c03d6031c000000fb0280fe0000000000009001000000000002001054696d6573204e65
7720526f6d616e001643c7771f43c77720c0c97700003000040000002d01020004000000
f00101000d000000320a000000000400000032303438c000c000c0000003050000001402
c30266011c000000fb0222ff0000000000009001010000000002001054696d6573204e65
7720526f6d616e001643c7771f43c77720c0c97700003000040000002d01010004000000
f001020009000000320a00000000010000004435bc0105000000140260024c001c000000
fb0280fe0000000000009001010000000002001054696d6573204e657720526f6d616e00
1643c7771f43c77720c0c97700003000040000002d01020004000000f00101000a000000
320a00000000020000004e4e6e07000305000000140260028c021c000000fb0280fe0000
000000009001000000010002001053796d626f6c007740000000ca040a0d1643c7771f43
c77720c0c97700003000040000002d01010004000000f00102000a000000320a00000000
020000003dd78c0400039600000026060f0022014d617468547970655555160105010005
0244534d543500001357696e416c6c4261736963436f6465506167657300110554696d65
73204e657720526f6d616e00110353796d626f6c001105436f7572696572204e65770011
044d5420457874726100120008212f458f442f4150f4100f475f4150f21f1e4150f4150f
4100f445f425f48f425f4100f4100f435f4100f48f45f42a5f48f48f4100f4100f40f48f
417f48f4100f412a5f445f45f45f45f45f410f0c01000100010202020200020001010100
030001000400000a01000200834e0003001b00000b01000200834400000101000a020486
3d003d03000b000001000200883700020088350000010002008832000200883000020088
340002008838000000020486c522d70200834e0000000b00000026060f000c00ffffffff
010000000000000008000000fa0200000000000000000000040000002d0102001c000000
fb021000070000000000bc02000000cc0102022253797374656d000000000a0021008a01
00000000ffffffff94e412002942c777040000002d01030004000000f001010003000000
0000

Mov R3, Fr_high

Mov R1, #6

Acall Dividing

Mov A, R2

Mov B, #75

MUL AB

Mov R2, A

Mov A, B

Mov R3, A

Mov R1, #5

Acall Dividing

Acall First_reset ; начальный сброс

Mov A, #1 ; код команды записи в регистр DIV

Acall Write_Byte ; запись в генератор

Mov A, #00110000В ; загрузка 8 бит константы для задания частоты

; генератора

Acall Write_Byte ; запись в генератор

Acall Write_0 ; 9-ый бит

Meas_G:

Mov A, #2 ; код команды записи в программный делитель

Acall Write_Byte ; запись в генератор

Mov A, R2 ; младшие 8 бит предделителя

Acall Write_Byte ; запись в генератор

Mov A, R3 ; старший бит

Jb Acc.0, Wr1

Acall Write_0 ; запись в генератор 0

Ljmp St_m

Wr_1:

Acall Write_1 ; запись в генератор 1

St_m:

Acall First_reset ; начало работы генератора после программирования

Clr P0.1 ; сброс счетчиков

Jnb IE1, $ ; ждем пока не возникнет прерывания от изм. фазы

Setb P0.1 ; разрешение счета счетчиков

Jb IE1, $ ; ждем пока не завершиться прерывания от изм. фазы

Mov A, P1 ; считываем младший байт результата

Mov Fase_low, A

Mov A, P0 ; считываем старший байт результата

Anl A, #1111B ; обнуляем незначащие биты

Mov Fase_high, A

Ljmp Transm_fase

Meas_MK:

Mov DPTR, #0 ; обнуление счетчика

Mov IE, #10000100B ; пуск измерения фазы на частоте меньшей 28.6 Гц

Jnb IE1, $ ; с помощью аппаратных возможностей МК

Jb IE1, $

Clr EA

Mov A, DPН ; считывания старшего байта фазы

Mov Fase_high, A ; сохранение

Mov A, DPL ; считывания младшего байта фазы

Mov Fase_low, A ; сохранение

Transm_fase:

Mov A, Fase_high

Acall Transmit_COM ; передача ПК

Mov A, Fase_low

Acall Transmit_COM ; передача ПК

Acall Del_c ; задаем период измерения

Djnz R1, Next_measure ; следующее измерение

Mov A, Contr_sum ; передача контрольной суммы

Acall Transmit_COM

Ljmp To_do

ret

; подпрограмма начального сброса генератора

First_reset:

Clr I/O

Mov R0, #139

Acall Del_any

Setb I/O

Mov R0, #12

Acall Del_any

Jnb I/O, Rst3

Mov A, #1

Ret

Rst3:

Mov R0, #99

Acall Del_any

Jb I/O, Rst5

Mov A, #2

Ret

Rst5:

Mov A, #0

Ret

; подпрограмма записи бита #0 по однопроводному интерфейсу

Write_0:

Clr I/O

Mov R0, #15

Acall Del_any

Setb I/O

Ret

; подпрограмма записи бита #1 по однопроводному интерфейсу

Write_1:

Clr I/O

Mov R0, #1

Acall Del_any

Setb I/O

Mov R0, #14

Acall Del_any

Ret

; подпрограмма записи байта по однопроводному интерфейсу

Write_Byte:

Clr I/O ; запрет прерывания

Mov R1, #8 ; 8 бит

Wb1:

Rrc A ; А0?С

Jc Wb2 ;

Acall Write_0 ;

Jmp Wb3

Wb2:

Acall Write_1 ;

Djnz R1, Wb1 ;

Setb EA ;

Ret

; прием байта по COM-порту в аккумулятор

Get_COM:

Jnb RI, Get_COM

Mov A, SBUF

Clr RI

Ret

; передача байта по COM-порту через аккумулятор

Transmit_COM:

Mov SBUF, A

SEND:

Jnb TI, SEND

Clr TI

Push A ; контроль правильности передачи данных

Mov A, Contr_sum ; поблочным суммированием

Pop R4

Add A, R4

Mov Contr_sum, A

Ret

; задержка 5мкс

Del_5:

NOP

Ret

; подпрограмма задержки, параметр R0, задержка=5*R0 мкс

Del_Any:

Next_del:

Acall Del_5

Djnz R0, Next_del

Ret

; подпрограмма задержки на 10 мс

Del_10:

Push R1

Push R0

Mov R1, #10

To_next:

Mov R0, #199

Acall Del_any

Djnz R1, To_next

Pop R0

Pop R1

Ret

; подпрограмма задержки на R5 с

Del_c:

Mov A, R5

Mov R7, A

Del_sec:

Clr C

Mov R6, #100

Next_1c:

Acall Del_10

Dec R6

Jnc Next_1c

Mov R1, #10

Dec R7

Jnc Del_sec

Ret

; подпрограмма деления на 2n двухбайтового числа R3:R2 сдвигом n=R1

Dividing:

Clr C

Mov A, R3

Rrc A

Mov R3, A

Mov A, R2

Rr A

Mov R2, A

Djnz R0, Dividing

ret

; подпрограммы обработки прерываний

Freq:

Inc DPTR

reti

Fase:

Inc DPTR

NOP

NOP

NOP

NOP

NOP

reti

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

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

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

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

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

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

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

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

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

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

picscalex1060100090000032a0200000200a20100000000a201000026060f003a03574d
46430100000000000100284f000000000100000018030000000000001803000001000000
6c0000000000000000000000350000006f0000000000000000000000033e000019500000
20454d46000001001803000012000000020000000000000000000000000000007f120000
771a0000c80000001f010000000000000000000000000000000f03005860040016000000
0c000000180000000a0000001000000000000000000000000900000010000000a60e0000
ee120000250000000c0000000e000080250000000c0000000e000080120000000c000000
01000000520000007001000001000000a4ffffff00000000000000000000000090010000
000000cc04400022430061006c0069006200720069000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
00002e0050952e0010000000b4982e0034962e00e4502665b4982e00ac952e0010000000
1c972e0098982e008a4f2665b4982e00ac952e002000000080e01e64ac952e00b4982e00
20000000fffffffffc246b01fbe01e64ffffffffffff0180ffff01807fff0180ffffffff
006f000000080000000800006903176401000000000000005802000025000000372e9001
cc00020f0502020204030204ff0200e1ffac004009000000000000009f01000000000000
430061006c0069006200720000000000f0007c7674962e00334e2064282efd64d4992e00
e0952e00d532186420000000010000001c962e001c962e00007616642000000044962e00
fc246b016476000800000000250000000c00000001000000250000000c00000001000000
250000000c00000001000000180000000c00000000000002540000005400000000000000
00000000350000006f00000001000000e7298740a48e8740000000005700000001000000
4c000000040000000000000000000000a60e0000ec120000500000002000350036000000
46000000280000001c0000004744494302000000ffffffffffffffffa70e0000ef120000
000000004600000014000000080000004744494303000000250000000c0000000e000080
250000000c0000000e0000800e0000001400000000000000100000001400000004000000
03010800050000000b0200000000050000000c024602c201040000002e0118001c000000
fb020200010000000000bc02000000cc0102022253797374656d003f00003f3f3f3f3f3f
3f3f3f3f0800000001003f3f3f3f3f00040000002d010000040000002d01000004000000
020101001c000000fb02f5ff0000000000009001000000cc0440002243616c6962726900
000000000000000000000000000000000000000000000000040000002d01010004000000
2d010100040000002d010100050000000902000000020d000000320a0a00000001000400
00000000c101460220000600040000002d010000040000002d010000030000000000

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

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

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 раз большую, чем
частота сигнала. При активном уровне с выхода системы перехода
напряжений через ноль, счетчик считает импульсы генератора, а затем
микроконтроллер считывает их и передает компьютеру, где константы
соответствующие частоте и фазе преобразуются в герцы и градусы и
показываются оператору по его запросу.

Нашли опечатку? Выделите и нажмите CTRL+Enter

Похожие документы
Обсуждение

Ответить

Курсовые, Дипломы, Рефераты на заказ в кратчайшие сроки
Заказать реферат!
UkrReferat.com. Всі права захищені. 2000-2020