Какая из вечных ценностей самая быстротечная:
Результат
Архив

Главная / Предметы / Радиоэлектроника / Разработка микропроцессорного устройства цифрового фильтра


Разработка микропроцессорного устройства цифрового фильтра - Радиоэлектроника - Скачать бесплатно


  3 СИНТЕЗ ПРОЕКТИРУЕМОГО УСТРОЙСТВА

  Структурная схема типа реализации  ЦФ  приведена  на  рис.3.1.  Параметры
звеньев ЦФ следующие :
  параметры звена [pic]: [pic];
  параметры звена [pic]: [pic];
  параметры звена [pic]: [pic].

      [pic]

               Рис. 3.1 – Структурная схема цифрового фильтра

      Исходя из этой структуры, а также  коэффициентов,  для  каждого  звена
составим разностные уравнения:
     1) первое звено:
      [pic];
     2) второе звено:
      [pic];
     3) третье звено:
      [pic].
Результирующее разностное уравнение для цифрового фильтра будет иметь вид:
      [pic].



                      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
значения



            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
                  [pic]
                   Рисунок 5.1 – Организация ПЗУ PIC16C71

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

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

      Сначала напишем программу обработки прерывания.  Занесем  программу  в
таблицу - 1 с адресами ПЗУ и комментариями.
                                                                 Таблица 5.1
|Адрес|Метка|Мнемонический код |Комментарии              |Циклы |
|     |     |ORG 0x004         |Директива                |      |
|0004h|     |MOVWF W_TEMP      |Сохранение содержимого W |1     |
|     |     |                  |в W_TEMP                 |      |
|0005h|     |MOVF STATUS, 0    |Пересылка содержимого    |1     |
|     |     |                  |STATUS в W               |      |
|0006h|     |MOVWF STATUS_TEMP |Сохранение W в STATUS    |1     |
|     |     |                  |_TEMP                    |      |
|Продолжение таблицы 5.1                                          |
|0007h|     |BCF STATUS, RP0   |Выбор банка 0            |1     |
|0008h|     |MOVF ADRES, 0     |Пересылка результата АЦП |1     |
|     |     |                  |в W                      |      |
|0009h|     |MOVWF UM          |Пересылка W в UM         |      |
|000Ah|     |MOVF STATUS_TEMP, |Пересылка STATUS_TEMP в W|1     |
|     |     |0                 |                         |      |
|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        |Организация счетчика     |1     |
|     |     |         



Назад


Новые поступления

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

281311062 © il.lusion,2007г.
Карта сайта


  

МЕТА - Украина. Рейтинг сайтов Союз образовательных сайтов