Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров фирмы 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) }
{ Биты: 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:
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++, относящееся к жанру Справочники. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.


