Смекни!
smekni.com

Проектирование цифрового сглаживающего фильтра (стр. 3 из 4)

Формат двухбайтового слова, загружаемого в таймер, представлен на рисунке.

Рис. 1 Формат команды управления таймером

Два старших бита М2М1 задают один из четырех режимов работы таймера, при которых вырабатываются соответствующие сигналы на выходе TIMEROUT (рис. 6.56), В режиме 0 поддерживается выходной сигнал TIMEROUT = 1 в течение первой половины счета и TIMEROUT —0 в течение второй. При нечетном N первый полупериод счета, соответствующий высокому уровню выходного сигнала, оказывается на единицу больше второго. Режим 1 аналогичен режиму 0 с той разницей, что каждый раз по окончании счета производится автоматическая перезагрузка N из регистра хранения в счетчик и повторный запуск счетчика. Таким образом, таймер работает в непрерывном режиме деления на N частоты повторения входных импульсов и генерирует выходной сигнал симметричной формы (скважность равна двум). В режиме 2 после окончания счета формируется одиночный импульс напряжения низкого уровня, длительность которого равна одному периоду входных (счетных) импульсов. Режим 3 отличается от режима 2 автоматической перезагрузкой и перезапуском счетчика, что обеспечивает непрерывность работы таймера. Это режим деления частоты с выработкой выходного сигнала несимметричной формы (скважность зависит от значения N).

Рис .2 Временная диаграмма работы таймера

Таблица 3: Режимы работы таймера

Режим работы таймера НАИМЕНОВАНИЕ РЕЖИМА
0 Ждущий мультивибратор с программным запуском
1 Делитель частоты, генератор меандра
2 Делитель частоты, генератор импульсов несимметричной формы
3 Генератор задержанного строба

Для нашего случая таймер использует третий режим работы.

Таким образом, управляющее слово таймера будет иметь следующий вид


Алгоритм основной программы


Обоснование аппаратной части устройства

Набор К1821 определяет типовой состав аппаратных средств, образующих структуру вычислительного ядра системы. В его состав входят МП, ОЗУ, ПЗУ, схемы формирования сигналов синхронизации, микросхемы формирования сигналов управления системой. Полная структурная схема МП- устройства получается при объединении структуры вычислительного ядра и дополнительных аппаратных узлов.

Аппаратный состав фильтра в целом уже определен, незатронутым остается преобразователь ток-напряжение. Также следует произвести согласование адресов ОЗУ, ПЗУ, портов ввода-вывода с адресами МП.

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

Необходимо также обеспечить соответствие адресных пространств ВМ85, РФ55 и РУ55. Так как для адресации ПЗУ необходимо 11 адресных линий, а для адресации ОЗУ – 8, то у МП остается еще 5 свободных адресных линий, которые можно использовать для выбора микросхем в процессе работы фильтра. Кроме того, необходимо учесть адресацию внутренних объектов РФ55 и РУ55.

Адресация портов и регистров направления передачи данных РФ55 осуществляется в соответствии с таблицей:

AD1 AD0 Адресуемый объект
0 0 Порт А
0 1 Порт В
1 0 Регистр направления передачи данных порта А
1 1 Регистр направления передачи данных порта В

Адресация внутренних узлов РУ55:

А2 А1 А0 Адресуемый объект
0 0 0 Регистру РУС и РСС
0 0 1 Порт А
0 1 0 Порт В
0 1 1 Порт С
1 0 0 Таймер (младший байт)
1 0 1 Таймер (старший байт)

В микросхемах РФ55 и РУ55 предусмотрены изолированные адресные пространства памяти и ввода-вывода. Для включения РФ55 в работу существует еще два входа – CS1 и CS2 (РУ55 – CS).

Разработка и отладка программы на языке команд микропроцессора

Как было показано ранее общий алгоритм программы состоит из двух основных частей: программы инициализации и основной программы (программы обработки отсчетов).

Алгоритм фильтрации:

Для хранения промежуточных результатов вычисления в ОЗУ выделяется область памяти. Она распределяется, как показано в таблице

Адрес ОЗУ Данные Адрес ОЗУ Данные
0801
0818
0802
0819
0803 081A
0804 081B
0805
081C
0806
081D
0807
081E
0808
0809
080A
080B
080C

Подготовка данных к следующим циклам обработки производится по правилу прибавления "-1" к индексам отсчетов

т.е. отсчет
становится
,
->
и т.д.

Отладка программы

Отладка программы производилась с использованием специального набора программ. В его состав входит программа-транслятор и отладчик. Транслятор преобразует исходную программу, написанную на языке ассемблера, в результирующую – так называемую объектную программу на языке команд микропроцессорной системы. Кроме объектной программы транслятор выдает листинг программы, содержащий распечатку исходной и объектной программ, таблицы использованных идентификаторов, сообщения об обнаруженных ошибках и другие виды диагностической информации, необходимые для отладки и документирования программы.

Также необходима программа-отладчик, позволяющая проводить весь цикл работ по отладке. В его состав входит система моделирования и отладки, состоящая из имитатора МП системы и программы управления отладкой.

Листинг программы приведен в приложении.

Цель отладки: в случае успешной отладки части программы сделать заключение о том что вся программа будет успешно работать.

Средства отладки: программное обеспечение выполненное руководителем курсового проекта Сальниковым Николай Ивановичем в виде программ DEB80.EXE, ASM80.EXE

Ручной просчёт:

Отладка программы в данной курсовой работе произведена следующим образом, т.е. произведена отладка подпрограммы PP6 умножения на 0.25. С помощью отладчика я выхожу на нужную мне строку программы и ввожу значения аккумулятора в данном случае

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

конечно о полученном результате можно говорить с определённой точностью, т.к. очевидно что при представлении 10-го числа 2-м с ограниченным числом разрядов точность уменьшается. Все эти проанализированные данные сохраняются в файл musor.trs (см. приложение)

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