Проект цифрового программного обнаружителя
Характеристика и назначение цифровых программных обнаружителей (ЦПО). Абстрактный синтез ЦПО с целью выявления взаимодействия его элементов и определения объема памяти. Выбор микроконтроллера, реализация алгоритма, ассемблирование и выполнение программы.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 02.04.2015 |
Размер файла | 356,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Введение
Исходные данные. Спроектировать ЦПО по критерию «3/5 -- 3» используя абстрактный синтез ЦПО. Период повторения зондирующих импульсов Тп=2мс, длительность tu=2мкс (в данном примере рассматривается фрагмент проектирования и количественные оценки не принципиальны). Элемент памяти -- синхронные триггеры типа D. Разработку данного автомата осуществляем на ПЛИС (в программе MaxPlus2) и микроконтроллере ATMEGA128 (программная среда VMLAB12).
Цель: найти функциональное решение построения ЦПО. Так как ЦПО является составной частью ЦА и обработке подлежит отраженный от цели сигнал, представляющий отклик на каждый очередной зондирующий импульс с периодом повторения Тп, то входная информация X представлена последовательным двоичным кодом. Необходимо принять решение о наличии сигнала, если Х i = 1 на трех из пяти смежных позиций (дискрет определяется Тп), и сформировать сигнал обнаружения «начала пачки» ун. Если Xi = 0 на трех смежных позициях -- сформировать сигнал «конец пачки» ук, при обязательном логическом условии: ук формируется только после ун. Тактовые импульсы должны быть синхронны с дискретами представления кода X и при их формировании целесообразно использовать зондирующий сигнал. цифровой обнаружитель микроконтроллер
Цифровые обнаружители
Прием сигналов в радиотехнических системах ведется, как правило, при наличии шумов. Это определяется стремлением при ограниченной мощности передатчика увеличить дальность действия радиосистемы. Природа источников шума разнообразна. Это и естественные шумы в виде излучения звезд, процессы, происходящие в атмосфере, и шумы, вызванные деятельностью человека. Наиболее значительными являются собственные шумы элементов радио технического тракта и, прежде всего, усилительных каскадов. Сквозной коэффициент усиления может достигать миллиона, а линейность усиления приводить к пропорциональному увеличению не только сигнала, но и шума. Поэтому и возникает задача обнаружения.
Цифровой обнаружитель -- это математический алгоритм, реализованный на аппаратном и/или программном уровне, который с заданной целью обнаруживает полезный информационный сигнал на фоне шума.
Эффективность работы обнаружителя оценивается характеристиками обнаружения вероятностями правильного обнаружения D, ложной тревоги F, пропуска цели R. При разработке любого обнаружителя строят зависимость характеристик обнаружения от соотношения сигнал/шум, а затем по соотношению сигнал/шум в реальной системе определяют, удовлетворяется ли требование технического задания о параметрах D, F, R. Существует много различных способов построения обнаружителей сигналов, учитывающих особенности конкретных систем. Наибольшее распространение в настоящее время получили цифровые обнаружители.
Безвесовое обнаружение
В таких обнаружителях вероятность пропадания импульса не зависит от его позиции в пачке, т.е. принимается, что пачка имеет прямоугольную огибающую. Такое допущение не вполне соответствует реальной действительности, но позволяет значительно упростить аппаратурную реализацию устройства обнаружения сигнала.
При построении безвесовых цифровых обнаружителей получили распространение критерии вида l/m - k, где l - количество импульсов в пачке, не искаженной шумами; m - количество единиц (суммарное или только на соседних позициях), по которому принимается решение о наличии сигнала; k - количество подряд следующих нулей, по которому принимается решение об окончании сигнала. Значение m, как правило, задается. Для выбора значения l не существует однозначных рекомендаций. Увеличение l приводит к уменьшению вероятности ложной тревоги, но увеличивает вероятность пропуска цели. Уменьшение l приводит к увеличению вероятности ложной тревоги. Для выбора значения l необходимо исследовать все возможные ситуации для определенных соотношений сигнал/шум и выбрать значение l, обеспечивающее требуемые вероятности правильного обнаружения и ложной тревоги. При этом всегда следует учитывать вероятность пропуска цели.
Синтезируем схему безвесового программного обнаружителя « l/m -k », в котором начало пачки фиксируется в соответствии с критерием «l/m» и конец пачки - при наличии k нулей на смежных позициях. Поскольку в этом случае не требуется запоминания всей пачки, то число разрядов в регистре памяти уменьшается до выбранного значения m<<n. Это приводит к значительному уменьшению аппаратных затрат.
Сигнал «начало пачки» является также и сигналом обнаружения, а значение l - порогом обнаружения. Следовательно, решение о наличии цели принимается, если на m позициях регистра памяти содержится не менее l единиц.
Цифровой программный обнаружитель (ЦПО) целесообразно рассматривать как цифровой автомат (ЦА). Под ЦА понимают устройство, предназначенное для переработки цифровой информации, причем выходной сигнал такого автомата, вырабатываемый в некоторый момент времени t + 1, зависит не только от выходных сигналов, поступивших в этот момент времени, но и от сигналов, поступивших в предшествующие моменты времени t. Предшествующие входные сигналы фиксируются в ЦА путем изменения его внутреннего состояния. Выходной сигнал такого автомата, таким образом однозначно определяется поступившими входными сигналами и его внутренним состоянием в данный момент времени. Этими же факторами определяется и то состояние, в которое ЦА переходит.
Решение 1
Произведем абстрактный синтез ЦПО с целью выявления взаимодействия его элементов и определения объема памяти ЦА, а затем структурный синтез, в результате которого разработаем функциональную схему автомата с учетом использования конкретных элементов.
Абстрактный синтез дополняют структурным и осуществляют в следующем порядке:
1) строится содержательная ГСА функционирования проектируемого ЦА;
производится разметка ГСА с учетом выбранной модели ЦА;
строится граф переходов ЦА;
заполняется структурная таблица;
кодируются внутренние состояния ЦА;
выполняется синтез комбинированной схемы ЦА (минимизация переключательных функций возбуждения элементов памяти и функций выходов ЦА);
составляется функциональная схема ЦА,
1.1 Составим содержательную граф-схему алгоритма (ГСА) проектируемого ЦА, руководствуясь заданием на разработку
ГСА составляю так, чтобы обеспечить выполнение необходимых операций и проверку логических условий в соответствии со словесным описанием алгоритма.
Заметим, что выходной сигнал представлен последовательным кодом, поэтому анализ произведем дискретно.
В данном случае на первом дискрете обнаружения сначала необходимо проверить условие Xi: если Xi =1, то изменить состояние ЦА из начального a0 в соответствующее этой ситуации a1; формируется выходной сигнал (e1) в противном случае ЦА сохраняет начальное состояние a0. Здесь и далее обозначение е (пустая буква) соответствует внутреннему состоянию ЦА, не вырабатывающему требуемые выходные сигналы. Далее анализируют ситуацию на каждом последующем дискрете.
Так, на втором дискрете возможны две ситуации:
a) если Xi= 1, то состояние a1 изменяют на новое a2.
b) если Xi= 0, то состояние a1 изменяют на новое a3.
На третьем дискрете также возможны две ситуации:
в варианте a) если Xi= 1, то состояние a2 изменяют на новое a4 , здесь мы имеем выполнение критерия обнаружения - формируется выходной сигнал (ун),
если Xi= 0, то состояние a2 изменяют на новое a5 и продолжается поиск импульса отклика
в варианте b) если Xi= 1, то состояние a3 изменяют на a5 и продолжается ожидание импульса отклика
если Xi= 0, то состояние a3 изменяют на новое a6 и продолжается поиск импульса отклика .
На четвертом дискрете возможны также две ситуации:
а) предыдущее состояние а4 : если Xi= 1, то состояние a4 не изменяется, здесь мы имеем выполнение критерия обнаружения - продолжаем формировать выходной сигнал (ун),
если Xi= 0, то состояние а4 изменяют на новое a7 , здесь мы имеем выполнение критерия обнаружения первого «пустого» интервала но продолжаем формировать выходной сигнал (ун), ;
предыдущее состояние а5 : если Xi= 1, то состояние a5 изменяют на a4 , здесь мы имеем выполнение критерия обнаружения - формируется выходной сигнал (ун),
если Xi= 0, то состояние а5 изменяют на новое a8 , и продолжается ожидание импульса отклика;
b) предыдущее состояние а5 : если Xi= 1, то состояние a5 изменяют на a4 , здесь мы имеем выполнение критерия обнаружения - формируется выходной сигнал (ун),
- если Xi= 0, то состояние а5 изменяют на новое a8 , и продолжается ожидание последнего импульса отклика;
предыдущее состояние а6 : если Xi= 1, то состояние а6 изменяют на a8 , и продолжается ожидание последнего импульса отклика;
- если Xi= 0, то состояние а6 изменяют на a0 , поиск завершен безрезультатно и следует возвратиться в «начало»;
Рассмотрим пятый дискрет, в нашем случае имеется последний шанс осуществить обнаружение начало пачки, если на предыдущих дискретах этого не произошло. Здесь также две ситуации
а) предыдущее состояние а7 - если Xi= 0, то состояние а7 изменяют на новое a9 , здесь мы имеем выполнение критерия обнаружения второго «пустого» интервала и продолжаем формировать выходной сигнал (ун), ;
- если Xi= 1, то состояние а7 изменяют на a4 , снимается информация о «пустых» интервалах , продолжаем формировать выходной сигнал (ун),
b) предыдущее состояние а8 : если Xi= 1, то состояние a8 изменяют на a4 , здесь мы имеем выполнение критерия обнаружения - формируется выходной сигнал (ун),
- если Xi= 0, то состояние а8 изменяют на a0 , поиск завершен безрезультатно и следует возвратиться в «начало»;
Рассмотрим шестой дискрет, в нашем случае только для варианта а), так как вариант b) либо равен варианту а) на третьем дискрете, либо началу программы.
Предыдущее состояние а9 - если Xi= 1, то состояние а9 изменяют на a4, снимается информация о «пустых» интервалах и продолжаем формировать выходной сигнал (ун),
- если Xi= 0, то состояние а10 изменяют на a0 ,то есть возвращение к «началу» программы
Составленная содержательная ГСА проектируемого ЦП представлена на рис. 1.
1.2 Содержательная ГСА
Размещено на http://www.allbest.ru
рисунок 1. ЦПО по критерию «3/5-3»
1.3 Построим граф переходов ЦА. Для этого осуществим разметку ГСА
Размещено на http://www.allbest.ru
рисунок 2. ЦПО по критерию 3/5-3 (модель Мили)
1.4 Заполним структурную таблицу.
таблица 1.
Структурная таблица
аm |
K(am) Q3Q2Q1Q0 |
as |
K(as) Q3Q2Q1Q0 |
x |
y |
D |
|
a0 |
0000 |
a1 |
0001 |
x |
- |
D0 |
|
a0 |
0000 |
a0 |
0000 |
? |
- |
- |
|
a1 |
0001 |
a2 |
0010 |
x |
- |
D1 |
|
a1 |
0001 |
a3 |
0011 |
? |
- |
D1, D0 |
|
a2 |
0010 |
a4 |
0100 |
x |
ун |
D2 |
|
a2 |
0010 |
a5 |
0101 |
? |
- |
D2 D0 |
|
a3 |
0011 |
a5 |
0101 |
x |
- |
D2 D0 |
|
a3 |
0011 |
a6 |
0110 |
? |
- |
D2 D1 |
|
a4 |
0100 |
a4 |
0100 |
x |
ун |
D2 |
|
a4 |
0100 |
a7 |
0111 |
? |
ун |
D2 D1 D0 |
|
a5 |
0101 |
a4 |
0100 |
x |
ун |
D2 |
|
a5 |
0101 |
a8 |
1000 |
? |
- |
D3 |
|
a6 |
0110 |
a8 |
1000 |
x |
- |
D3 |
|
a6 |
0110 |
a0 |
0000 |
? |
- |
- |
|
a7 |
0111 |
a4 |
0100 |
x |
ун |
D2 |
|
a7 |
0111 |
a9 |
1001 |
? |
- |
D3 D0 |
|
a8 |
1000 |
a4 |
0100 |
x |
ун |
D2 |
|
a8 |
1000 |
a0 |
0000 |
? |
- |
- |
|
a9 |
1001 |
a4 |
0100 |
x |
ун |
D2 |
|
a9 |
1001 |
a10 |
1010 |
? |
ук |
D3 D1 |
|
a10 |
1010 |
a1 |
0001 |
x |
- |
D0 |
|
a10 |
1010 |
a0 |
0000 |
? |
- |
- |
Уравнения сигналов возбуждения D получены как дизъюнкция конъюнкцией K(am)x(am,as).
Структура полученных формул такова, что в них многократно повторяются конъюнкции выходных сигналов триггеров Q. Это делает целесообразным введение отдельного дешифратора состояний автомата.
В рассматриваемом примере: введем дешифратор состояний ЦА со следующими выходными сигналами:
d0 = ;
d1 = ;
d2 = ;
d3 = ;
d4 = ;
d5 = ;
d6 = ;
d7 = ;
d8 = ;
d9 = ;
d10 = ;
Тогда выражения для выходных сигналов и сигналов возбуждения примут вид:
По полученной системе функций построим функциональную схему цифрового программного обнаружителя в среде разработки MaxPlus2 для ПЛИС семейства АLtera . ЦА изменяет свое состояние с приходом каждого тактирующего импульса (ТИ) и периодически проверяет цикл своей работы (который совпадает с циклом прохождения по ГСА). В качестве ТИ используем зондирующие импульсы РЛС. Учтем, что отраженный от цели сигнал (входная информация для ЦПО, полагаем, предварительно двоично-квантованная), всегда запаздывает относительно зондирующего сигнала. Необходимо произвести его запоминание на временном интервале от переднего фронта, отраженного от заднего фронта зондирующего импульса. Для этой цели достаточно применить RS-триггер с входными формирователями импульсов F1 , по входу S -- F1 по переднему фронту отраженного сигнала; по входу R -- F2 по заднему фронту зондирующего сигнала. Тогда выходной сигнал триггера будет входным сигналом триггера X ЦА. В качестве элементов памяти ЦА применим синхронные D-триггеры, позволяющие синхронизировать работу ЦА без дополнительных элементарных затрат.
Этап проектирования ЦПО по методике абстрактного синтеза на данном уровне проектирования завершен. Временные диаграммы иллюстрирующие работы спроектированного обнаружителя при различных вариантах входного взаимодействия приведены ниже.
рисунок 3. принципиальная схема ЦПО по критерию 3/5-3 (модель Мили)
рисунок 4. временная диаграмма работы ЦПО по критерию 3/5-3 .
использован код отклика 100111000
Решение 2. Программирование микроконтроллера
Выбор микроконтроллера
Исходным моментом этого этапа является выбор микроконтроллера. Его структура определяет характер обмена данными между устройствами системы, влияет на выбор схемы устройства ввода -- вывода. Недостаток вычислительных возможностей микроконтроллера может привести к необходимости выполнения ряда операций аппаратно, а это, в свою очередь, увеличивает аппаратные затраты.
С другой стороны, некоторые простейшие операции могут выполняться с помощью элементарных аппаратных средств, в то время как их программная реализация сопряжена с большими трудностями.
Таким образом, разумное сочетание аппаратных и программных операций позволяет снизить требования к вычислительным возможностям микроконтроллера и упростить реализацию системы в целом.
Выбор микроконтроллера осуществляется по следующим критериям:
состав комплекта, т. е. функциональные возможности набора взаимно совместимых БИС, которые могут быть использованы для построения законченного вычислительного устройства (включая устройство ввода -- вывода);
разрядность данных;
объем адресуемой памяти, который складывается из объема ОЗУ
и объема ПЗУ;
количество обслуживаемых внешних устройств и методы обмена
данными;
время выполнения простейших команд;
конструктивно-технологические и энергетические характеристики -- тип корпуса, напряжения источников питания, потребляемая мощность, климатические требования и т. п.
Кроме того, следует учитывать удобство математического обеспечения микроконтроллера, т. е. систему команд и состав прилагаемых типовых подпрограмм (например, подпрограмм умножения, тригонометрических функции и др.).
По условию выполнения курсового проекта в качестве главного устройства микроконтроллера выберем ATMEGA128 AVR® микроконтроллер с 128 Кбайт Flash памятью с поддержкой внутрисистемного программирования.
2.1 Среда разработки VMLAB
VMLAB ? это программное средство макетирования микроконтроллерных систем. Преимуществом VMLAB перед другими симуляторами является возможность симуляции, как периферийных узлов микроконтроллера, так и внешних устройств ввода/вывода. VMLAB поддерживает следующие модели микроконтроллеров AVR: ATiny11, ATiny12, ATiny15, AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4433, AT90S8515, AT908535, ATmega8, ATmega16, ATmega161, ATmega162, ATmega32, ATmega64, ATmega128.
Кроме того, VMLAB поддерживает плату разработки STK500, которая допускает программирование всех устройств AVR.
2.2 Создание нового проекта
Алгоритм создания нового проекта:
- создать рабочую папку в каталоге VMLAB. В этой папке будет храниться созданный проект;
- открыть меню Project/New Project;
- в появившемся диалоговом окне в поле Select Project File name and location нужно нажать кнопку Enter name/browse/directory для указания директории расположения нового проекта и задания имени проекта, например Project.prj;
- в поле Select micro нужно указать модель МК, который будет симулироваться;
- в поле Select software toolchain указываются пути для использования компилятора языка Си и др. компиляторов;
- в поле Add source code file(s) будут содержаться файлы с именем, как и у файла проекта, и расширениями *.asm и *.hex. Собственно, файл Project.asm и является тем файлом, в котором будет написан текст программы. Для его выбора необходимо нажать кнопку Add this. Если же этот файл уже создан, то его можно включить в проект кнопкой Browse+Add;
-д ля завершения работы с процедурой нужно нажать кнопку Ок.
В результате окно файла проекта будет иметь вид, показанный на рисунке 5
Рис. 5 Окно файла проекта
2.4 Ассемблирование и выполнение программы
Подготовленный текст программы на языке ассемблера должен быть преобразован в форму двоичных команд, которые могут быть выполнены микроконтроллером. Ассемблирование можно выполнить командой Project/Build (F9). При отсутствии ошибок отладчик в рабочей папке создаст файлы с именем Project и расширениями .asm, .hex, .prj, .lis, .ly1, .map, .obj. Если же ошибка возникла, то она будет обозначена восклицательным знаком. После устранения ошибки нужно будет снова выполнить команду Project/Build (F9).
Выполнение программы можно производить в автоматическом или же пошаговом режиме при помощи соответствующих команд. Для выполнения программы можно использовать следующие режимы:
- автоматический. Этот режим можно задать, вызвав команду Go/Continue (F5) из падающего меню Run;
- пошаговый без входа в подпрограммы. Режим задается командой Step over (F6) из падающего меню Run;
- пошаговый с входом в подпрограммы. Режим задается командой Step into (F7) из падающего меню Run;
- пошаговый с входом в подпрограммы и с автоматическим выполнением команд. Режим задается командой Step out (Shift+F7) из падающего меню Run;
- автоматический пошаговый режим. Для входа в этот режим нужно сначала установить команду Animate code из падающего меню Run, а после этого вызвать команду Go/Continue (F5) из того же падающего меню. Для отключения автоматического пошагового режима необходимо снова выполнить команду Animate code.
Остановить выполнение программы можно через меню Run/Pause program (Shift+F5). Если необходимо сделать рестарт с сохранением текущих значений регистров, флагов и т.д., можно вызвать из меню Run команду Restart light (F8). Для полного рестарта МК в первоначальное состояние нужно воспользоваться командой Run/ Restart deep (Shift+F8).
Часто возникает необходимость прервать выполнение программы в каком-то определенном месте. Это можно сделать при помощи точек останова. Команды работы с точками останова находятся в падающем меню Debug. Для установки точки останова нужно поставить курсор в той строке, где будет останов, и вызвать команду Toggle breakpoint (Ctrl+P). Есть и более простой способ установки точки: в левой части окна кодов напротив команд расположены квадраты зеленого цвета ? это и есть точки останова. Остается только нажать курсором на него и точка будет установлена. Для снятия точки нужно снова нажать зеленый квадрат.
2.5 Алгоритм
Алгоритм реализован с учетом программно-аппаратных возможностях контроллера ATMega128. Будет использован обработчик прерываний от таймера 1.
Алгоритм состоит из двух частей : основного цикла и подпрограммы обработки прерывания. Основной блок программы, схема которого представлена на рисунке 6, выполняет инициализацию регистров и выполняет цикл анализа входного сигнала по порту РА0 и при условии , что этот импульс равен 1.5 - 2 мкс, в регистр regX заносится значение «1». Далее программа повторяется до тех пор пока не придет прерывание от таймера1.
Прерывание от таймера1 вызывает подпрограмму обработки ответного импульса (ОИ) , блок схема представлена на рисунке 7. Здесь выполняется подсчет и сохранение в регистрах информации о количестве импульсов отклика , а при соблюдении условия (otkl1/takt - otkl0 ) - формирования сигнала УН. Если же УН уже был сформирован выполняется подсчет и сохранение в регистрах информации о количестве «пустых интервалов», и при соблюдении условия (otkl1/takt - otkl0 )- формирования сигнала УК.
рисунок 6. Блок схема основного цикла программы (ожидание входного импульса).
рисунок 7. Блок схема подпрограммы обработки входного импульса
Причем за один проход подпрограммы обрабатывается только один дискрет. Это позволяет нам использовать эту подпрограмму для формирования зондирующего импульса (ЗИ). Формирование зондирующего импульса реализуем в начале подпрограммы.
Напишем программу в среде разработки VMLAB312
В файле проекта пропишем частоту работы микроконтроллера 4 МГц, укажем какие из выходов отобразить на осциллографе и какие регистры и таймеры мы используем:
; ************************************************************
; PROJECT: ЦПО
; AUTHOR: Хаустов А.Н & Кармаза В.С.
; ************************************************************
; Micro + software running
; ------------------------------------------------------------
.MICRO "ATmega128"
.PROGRAM "kurs_1.asm"
.TARGET "kursovoi_1.hex"
.TRACE ; Activate micro trace
; ------------------------------------------------------------
.POWER VDD=5 VSS=0 ; Power nodes
.CLOCK 4meg ; Micro clock
.STORE 250m ; Trace (micro+signals) storage time
.plot V(PB0)V(PA0)V(PB1)V(PB2)V(PB5) ; вывод на осциллограф
R1 PB4 PA0 1K ; подача имитационного сигнала на вход
r2 PA0 GND 100K ; согласование входного сопротивления
; Micro nodes: RESET, AREF, PA0-PA7, PB0-PB7, PC0-PC7, PD0-PD7, PE0-PE7, PF0-PF7, PG0-PG4, TIM1OVF
; Define here the hardware around the micro
; ------------------------------------------------------------
Далее пишем программу на языке Assembler
; ******************************************************
; программа ЦПО
; ******************************************************
.include "C:\VMLAB\include\m128def.inc" ; присоединение файла описаний
; *******описание переменных и констант********
.def temp =r16 ; рабочий registr
.def regX =r17 ; регистр контроля импульсова отклика
.def tempX =r18 ; количество импульсов
.def inter =r19 ; количество интервалов
.def tempA =r20 ; определение входного импульса
.def comb=r21 ; имитатор комбинации отклика
.equ kdel=1000 ; коэффициент задержки периода зондирующего импульса (ЗИ)
.equ otkl1=3 ; критерий определения начала пачки (УН)
.equ takt=5 ; критерий тактов для определения УН
.equ otkl0=3 ; критерий определения конца пачки (УК)
.equ zadotkl=255 ; задержка сигнала отклика
.equ imitat=0b11010000 ; код имитации отклика
;-------------xxxxxxxx----
;------начало прогаммного кода-------------------
.cseg ; выбор сегмента програмного кода
.org 0 ; установка адреса в ноль
reset:
rjmp start ; прыжок на начало программы
.org 0x18 ; установка адреса 0x18
jmp m1 ; Addr $18 вектор обработки прерывания таймера Т1 по совпадению канал А
; *****старт программы*************
start:
ldi temp,0 ; инициализация портов вводв вывода
out DDRA,temp ; порт А на ввод
ldi temp,0xff
out DDRB,temp ; порт В на вывод
ldi temp,0 ; обнуление портов ввода вывода
out PORTA,temp ; запись 0 в порт А
out PORTB,temp ; запись 0 в порт В
ldi XL,low(ramend) ; инициализация стека
out SPL,XL ;
ldi XH,high(ramend)
out SPH,XH ;
;-------синхрогенератор---------
ldi comb,imitat ; запись в регистр комбинации кода имитации
ldi regX,0 ; обнуление регистра наличия отклика
ldi inter,0 ; обнуление регистра счетчика интервалов
ldi tempX,0 ; обнуление регистра счетчика импульсов отклика
; включение таймера 2 мс
ldi temp,0x0A
out TCCR1B,temp ;разрешаем счет таймера (сброс по совпадению) с коэффициентом деления 8
ldi temp,high(kdel) ;устанавливаем константу в регистр совпадения
out OCR1AH,temp ; * старший байт
ldi temp,low(kdel) ; *
out OCR1AL,temp ; младший байт
;
ldi temp,0b00010000
out TIMSK,temp ; устанавливаем маску прерываний
sei ; разрешение прерываний
main:
; _---------------ожидание отклика----------------
ldi tempA,0 ; обнуляем счетчик идентификации импульсов
main1:
in temp,PINA ;опрашиваем состояние порта А
sbrs temp,0 ; проверяем наличие импульса отклика на входе РА0
rjmp main ;если нет то в начало
inc tempA ; идентификация импульса (4 опроса)
cpi tempA,4 ; если счетчик не равен 4 ,
brne main1 ; переход в начало опроса импульсов .
cbi PORTB,4 ; окончание формирования ипульса X
ldi regX,1 ; пойман ответветный импульс
rjmp main ; ожидание прерывания по таймеру
;**************************************************
;-------подпрограмма обработки отклика---------
;**************************************************
m1:
cbi PORTB,5 ; окончание формирования ипульса X
cbi PORTB,3; окончание формирование начала пачки (одиночный УН)
sbi PORTB,0 ; начало формирования зондирующего ипульса
nop
nop
nop
nop
nop
cbi PORTB,0 ; окончание формирования зондирующего ипульса (2мкс)
;*********** цикл проверки***************
in temp,PINB ; считываем информацию по порту В
sbrc temp,2 ; проверка сформирован УК (второй бит порта В)
cbi PORTB,2; если да то сброс второго бита порта В
sbrc temp,1 ; проверка первого бита порта В ( сформирован УН ?)
rjmp m2 ; если да переход на формирование УК
;---------формирование начала пачки------------
sbrs regX,0 ; был ли импульс отклика :
rjmp m3 ; переход если небыло
inc tempX ; увеличиваем счетчик импульсов отклика
clr regX ; обнуляем регистр Х
m3:
cpi tempX,0 ; проверка были ли импульсы отклика
breq m9 ; если нет - выход
inc inter ; увеличиваем на единицу счетчик интервалов
cpi tempX,otkl1 ; проверка количества импульсов в пачке
brne m5 ; если не последний то переход
sbi PORTB,1; формирование начала пачки (УН)
sbi PORTB,3; формирование начала пачки (одиночный УН)
rjmp m6
m5:
cpi inter,takt ; проверка номера интервала
brne m9 ; если не последний интервал то переход
m6:
clr tempX ; сброс счетчика импульсов отклика
clr inter ; сброс счетчика интервалов
rjmp m9
;----------формирование конца пачки------------
m2:
sbrc regX,0 ; был ли импульс отклика
rjmp m7 ; переход если был
inc tempX
cpi tempX,otkl0 ; проверка количества 0 импульсов в пачке
brne m9 ; если последний то переход
cbi PORTB,1; формирование окончание начала пачки (УН)
sbi PORTB,2; формирование начала конца пачки (УК)
m7:
clr regX
clr tempX
m9:
;--------имитация отклика----------
ldi temp,zadotkl ; устанавливаем задержку на приём отклика
m11:
nop
nop
nop
nop
dec temp ; счетчик задержки равен 0 ?
brne m11 ; если нет то продолжаем задержку
lsl comb ; читаем побитно код имитации отклика (сдвиг влево)
brcc m10 ; если бит равен 0 то выход
sbi PORTB,4 ; иначе формирование ипульса для входа РА0
sbi PORTB,5 ; формирование ипульса X (показательный)
m10:
reti ; выход из подпрограммы
В регистр кода имитации сигнала записываем значение в бинарном коде 11010000. После компиляции запускаем программу на исполнение. На экране осциллографа мы можем наблюдать (рисунок 8):
сформированные зондирующие импульсы РВ0;
имитированные импульсы отклика поданные на вход PА0;
сформированные импульсы начала пачки УН(непрерывный) (РВ1);
сформированные импульсы конца пачки УК (РВ2);
сформированные импульсы начала пачки УН (одиночный) (РВ3);
сформированные импульсы счета входных импульсов Х (РВ5);
рисунок 8. осциллограмма работы программы.
Список использованной литературы
1. Гришин Ю.П., Казаринов Ю.М., Катиков В.М. Проектирование импульсных и цифровых устройств радиотехнических систем. - М.: Высш.шк., 1985. - 319 с.
2. Лихтциндер Б.Я., Кузнецов В.Н. Микропроцессоры и вычислительные устройства в радиотехнике: Учеб пособие. - К.: Высшая шк., 1988. - 272с.
3. Новожилов О.П. Основы цифровой техники/ Учебное пособие. - М.: РадиоСофт, 2004, 528 с.
4. Стешенко В.Б. Практика автоматизированного проектирования радиоэлектронных устройств. - М.: «Нолидж», 2002, 768 с.
Размещено на Allbest.ru
...Подобные документы
Функциональная спецификация и структурная схема автомобильных вольтметра-термометра-часов. Описание ресурсов микроконтроллера, назначение выводов микросхемы. Ассемблирование и разработка алгоритма работы, коды кнопок и описание команд управления.
курсовая работа [2,0 M], добавлен 27.12.2009Управляющий цифрового автомат типа Мура. Абстрактный и структурный синтез автомата, построена функциональная схема. Функции выходов и возбуждения элементов памяти. Моделирование на ПК с использованием симулятора ModelSim. Описание автомата на языке VHD.
курсовая работа [214,2 K], добавлен 07.11.2010Функциональная спецификация, описание объекта, структура системы и ресурсов микроконтроллера. Ассемблирование, программирование микроконтроллера и разработка алгоритма работы устройства, описание выбора элементной базы и работы принципиальной схемы.
курсовая работа [2,2 M], добавлен 02.01.2010Выбор и обоснование основных технических решений микроконтроллера. Разработка алгоритма рабочей программы. Расчет потребляемой мощности и определение требований к источникам питания. Описание модулей программы и ее отдельных функциональных модулей.
курсовая работа [210,3 K], добавлен 25.11.2013Разработка системы адаптивного аналого-цифрового преобразования (АЦП) на базе однокристального микроконтроллера. Сравнение АЦП различных типов. Анализ способов реализации системы, описание ее структурной схемы, алгоритма работы, программного обеспечения.
дипломная работа [3,0 M], добавлен 29.06.2012Разработка микроконтроллерной системы на основе AT90S8535 подключенных к нему электроприборов. Эскизный проект цифрового устройства ограниченной сложности. Расчет потребляемой мощности таймера, алгоритма управления, программы микроконтроллера.
курсовая работа [292,7 K], добавлен 12.04.2009Описание Автоматического Определителя Номера (АОНа). Характеристики микроконтроллера Z86E0812PSC, ЖК индикатора PANAPHONE. Ассемблирование и разработка алгоритма работы устройства. Управление АОН и описание функциональных узлов МПС, принципиальная схема.
курсовая работа [913,0 K], добавлен 26.12.2009Изучение системы команд МК КР1830ВЕ31, их содержания, способов адресации на примере использования в программе цифрового фильтра. Взаимодействие аппаратной части фильтра и программы. Технология отладки программы с использованием программного отладчика.
контрольная работа [1,4 M], добавлен 05.03.2011Минимизация булевых функций. Исследование алгоритмов синтеза цифровых устройств систем автоматического управления. Разработка программного обеспечения для реализации оптимального метода синтеза. Проект цифрового устройства статистического мажорирования.
отчет по практике [3,9 M], добавлен 28.04.2015Выбор структуры одноплатного микроконтроллера. Модули памяти микроконтроллера. Селектор адреса портов ввода/вывода и возможность изменения селектируемых адресов. Деление адресного пространства на окна. Нумерация точек в схеме цифрового фильтра.
курсовая работа [204,3 K], добавлен 10.11.2013Функциональная спецификация и структурная схема электронных автомобильных часов-термометра-вольтметра. Разработка алгоритма работы и принципиальной электрической схемы. Получение прошивки программы для памяти микроконтроллера в результате ассеблирования.
курсовая работа [2,0 M], добавлен 26.12.2009Выбор элементной базы. Анализ ресурсов ввода-вывода. Структура алгоритма программы. Состав и назначение отдельных элементов. Подпрограммы табличной перекодировки напряжения в давление, вывода числа на индикацию, обработчика прерывания от таймера.
курсовая работа [1,1 M], добавлен 21.12.2010Проектирование функциональной и принципиальной схем цифрового вольтметра. Выбор устройства управления (микроконтроллера), источника и инвертора напряжения, индикаторов. Функции и структура управляющей программы, ее алгоритм и глобальные переменные.
курсовая работа [84,8 K], добавлен 14.03.2014Синтез цифрового аппарата Мура с D-триггером по заданному графу микропрограммы автомата. Функции прибора: ввод, вывод, хранение информации, выполнение микроопераций и вычисление логических условий. Составление эскиза. Синтез комбинационной схемы.
курсовая работа [58,3 K], добавлен 15.12.2010Цифровые автоматы - логические устройства, в которых помимо логических элементов имеются элементы памяти. Разработка микропрограммного цифрового автомата на основе микросхем малой степени интеграции. Синтез преобразователя кода и цифровая индикация.
курсовая работа [2,7 M], добавлен 26.05.2012Исследование процесса разработки цифрового регистратора речевой информации с твердотельной памятью. Характеристика оцифровки звука и его хранения на цифровом носителе, выбора модуля микроконтроллера. Расчет необходимого объема памяти на 10 часов записи.
дипломная работа [468,6 K], добавлен 12.12.2011Построение схемы цифрового устройства и разработка программы, обеспечивающей работу устройства как цифрового сглаживающего фильтра. Отладка программы. Оценка быстродействия устройства. Преимущества и недостатки цифровых фильтров перед аналоговыми.
курсовая работа [526,8 K], добавлен 03.12.2010Структурная схема микропроцессорного устройства для определения частоты сигнала. Выбор микроконтроллера, описание алгоритма нахождения частоты. Алгоритм работы программы управления микропроцессорным устройством. Программа работы микропроцессора.
курсовая работа [605,7 K], добавлен 24.11.2014Проект структурной схемы микропроцессорной системы управления. Блок-схема алгоритма работы МПС; создание программы, обеспечивающей его выполнение. Распределение области памяти под оперативное и постоянное запоминающие устройства. Оценка ёмкости ПЗУ и ОЗУ.
курсовая работа [467,9 K], добавлен 21.05.2015Алгоритмическое, логическое и конструкторско-технологическое проектирование операционного автомата. Изучение элементной базы простейших цифровых устройств. Разработка цифрового устройства для упорядочивания двоичных чисел. Синтез принципиальных схем.
курсовая работа [2,5 M], добавлен 07.01.2015