PIC16C711 это дешевый, высокопроизводительный, изготовленный по КМОП технологии 8-битный микроконтроллер. В основу процессора положена RISC архитектура, он имеет улучшенные характеристики ядра, внутренние и внешние прерывания. Устройство имеет два двунаправленных порта ввода/вывода, один из которых может быть использован как вход для аналого-цифрового преобразования, другой - как выход для ЦАП. Тактовая частота составляет 20MHz.
На рисунке 2.1 представлена структурная схема PIC16C711. Перечислим основные элементы схемы: АЛУ (ALU), где выполняются простейшие арифметические операции, а также логические операции; аккумулятор (W), где хранятся данные результатов вычислений; регистр состояния, в котором хранятся флаги результатов операций, а также биты выбора банка памяти; регистр косвенной адресации (FSR), через который непрямым образом можно обращаться к ОЗУ; память (RAM), организованная 8-битными специальными регистрами и регистрами общего назначения, рабочая область пользователя составляет 68x8; 13-битный счетчик команд (Program Counter), младшие 8 бит приходят из регистра PCL, старшие 5 из регистра PCLATH; ППЗУ (EPROM), составляет 1K 14- битных ячеек памяти; стек 8-ми уровневый, длина слова 13-бит, во время прерывания содержимое счетчика команд сохраняется в стек автоматически; два двунаправленных 8-битных порта А и В; 4-х канальный 8-битный АЦП (A/D); счетчик Timer0.
Рис. 2.1 – Структурная схема PIC16C711
К сожалению устройство не имеет внутреннего ЦАП. ЦАП будет внешним, его вход будет подсоединен к порту В. Применение внешнего ЦАП не ухудшит работу цифрового фильтра и не усложнит его структуру, так как ЦАП не нужно синхронизировать с временем выполнения программы, в отличие от АЦП.
Выбранный вариант технического решения полностью удовлетворяет техническому заданию. Микроконтроллер + внешний ЦАП позволяют создать гибкую, высокопроизводительную систему, удовлетворяющую требованиям микроминиатюрности, быстродействия, качества и простоты исполнения. Сравнивая данный микроконтроллер с большинством современных микроконтроллеров, можно сказать, что он обладает сравнительно низкой стоимостью и доступностью на рынке Украины. В современных системах обработки сигналов требуется высокая разрядность шины данных и АЦП для увеличения точности вычислений, также для этих целей необходимо, чтобы АЛУ могло вычислять операции с плавающей точкой. Выбранный микроконтроллер не имеет данных свойств, но он благодаря своему быстродействию и гибкости может вполне справиться с целью, поставленной в техническом задании на курсовой проект.
Архитектура процессора построена таким образом, что он способен выполнять команду за один цикл, кроме операций условных и безусловных переходов. Это означает, что время выполнения программы будет небольшим, и частота дискретизации АЦП будет удовлетворять условию обработки сигналов качественной телефонии. Ассемблер очень простой: пользователю необходимо выучить 35 команд. Последнее достоинство позволяет снизить время на подготовку к выполнению проекта.
3 СИНТЕЗ ПРОЕКТИРУЕМОГО УСТРОЙСТВА
Структурная схема типа реализации ЦФ приведена на рис.3.1. Параметры звеньев ЦФ следующие :
параметры звена
: ;параметры звена
: ;параметры звена
: .Рис. 3.1 – Структурная схема цифрового фильтра
Исходя из этой структуры, а также коэффициентов, для каждого звена составим разностные уравнения:
1) первое звено:
;2) второе звено:
;3) третье звено:
.Результирующее разностное уравнение для цифрового фильтра будет иметь вид:
.
4 РАЗРАБОТКА АЛГОРИТМА ПРОГРАММЫ
ПРОЕКТИРУЕМОГО УСТРОЙСТВА
Прежде чем приступить к программированию устройства необходимо основательно изучить его внутреннюю структуру и возможности ресурсов. Простейшая блок-схема проектируемого устройства приведена на рисунке 4.1 В ней учтены конфигурация портов и АЦП, вычисление разностного уравнения фильтра, результат вычислений выдается на порт В.
Начало
Порт А –
вход
выход
разностного
уравнения
Результата
На порт ВРисунок 4.1 – блок-схема работы цифрового фильтра
Опираясь на данную блок схему, начнем более тщательное
После конфигурации портов и запуска АЦП необходимо приступить к выполнению программы вычисления разностного уравнения, описывающего фильтр.
Просчитаем количество переменных, входящих в уравнения. Это количество будет определять необходимое число байт памяти. В нашем случае оно составляет 17. Нетрудно заметить, что коэффициенты разностных уравнений подобраны таким образом, что умножение переменной на них будет делением на 2,4,8…, а эта операция выполняется путем сдвига регистра вправо. Для хранения промежуточных данных сдвиговых операций и операций сложения нам понадобятся дополнительные ячейки памяти в количестве 17. При начальном запуске программы или при сбросе микропроцессорной системы все ячейки памяти необходимо сбросить в нуль.
На обработку данных АЦП требуется, как указывалось ранее, время. Чтобы повысить эффективность и качество системы, необходимо во время просчета АЦП, вместо простоя и ожидания системой результата просчета, произвести вычисления без участия текущего значения отсчета. Вычисления с участием текущего значения отсчета должны производиться через время, равное 10Tad.
Результат вычисления АЦП будет обрабатывать программа прерывания.
Исходя из всех вышеприведенных соображений, составим окончательный алгоритм программы:
Начало 1
Установка
порта А на COUNT-1
ввод