Чтение онлайн

ЖАНРЫ

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

Вальпа Олег Дмитриевич

Шрифт:

Рис. 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 синхронизация бит порта) }

{ }

{ SCLKDIV =(( 2*16384КГц ) / ( 2*2048КГц )) -1=8-1=7 }

ax0 = 7; DM(SPORT0.SCLKDIV) = ax0;

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

{ частота SCLK }

{ RFSDIV = ------------ - 1; }

{ частота RFC }

{ RFSDIV = 2048КГц / 8КГц - 1 = 256-1 = 255 }

ax0 = 255; DM(SPORT0_RFSDIV) = ах0;

{Регистр SPORT0_Autobuf = 0x3FF3 (Регистр управления автобуферизацией SPORT0)}

{ Биты: FEDCBA9876543210 }

{ Исх.сост: 0000XXXXXXXXXX00 }

ax0 = b#0000011110101011; DM(SPORT0_Autobuf) = ах0;

{ Регистр SPORT1_Control_Reg = 0x3ff2 (Регистр управления SPORT1) }

Поделиться с друзьями: