Категории
Самые читаемые
ChitatKnigi.com » 🟢Справочная литература » Справочники » Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ - Олег Вальпа

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

Читать онлайн Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ - Олег Вальпа
1 ... 41 42 43 44 45 46 47 48 49 ... 52
Перейти на страницу:

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать

Рис. 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)            }

{ Биты:     FEDCBA9876543210                                                 }

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

    ax0 = b#0111101001001001; DM(SPORT1_Control_Reg) = ах0;

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

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

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

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

{                                                                            }

{ SCLKDIV = (( 2 *16384КГц ) / ( 2*115200 Гц )) -1 = 142-1 = 852             }

      ax0 = 141; DM(SPORT1_SCLKDIV) = ax0; { 115200 бод }

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

{          частота SCLK                                                      }

{ RFSDIV = ------------ - 1; (или число бит в пакете -1)                     }

{          частота RFC                                                       }

{ RFSDIV = 19200 Гц / 1920 Гц - 1 = 10-1 = 9                                 }

     ax0 = 9; DM(SPORT1_RFSDIV) = ax0;

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

{ Биты:     FEDCBA9876543210                                                 }

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

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

В первых двух блоках программы разрешается работа первого канала приемника SPORT0. В следующих двух блоках программы разрешается работа нулевого и первого канала передатчика SPORT0. Далее в регистр SPORT0_Control_Reg заносится информация о длине слова, формате данных, выравнивании слова, типе компандирования, инвертировании кадровых импульсов и др. режимов работы порта. После чего вычисляется коэффициент деления для тактовой частоты синхронизации SCLK и записывается в регистр SPORT0_SCLKDIV. Аналогично, в следующем блоке программы, производится вычисление коэффициента деления для тактовой частоты кадровых импульсов и запись этого значения в регистр SPORT0_RFSDIV. Завершается конфигурирование SPORT0 записью режима работы порта в регистр управления автобуферизацией SPORT0_Autobuf. Аналогично производится конфигурирование порта SPORT1.

Прием и передача данных через порты могут осуществляться с помощью регистров передатчика TX0, TX1 и регистров приемника RX0, RX1 в портах SPORT0 и SPORT1 соответственно. Эти регистры не отображены в карте памяти процессора, но распознаются мнемоникой ассемблера. Доступ к этим регистрам обеспечивается в произвольный момент во время выполнения программы. Например, следующая команда записывает данные из регистра AX0 в регистр передатчика SPORT1:

1 ... 41 42 43 44 45 46 47 48 49 ... 52
Перейти на страницу:
Открыть боковую панель
Комментарии
Настя
Настя 08.12.2024 - 03:18
Прочла с удовольствием. Необычный сюжет с замечательной концовкой
Марина
Марина 08.12.2024 - 02:13
Не могу понять, где продолжение... Очень интересная история, хочется прочесть далее
Мприна
Мприна 08.12.2024 - 01:05
Эх, а где же продолжение?
Анна
Анна 07.12.2024 - 00:27
Какая прелестная история! Кратко, ярко, захватывающе.
Любава
Любава 25.11.2024 - 01:44
Редко встретишь большое количество эротических сцен в одной истории. Здесь достаточно 🔥 Прочла с огромным удовольствием 😈