- •1 Постановка задачи
- •2 Формализация задачи
- •2.1 Функциональная схема цифрового фильтра
- •2.2 Исходное состояние фильтра после включения питания
- •2.3 Формализация настроек для инициализации фильтра
- •2.4 Формализация определений для рабочего цикла фильтра
- •3 Разработка и описание общего алгоритма функционирования фильтра
- •4 Обоснование построения аппаратной части фильтра
- •5 Разработка и отладка программы на языке команд мк
- •5.1 Исходные определения и ручной расчет результатов работы программы: "Цифровой фильтр (нижних частот)"
- •6 Расчет быстродействия фильтра
- •7 Анализ характеристик фильтра для заданных и реальных значений коэффициентов (нули и полюса, ачх, фчх, оценка устойчивости)
- •8 Заключение (оценка результатов проектирования)
- •9 Список использованных источников
3 Разработка и описание общего алгоритма функционирования фильтра
Общий алгоритм функционирования фильтра строится на основе анализа задачи, проделанного в предыдущих разделах, и включает в себя все функции устройства, реализуемые аппаратно или программно. Он содержит также все сигналы и сообщения, необходимые для связи аппаратно-реализуемых операций (сигналы и сообщения, которые обеспечивают взаимодействие аппаратной части фильтра и программы).
Общий алгоритм функционирования фильтра приведен на рисунке 2. Работа фильтра начинается с подачи питания. Импульс, сформированный схемой сброса (дифференцирующая RC-цепь) при подаче питания, обнуляет программный счетчик МК и инициирует формирование импульса сброса RST для установки МК в исходное состояние. Исходное состояние МК после сброса однозначно определено и его следует учитывать при инициализации фильтра.
Программа инициализации МП-системы должна начинаться с нулевого адреса. При инициализации выполняются необходимые настройки аппаратных и программных модулей МК и МП-системы на заданные режимы функционирования и с определенными параметрами.
Таймер-счетчик Т/С0 (аппаратный узел) в режиме таймера настраивается на период переполнения, равный Тд, таймер запускается для формирования непрерывной последовательности импульсов с частотой дискретизации. Разрешаются внутренние прерывания от Т/С0, которые используются для программного формирования импульсов запуска АЦП, и внешние прерывания от входа - для пуска выполнения рабочего цикла фильтра по сигналам готовности данных от АЦП. Порт РВ РУ55 настраивается на вывод, РА РУ55 – на ввод данных из АЦП. Программа инициализации завершается операцией останова МК.
Из состояния останова МК выводится сигналом внутреннего прерывания от флага TF0 переполнения Т/С0. По данному прерыванию выполняется программный модуль формирования и вывода импульса пуска АЦП. После запуска АЦП программа снова переходит в состояние останова и находится в нем до следующего прерывания по входу сигналом готовности данных от АЦП.
Последующие операции (ввод, оперативные обращения к памяти, арифметические преобразования, преобразование кодов и вывод) в каждом цикле работы фильтра выполняется под управлением рабочей программы фильтра. Каждый рабочий цикл программы также заканчиваться остановом – ожиданием очередного прерывания.
4 Обоснование построения аппаратной части фильтра
Фильтр построен на основе микроконтроллера КР1830ВЕ31, ПЗУ КР1821РФ55, ОЗУ КР1821РУ55 (они составляют МП-систему) и АЦП AD7892AN-3. Перечисленных микросхем вполне достаточно для реализации поставленной задачи. Опишем каждую из них.
Микроконтроллер КР1830ВЕ31
Микросхема КР1830ВЕ31 включает в себя следующие основные блоки, которые необходимы для реализации фильтра:
8-разрядный центральный процессор с возможностью обработки операндов: бит, нибл (4 бита), байт, 2 байта;
Память данных емкостью 128 байт;
Возможность добавления памяти программ до 64 Кбайт путем подключения внешних микросхем;
32 – разрядный регистр общего назначения (РОН);
128 флагов пользователя (программиста) для фиксирования внешних или внутренних событий, хранения значений отдельных битов;
4 программируемых порта параллельного обмена (ввода/вывода);
Многорежимный порт последовательного обмена (ввода/вывода) со скоростью передачи информации от 110 бит/с до 1 Мбит/с;
Программируемая двухуровневая система прерываний, допускающая переопределять приоритеты при обработке внешних прерываний;
Двоичная и десятичная арифметика;
8-разрядный стек для хранения адресов возврата при выполнении подпрограмм и обработке прерываний;
Взаимодействие с внешней средой в стандарте ТТЛ-микросхем.
КР1821РФ55
В устройство РФ55 входит ПЗУ емкостью 2К х 8 бит и два 8-разрядных порта ввода-вывода. Каждая линия обоих портов может программироваться индивидуально и определятся как входная или выходная. В проектируемой системе порты не используются, так как достаточно для реализации портов РУ55.
КР1821РУ55
В устройство РУ55 входит статическое ОЗУ емкостью 256 х 8 бит, два 8-разрядных (А и В) и один 6-разрядный порты (С) ввода-вывода и 14-разрядный программируемый счетчик/таймер. Все разряды портов А и В используются для ввода-вывода параллельно, т.е. невозможна установка передачи индивидуально для каждого разряда. Порты А и В содержат внутренние регистры для запоминания пересылаемого байта данных.
Порт С имеет режимы работы, сведенные в таблицу №2.
Таблица 2
PC2 |
PC1 |
Линии порта С |
Назначение |
1 |
0 |
РС0-РС5 |
Ввод |
0 |
1 |
РС0-РС5 |
Вывод |
1 |
0 |
РС0 РС1 РС2 РС3-РС5 |
INTR A BF A STB A Вывод |
1 |
1 |
РС0 РС1 РС2 РС3 РС4 РС5 |
INTR A BF A STB A INTR В BF В STB В |
В таблице №2 используются обозначения: INTR А (В) – запрос прерывания по порту А (В); BF А (В) – буфер порта А (В) полон; STB А (В) – управляющий сигнал записи, соответствующий порту А (В). Таймер запускается загрузкой слова состояния в РУ55. Команды управления таймером сведены в таблицу №3.
Таблица №3
ТМ2 |
ТМ1 |
Описание команды таймера |
0 |
0 |
Холостая команда, не влияющая на работу таймера |
0 |
1 |
Немедленный останов таймера, если он находится в состоянии счета. Холостая команда, если таймер не запущен. |
1 |
0 |
Останов таймера после окончания текущего цикла счета. Холостая команда, если таймер не запущен. |
1 |
1 |
Пуск таймера. |
Формат управляющего слова РУ55 был показан выше. Для проектируемой системы был выбран 3й режим работы порта С для обеспечения условного вывода с квитированием.
AD7892AN-3
AD7892AN-3 представляет собой 12-разрядный АЦП с устройством выборки-хранения, генератором тактовых импульсов и многофункциональным интерфейсом, работающий от одного источника питания +5 В и реализующий алгоритм последовательных приближений с временем преобразования 1,3 мкс.
Устройство выборки-хранения имеет время хранения, позволяющее формировать цифровые коды с точностью до 12 разрядов для входной синусоиды с максимальной амплитудой ±10 В и частотой до 300 кГц. Для чтения цифрового кода можно использовать как параллельный 12-разрядный интерфейс, так и последовательный. Мы будем использовать параллельный интерфейс как более быстрый и простой с точки зрения программной реализации.
Выходной код является дополнительным. Числовые значения кода соответствуют значениям знакопеременного входного напряжения.
