Добавил:
Да поможет вам Котельников Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

МП

.pdf
Скачиваний:
9
Добавлен:
23.06.2024
Размер:
1.33 Mб
Скачать

Рис. 26

Ввод информации в последовательной форме осуществляется через вывод DR0 (DR1) для порта SPORT0 (SPORT1), а вывод – через контакт DT0 (DT1).

Скорость обмена информацией может управляться от внутреннего генератора Ген (в этом случае вывод процессора SCLK0 (SCLK1) является выходом, на который выводится тактируемый сигнал) или от внешнего генератора, подключаемого к выводу SCLK0 (SCLK1) ( в этом случае вывод

SCLK0 (SCLK1) должен быть запрограммирован как вход).

Преобразование сигнала из параллельной формы в последовательную и обратное преобразование осуществляются регистрами сдвига,

взаимодействие с шиной данных процессора – через регистры TX0 (TX1) и

RX0 (RX1).

Любая команда записи информации в регистр TX0 (TX1) инициирует начало обмена по порту SPORT0 (SPORT1).

Цепи компандирования обеспечивают возможность без расхода

71

программных ресурсов выполнить компрессию в цифровой форме линейно кодированного 13 – разрядного числа в регистре TX0 (TX1) в 8- разрядное по законам компандирования А-87.6 /13 или и экспандирование 8-разрядного числа в регистре RX0 (RX1) в аналогичном формате. Задержка сигнала при использовании компандирования составляет один машинный цикл.

За каждым из регистров TX0, TX1, RX0 и RX1 в памяти данных процессора может быть закреплен кольцевой буфер произвольной длины, в

ячейки которого производится ввод принимаемой информации (для регистров RX0 и RX1) или ее вывод (для TX0 и TX1).

Порядок обращения к ячейкам – направление и шаг записи/чтения -

может устанавливаться программно. Такой режим работы портов называется автобуферированием.

Последовательные порты процессора генерируют два вида прерываний

– «передатчик пуст» и «приемник полон» (см. таблицу 1). При пословном обмене прерывание «передатчик пуст» формируется после передачи старшего бита передаваемого слова, а «приемник полон» - после приема всего слова. При использовании режима автобуферирования прерывание

«передатчик пуст» формируется в момент, когда в регистр TX0 (TX1)

загружено последнее слово из буфера, но до начала его передачи, а

прерывание «приемник полон» - после записи принятого слова в последнюю ячейку буфера.

Выводы TFS0 (TFS1) и RFS0 (RFS1) используются для определения границ слов при приеме/передаче, за исключением использования порта

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

Программирование функций последовательных портов осуществляется через специальные регистры, выделенные (аналогично регистрам таймера) в

верхней области памяти данных.

Включение/выключение портов осуществляется тремя битами ячейки

72

dm(0x3FFF) в соответствии с рис. 27.

Рис. 27

Активизация/включение режима автобуферирования и выделение регистров ГАД, управляющих в этом режиме процессами записи принимаемой информации в буфер и чтением из буфера иллюстрируется рис.

28.

Рис. 28

Управление функциями портов осуществляется в соответствии с рис.

29.

Ранее было отмечено, что порт SPORT0 обеспечивает, синхронизуясь по цикловому синхроимпульсу, возможность доступа к произвольной группе канальных интервалов 24-х (Т1) или 32-х (Е1) канального потока; такая функция порта называется многоканальной. Включение многоканальной

73

функции производится записью единицы в старший разряд ячейки dm(0x3FF6); при этом некоторые другие программирующие биты изменяют свое назначение в соответствие с рис. 30 (назначение остальных бит остается прежним).

Номера конкретных канальных интервалов потока, к которым осуществляется доступ, отмечаются записью логической единицы в ячейки dm(0x3FF7) … dm(0x3FFA) в соответствии с рис. 30.

Активизация многоканальной функции SPORT0 меняет также назначение выводов RFS0 и TFS0.

Вывод процессора RFS0 используется как вход или выход циклового синхросигнала при его внешней или внутренней генерации.

Вывод TFS0 является выходом, активное значение сигнала на нем сопровождает передаваемые канальные интервалы; такая функция бывает полезной при использовании многопроцессорной обработки сигналов а одном потоке Е1.

Важной особенностью функционирования последовательных портов процессора ADSP-2181 является синхронность приема и передачи по каждому из них, что обусловлено наличием только одного комплекта выводов SCLK и RFS каждого порта, общего для приема и передачи. Для пользователя эта особенность означает, что передача и прием ведутся на одной скорости, причем, если в текущий момент времени портом принимается канальный интервал № k, то и передается в это время канальный интервал № k. Такое ограничение диктует разработчику устройств, предназначенных для работы в точке транзита, необходимость включения порта «в разрыв» потока в соответствии с рис. 31

74

Рис. 29

75

Рис. 30

76

Рис. 31

В рамках изучаемого курса наиболее интересным аспектом использования последовательных портов является возможность включения процессора (обработки сигналов шифрования и расшифровки) в точке транзита «в разрыв» потока Е1 в соответствие с рис. 31.

Рассматриваемое включение требует решения вопросов аппаратной и программной стыковки портов процессора с потоком.

Аппаратное согласование, – по структуре цепей, логическим уровням,

тактовой и цикловой синхронизации, – может быть выполнено с помощью специальных приемопередатчиков потока Е1, иногда называемых фреймерами. Одним из таких изделий, аттестованных для работы в системах жизнеобеспечения (что гарантирует его высокую надежность), является микросхема DS2153Q.

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

регенерацию с преобразованием сигнала из кодов ЧПИ(AMI) и КВП-3(HDB-

3) в БВН(NRZ) с логическими уровнями ТТЛ и обратным преобразованием,

77

выделение сопровождающих тактового, циклового (а при необходимости и сверхциклового) сигнала, сквозную трансляцию выбранных канальных интервалов, поддержку контроля ошибок передачи по структуре кода и процедуре CRC-4 и т.п. Кроме того, схемы включения и обозначение выводов приемопередатчиков разных производителей очень мало отличаются друг от друга.

Типовая функциональная схема, иллюстрирующая включение последовательного порта процессора ADSP-2181 в разрыв одного из направлений передачи потока Е1 с использованием приемопередатчика (ПП)

представлена на рис. 32. На этом рисунке обозначены следующие выводы приемопередатчика ПП:

RTIP, RRING – вход по потоку Е1;

TTIP, TRING - выход по потоку Е1;

RSER – выход принимаемого сигнала в коде БВН(NRZ);

TSER – вход передаваемого сигнала в коде БВН(NRZ);

RCLK – выход тактового синхросигнала тракта приема;

TCLK – вход тактового синхросигнала тракта передачи;

SYSCLK - выход циклового синхросигнала.

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

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

78

Рис. 32

Обработка сигнала группы канальных интервалов (в рассматриваемом примере КИ1…КИ31) потока диктует целесообразность их приема/передачи с использованием функции автобуферирования; такое решение открывает возможность применения дальнейшей циклической обработки. Стыковка с потоком в соответствии со схемой рис. 32 предполагает использование многоканальной функции порта SPORT 0, при этом все операции обеспечения приема/передачи отдельных канальных интервалов будут поддерживаться аппаратно и не будут требовать реакции со стороны программы. Активизация реакции программы будет проводиться по прерываниям «передатчик пуст» SPORT0 ПД (адрес 0х10) и «приемник полон» SPORT0 ПМ (адрес 0х14).

Как отмечалось ранее, прием и передача информации портом ведется синхронно, поэтому хронологически прерывание «передатчик пуст» будет генерироваться раньше (когда сигнал КИЗ1 извлечен из буфера, но до его передачи), чем «приемник полон» (после завершения приема КИЗ1 и его записи в буфер). Интервал времени между этими двумя прерываниями примерно равен длительности одного канального интервала и соответствует

3,9мкс.

Обновление информации в закрепленных за портами буферах

79

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

Рис. 33

Функция автобуферирования закрепляет (через регистры ГАД, в

данном примере I0 и I1) буферы rx_buf и tx_buf, соответственно, за регистрами приема RX0 и передачи TX0. Через эти буферы осуществляется

прием/передача текущих отсчетов потока.

При двойном буферировании организуются еще два буфера - vhod и

vihod, используемые в программе обработки.

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

сформированные в буфере vihod на предшествующем цикле, в буфер tx_buf.

Спустя 3,9 мкс порт формирует запрос на прерывание «приемник полон»; соответствующая подпрограмма должна немедленно переписать содержимое буфера rx_buf (канальные интервалы КИ1…КИ31) в буфер

vhod. Канальный интервал КИ0 не

обрабатывается процессором;

его

сквозная трансляция обеспечивается

средствами приемопередатчика.

В

 

80

 

Соседние файлы в предмете Микропроцессорная техника в инфокоммуникациях