- •Содержание пояснительной записки
- •1. Постановка задачи (введение)
- •7) Расчёт быстродействия фильтра.
- •2. Формализация задачи (определение функций аппаратной части и программы и способов их реализации)
- •2.1. Функциональная схема цифрового фильтра.
- •2.2. Исходное состояние фильтра после включения питания.
- •2.3. Формализация настроек для инициализации фильтра
- •2.4. Формализация определений для рабочего цикла фильтра.
- •3. Разработка и описание общего алгоритма функционирования фильтра
- •4. Обоснование построения аппаратной части фильтра
- •5. Разработка и отладка программы на языке команд мк
- •Содержание файла программы «1010-sme.Asm».
- •Исходные определения и ручной расчет результатов работы программы: «Цифровой фильтр (вычислитель)»
- •Зададим состояние памяти для входных и выходных отсчётов максимальной амплитуды:
- •6. Составление электрической принципиальной схемы и описание функционирования фильтра
- •7. Расчет быстродействия фильтра
- •Длительность команд программы.
- •9. Заключение (оценка результатов проектирования)
- •10. Список использованных источников
Исходные определения и ручной расчет результатов работы программы: «Цифровой фильтр (вычислитель)»
1)
Код АЦП для входного отсчета максимальной
амплитуды:
,
после смены знака
2) Получение масштабированного отсчета:
После
смены знака
3) Получим произведение P:
После
смены знака
4) Получим максимальные положительный и отрицательный Yn:
Зададим состояние памяти для входных и выходных отсчётов максимальной амплитуды:
Адрес ячейки памяти |
Содержимое ячейки памяти |
7001h (порт РА РУ55) |
|
32h |
|
35h |
|
Результат |
Вычисляется программой в текущем цикле
|
После согласования с АЦП |
|
Адрес ячейки памяти |
Содержимое ячейки памяти |
7001h (порт РА РУ55) |
|
32h |
|
35h |
|
Результат |
Вычисляется программой в текущем цикле
|
После согласования с АЦП |
|
Произведем ручной расчет уравнения, подставив максимальные значения; ±Yn=±0,497983±0,497983±0,497983*0,0081=±0,999999
Расчётные значения и соответствующие им значения, вычисляемые программой в эмуляторе, идентичны – программа работает правильно (без переполнения и логических ошибок).
Небольшие расхождения в результатах происходят по следующим причинам:
1) Коэффициент масштабирования в двоичном коде равен 0,49609375(10).
2) При умножении двоичных кодов 8 младших разрядов теряются.
Максимальный положительный результат, полученный в программе.
Максимальный отрицательный результат, полученный в программе.
6. Составление электрической принципиальной схемы и описание функционирования фильтра
Принципиальная схема цифрового фильтра состоит из следующих компонентов: МК КР1830BE31, ПЗУ КР1821РФ55, ОЗУ КР1821РУ55, АЦП AD7892AN-3 и ЦАП AD9708.
Подключение БИС РФ55 к микроконтроллеру BE31 и адресация операндов.
Для выбора РФ55 и внутренних узлов в их составе с МК используются свободные линии шины адреса A11…A15 (линии P2.3…P2.7 порта P2, через который выводится старший байт адреса), что позволяет обойтись без применения дешифратора.
Адресная линия P2.4 (A12) – для выбора БИС РФ55 по линии СS2; P2.3(A11) для выбора по линии IO/M внутреннего регистра, порта или ячейки ПЗУ в БИС РФ55.
Подключение БИС РУ55 к микроконтроллеру BE31 и адресация операндов.
Для выбора РУ55 и внутренних узлов в их составе с МК используются свободные линии шины адреса A11…A15 (линии P2.3…P2.7 порта P2, через который выводится старший байт адреса), что позволяет обойтись без применения дешифратора.
Адресная линия P2.6 (A14) – для выбора БИС РУ55 по линии СS2; P2.5 (A13) для выбора по линии IO/M внутреннего регистра, порта или ячейки ОЗУ в БИС РУ55.
Подключение АЦП к микропроцессорной системе.
Поскольку в соответствии с ТЗ, разрядность данных равна 8, параллельная шина для чтения данных (выводы 21, 22, 23, 24, 25, 26, 27, 28 РУ55) подключена к старшим выводам чтения 12-разрядного кода отсчёта (выводы 16,15,13,12,11,10,9,8 АЦП). Остальные выводы не подключаются.
Подключение ЦАП AD9708.
Вывод WR МК через инвертор подключен к входу CLOCK. Вывод SLEEP заземлен (нормальный режим энергопотребления).
Описание функционирования фильтра.
При включении питания на входе RST КР1830ВЕ31 появляется короткий импульс, и микропроцессор переходит в исходное состояние, описанное выше. Далее процессор выполняет подпрограмму инициализации (настраивает порты и таймер-счетчик). После выполнения инициализации процессор выходит на метку STOP и ждет прерывания. После переполнения таймера-счетчика Т/С0, процессор переходит на вектор обработки прерывания от Т/С0 и выполняет подпрограмму запроса данных с АЦП, т.е. выдает импульс на выходе Р1.3 порта Р1, далее процессор ожидает следующего прерывания, т.е. снова выходит на метку STOP по команде RETI. Импульс с выхода Р1.3 микропроцессора поступает на вход АЦП. Когда код на выходе АЦП готов, на вход INT1 поступает импульс с выхода ЕОС. При появлении импульса на входе INT1 микропроцессор переходит на вектор обработки прерывания на входе INT1. В подпрограмме обработки прерывания от INT1 микропроцессор считывает входной код Xn с выхода внешнего устройства через порт РА КР1821РУ55 и выполняет вычисление Yn. Далее микропроцессор записывает код Yn в порт РВ КР1821РУ55 и выполняет подпрограмму подготовки следующего цикла. При вводе кода Yn в порт РВ КР1821РУ55 микропроцессор формирует строб WR по которому выходной код копируется во входной регистр ЦАП. ЦАП преобразует выходной код в напряжение. Микропроцессор, выполнив программу подготовки следующего цикла, снова выходит на метку STOP по команде RETI и ждет следующего прерывания, по следующему прерыванию от таймера-счетчика Т/С0 программа повторяется.
