Задание.
Создать МПсистему управлениянастройкойприемника.Упрощеннаясхема приемникаизображенана рис. 1.
Рис1Контур приемникасостоит изиндуктивностиLк и емкостиварикапа VD1. Этаемкость зависитот подаваемогона варикаппостоянногонапряженияUупр (зависимостьобратнопропорциональная).Выделенноеконтуром ВЧнапряжениеUк детектируетсяамплитуднымдетектором(АД) и при настройкена станцию навыходе АД получаетсясигнал Uвых.НеобходимоподключитьМПС к приемникутак, чтобы МПизмеряя величинуUвых могвоздействоватьна варикап сцелью настройкивходного контура.МПС должнаобеспечить:
— точную настройкуна заданнуюстанцию (величинарассогласованияпо частоте недолжна превышать3% от ширины полосыконтура 2f,
— поиск станцийв диапазонечастот Fmin...Fmax.
1. Описаниеалгоритма.
Напряжениена контуредетектируетсяамплитуднымдетектором(АД), преобразуетсяв АЦП в двоичныйкод и поступаетна МП. МП оцениваетсигнал и выдаетуправляющеенапряжениеUупр, котороепосле ЦАП поступаетна варикап дляизменениячастоты настройкиконтура. Задача,решаемая МП,состоит в поискеэкстремумафункции Uупр(F).Из всех известныхалгоритмовпоиска вследствиемалой разрядностиМП выбираетсяметод нулевогопорядка - методслучайногопошаговогопоиска экстремумас запоминаниемверного шага.
Суть алгоритмасостоят в следующем.Так как напряжениена контуреявляется функциейрасстройки{Fk-Fo}, то пряизменении Fизменяетсяи Uk. МП формируетприращениеUупр (можетбыть и положительными отрицательным).ПроисходитсравнениеUkn=f(Uy) и Ukn+1=f(Uy+Uy).ЕслиUkn+1>Ukn, то делаетсяшаг в ту же сторону,в противномслучае - в противоположную.Одноэкстремальныйвид функциинастройкипозволяетодновременноосуществитьоперациюавтоматическогопоиска частотыFo. АЦП и ЦАПподсоединяютсяк МПС черезпорты ввода/вывода.Для построенияпортов ввода/выводаиспользуютсяпорты Р1 и Р2 ОЭВМ.Это позволяетиспользоватьдля ввода/выводакоманды ОЭВМработы портами.Предположим,что для АЦПосуществляетсяпрограммнаязадержка навремя, большеевремени преобразования,чтобы избежатьввода еще одногорегистра дляопроса сигналаготовностиАЦП. Сигнал наЦАП подаетсясразу из ОЭВМчерез порт.Однако прирегулированиинеобходимоорганизоватьпрограммнуюзадержку навремя установленияпереходныхпроцессов вконтуре. Крометого, для исключениявлияния шумана процессрегулированиянужно установитьнижний пределизменения Uk.
2. Структурнаясхема алгоритма.
3. Математическоеописание.
3.1 Исходные данные:
Диапазончастот поиска | Fmin=1мГц |
Fmax=1,5мГц | |
Полосачастот | f=3кГц |
Параметрыварикапа: | |
Начальноезначение частотыконтура | Fk0=1мГц |
Управляющеенапряжение | Uупр0=2В |
Крутизнахарактеристикипреобразования | S=25 кГц/В |
ПараметрыЦАП (БИС ЦАПК572ПА1): | |
Опорноенапряжение | UЦАП=10,24В |
Количестворазрядов | n=10 |
ПараметрыАЦП (AD7575): | |
Опорноенапряжение | UАЦП=2,56В |
Количестворазрядов | n=8 |
3.2 Расчёт.
Частотанастройкиконтура зависитот управляющегонапряженияследующимобразом:
Fk=Fk0+S(Uупр-Uупр0) (1)
где Fk0— начальноезначение частотыконтура приUупр=Uупр0
S — крутизнахарактеристикипреобразования.
Uупр=Uупр2-Uупр1 (2)
Из (1) следует,что
Т.к f=3кГц,то при
F1=Fmin+f=1000+3=1003(кГц),
(В)F2=Fmin+2f=1006(кГц)
(В)Uупр=Uупр2-Uупр1=1,24-1,12=0,12(В)
(В) — минимальноезначение напряженияна входе, котороедаёт 1 в младшемразряде кода.Uупр>UЦАП десятиразрядныйЦАП подходитдля выполненияданной задачи.UЦАП=0,01В навход надо подаватьпо 12k импульсов(как бы проскакиваяпо 12 импульсовсразу), где k— номер шага
.1210 = 00000011002, 2 первых разрядавсегда равны0, их можнозаземлить, к порту подключается8 разрядов (старших)и вместо 12 наЦАП подается3 (112=310). можно охватитьвесь диапазонбез использованиядополнительныхразрядов. — количествошагов для тогочтобы пройтивсю областьнастройки.12∙Kn=2004— нужно 10 разрядов
8∙Kn=501— нужно 8 разрядов.
(В)Если Ukвозрастаетна постояннона всей областинастройки, то
(В)Uk>UАЦП 8-миразрядный ЦАПподходит длярешения даннойзадачи.
4. Распределениересурсов МПсистемы
Регистр ОЭВМR2 будетхранить значенияUупр, вR3 помещаютсязначения предыдущегошага Uk-1,а в A (аккумулятор)— значенияпоследующегошага Uk.В R4 в процессеработы программыбудем помещатьтолько N— параметрпрограммнойзадержки. В Bбудет хранитьсяколичествошагов для прогонавсей областинастройки.Выбираем N=135,т.к время программнойзадержки равно400 мкс, а вся процедурареализуетсяв 3 цикла,
.5. Подробнаяструктурнаясхема алгоритма.
6. Программаработы МК.
Кол-воциклов | Метка | Мнемоники | Комментарий |
NAMEP78 | имя модуляпрограммы | ||
CSEG AT 0H | абсолютныйкодовый сегмент | ||
ORG0H | псевдокомандазадания адресапамяти | ||
1 | MOVR2,#3 | в R2 помещаетсяUупр | |
1 | MOVB,#167 | в B помещаетсяколичествошагов | |
1 | MOV A P1 | в A помещаетсясодержимоеUkиз порта P1 | |
1 | MOV R3, A | в R3 помещаетсязначение Ukиз A | |
1 | M1: | MOV R4, #135 | инициализациясчетчикапрограммнойзадержки |
1 | MOV A, R2 | вAпомещаетсязначение Uуприз R2 | |
1 | MOV P2, A | в порт P2помещаетсязначение Uуприз A | |
1 | SETB3.7 | формированиеотрицательногоимпульса длявключенияАЦП | |
1 | CLR 3.7 | ||
1 | SETB 3.7 | ||
1 | M2: | NOP | операторзадержки |
2 | DJNZ R4, M2 | значение R4(счетчик программнойзадержки)уменьшаетсяна 1 и при R4 0осуществляетсяпереход наметку M2 | |
1 | MOV A, P1 | в A записываетсяUk+1из порта P1 | |
1 | SUBB A, R3 | из A вычитаетсяR3 (Uk+1сравниваетсяс Uk) | |
2 | JCM3 | если флаг C=0(Uk+1>Uk),то осуществляетсяпереход наметку M3 | |
1 | MOV A, P1 | в A помещаетсязначение Uk+1из порта P1 | |
1 | MOV R3, A | в R3 помещаетсязначение Uk+1из A | |
1 | INCR2 | значение R2(Uупр)увеличиваетсяна 1 | |
1 | INCR2 | значение R2(Uупр)увеличиваетсяна 1 | |
1 | INCR2 | значение R2(Uупр)увеличиваетсяна 1 | |
2 | DJNZ B, M1 | значение B(счетчик шагов)уменьшаетсяна 1 и при B 0осуществляетсяпереход наметку M1 | |
2 | AJMPM5 | осуществляетсябезусловныйпереход наметку M5 | |
1 | M3: | MOV R4, #135 | инициализациясчетчикапрограммнойзадержки |
1 | CLRC | флаг С устанавливаетсяв 0 | |
1 | DECR2 | значение R2(Uупр)уменьшаетсяна 1 | |
1 | MOV A, R2 | в A помещаетсязначение Uуприз R2 | |
1 | MOV P2, A | в порт P2помещаетсязначение Uуприз A | |
1 | SETB3.7 | формированиеотрицательногоимпульса длявключенияАЦП. | |
1 | CLR 3.7 | ||
1 | SETB 3.7 | ||
1 | M4: | NOP | операторзадержки |
2 | DJNZ R4, M4 | значение R4(счетчик программнойзадержки)уменьшаетсяна 1 и при R4 0осуществляетсяпереход наметку M4 | |
1 | MOV A, P1 | в A помещаетсясодержимоеUk+1из порта P1 | |
1 | SUBB A, R3 | изAвычитаетсяR3(Ukсравниваетсяс Uk+1) | |
1 | MOV A, P1 | в A записываетсяUk+1из порта P1 | |
1 | MOV R3, A | в R3 помещаетсязначение Ukиз A | |
2 | JCM3 | если флаг C=0(Uk>Uk+1),то осуществляетсяпереход наметку M3 | |
1 | M5: | NOP | оператор задержки |
END | конец модуляпрограммы |
7. Контрольныйпример.
Для просмотрарезультатоввместо портаP1 будемзначения Uk,будут помещатьсяво внутреннююпамять, начинаяс адреса 20Hи заканчиваяадресом 27H, в R0будет размещатьсяадрес внутреннейпамяти и “MOVA, P1”заменяетсяна “MOV A,@R0”. Так жеуменьшим количествошагов и времяпрограммнойзадержки.
NAME 78 | ||
CSEG AT 0H | ||
ORG 0H | ||
MOV 21H, #1 | задаются значенияUk | |
MOV 22H, #3 | ||
MOV 23H, #6 | ||
MOV 24H, #9 | ||
MOV 25H, #6 | ||
MOV 26H, #7 | ||
MOV 27H, #9 | ||
MOV R0, #20H | в R0 помещаетсяадрес 20H | |
MOVR2,#3 | в R2 помещаетсяначальноезначение Uупр | |
MOVB,#10 | в B помещаетсяколичествошагов | |
MOV A @R0 | в A помещаетсясодержимоеячейки с адресомR0 | |
MOV R3, A | в R3 помещаетсясодержимоеА (ячейки садресом 20H) | |
M1: | INC R0 | значение R0(адрес внутреннейпамяти) увеличиваетсяна 1 |
MOVR4,#3 | инициализациясчетчикапрограммнойзадержки | |
MOV A, R2 | ||
MOV P2, A | ||
M2: | NOP | |
DJNZ R4, M2 | значение R4(счетчик программнойзадержки)уменьшаетсяна 1 и при R4 0осуществляетсяпереход наметку M2 | |
MOV A, @R0 | в A помещаетсясодержимоеячейки с адресомR0 (Uk+1) | |
SUBB A, R3 | из A вычитаетсяR3 (Uk+1сравниваетсяс Uk) | |
JCM3 | если флаг C=0(Uk>Uk+1),то осуществляетсяпереход наметку M3 | |
MOV A, @R0 | в A помещаетсясодержимоеячейки с адресомR0 | |
MOV R3, A | в R3 помещаетсязначение Uk+1из A | |
INCR2 | значение R2(Uупр)увеличиваетсяна 1 | |
INCR2 | значение R2(Uупр)увеличиваетсяна 1 | |
INCR2 | значение R2(Uупр)увеличиваетсяна 1 | |
DJNZ B M1 | значение B(счетчик шагов)уменьшаетсяна 1 и при B 0осуществляетсяпереход наметку M1 | |
AJMPM5 | осуществляетсябезусловныйпереход наметку M5 | |
M3: | INC R0 | значение R0(адрес внутреннейпамяти) увеличиваетсяна 1 |
DECR2 | значение R2(Uупр)уменьшаетсяна 1 | |
MOVR4,#3 | инициализациясчетчикапрограммнойзадержки | |
CLRC | флаг С устанавливаетсяв 0 | |
MOV A, R2 | ||
MOV P2, A | ||
M4: | NOP | |
MOV A, @R0 | в A помещаетсясодержимоеячейки с адресомR0 (Uk+1) | |
SUBB A, R3 | из A вычитаетсяR3 (Uk+1сравниваетсяс Uk) | |
MOV A, @R0 | в A помещаетсясодержимоеячейки с адресомR0 (Uk+1) | |
MOV R3, A | в R3 помещаетсязначение Uk+1из A | |
JCM3 | если флаг C=0(Uk>Uk+1),то осуществляетсяпереход наметку M3 | |
M5 | NOP | |
END |
8. Определениебыстродействияпрограммы.
Найдём,сколько временипотребуетсядля поискастанции, котораянаходится всередине диапазона.F0=1,25 мГц ипри условиичто придётсяделать одиншаг назад.
T=Nц1tц1+Nц2tц2+tпер+tд
Nц1=250— количествошагов в первомцикле
Nц2=1— количествошагов во второмцикле
tц1=417мкс
tц2=414мкс
tпер=424— время переходаиз одного циклав другой
tд=4мкс — времяввода начальныхданных
T=250417+1414+424+4=104717мкс
9. Листинготлаженнойпрограммы.
A51 MACRO ASSEMBLER78 24/12/01 13:46:28 PAGE 1
DOS MACRO ASSEMBLERA51 V5.10
OBJECT MODULE PLACEDIN 78.OBJ
ASSEMBLER INVOKED BY:M:\KEILTEST\BIN\A51.EXE 78.A51 DB EP
LOC | OBJ | LINE | SOURCE | |
1 | NAME P78 | |||
---- | 2 | CSEG AT 0H | ||
0000 | 3 | ORG 0H | ||
0000 | 7A03 | 4 | MOV R2, #3 | |
0002 | 75F0A7 | 5 | MOV B, #167 | |
0005 | E590 | 6 | MOV A, P1 | |
0007 | FB | 7 | MOV R3, A | |
0008 | 7C87 | 8 | M1: | MOV R4, #135 |
000A | EA | 9 | MOV A, R2 | |
000B | F5A0 | 10 | MOV P2, A | |
11 | ||||
000D | 00 | 12 | M2: | NOP |
000E | DCFD | 13 | DJNZ R4, M2 | |
0010 | E590 | 14 | MOV A, P1 | |
0012 | 9B | 15 | SUBB A, R3 | |
0013 | 400B | 16 | JC M3 | |
0015 | E590 | 17 | MOV A, P1 | |
0017 | FB | 18 | MOV R3, A | |
0018 | 0A | 19 | INC R2 | |
0019 | 0A | 20 | INC R2 | |
001A | 0A | 21 | INC R2 | |
001B | D5F0EA | 22 | DJNZ B, M1 | |
001E | 0132 | 23 | AJMP M5 | |
0020 | 7C87 | 24 | M3: | MOV R4, #135 |
0022 | C3 | 25 | CLR C | |
0023 | 1A | 26 | DEC R2 | |
0024 | EA | 27 | MOV A, R2 | |
0025 | F5A0 | 28 | MOV P2, A | |
29 | ||||
0027 | 00 | 30 | M4: | NOP |
0028 | DCFD | 31 | DJNZ R4, M4 | |
002A | E590 | 32 | MOV A, P1 | |
002C | 9B | 33 | SUBB A, R3 | |
002D | E590 | 34 | MOV A, P1 | |
002F | FB | 35 | MOV R3, A | |
0030 | 40EE | 36 | JC M3 | |
0032 | 00 | 37 | M5: | NOP |
38 | END |
A51 MACRO ASSEMBLER 78 24/12/0113:46:28 PAGE 2
SYMBOL | TABLE | LISTING |
------------ | ------------- | ------------ |
NAME | T Y P E | VALUE | ATTRIBUTES | |
B. . . . . . . . . . . | D | ADDR | 00F0H | A |
M1 . . . . . . . . . | C | ADDR | 0008H | A |
M2 . . . . . . . . . | C | ADDR | 000DH | A |
M3 . . . . . . . . . | C | ADDR | 0020H | A |
M4 . . . . . . . . . | C | ADDR | 0027H | A |
M5 . . . . . . . . . | C | ADDR | 0032H | A |
P1 . . . . . . . . . . | D | ADDR | 0090H | A |
P2 . . . . . . . . . . | D | ADDR | 00A0H | A |
P78. . . . . . . . . | N | NUMB | ----- |
REGISTER BANK(S)USED: 0
ASSEMBLY COMPLETE. 0WARNING(S), 0 ERROR(S)
P2
P1
CP
ALE
PSEN
RD
Приложение1Амплитудныйдетектор
Uупр
VD1
L1
К572ПА1
AD 7575
8 р
8 р
~
D B0
D B1
D B2
D B3
D B4
D B5
D B6
D B7
BUSY
W
CS
RD
C1
Uk
Uk+1
Структурнаясхема управлениянастройкойприёмника.МГАПИ
Курсовой проект
Группа ПР-7
Специальность 2008
Студент РозенфельдА.
2001г.