Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ — страница 36 из 43

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

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

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

Каждый последовательный порт поддерживает длину слова последовательно передаваемых и принимаемых данных от трех до шестнадцати бит.

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

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

SPORT0 и SPORT1 могут выполнять аппаратное компандирование по А-закону или Мю-закону, согласно рекомендациям Международного консультативного комитета по телеграфии и телефонии (МККТТ) G.711.

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

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

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

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


Таблица 21.2 Описание рисунков диаграмм

Номер рисункаНаправление потокаРежим кадровой синхронизацииПоток данныхНаличие синхронизации
21.2ПриемНормальныйС интерваламиЕсть
21.3ПриемНормальныйНепрерывныйЕсть
21.4ПриемАльтернативныйС интерваламиЕсть
21.5ПриемАльтернативныйНепрерывныйЕсть
21.6ПриемНормальныйНепрерывныйНет
21.7ПриемАльтернативныйНепрерывныйНет
21.8ПередачаНормальныйС интерваламиЕсть
21.9ПередачаНормальныйНепрерывныйЕсть
21.10ПередачаАльтернативныйС интерваламиЕсть
21.11ПередачаАльтернативныйНепрерывныйЕсть
21.12ПередачаНормальныйНепрерывныйНет
21.13ПередачаАльтернативныйНепрерывныйНет

Рис. 21.2

Рис. 21.3

Рис. 21.4

Рис. 21.5.

Рис. 21.6

Рис. 21.7

Рис. 21.8

Рис. 21.9

Рис. 21.10

Рис. 21.11

Рис. 21.12

Рис. 21.13

SPORT0 в отличие от SPORT1 может кроме того работать в режиме многоканальности. Т.е. он может избирательно принимать и передавать данные последовательного потока с использованием мультиплексирования 24 или 32 каналов с временным разделением информации. Это необходимо для использования цифровых коммуникационных интерфейсов T1 и E1, а также может использоваться для сетевой коммуникации нескольких процессоров. В одноканальном режиме сигналы кадровой синхронизации обозначают начало слова или непрерывного потока слов. В многоканальном режиме сигнал кадровой синхронизации приема данных RFS0 обозначает начало конкретного слова в потоке данных, состоящих из 24 или 32 слов, для одновременного приема и передачи этого слова по раздельным линиям приемопередатчика. Многоканальный режим разрешается установкой в единичное состояние 15-го разряда в регистре управления SPORT0 по адресу 0x3FF6. Формат пакетов при этом определяется разрядом 9 этого же регистра. Если он установлен в единицу, будет задан 32-словный формат, при установке в ноль задается 24-словный формат данных. Кроме того, разряды с 10-го по 13-й этого же регистра, с условным названием MFD, устанавливают задержку сигнала кадровой синхронизации в многоканальном режиме для того, чтобы кадровый синхроимпульс обозначал необходимое для приема и передачи слово в потоке данных. Диаграмма задержки сигнала кадровой синхронизации для нескольких значений MFD при работе SPORT0 в многоканальном режиме показана на рис. 21.14.

Рис. 21.14. Диаграмма задержки сигнала кадровой синхронизации

Сигнал кадровой синхронизации передатчика TFS0 в многоканальном режиме работает как сигнал TDV (Transmit Data Valid), переводимый как правильные данные передачи и предназначенный для управления включением и отключением внешней буферной логики передатчика. Фактически этот сигнал осуществляет стробирование тех слов данных, которые были разрешены в конфигурационном регистре для передачи. В зависимости от установки 7-го разряда в регистре управления SPORT0 по адресу 0x3FF6 описанный сигнал может иметь активное значение с высоким или с низким уровнем потенциала. На рис. 21.15 приведен пример диаграммы работы SPORT0 в многоканальном режиме.

Рис. 21.15. Пример диаграммы работы SPORT0 в многоканальном режиме

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

{ ============================= SPORT0 ============================= }

{ Регистры разрешения мультиканального приема/передачи данных SPORT0 }

{ Регистр разрешения приема SPORT0_RX_Channels1 = 0x3ffa             }

{ Биты:   FEDCBA9876543210 0-игнорирован 1-доступен                  }

{ Каналы: 3322222222211111                                           }

{         1098765432109876                                           }

  ax0 = b#0000000000000000; DM(SPORT0_RX_Channels1) = ax0;


{ Регистр разрешения приема SPORT0_RX_Channels0 = 0x3ff9             }

{ Биты:   FEDCBA9876543210 0-игнорирован 1-доступен                  }

{ Каналы: 111111                                                     }

{         5432109876543210                                           }

  ax0 = b#0000000000000010; DM(SPORT0_RX_Channels0) = ax0;


{ Регистр разрешения передачи SPORT0_TX_Channels1 = 0x3ff8           }

{ Биты:   FEDCBA9876543210 0-игнорирован 1-доступен                  }

{ Каналы: 3322222222211111                                           }

{         1098765432109876                                           }

  ax0 = b#0000000000000000; DM(SPORT0_TX_Channels1) = ax0;


{ Регистр разрешения передачи SPORT0_TX_Channels0 = 0x3ff7           }

{ Биты:   FEDCBA9876543210 0-игнорирован 1-доступен                  }

{ Каналы: 111111                                                     }

{         5432109876543210                                           }

  ax0 = b#0000000000000011; DM(SPORT0_TX_Channels0) = ax0;


{ Регистр SPORT0_Control_Reg = 0x3FF6 (Регистр управления SPORT0)    }

{ Биты:     FEDCBA9876543210                                         }

{ Исх.сост: 0000000000000000                                         }

    ax0 = b#1100011100110111; DM(SPORT0_Control_Reg) = ax0;


{ Регистр SPORT0_SCLKDIV = 0x3FF5 (Модуль деления последов. такт. импульсов) }

{           частота CLKOUT внутренняя удвоенная частота процессора           }

{ SCLKDIV = ------------------------------------------------------ - 1;      }

{(кадр.с.и.)      2*(частота SCLK синхронизация бит порта)                   }

{                                                                            }