Главная страница
Навигация по странице:

  • 2. Команды прерываний

  • Сигнальные микропроцессоры и их применение в системах телекоммуникаций и электроники (В.С. Сперанский, 2008). Сигнальные микропроцессоры и их применение в системах телекоммун. УМссэ дгбо Jdjcov p f f f


    Скачать 14.91 Mb.
    НазваниеУМссэ дгбо Jdjcov p f f f
    АнкорСигнальные микропроцессоры и их применение в системах телекоммуникаций и электроники (В.С. Сперанский, 2008).pdf
    Дата24.03.2017
    Размер14.91 Mb.
    Формат файлаpdf
    Имя файлаСигнальные микропроцессоры и их применение в системах телекоммун.pdf
    ТипДокументы
    #4163
    КатегорияПромышленность. Энергетика
    страница4 из 12
    1   2   3   4   5   6   7   8   9   ...   12
    41
    Сигнальные микропроцессоры Цикл
    TCOUNT Действие
    „ . *7 И Т /
    Z
    TCOUNT декрементируется п + 8 1 Нет декремента п + 9 1
    TCOUNT декрементируется п 0 Нет декремента п + 11 0
    TCOUNT становится равным 0, происходит прерывание, TCOUNT загружается значением из TPERIOD п 5 Нет декремента п 5
    TCOUNT декрементируется п 4 Нет декремента п + 15 4
    TCOUNT декрементируется и т.д. Прерывание происходит через каждые (TPERIOD + 1) *
    *(TSCALE + 1 ) циклов. Для установки другого временного интервала в последующих прерываниях в регистр TCOUNT из регистра
    TPERIOD загружается требуемое значение. Интервал первого прерывания также вычисляется по формуле (TCOUNT + 1) * (TSCALE+1). Запись нового значения в регистр TSCALE или TCOUNT оказывает эффект незамедлительно. При записи нового значения в регистр никаких изменений не происходит до перезагрузки регистра TCOUNT. ЗЛО. Система команд процессора ADSP2181 Система команд (инструкций) процессора включает в себя команды управления программой, команды прерываний, команды пересылки и загрузки и команды вычислений (АЛУ, умножителя аккумулятора и сдвигателя) и другие. Система команд поддерживает прямую, косвенную и непосредственную адресацию. Прямая адресация возможна только к памяти данных, при этом в команде обращения к памяти данных содержится адрес ячейки памяти. Косвенная адресация памяти данных и программ использует индексные (I) регистры формирователей адресов и регистры- модификации. В команде указываются номера соответствующих
    42
    Глава 3. Цифровой сигнальный процессор ADSP регистров. При непосредственной адресации в команде содержится операнд, например, константа.
    1. Команды управления программой К этим командам относятся команды перехода JUMP, вызова подпрограммы CALL, возврата из подпрограммы RTS и прерываний, цикла DO UNTIL. В команде JUMP записан 14 разрядный адрес перехода. Примеры- переход по адресу метки firstart. IF [cond]
    JUMP; CALL (16); если выполняется условие, то происходит передача перехода по адресу 16. При косвенной адресации адрес перехода находится водном из адресных регистров DAG2 14, 15, 16, 17. Например, JUMP (14); - переход по адресу 14.
    CALL (адрес) обращение к подпрограмме. Адрес находится в самой команде и загружается в следующем цикле в счетчик команд PC ив стек. Для возврата из подпрограммы стека в PC восстанавливается значение адреса. RTI - команда возврата из подпрограммы - счетчик циклов. Например, CNTR (10) - число повторений цикла Команда цикла DO UNTIL при использовании счетчика CNTR. При этом сначала устанавливается длина циклического буфера RG
    LO = 10; происходит загрузка указателя 1 элемента циклического буфера 10 =
    A
    data_buffer; устанавливается регистр-модификатор
    МО = 1; устанавливается число повторений цикла CNTR = 10. Команда- повторить цикл, пока не обнулился счетчик.
    2. Команды прерываний
    IDLE - ожидание прерываний. При этой команде процессор входит в состояние пониженного потребления дополучения сигнала прерывания.
    INIT - инициализация прерывания.
    IMASK - разрешение прерываний, например, IMASK = 0*0018 разрешение прерывания SPORTO).
    RESET - сброс, восстановление исходных значений, регистры периферии устанавливаются в 0.
    IRQ - прерывание по последовательному порту.
    RTI -возврат из прерывания в главную программу.
    NOP - пустой цикл.
    43
    Сигнальные микропроцессоры
    3. Команды пересылок Команды пересылок определяют обмен данными между памятью программ и данных и регистрами вычислителя, а также между памятью программ и данных и периферийными устройствами. Пример. АХО = DM (12, МО), AYO = РМ (14, Мб); пересылка данных во входные регистры АЛУ из памяти данных и из памяти программ по указанным адресам. Возможны пересылки между регистрами, например,
    ТХО = MR1 - запись в регистр последовательного порта
    SPORTO операнда из регистра MR1. MRO = 0 - обнуление регистра результата умножения. Пример команды вычисления и записи в память DM (10,
    МО) = AR, AR = АХО + AYO; при этом сначала производится запись в память, а затем вычисление. Вычисление с пересылкой регистр-регистр, например, AR=
    =АХО + AYO, АХО = MR1; вначале цикла происходит сложение значений АХО и AYO, а в конце цикла загрузка нового операнда из
    АХО в MR1. Пересылка регистр-регистр может быть изв любого регистра АЛУ, умножителя и сдвигателя, кроме регистров обратной связи AF, MF и регистра SB.
    4. Команды вычислений По этим командам производятся вычисления в АЛУ, умножителе аккумуляторе и сдвигателе. Например, команда сложения с переносом в АЛУ AR=AXO+AYO+C - в регистр AR записывается сумма АХО и AYO плюс значение флага переноса С. Команда
    MAC умножителя запишется как MR=MR+MXO*MYO (SS).B регистр результата записывается сумма предыдущего значения с произведением операндов входных значений X и У. Модификатор в скобках означает, что операнды знаковые. Возможны 5 вариантов модификаторов, например, (US) умножается незнаковый операнд на знаковый. Если в команде имеется модификатор (RND)TO после умножения-суммирования производится округление результата, то есть результат берется из регистра MR 1, а разряды MR0 не учитываются. По условной команде IF MV SAT MR -если произошло переполнение (появился флаг MV), то проводится операция насыщения (ограничения) результата. При этом в регистр MR записывается максимальное положительное или отрицательное число в зависимости от знака результата.
    44
    Глава 3. Цифровой сигнальный процессор ADSP Приемником для всех операций сдвигателя является регистр результата, кроме операции определения экспоненты (порядка, где приемник это регистры SE или SB. SI - входной регистр содержит операнд, который сдвигается или нормализуется. Контрольные вопросы. Какие основные блоки входят в ЦСП ADSP2181?
    2. Перечислите шины процессора и их назначение.
    3. Каковы области применения процессора ADSP2181?
    4. Назначение и основные операции АЛУ.
    5. Зачем нужен регистр AF?
    6. Поясните назначение флагов АЛУ. Куда они записываются
    7. Как реализуется операция MAC в умножителе-аккумуляторе?
    8. Как и зачем производится операция ограничения (насыщения) и округления. Как производится умножение знаковых и незнаковых операндов
    10. Каковы основные операции кольцевого сдвигателя?
    11. Как задается величина сдвига и как делается сдвиг
    12. Поясните смысл команд (HI/LO).
    13. Как происходит преобразование числа с фиксированной точкой в число с плавающей точкой
    14. Назначение и состав формирователей адресов.
    15. Как вычисляется следующий адрес
    16. В чем разница линейной и циклической адресации
    17. Как и с чего производится начальная загрузка формирователя адресов. Для чего и когда делается операция перестановки бит
    19. Перечислите основные функции устройства управления программой. Что поступает на шину РМА?
    20. Основные узлы устройства управления программой и их назначение.
    21. Каково назначение регистров AS AT, MSTAT, SSTAT?
    22. Что входит в периферию ADSP2181?
    23. Назначение и структура последовательных портов. Для чего нужна двойная буферизация
    24. Поясните роль прямого доступа к памяти (DMA).
    25. Назначение и структура таймера.
    26. Что входит в систему команд процессора
    27. Перечислите команды управления программой.
    28. Перечислите команды пересылок и прерывания.
    29. Примеры команд вычислений.
    45
    Глава. Реализация на процессоре A D S P 2181 типовых устройств обработки сигналов
    4.1. Нерекурсивный цифровой фильтр Достоинством нерекурсивных фильтров являются абсолютная устойчивость, простота и возможность получения линейной фазовой характеристики [2, 3]. При реализации фильтра во временной области вычисляется дискретная свертка
    Y (кТ) = £ й (пТ) * х к - п)Т ], где й ( п Т )
    - коэффициенты импульсной характеристики фильтра, определяющие АЧХ и ФЧХ фильтра п меняется от 0 до N
    - 1, где
    N - порядок фильтра. Например, для N = 3 имеем разностное уравнение
    у(п) = й х(п) + й 1) ;с(п-1) + й 2) х(п- 2), где х(п) представляет последнюю входную выборку, х(п-1) - предпоследнюю входную выборку, а х(п-2) - предпредпоследнюю входную выборку. Схема фильтра показана на рис 1.8. Данные на вход фильтра поступают с АЦП через последовательный порт ЦСП. Для хранения данных и коэффициентов фильтра выделяются N ячеек памяти данных и N ячеек памяти программ. В процессорах, имеющих две памяти данных, коэффициенты записываются во вторую память данных. Вовремя инициализации значения ячеек памяти данных обнуляются. Для получения выходного отсчета необходимо N раз выполнить типовую операцию MAC. На сигнальных процессорах фильтры реализуются в программном виде [5, 6, 8]. Программа состоит из трех частей главного модуля, подпрограммы инициализации flt.init и подпрограммы фильтрации (см. рис. 4.1). Главный модуль обеспечивает синхронизацию ввода/вывода данных через последовательный порт процессора. При этом задаются частоты тактовой и кадровой синхронизации, получаемые делением внутренней тактовой частоты ГТИ. Возможно использование внешней синхронизации. Ввод данных
    46
    Глава 4. Реализация на процессоре ADSP 2181 типовых устройств выполняется по сигналам прерываний. В главном модуле программы объявляются адреса подпрограмм proc_start и init_start, производится установка регистров последовательного порта и загрузка векторов прерываний и вызывается подпрограмма инициализации. В подпрограмме инициализации объявляется метка входа в подпрограмму init_start, объявляются буферы данных data_buffer и коэффициентов coef_buffer. Входные выборки хранятся в памяти данных, а коэффициенты фильтра в памяти программ. Также задаются возвращаемые значения - состояние регистров начала работы подпрограммы, изменяемые параметры - состояние регистров, используемых в подпрограмме. Для обработки изменений в буфере данных используется циклическая адресация. Далее вызывается подпрограмма фильтрации fir_proc, выполняющая базовую операцию свертки для очередного отсчета входных данных с приемного регистра порта RXO. Выходной отсчет Рис. 4.1. Блок-схема реализации фильтра
    47
    Сигнальные микропроцессоры данных записывается в передающий регистр последовательного порта ТХО. Все коэффициенты и значения данных при фильтрации представляются в формате 1.15. В программе содержатся параметры вызова начальный адрес данных, порядок фильтра (длина цикла, начальный адрес буфера коэффициентов и значения регистров- модификаторов возвращаемые значения и изменяемые регистры
    SI, МХО, MYO, MR, CNTR. Время вычислений для фильтра порядка составляет (N + 6) Т
    н
    . Максимальный порядок фильтра определяется, во-первых, длительностью инструкции, во-вторых, числом входных выборок и требуемым числом операций. Программа реализации нерекурсивного фильтра приведена в Приложении 2.
    4.2. Формирователь гармонического колебания табличным методом и методом аппроксимации на процессоре Основных методов формирования гармонического колебания два табличный (эталонный) и метод аппроксимации. При табличном методе в память данных процессора предварительно записываются значения функции синуса на периоде, например, из математического справочника, с некоторым шагом Дф . При шаге 1 градус нужны 360 ячеек памяти. Затем в соответствии с программой формируются адреса ячеек памяти и из них вызываются значения функции с шагом Дф! более крупным, чем начальный в таблице. Так для формирования функции с достаточной точностью можно взять 12 выборок с шагом 30 градусов. При заданной частоте синуса Гц тактовая частота равна 1,2 КГц. Из той же таблицы возможно получить при одной тактовой частоте два гармонических колебания разной частоты для этого шаг выборки по фазе берется разный. Вызванные отсчеты, если нужно, умножаются на коэффициент амплитуды, пересылаются в регистр передачи последовательного порта и сего выхода поступают на ЦАП. Полученное колебание фильтруется аналоговым фильтром нижних частот с целью удаления гармоник.
    Блок-схема табличного метода формирования показана на рис.
    4.2.
    48
    Глава 4. Реализация на процессоре ADSP 2181 типовых устройств Рис. 4.2. Алгоритм формирования синуса табличным методом При втором методе используется аппроксимация функции синус степенным рядом [5, 6, 12] у — sin дг = л- + х - 5,32519 х + 0,54467778/ +
    + 1,800293л:
    5
    Синус данного аргумента вычисляется путем суммирования результатов умножения последовательных степеней угла на соответствующие коэффициенты.
    Блок-схема реализации показана на рис. 4.3. Вычисления по формуле выполняются для первого квадранта, поскольку при этом обеспечивается максимальная точность соот-
    49
    Сигнальные микропроцессоры
    ветствующих значениям аргумента от 0 доили от 0. до 90°. Для других квадрантов используются соотношения sin( ф) = -sin ф, sin (180 — ф) = БШф, sin (ф - 180) = - 5Шф. В первом квадранте обеспечивается максимальная точность, в других квадрантах при прямом вычислении точность хуже, поэтому для расчетов siruc в 2, 3 и 4 квадрантах используется указанное соотношение. В программе имеются условные переходы определения квадранта и вычисление соответствующих значений. Значениях представляются в дробном формате 1.15. Углу 180° в этом формате соответствует максимальное положительное значение х 0x7FFF примерно единица, углу -180° максимальное отрицательное число х 0x8000 (минус 1). Коэффициенты полинома инициализируют- ся в буфере sin_coef памяти данных в формате 4.12, содержащем разряд знака, 3 разряда целой части и 12 разрядов дробной - мантиссы. Процессор выполняет вычисления значений функции с погрешностью до двух младших разрядов. Подпрограмма вычисления синусоидальной функции методом аппроксимации приведена в Приложении 3. Для реализации функции синус используется 25 циклов. Частота дискретизации выбирается из условия F
    d
    = 60 с . Точность реализации функции синус определяется, во-первых, числом членов ряда, во-вторых, разрядностью коэффициентов ряда, и точностью вычислений в процессоре, зависящей от разрядности.
    4.3. Вычислитель быстрого преобразования Фурье на процессоре При спектральном анализе и цифровой фильтрации широко используется алгоритм быстрого преобразования Фурье (БПФ ) [2, 3]. Входная выборка из N временных отсчетов с выхода АЦП может быть действительной и комплексной. Комплексная выборка представляет собой, например, отсчеты косинусной и синусной составляющих с выхода квадратурного приемника. В данной главе рассматривается реализация БПФ по комплексной выборке. Следует заметить, что результаты вычислений по алгоритму
    БПФ такие же, как и при вычислениях ДПФ, однако, БПФ более эффективен по числу выполняемых типовых операций. Наиболее
    50
    Глава 4. Реализация на процессоре ADSP 2181 типовых устройств
    Начя по Задание начального угла X Задание шага дискретизации М Выбор ь отсч
    N = h оличества гтов N,
    + ХМ Подпрограмма вычисленияУ Запись Y в память х = > см Рис. 4.3. Блок-схема реализации синусоидального колебания методом аппроксимации
    51
    Сигнальные микропроцессоры прости эффективен алгоритм БПФ по основанию 2, когда длина выборки представляет собой степень 2 [2]. При этом полное вычисление БПФ разбивается на комбинацию и расчет двухточечных
    ДПФ, называемых бабочка. Иногда, но редко используется БПФ по основанию 4. При реализации ДПФ необходимо выполнить N
    2
    операций
    MAC (см. формулу в 1.1), а при БПФ степени 2 требуется вычислить бабочек. Каждая такая операция включает операцию комплексного умножения на поворачивающий множитель, комплексное сложение и вычитание, то есть операцию MAC ивы- читание. Схема типовой операции бабочка показана на рис. 4.4. Эффективность алгоритма БПФ растет с увеличением N, Так, при N = 1024 эффективность БПФ выше примерно враз. Различаются алгоритмы БПФ с разрежением повремени и по частоте [2, 3]. Алгоритмы отличаются только порядком вычислений, в частности, отличны схемы бабочки. В обоих случаях необходима перестановка бит (бит-реверс), чтобы выходная последовательность отсчетов спектра следовала по-порядку, то есть сначала коэффициент постоянной составляющей - нулевой гармоники, затем первой, второй и т. д. При вычислении спектра по алгоритму БПФ (ДПФ) отдельные спектральные составляющие имеют вид sin х / х, то есть имеются боковые пики, попадающие в соседние каналы. Для их ослабления используется умножение входных отсчетов на весовые коэффициенты Ъ
    п
    , п = 0, 1,2, .. .N-1. (функции Хэмминга, Тейлора и др. Схема ввода данных и вычисления БПФ на процессоре дана на рис. 4.5. Косинусная и синусная составляющие поступают на два
    W=C+jtS) Рис. 4.4. Операция бабочка
    52
    Глава 4. Реализация на процессоре ADSP 2181 типовых устройств АЦП, с выхода которых входные отсчеты вводятся через приемные каналы последовательных портов в память процессора ( DM ). В памяти программ (РМ) процессора хранятся отсчеты косинусных и синусных составляющих поворачивающих множителей и коэффициенты весовой функции. Далее происходит умножение входных отсчетов на весовые коэффициенты и вычисления программе алгоритма БПФ. Вычисленные коэффициенты спектра выводятся через каналы передачи последовательных портов. Поворачивающие множители представляются в виде
    W
    N
    = ехр ( - 2 n n / N ) = cos ( 2 n n / N ) - sin (2nn/N) = СВ соответствии с графом бабочки производятся следующие вычисления К = Х+ С Х , - ( - 5 ) КУСУ Хи
    V,=X
    0
    -CX,-(-S)Y
    u
    Z , = R
    0
    - С К , + ( - S ) X , . Входные и выходные операнды комплексные. Блок-схема программы вычисления БПФ представлена на рис. 4.6. На каждой ступени вычисляется N/
    2 бабочек. При этом число разрядов выходных данных может увеличиваться по сравнению с входными до двух бит, за счет чего возможно переполнение. Для избежания ошибок за счет этого производится операция масштабирования выходных данных. Программа вычисления БПФ содержит три подпрограммы первая разбиения входных данных на две подпоследовательности половинной длины и перестановки бит, вторая Рис. 4.5. Реализация БПФ на процессоре
    1   2   3   4   5   6   7   8   9   ...   12
    написать администратору сайта