Реферат: Разработка микропроцессорного устройства цифрового фильтра

Министерствообразования и науки Украины

Харьковский национальныйуниверситет  радиоэлектроники

Кафедра ТКС

Курсовая работа

пояснительная записка

“Разработкамикропроцессорного устройства цифрового          фильтра”

по курсу “Цифровые устройства и микропроцессоры ”

Выполнил: ст. гр.   ИСС – 01 – 3  Егурнов К. В.        ______________

                                                                                                 (подпись)

«       »___________2003г.

                                     

Проверила: Нетикова Л. И.                                            _____________

                                                                                                                             (подпись)

«       »___________2003г.

 

Харьков 2003


СОДЕРЖАНИЕ

 

Реферат…………………………………………………….…………....4

Введение………………………………………………………………...5

1. Обзор аналогичных устройств………………….……...……………7

2. Выбранный варианттехнического решения…….………………...11

3. Синтезпроектируемого устройства………………………………..19

4.Разработка алгоритма программы проектируемого устройства…20

5.Программа на языке ассемблер…………...………………….…….25

6. Разработка иописание принципиальной схемы…………………..30

Вывод……....…………………………………………………….……..33

Список литературы……………………………………………….……34

Приложение А………………………………………………………….35

Приложение Б………………………………………………………….36
Р Е Ф Е Р А Т

Пояснительная записка:  34 с., 12рис.

Цельработы – построение цифрового фильтра с применением современныхмикропроцессорных систем, освоение методов автоматического проектирования исовершенствование навыков программирования на языке Ассемблер.

                В работе использован микропроцессор фирмы MICROCHIP серии PIC16C711, имеющей возможности аналоговой обработкисигналов. ЦАП не входит в состав микроконтроллера и вынесен отдельно, его входыподключены к порту B.

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

          Программа, написанная на языке Ассемблер,является универсальной для всех микроконтроллеров фирмы MICROCHIP, имеющих возможность аналоговой обработки сигналов. Необходимо лишьсконфигурировать порты и учесть спецификацию РОН и специальных регистров всоответствии с документацией на требуемую модель.

          Благодаря современным технологиямразработчик устройств цифровой обработки сигналов может в кратчайшие срокисоставлять высокопроизводительные системы с дальнейшим доведением их допроизводства.

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


ВВЕДЕНИЕ

          Цифроваяобработка сигнала – это арифметическая обработка в реальном масштабе временипоследовательности значений амплитуды сигнала, определяемых через равныевременные промежутки. Примерами цифровой обработки являются:

·    фильтрация сигнала;

·    свертка двух сигналов;

·    вычисление значений корреляционной функции двух            

           сигналов;

·    усиление, ограничение или трансформация сигнала;

·    прямое/обратное преобразование Фурье.

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

                                                                                      

 

                                                           R2                                        

/>/>x(t)                             x(t)                C                           y(t)

/>                                         R1                   

/>                                                                         y(t)

                                            

                               t                                                                                 t

          входнойсигнал                                                                                    выходной сигнал

 

Рисунок  1.1 — Аналоговая фильтрация сигнала

    

Примераналоговой фильтрации приведен на рисунке 1. Используемый в фильтре операционныйусилитель позволяет расширить динамический диапазон обрабатываемых сигналов.Форма амплитудно-частотной характеристики фильтра определяется величинами R2, C. Для аналогового фильтра сложнообеспечить высокое значение добротности, характеристики фильтра сильно зависятот температурного режима. Компоненты фильтра вносят дополнительный шум врезультирующий сигнал. Аналоговые фильтры трудно перестраивать в широкомдиапазоне частот.

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


1. ОБЗОР АНАЛОГИЧНЫХ УСТРОЙСТВ

Фильтры – это частотно-избирательные устройства,которые пропускают или задерживают сигналы, лежащие в определенных полосахчастот. До 60-х годов для реализации фильтров применялись, в основном,пассивные элементы, т. е. индуктивности, конденсаторы и резисторы. Основнойпроблемой при реализации таких фильтров оказывается размер катушекиндуктивности (на низких частотах они становятся слишком громоздкими). Сразработкой в 60-х годах интегральных ОУ появилось новое направлениепроектирования активных фильтров на базе ОУ. В активных фильтрах применяютсярезисторы, конденсаторы и усилители (активные компоненты), но в них нет катушекиндуктивности. В дальнейшем активные фильтры почти полностью заменилипассивные. Сейчас пассивные фильтры применяются только на высоких частотах(выше 1МГц), за пределами частотного диапазона большинства ОУ широкогоприменения.

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

          Фильтрыможно классифицировать по их частотным характеристикам. На  рисунке 1.2изображены характеристики фильтра нижних частот (а), фильтра верхних частот(б), полосового фильтра (в). Основная функция любого фильтра заключается в том,чтобы ослабить сигналы, лежащие в определенных полосах частот, внести в нихразличные фазовые сдвиги или ввести временную задержку между входным и выходнымсигналами.

Спомощью активных RC – фильтров нельзя получить идеальные формы частотныххарактеристик в виде  прямоугольников со строго постоянным коэффициентомпередачи в полосе пропускания, бесконечным ослаблением в полосе подавления ибесконечной крутизной спада при переходе от полосы пропускания к полосеподавления. Проектирование активного фильтра всегда представляет собой поисккомпромисса между идеальной формой характеристики и сложностью её реализации.Это называется «проблемой аппроксимации». Во  многих случаях требования ккачеству фильтрации позволяют обойтись простейшими фильтрами первого иливторого порядка. Набор таких схем приведен ниже. Проектирование фильтра в этомслучаи сводится к выбору схемы с наиболее подходящей конфигурацией ипоследующему расчету значений номиналов элементов для конкретных частот.

/>Рисунок 1.2 –Типовые характеристики фильтров.

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

Анализ состояния и тенденций развитиятеории и практики цифровой фильтрации показывает, что основными используемымиметодами являются частотная селекция сигналов и оптимальная (адаптивная)фильтрация.

Классификация цифровых фильтров (ЦФ) была предложена в докладе Д.А.Губанова и В.Б. Сташенко В ее основу положен функциональный признак (т. е.используемые алгоритмы цифровой фильтрации, а не схемотехнические решения),согласно которому ЦФ подразделяются на 4 группы: фильтры частотной селекции,оптимальные (квазиоптимальные), адаптивные и эвристические.

/>

Рисунок 1.3 – Классификация цифровых фильтров

Наиболее изученными и опробованными на практике являются ЦФчастотной селекции. Они почти всегда представляют собой реализованные на новойэлементной базе традиционные аналоговые фильтры частотной селекции. Выступленияучастников конференции показали, что развитие цифровых средств частотнойселекции происходит в следующих направлениях:

создание пакетов прикладных программ для структурного синтеза, анализа качества фильтрации, обеспечения схемотехнической реализации и тестирования устройств; совершенствование существующих методов оптимального проектирования многоступенчатых структур с целью их полной формализации и включения в состав ПО; разработка новых подходов к проектированию ЦФ частотной селекции с улучшенными качественными показателями.

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


2. ВЫБОР ВАРИАНТА ТЕХНИЧЕСКОГО РЕШЕНИЯ

         

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

     2.1 МИКРОПРОЦЕССОРЫ КОМПАНИИ ANLOG DEVICES.

          Микропроцессорыкомпании Analog Devices образуют два семейства: ADSP21xx  и ADSP210xx.

          Семейство ADSP21xx – набороднокристальных 16-разрядных микропроцессоров с общей базовой архитектурой,оптимизированной для выполнения алгоритмов цифровой обработки сигналов и другихприложений, требующих высокоскоростных вычислений с фиксированной точкой.

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

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

Рассмотрим подробнеемикропроцессоры первого семейства, так как их возможности наиболее подходят дляреализации проекта.

          Микропроцессорысемейства ADSP21xx успешно конкурируют с аналогичной продукциейдругих компаний производителей сигнальных процессоров благодаря сравнимойпроизводительности при более низкой цене, а также развитой системе техническихи программных средств разработки прикладных систем. Основными конкурентамиданного семейства являются микропроцессоры DSP56xxx (Motorola) и TMS320C1x, TMS320C2xx, TMS320C5x (Texas Instruments).

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

          Каждыймикропроцессор семейства содержит три независимых полнофункциональныхустройства: АЛУ, МАС – умножитель с накоплением, устройство барабанного сдвига.Каждое устройство непосредственно оперирует с 16-ти разрядными данными иобеспечивает аппаратную поддержку вычислений с различной точностью.

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

          Таймер/счетчикмикропроцессора обеспечивает периодическую генерацию прерываний.

          Последовательныепорты (SPORTs) обеспечивают последовательный интерфейсс большинством стандартных последовательных устройств, а также с аппаратнымисредствами сжатия-восстановления данных, использующими A-и m- законы компандирования.

          Порт интерфейса схост-процессором позволяет без дополнительных интерфейсных схем взаимодействоватьс главным микропроцессором системы, в качестве которого может использоватьсякак процессор данного семейства, так и другой микропроцессор, например Motorola 68000 или Intel 8051.

          Микропроцессор ADSP – 21msp5xотличается наличием аналогового интерфейса, позволяющего совмещать аналоговую ицифровую обработку. В состав интерфейсных средств входят АЦП, ЦАП, цифровой ианалоговый фильтры, параллельный интерфейс к процессорному ядру.

          Система командмикропроцессоров  семейства оптимизирована для алгоритмов цифровой обработкисигналов. По системе команд все микропроцессоры совместимы снизу вверх.Совершенствование данного семейства идет в направлении повышения тактовойчастоты, снижения энергопотребления и расширения коммуникационных возможностейпроцессора.

2.2 МИКРОПРОЦЕССОРЫ КОМПАНИИ MOTOROLA

          Сигнальныемикропроцессоры компании Motorola. Подразделяются насемейства 16- и 24-разрядных микропроцессоров с фиксированной точкой – DSP – 560xx, — 561xx,- 563xx, -566xx, 568xx и микропроцессоры с плавающей точкой – DSP– 960xx.

          Рассмотрим 24-хразрядные микропроцессоры с фиксированной точкой семейства DSP560xx. Эти микропроцессоры являются первыми представителями сигнальныхмикропроцессоров компании Motorola. Архитектурамикропроцессоров ориентирована на максимизацию пропускной способности вприложениях DSP с интенсивным обменом данными. Этообеспечивается благодаря расширяемой архитектуре со сложной встроеннойпериферией и универсальной подсистеме ввода/вывода. Данные свойства, а такженизкое энергопотребление минимизируют сложность, стоимость и сроки разработкиприкладных систем на базе микропроцессоров DSP56000/DSP56001.

          Микропроцессорыработают на частоте 33МГц и обеспечивают производительность около 16 MIPS, что позволяет выполнять быстрое преобразование Фурье по1024 отсчетам за 3,23мс.

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

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

 2.3 МИКРОПРОЦЕССОРЫ КОМПАНИИ TEXAS INSTRUMENTS

          Сигнальныемикропроцессоры компании Texas Instruments разделяются на два класса: это процессоры дляобработки чисел с фиксированной точкой и процессоры для обработки чисел сплавающей точкой. Первый класс представлен тремя семействами процессоров,базовыми моделями которых являются соответственно TMS320.10,.20, .50. Второй класс включает процессоры TMS320.30,. 40, TMS320С80, которые поддерживают операции с плавающей точкой и представляют собоймультипроцессорную систему, выполненную в одном кристалле, а семейство TMS320C6xвключает процессоры как с фиксированной, так и с плавающей точкой.

          Процессоры старшихпоколений одного семейства наследует основные архитектурные особенности исовместимы “снизу вверх” по  системе команд (чего нельзя сказатьо процессорах, входящих в разные семейства).

          Перечислимнекоторые микропроцессоры, оптимально подходящие для нашей системы.

1.Микропроцессоры семейства TMS320C1x

          Первыйпроцесор семейства – TMS320C10был выпущен в 1982г. и благодаря ряду удачных технических решений получилширокую распространенность.

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

TMS320C10 является 16-разряднымпроцессором. Его адресное пространство составляет 4K16-разрядных слов памяти данных. Длительность такта процессора составляет160-200 нс.

Арифметическиефункции в процессоре реализованы аппаратно. Он имеет аппаратные умножители,устройство сдвига, аппаратную поддержку автоинкремента/декремента  адресныхрегистров данных.

С внешнимиустройствами процессор взаимодействует через 8 16-разрядных портовввода/вывода. Предусмотрена возможность внешнего прерывания.

Остальныемикропроцессоры данного семейства имеют аналогичную архитектуру и отличаютсядлительностью командного такта, конфигурацией памяти, наличием (илиотсутствием) дополнительных периферийных устройств.

2.Микропроцессорысемейства TMS320C2x.

Микропроцессорысемейства TMS320C2x имеют анлогичнуюархитектуру, но обладают повышенной производительностью и более широкимифункциональными возможностями. Все процессоры семейства поколения могутиспользовать по 64K слов памяти программ иданных, имеют 16 16-разрядных портов ввода/вывода и последовательный порт.

Процессорысемейства TMS320C2x имеют возможностьиспользования  внешнего контроллера ПДП. Умножитель микропроцессоров, помимоопераций умножения, позволяет выполнять за один такт возведение в квадрат. Впроцессоры включена аппаратная поддержка кратного выполнения команды,реализован режим двоичной инверсно-косвенной адресации, предназначенный дляэффективной реализации быстрого преобразования Фурье.

2.4 ОБОСНОВАНИЕ ВЫБРАННОГО ВАРИАНТА

          Последлительного обзора микропроцесорных устройств, возникла задача выбора наиболееподходящего микропроцессора. Решение данной задачи было найдено прирассмотрении микропроцессоров компании Microchip.Для реализации проекта было принято решение использовать микропроцессоркомпании Microchip  PIC16C711. Приведем преимущества использования данного микропроцессорав курсовой работе, а также общие его характеристики.

          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 – блок-схема работы цифрового фильтра
Опираясь на данную блок схему, начнем более тщательное

/>рассмотрениевопроса. Конфигурация портов и АЦП задается исходя из документации предлагаемойпроизводителем. Данная документация содержит примеры программ для настройкипортов и АЦП. Оговорим некоторые аспекты этих программ применительно к нашемукурсовому проекту. Контакты порта А зададим входами установкой битов в регистреTRISA. Данное условие необходимо для осуществленияаналого-цифровой обработки сигнала. Контакты порта В зададим как выходныесбросом битов в регистре TRISB. Для АЦП выберем канал0, то есть вывод микропроцессора RA0. В PIC16C711 на одно преобразование АЦПнеобходим минимальный интервал времени 10Тad, где Тad =1,6 мкс выбирается программно. Такжеодной из важных частей программы запуска АЦП является организация разрешенияпрерываний.

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

          Просчитаемколичество переменных, входящих в уравнения. Это количество будет определятьнеобходимое число байт памяти. В нашем случае оно составляет 17. Нетруднозаметить, что коэффициенты разностных уравнений подобраны таким образом, чтоумножение переменной на них будет делением на 2,4,8…, а эта операциявыполняется путем сдвига регистра вправо. Для хранения промежуточных данныхсдвиговых операций и операций сложения нам понадобятся дополнительные ячейкипамяти в количестве 17. При начальном запуске программы или при сбросемикропроцессорной системы все ячейки памяти необходимо сбросить в нуль.

          На обработку данныхАЦП требуется, как указывалось ранее, время. Чтобы повысить эффективность икачество системы, необходимо во время просчета АЦП, вместо простоя и ожиданиясистемой результата просчета, произвести вычисления без участия текущего значенияотсчета. Вычисления с участием текущего значения отсчета должны производитьсячерез время, равное 10Tad.

          Результатвычисления АЦП будет обрабатывать программа прерывания. 

          Исходя из всехвышеприведенных соображений, составим окончательный алгоритм программы:

/>/>

       Начало                                                                                                          1

/>


                                                                   

/>                                                                               

   Установка                                                                                        

   порта А на                                                                                                COUNT-1

   ввод                                                   

/>/>                                                                                                                                                               

                                                               

/>/>/>

   Установка                                                                                   да

/>/>   порта В на                                                                                                  Z=0            

/>    вывод                                                               

/>                                                                                                                                   нет     

/>                                                                              6                                                                              

    0x17®W                                                                                             Сброс ADCON1

                                                                                                                          

/>/>/>/>/>/>/>                                                                                                               

  W®COUNT                                                                                                0xC1®W

                                                                                       

 

                                                                                                                     W®ADCON0

  0x0C®W      

                                                                                           

                                                                                                                     Разрешить

                                                                                                                     прерывание  

    W®FSR                                                                                           АЦП                    

                                                                                    

                                                                                                                       

                                                                                                                      Разрешить

                                                                                                                      глобальное

  Сброс INDF                                                                                    прерывание                    

                                                                                                   

                                                                                                                  

      FSR +1                                                                                                   Пуск АЦП

                                                                                                          

/>/>                                                                                              

/>

      

/>

                                                                                                                 

            1                                                                                                                  2

/>/>            2                                                                                                                    3

/>               

   Вычисление

  А11UM1с сох-                                                                                        Вычисление

 ранением  зна-                                                                                          A32YN2YK2=

 чения                                                                                                         =A32(YN2+YK2)

                                                                                                                       ссохранением            

/>                                                                                                                       значения

  Вычисление

  B11YN1 с сох-

  ранением зна-                                                                                          Вычисление

  чения                                                                                                           B31YL1

/>

  Вычисление

   В12YN2                                                            

                                                                                                                              

/>                                                                                                                               

                                                                                                                     ВычислениеYLL         

                                                                                                                     = A31YN1YK1+           

    Вычисление                                                                                          +A32YN2YK2-            

YNN=А11UM1-                                                                                       - B31YL1 с сох-           

— B11YN1-                                                                                                   ранениемзна-

— В12YN2 с сох-                                                                                        чения             

ранением зна-

/>чения

   Вычисление                                                                                              YK1 ® W

 A21UM1 с сох-

ранением зна-

/>чения

   Вычисление                                                                                               W ® YK2

   B21YK1

/>

                                                                                                                               

Вычисление                                                                                                   YK ® W    

YK=А21UM1-

— B21YK1 с сох-

ранением зна-

чения

/>                                                                                                                          W ® YK1 

                                                                                                                               

Вычисление

A31YN1YK1 =

=A31(YN1+YK1)                                                                                       Вычисление               

с сохранением                                                                                            A10UM        

значения

/> /> /> /> /> /> /> <td/> /> />

/>/>


            3                                                                                                                     4   
           4                                                    6                                               5

/>/>/>/> 

/>/>


Вычисление

  YN =A10UM+                                                                                                 UM ® W   

   +YNN

/>  с сохранением

   значения

/>

                                                                                                                          W ® UM1

Вычисление

/>YL=A30(YN+

/>+YK)+YLL

  с сохранением

   значения

/>                                                                                                                         ОСТАНОВ

Передача знач-

чения YL на

порт B

/>

   YN1 ® W

/>

   W ® YN2

/>

  YN ® W

/>

  W ® YN1          

/>

  YL ® W

/>


/>

           5

Рисунок 4.2 — Алгоритм программыпроектируемого                                                                                                                                                                                             устройства

5 РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ АССЕМБЛЕР

          Прежде чем приступить к написанию программынеобходимо учесть спецификацию ПЗУ микроконтроллера. Организация ПЗУ изображенана рисунке 5.1

                  /> 

Рисунок5.1 – Организация ПЗУ PIC16C71

Из рисунка видно, что началопрограммы пользователя может быть расположено ниже адреса 0004h. Адрес 0000h – вектор сброса, 0004h – вектор прерывания. По этим адресам перед началомпрограммирования, как правило, прописывают безусловный переход на программупользователя и безусловный переход на программу обработки прерываниясоответственно. Так как в случае нашей системы устройство, осуществляющеезапрос прерывания, одно, то по адресу 0004h можнопрописывать начало программы обработки прерывания.

          Также при программировании обязательно нужноучесть спецификацию банков ОЗУ. Структура ОЗУ изображена       на

рисунке 5. При обращении к регистрам ОЗУ каждый разнеобходимо программно переключаться между банками ОЗУ, в зависимости от того вкаком банке находится регистр. Ассемблер, поставляемый производителем,позволяет вначале всем регистрам присвоить вместо адреса определенное имя. Этоудобно для составления программы. 

                                 />

Рисунок5.2 – Организация ОЗУ PIC16C711

         

Сначала напишемпрограмму обработки прерывания. Занесем программу в таблицу — 1 с адресами ПЗУи комментариями.

Таблица5.1

Адрес Метка Мнемонический код Комментарии Циклы ORG 0x004 Директива 0004h MOVWF W_TEMP Сохранение содержимого W в W_TEMP 1 0005h MOVF STATUS, 0 Пересылка содержимого STATUS в W 1 0006h MOVWF STATUS_TEMP Сохранение W в STATUS _TEMP 1 Продолжение таблицы 5.1 0007h BCF STATUS, RP0 Выбор банка 0 1 0008h MOVF ADRES, 0 Пересылка результата АЦП в W 1 0009h MOVWF UM Пересылка W в UM 000Ah MOVF STATUS_TEMP, 0 Пересылка STATUS_TEMP в W 1 000Bh MOVWF STATUS Пересылка W в STATUS 1 000Ch MOVF W_TEMP, 0 Пересылка W_TEMP в W 1 000Dh RETFIE Возврат прерывания 2

          Программу, реализующую математическую модельфильтра начнем с адреса 000Eh и разместим в таблицу 5,2.

Таблица 5.2

Адрес Метка Мнемонический код Комментарии Циклы ORG 0x00E Директива 000Eh MOVLW 0xFF Пересылка 0xFF в аккумулятор 1 000Fh BSF STATUS, RP0 Выбор банка 1 1 0010h MOVWF TRISA Порт А – Вход 1 0011h CLRF TRISB Порт В – Выход 1 0012h MOVLW 0x18 Организация счетчика СOUNT 1 0013h BCF STATUS, RP0 Выбор банка 0 1 0014h MOVWF COUNT Организация счетчика 1 0015h MOVLW 0x0C Адрес начальной ячейки в ОЗУ 1 0016h MOVWF FSR Пересылка адреса начальной ячейки в FSR 1 0017h M1: CLRF INDF Обнуление текущей ячейки памяти 1 0018h INCF FSR, 1 Адрес + 1 1 0019h DECF COUNT Счетчик – 1 1 001Ah BTFSS STATUS, Z Условный переход по 1 значению флага нулевого результата 1(2) 001Bh GOTO M1 2 001Ch M2: BSF STATUS,RP0 Выбор банка 1 1 001Dh CLRF ADCON1 RA0-RA3 Входы АЦП 1 001Eh MOVLW 0xC1 1 001Fh BCF STATUS,RP0 Выбор банка 0 1 0020h MOVWF ADCON0 АЦП включен, работает канал0 (RA0), частота 32Tosc. 1 0021h BSF INTCON ADIE Разрешить прерывание АЦП 1 0022h BSF INTCON GIE Разрешить глобальное прерывание 1 0023h BSF ADCON0, GO Запустить АЦП 1 0024h BCF STATUS, C Очистка триггера переноса 1 0025h RRF UM1, 0 Циклический сдвиг вправо через триггер переноса 1 0026h BCF STATUS, C Очистка триггера переноса 1 0027h RRF W, 0 Циклический сдвиг вправо через триггер переноса 1 0028h MOVWF A11UM1 W® A11UM1 1 0029h BCF STATUS, C Очистка триггера переноса 1 002Ah RRF YN1, 0 Циклический сдвиг вправо через триггер переноса 1 002Bh BCF STATUS, C Очистка триггера переноса 1 002Ch RRF W, 0 Циклический сдвиг вправо через триггер переноса 1 002Dh BCF STATUS, C Очистка триггера переноса 1 002Eh RRF W, 0 Циклический сдвиг вправо через триггер переноса 1 Продолжение таблицы 5.2 002Fh BCF STATUS, C 1 0030h RRF W, 0 Циклический сдвиг вправо через триггер переноса 1 0031h MOVWF B11YN1 W® B11YN1 1 0032h BCF STATUS, C Очистка триггера переноса 1 0033h RRF YN1, 0 Циклический сдвиг вправо через триггер переноса 0034h ADDWF W, 0 W=W+W 1 0035h ADDWF W, 0 W=W+W 1 0036h ADDWF B11YN1 W=W+ B11YN1 1 0037h SUBWF A11UM1, 0 W= A11UM1- W 1 0038h MOVWF YNN W® YNN 1 0039h BCF STATUS, C Очистка триггера переноса 1 003Ah RRF UM1, 0 Циклический сдвиг вправо через триггер переноса 1 003Bh MOVWF A21UM1 W® A21UM1 1 003Ch BCF STATUS, C Очистка триггера переноса 1 003Dh RRF YK1, 0 Циклический сдвиг вправо через триггер переноса 1 003Eh BCF STATUS, C Очистка триггера переноса 1 003Fh RRF W, 0 Циклический сдвиг вправо через триггер переноса 1 0040h BCF STATUS, C Очистка триггера переноса 1 0041h RRF W, 0 Циклический сдвиг вправо через триггер переноса 1 0042h SUBWF A21UM1, 0 W= A21UM1- W 1 0043h MOVWF YK W® YK 1 0044h MOVF YN1, 0 YN1®W 1 0045h ADDWF YK1 W=W+ YK1 1 0046h BCF STATUS, C Очистка триггера переноса 1 0047h RRF W, 0 Циклический сдвиг вправо через триггер переноса 1 0048h BCF STATUS, C Очистка триггера переноса 1 0049h RRF W, 0 Циклический сдвиг вправо через триггер переноса 1 004Ah BCF STATUS, C Очистка триггера переноса 1 004Bh RRF W, 0 Циклический сдвиг вправо через триггер переноса 1 004Ch BCF STATUS, C Очистка триггера переноса 1 004Dh RRF W, 0 Циклический сдвиг вправо через триггер переноса 1 004Eh MOVWF A31YN1YK1 W® A31YN1YK1 1 004Fh MOVF YN2, 0 YN2®W 1 0050h ADDWF YK2 W=W+ YK2 1 0051h BCF STATUS, C Очистка триггера переноса 1 0052h RRF W, 0 Циклический сдвиг вправо через триггер переноса 1 0053h BCF STATUS, C Очистка триггера переноса 1 0054h RRF W, 0 Циклический сдвиг вправо через триггер переноса 1 0055h BCF STATUS, C Очистка триггера переноса 1 0056h RRF W, 0 Циклический сдвиг вправо через триггер переноса 1 0057h MOVWF A32YN2YK2 W® A32YN2YK2 1 0058h BCF STATUS, C Очистка триггера переноса 1 0059h RRF YL1, 0 Циклический сдвиг вправо через триггер переноса 1 Продолжение таблицы 5.2 005Ah ADDWF W, 0 W=W+W 1 005Bh ADDWF W, 0 W=W+W 1 005Ch SUBWF A32YN2YK2, 0 W= A32YN2YK2- W 1 005Dh ADDWF A31YN1YK1 W=W+ A31YN1YK1 1 005Eh MOVWF YLL W® YLL 1 005Fh BCF STATUS, C Очистка триггера переноса 1 0060h NOP Ничего не выполнять 1 0061h NOP 1 0062h NOP 1 0063h NOP 1 0064h NOP 1 0065h NOP 1 0066h NOP 1 0067h NOP 1 0068h NOP 1 0069h NOP 1 006Ah NOP 1 006Bh NOP 1 006Ch NOP 1 006Dh NOP 1 006Eh NOP 1 006Fh NOP 1 0070h NOP 1 0071h NOP 1 0072h NOP 1 0073h NOP 1 0074h MOVF YK1, 0 YK1®W 1 0075h MOVWF YK2 W® YK2 1 0076h MOVF YK, 0 YK ®W 1 0077h MOVWF YK1 W® YK1 1 0078h RRF UM, 0 Циклический сдвиг вправо через триггер переноса 1 0079h ADDWF YNN W=W+ YNN 1 007Ah MOVWF YN W® YN 1 007Bh ADDWF YK W=W+ YK 1 007Ch BCF STATUS, C Очистка триггера переноса 1 007Dh RRF W, 0 Циклический сдвиг вправо через триггер переноса 1 007Eh ADDWF W, 0 W=W+W 1 007Fh ADDWF YLL W=W+ YLL 1 0080h MOVWF YL W® YL 1 0081h MOVWF PORTB W® PORTB 1 0082h MOVF YN1, 0 YN1®W 1 0083h MOVWF YN2 W® YN2 1 0084h MOVF YN, 0 YN ®W 1 0085h MOVWF YN1 W® YN1 1 0086h MOVF YL, 0 YL ®W 1 0087h MOVWF YL1 W® YL1 1 0088h MOVF UM, 0 UM ®W 1 0089h MOVWF UM1 W® UM1 1 008Ah GOTO M2 Безусловный переход на метку 1 END Всего вместе с программой обработки прерывания 283

Время выполненияпрограммы 56 мкс.

          Операции NOPпредназначены для синхронизации работы АЦП с программой. Также для этой целибыло добавлено 4 команды перед операциями над текущим значением отсчета. Всоставленном алгоритме данные коррекции небыли предусмотрены. Время выполненияпрограммы, реализующей цифровой фильтр, равно 49 мкс. Интервал дискретизациисигнала равен 24,6 мкс, соответственно частота дискретизации равна 41000Гц. Впрограмме используются два перехода: один для обнуления ОЗУ, другой – длявозврата программы на место запуска АЦП. При использовании более современных PIC процессоров возможно исключение операций NOP.

6 РАЗРАБОТКА ИОПИСАНИЕ                                      ПРИНЦИПИАЛЬНОЙСХЕМЫ

 

           Для техническойреализации ЦФ необходимы следующие элементы:

-    процессор;

-    ЦАП;

-    Блок питания от сети 220 В, 50 Гц.

Описание процессора:

Основным блоком ЦФ являетсяпроцессор PIC16C711 (рис.6.1).Приведём краткую характеристику интересующих для данной задачи выводов процессора.

RA4/RTCC — Вход через триггер Шмита. Ножка порта ввода/вывода с открытымстоком или вход частоты для таймера/счетчика RTCC. RA0/AIN0 -Двунаправленнаялиния ввода/вывода. Аналоговый вход канала 0. Как цифровой вход имеет уровни ТТЛ.

RA1/AIN1 — Двунаправленнаялиния ввода/вывода. Аналоговый входканала 1. Как цифровой вход имеетуровни ТТЛ.

RA2/AIN2 — Двунаправленная линия ввода/вывода.Аналоговый вход канала 2. Как цифровой вход имеет уровни ТТЛ.

RA3/AIN3/Vref — Двунаправленная линия ввода/вывода. Аналоговый вход канала 3. Как цифровой вход имеет уровни ТТЛ.

RB0/INT — Двунаправленная линия порта вывода или внешний вход прерывания. Уровни ТТЛ.

RB1 — RB5 — Двунаправленные линии ввода/ вывода. Уровни ТТЛ.

RB6 — Двунаправленные линии ввода/ вывода. Уровни ТТЛ.

RB7 — Двунаправленные линии ввода/ вывода. Уровни ТТЛ.

/MCLR/Vpp — Низкийуровень на этом входе генерируетсигнал сброса для контроллера.Активный низкий. Вход через триггерШмитта.

OSC1 — Дляподключения кварца, RC или вход внешней тактовой частоты.

OSC2 /CLKOUT — Генератор,  выход тактовой частотыв режиме RC генератора, в остальныхслучаях — для подключения кварца.

Vdd — Напряжениепитания.

Vss – Общий (земля).

/> 


                           RA2/AIN2  1                 18  RA1/AIN1

                   RA3/AIN3/Vref                         RA0/AIN0

                          RA4/RTCC                         OSC1/CLKIN   

                         /MCLR/Vpp                        OSC2/CLKOUT

                                       Vss     PIC16C711     Vdd

                              RB0/INT                         RB7        

                                      RB1                        RB6

                                  RB2                            RB5              

      RB3   9                 10   RB4

Рисунок6.1 – Выводы процессора PIC16C711

       Описание ЦАП:

В качестве ЦАП используетсямикросхема фирмы Analog Devices AD7302.Данный ЦАП имеет следующие основные характеристики:

AD7302двойной, 8-битный ЦАП, который работает от однополярного  источника питания снапряжением +2.7 — +5.5 В. AD7302 имеет интерфейс,совместимый параллельным выходом микропроцессоров и цифровых сигнальныхпроцессоров (DSP). Интерфейс обладает высокоскоростнымирегистрами и двойной буферизированной логикой. Данные загружаются приповышенном уровне на CS или WR. С помощью пина ~A/B  выбирают какой из 2 встроенных ЦАПбудет использоваться.

Приведём краткуюхарактеристику интересующих для данной задачи выводов ЦАП.

D7-D — Параллельные информационные входы. 8-битные данные загружаються  во входной регистр  AD7302 подуправлением CS и  WR.

CS — Выборкристалла. Активный низкоуровневый логический ввод.

WR-  Ввод записи. Активный низкоуровневый логический ввод. Используеться вместе CS и A/B, чтобы писать данные в регистр выбранного ЦАП.

A/B – Выбор ЦАП.

PD – Активный низкоуровневый ввод, используемый для перехода врежим потребления малой мощности.

LDAC– Логический ввод загрузки ЦАП. Когда на этот ввод подаеться низкий уровень,оба ЦАП синхронно обновляются со своими регистрами.

CLR– Асинхронный вход сброса. Когда на него подаеться низкий уровень, все регистрыЦАП обнуляються и на выход напряжение не поступает.

Vdd– Напряжение питания.

REFIN– Внешний ввод ссылки. Может использоваться как ссылка для обоих ЦАП. Диапазонэтого ввода 1 В – Vdd/2.

AGND– Земля для аналоговой части микросхемы.

VoutB– Аналоговый вывод ЦАП B.

VoutA– Аналоговый вывод ЦАП А.

DGND– Земля для цифровой части схемы.

/> 


                                     DB7 1                  20  DGND

       DB6                             VoutA

                                      DB5                        VoutB     

                                      DB4                        AGND

                                      DB3       AD7302        REFIN

                                      DB2                        Vdd        

                                      DB1                        CLR

                                  DB0                            LDAK          

       CS                               PD

       WR  10                 11  A/B

Рисунок6.2 – Выводы ЦАП AD7302

        Блокпитания от сети 220 В, 50 Гц :

На рисунке 6.3приведена простая схема блока питания на 3 В (ток в нагрузкеке 200 мА) савтоматической электронной защитой от перегрузки (Iз = 250 мА). Уровеньпульсации выходного напряжения не превышает 1 мВ.В схеме в качестве источникаопорного напряжения используется светодиод HL1. Трансформатор Т1 можноприобрести из унифицированной серии ТН любой, но лучше использовать самыемалогабаритные ТИ1-127/220-50 или ТН2-127/220-50. Подойдут также и многиедругие типы трансформаторов со вторичной обмоткой на 5...6 В. КонденсаторыС1… СЗ типа К50-35. Схема использует интегральный стабилизатор DA1, длянормальной работы микросхемы необходимо, чтобы входное напряжение превышаловыходное не менее чем на 3,5 В. Это снижает КПД стабилизатора за счеттепловыделения на микросхеме — при низком выходном напряжении мощность,теряемая в блоке питания, будет превышать отдаваемую в нагрузку. Необходимоевыходное напряжение устанавливается подстроечным резистором R2. Микросхемаустанавливается на радиатор.

            />

Рисунок6.2 – Схема генератора

ВЫВОД

          Спроектированная система является достаточнопростой. Схема электрическая принципиальная составлялась на ПК с использованиемпакета ACCEL. С помощью утилит, входящих в данныйпакет, можно провести трассировку  печатной платы по готовой схеме электрическойпринципиальной и довести проект до готового изделия.

          По результатам курсового проекта можно оценитьпогрешности связанные с оцифровкой сигнала. Основную погрешность будет вноситьограниченная восемью разрядами шина АЦП, чем больше уровней квантования — темлучше. Также, ввиду отсутствия операций с плавающей точкой, деление на дванечетных чисел будет давать неточный результат.

          Для оцифровки аналоговых сигналов должновыполняться условие />. На практике/> и выше для улучшениякачества передаваемого сигнала. Спектр речевого сигнала качественной телефонии составляет 0,3 – 3,4 кГц в соответствии с установленным международнымстандартом. Цифровой фильтр, спроектированный в ходе курсовой работы,удовлетворяет требованиям обработки не только сигналов качественной речи, но исигналов с верхней частотой спектра 15..20кГц (музыка, каналы ШК и т.д.).


СПИСОК ЛИТЕРАТУРЫ

1.   КалабековБ. А. Микропроцессоры и их применение в системах

     передачи и обработки сигналов: Учеб. Пособие длявузов. – М.:  

     Радио и связь, 1988. – 368с.: ил.

2.   Корнеев В.В., Киселев А. В. Современные микропроцессоры. – М.: НОЛИДЖ, 1998. – 240 с.; ил.

3.  MICROCHIP PIC16/17 MICROCONTROLLER DATA BOOK.

4.   Документацияна CD, поставляемая компанией MICROCHIP.

еще рефераты
Еще работы по радиоэлектронике