- •Коммуникационные микроконтроллеры и системы на их основе
- •Коммуникационные микроконтроллеры и системы на их основе
- •Организация коммуникационных процессорных модулей в кмк
- •Коммуникационные микроконтроллеры и системы на их основе
- •Коэффициент внутреннего увеличения частоты
- •Организация коммуникационных процессорных модулей в кмк
- •Коммуникационные микроконтроллеры и системы на их основе
- •Режимы использования контактов
- •Организация коммуникационных процессорных модулей в кмк
- •Коммуникационные микроконтроллеры и системы на их основе
- •Типы пакетов подтверждений
- •Организация коммуникационных процессорных модулей в кмк
- •Коммуникационные микроконтроллеры и системы на их основе
- •Организация коммуникационных процессорных модулей в кмк
- •Коммуникационные микроконтроллеры и системы на их основе
- •Организация коммуникационных процессорных модулей в кмк
- •Память основных параметров usb-контроллера
- •Поддержка протоколов в коммуникационных контроллерах
- •5.3. Поддержка протоколов в коммуникационных контроллерах
- •Выбор источника тактирования канала
- •Режимы работы tdm-каналов
- •Режимы работы блока tsa
- •Характеристики временных каналов
- •Назначение сигналов idl-интерфейса
- •Коммуникационные микроконтроллеры и системы на их основе
- •Память маршрутизации приемника
- •Назначение сигналов gci-интерфейса
- •Коммуникационные микроконтроллеры и системы на их основе
- •Память маршрутизации
- •Поддержка протоколов в коммуникационных контроллерах
- •Типы сообщений м-канала для s/t-трансивера мс145574
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Поддержка протоколов в коммуникационных контроллерах
- •Память общих параметров всех логических каналов
- •Коммуникационные микроконтроллеры и системы на их основе
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •3 4 6 7 Рис. 5.100. Регистр событий scce и
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Конфигурации контроллеров мрс860мн
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Использование дробных стоп-битов
- •Тип контроля в сети
- •Коммуникационные микроконтроллеры и системы на их основе
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Размер синхросимволов
- •Коммуникационные микроконтроллеры и системы на их основе
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Команды u-кадров
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Поддержка протоколов в коммуникационных контроллерах
- •Поддержка протоколов в коммуникационных контроллерах
- •Поддержка протоколов в коммуникационных контроллерах
- •5.3.5. Доступ к сетям ethernet
- •Коммуникационные микроконтроллеры и системы на их основе
- •Значения задержек при приеме кадра
- •Поддержка протоколов в коммуникационных контроллерах
Коммуникационные микроконтроллеры и системы на их основе
Работа с HDLC-протоколом. Распределение памяти при работе с этим протоколом приведено в табл. 5.60.
Переменные TBASE и RBASE задают смещение стартового адреса таблицы буферных дескрипторов конкретного логического канала относительно базового адреса 64-Кбай-тной таблицы буферных дескрипторов всех логических каналов, который задан в ячейке MCBASE памяти общих параметров.
Переменные TBPTR и RBPTR задают смещение адреса текущего буферного дескриптора обрабатываемого логического канала относительно базового адреса 64-Кбайт-ной таблицы буферных дескрипторов всех логических каналов, который задан в ячейке MCBASE памяти общих параметров. Например, реальный адрес текущего буферного дескриптора передатчика вычисляется как MCBASE+TBPTR.
Таблица 5.60 Канал-ориентированная память параметров при работе с HDLC-протоколом
Адрес |
Название |
Размер, бит |
Описание |
DPBASE+00 |
TBASE |
16 |
Базовый адрес таблицы Тх BD |
DPBASE+02 |
CHAMR |
16 |
Регистр режима при работе с HDLC-протоколом |
DPBASE+04 |
TSTATE |
32 |
Внутреннее Тх-состояние |
DPBASE+08 |
|
32 |
Указатель на ячейку памяти в Тх-буфере канала |
DPBASE+OC |
TBPTR |
16 |
Указатель на ячейку памяти дескриптора Тх BD |
DPBASE+OE |
|
16 |
Счетчик переданных из буфера Тх байт данных |
DPBASE+10 |
TUPACK |
32 |
Временная переменная Тх |
DPBASE+14 |
ZISTATE |
32 |
Состояние автомата zero-insertion |
DPBASE+18 |
TCRC |
32 |
Текущее значение CRC-суммы при передаче кадра |
DPBASE+1C |
INTMSK |
16 |
Маска флагов прерываний каналов |
DPBASE-HE |
BDflag |
16 |
Временная переменная |
DPBASE+20 |
RBASE |
16 |
Базовый адрес таблицы Rx BD |
DPBASE+22 |
MFLR |
16 |
Максимальная длина кадра данных |
DPBASE+24 |
RSTATE |
32 |
Внутреннее Rx-состояние |
DPBASE+28 |
|
32 |
Указатель на ячейку памяти в Rx-буфере канала |
DPBASE+2C |
RBPTR |
16 |
Указатель на ячейку памяти дескриптора Rx BD |
DPBASE+2E |
|
16 |
Счетчик принятых в буфер Rx байт данных |
DPBASE+30 |
RPACK |
32 |
Временная переменная Тх |
DPBASE+34 |
ZDSTATE |
32 |
Состояние автомата zero-deletion |
DPBASE+38 |
RCRC |
32 |
Текущее значение CRC-суммы при приеме кадра |
DPBASE+3C |
MAX_cnt |
16 |
Вычитающий счетчик максимальной длины |
DPBASE+3E |
TMP_MB |
16 |
Временная переменная |
Примечание. Переменные в ячейках TBASE, RBASE, CHAMR, TSTATE, RSTATE, TBPTR, RBPTR, ZISTATE := 0x00000100, ZDSTATE := 0x00000080 при работе с HDLC протоколом, INTMSK и MFLR инициализируются пользователем до начала работы с SCC-контроллером. Программисту не реко- |
|||
мендуется изменять содержимое остальных ячеек, так как они используются контроллером. |
572
ПОДДЕРЖКА ПРОТОКОЛОВ В КОММУНИКАЦИОННЫХ КОНТРОЛЛЕРАХ
Каждый SCC-канал имеет переменную MFLR, определяющую максимальное число байт (максимум 64 Кбайт), которые могут передаваться в кадре. При приеме кадра, длина которого больше MFLR, кадр будет отброшен, установлен бит ошибки LG = 1 в слове состояния текущего буферного дескриптора, буфер будет закрыт и будет выставлен запрос на прерывание от событий RXF и RXB в регистре событий, если они не замаскированы.
Бит MODE в регистре режима CHAMR (рис. 5.92) определяет протокол, с которым работает выбранный логический канал. Если MODE = 0, то канал работает с протоколом Transparent, если MODE=1 - с HDLC-протоколом.
Бит IDLM определяет режим передачи символов IDLE (если бит IDLM = 1) в промежутках между передачей кадров данных. Если IDLM = 0, то между кадрами данных IOLE-символы не передаются. В промежутке между кадрами передатчик передает NOF+1 символов флага, а затем передает следующий кадр данных. Если кадр еще не готов, то продолжается передача символов флага.
Бит ENT = 1 разрешает работу передатчика, и во временной канал будут передаваться данные согласно выбранному протоколу. Если бит ENT = 0, то передатчик выключен, и если канал подключен к временному слоту, то в этот временной канал будут передаваться «1». Следует отметить, что отсутствует бит разрешения работы приемника с QMC-протоколом, но для разрешения работы приемника необходимо инициализировать переменные ZDSTATE и RSTATE в памяти параметров.
Если бит POL = 0, то коммуникационный процессор не контролирует значение бита готовности R (Ready) в слове состояния дескриптора буфера при передаче. Если бит POL = 1, то при передаче контролируется значение бита готовности буфера.
О 1 2 34567 8 9 10 11 12 13 14 15
MODE | 0 |
IDLM |
ENT |
-I- |
— | POL | CRC |
0 - |
— | NOF |
Рис. 5.92. Формат регистра режима CHAMR для QMC HDLC-контроллера
При работе с HDLC-протоколом бит CRC определяет тип контрольной суммы. Если бит CRC = 0, то используется 16-битная CCITT-CRC контрольная сумма для данного канала. Если бит CRC = 1, то используется 32-битная CCITT-CRC контрольная сумма.
Содержимое ячейки TSTATE определяет внутреннее состояние передатчика, а содержимое ячейки RSTATE - внутреннее состояние приемника. Старший байт ячейки (рис. 5.93) содержит функциональные коды и бит Motorola/Intel. В битах АТЗ-АТ1 содержится код, который будет выставлен на внешних контактах функциональных кодов, чтобы идентифицировать тип доступа к памяти. Бит МОТ определяет порядок передачи байтов в длинных словах при обмене по сети. Если бит МОТ = 0, то используется порядок передачи little-endian, характерный для фирмы «Intel». Если бит МОТ = 1, то используется порядок передачи big-endian, характерный для фирмы «Motorola». У МРС860МН ячейка TSTATE перед использованием канала должна быть проинициализирована кодом 0x30000000. Ячейка RSTATE перед началом работы с канала, при возникновении ошибки или после получения команды STOP RX должна быть проинициализирована кодом 0x31000000 для МРС860МН. Эти ячейки используются также при отладке системы. Если бит 8 32-разрядной ячейки xSTATE равен 1, то в текущий момент времени кадр переда-
0 |
0 |
1 |
МОТ | АТ[1:3] |
Рис. 5.93. Формат регистра TSTATE и RSTATE в памяти параметров QMC HDLC-протокола
573
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
012345 6 7 8 9 10 11 12 13 14 15
V [ W [ NID | IDL | — | Номер канала | MRF | UN | RXF | BSY | TXB | RXB [
Рис. 5.94. Регистр событий канала в очереди прерываний для QMC HDLC-контроллера
01 2 3 4 5 6 7 8 9 10 11 12 13 14 15
J NID [
IDL 0 0 0 0 0 0 MRF UN RXF BSY TXB RXB
Рис. 5.95. Регистр маски INTMSK для QMC HDLC-контроллера
ется (или принимается). Если бит 9 равен 1 , то текущий буфер BD открыт, и из него читаются данные (или в него записываются данные). Если бит 1 2 в ячейке TSTATE равен 1 , то канал был проинициализирован и работает. Если бит 1 1 в ячейке RSTATE равен 1 , то прием остановлен. В младших 16 битах регистра RSTATE хранится слово состояния текущего BD.
Все события, которые могут возникать при работе каналов, регистрируются в циклической очереди прерываний, в регистре событий (рис. 5.94). Для всех логических каналов существует один регистр маски. В регистре INTMSK (рис. 5.95) пользователь может при желании замаскировать прерывание от некоторых событий, если сбросит в «О» бит, соответствующий выбранному событию.
Работа с Transparent-протоколом. В табл. 5.61 приведено распределение канал-ориентированной памяти параметров при работе с протоколом Transparent.
Переменные TBASE и RBASE, TBPTR и RBPTR, ZISTATE и ZDSTATE, TSTATE и RSTATE имеют назначение, аналогичное одноименным переменным для QMC HDLC-протокола.
Бит MODE в регистре CHAMR (рис. 5.96) определяет протокол, с которым работает выбранный логический канал. Если MODE = 0, то канал работает с протоколом Transparent, если MODE = 1 - с HDLC-протоколом.
Бит RD определяет порядок передачи битов в байте. Если бит RD = 0, то в канал передается/принимается первым LSB-бит. Если бит RD = 1 , то первым передается или принимается MSB-бит.
Бит ENT = 1 разрешает работу передатчика, и во временной канал будут передаваться данные согласно выбранному протоколу. Если бит ЕМТ=0, то передатчик выключен, и если канал подключен к временному слоту, то в этот временной канал будут передаваться «1». Следует отметить, что отсутствует бит разрешения работы приемника с QMC-протоколом, но для разрешения работы приемника необходимо инициализировать переменные ZDSTATE и RSTATE в памяти параметров.
Если бит POL = 0, то коммуникационный процессор не контролирует значение бита готовности R (Ready) в слове состояния дескриптора буфера при передаче. Если бит POL = 1 , то при передаче контролируется значение бита готовности буфера.
Все события, которые могут возникать при работе каналов, регистрируются в циклической очереди прерываний, в регистре событий (рис. 5.97). Для всех логических каналов существует один регистр маски. В регистре INTMSK (рис. 5.98) пользователь может при желании замаскировать прерывание от некоторых событий, если сбросит в «О» бит, соответствующий выбранному событию.
О 123 4 5 6 7 8 9 10 11 12 13 14 15
| МОРЕ | RD [ 1 [ ENT | — | SYNC | — [ POL [ р|о|— |— |о|о|о|р|
Рис. 5.96. Формат регистра режима CHAMR для QMC-Transparent-контроллера 574
ПОДДЕРЖКА ПРОТОКОЛОВ В КОММУНИКАЦИОННЫХ КОНТРОЛЛЕРАХ
14
15
13
10 11 12
V |
W |
— |
— |
— |
Номер канала | — |
UN |
-|bsy |
тхв |
RXB |
Рис. 5.97. Регистр событий канала в очереди прерываний для QMC-Transparent-
контроллера
Бит SYNC в регистре режима CHAMR предназначен для выбора режима контроля за синхронизацией при работе с протоколом QMC Transparent. Если бит SYNC равен 0, то первый байт данных передается или принимается из первого доступного для данного логического канала временного слота. Если бит SYNC = 1, то используется алгоритм синхронизации одиночного временного слота, заданный в ячейке TRNSYNC памяти параметров. Если сообщение передается в нескольких временных слотах, то необходимо знать, когда передается первый байт сообщения. Регистр TRNSYNC состоит из двух частей. Старший байт контролирует первый временной слот при приеме, а младший байт -синхронизацию при передаче.
Таблица 5.61 Канал-ориентированная память параметров при работе с протоколом Transparent
Адрес |
Название |
Размер, бит |
Описание |
DPBASE+00 |
TBASE |
16 |
Базовый адрес таблицы Тх BD |
DPBASE+02 |
CHAMR |
16 |
Регистр режима для протокола Transparent |
DPBASE+04 |
TSTATE |
32 |
Внутреннее Тх-состояние |
DPBASE+08 |
|
32 |
Указатель на ячейку памяти в Тх-буфере канала |
DPBASE+OC |
TBPTR |
16 |
Указатель на ячейку памяти дескриптора Тх BD |
DPBASE+OE |
|
16 |
Счетчик переданных из буфера Тх байт данных |
DPBASE+10 |
TUPACK |
32 |
Временная переменная Тх |
DPBASE+14 |
ZISTATE |
32 |
Состояние автомата zero-insertion |
DPBASE+18 |
|
32 |
Резервировано |
DPBASE+1C |
INTMSK |
16 |
Маска флагов прерываний каналов |
DPBASE+1E |
Bdflag |
16 |
Временная переменная |
DPBASE+20 |
RBASE |
16 |
Базовый адрес таблицы Rx BD |
DPBASE+22 |
TMRBLR |
16 |
Максимальная длина буфера приема |
DPBASE+24 |
RSTATE |
32 |
Внутреннее Rx-состояние |
DPBASE+28 |
|
32 |
Указатель на ячейку памяти в Rx-буфере канала |
DPBASE+2C |
RBPTR |
16 |
Указатель на ячейку памяти дескриптора Rx BD |
DPBASE+2E |
|
16 |
Счетчик принятых в буфер Rx байт данных |
DPBASE+30 |
RPACK |
32 |
Временная переменная Тх |
DPBASE+34 |
ZDSTATE |
32 |
Состояние автомата zero-deletion |
DPBASE+38 |
|
32 |
Зарезервировано |
DPBASE+3C |
TRNSYNC |
16 |
Регистр контроля синхронизации |
DPBASE+3E |
|
16 |
Зарезервировано |
Примечание. Переменные в ячейках TBASE, RBASE, CHAMR, TSTATE, RSTATE, TBPTR, RBPTR, ZISTATE := 0x00000100, ZDSTATE := 0x18000080 при работе с Transparent-протоколом, INTMSK, TMRBLR и TRNSYNC инициализируются пользователем до начала работы с SCC-конт-роллером. Содержимое остальных ячеек изменять не рекомендуется, так как они используются |
|||
контроллером. |
575
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ 012 3 4 5 6 7 8 9 10 11 12 13 14 15
[ о | о | о | о [o[o[o|o|o[o|o[un|o| bsy [ тхв | rxb | Рис. 5.98. Регистр маски INTMSK для QMC-Transparent-контроллера
Команды QMC-контроллера. Для управления работой QMC-контроллера пользова- '
тель может применять стандартные команды управления работой RISC-контроллера. Команды записываются в регистр команд CR (рис. 5.99).
Основной набор команд представляет собой стандартные команды управления ра ботой коммуникационного модуля (табл. 5.62). Обратите внимание, что отсутствуют ко манды запуска (start) приема и передачи, эти функции выполняются через регистр общих I
режимов GSMR. |
i
Таблица 5.62 Основные команды управления работой QMS-каналов ввода/вывода
Команда и ее код QMC OPCODE. Описание команды. Действия контроллера при получении команды
STOP TRANSMIT 001 Команда обычно передается при выключении передатчика и приводит к остановке передачи на выбранном канале и сбросу бита POL в регистре CHAMR. При получении этой команды во время передачи кадра контроллер выдает в канал ABORT символ (Ох7Е) и далее продолжает передавать или символы флага или символ(-ы), как это определено в бите IDLM. Указатель текущего буфера TBPTR не изменяется. Если команда получена в интервале между кадрами, то контроллер начинает передавать или символы флага или IDLE-символы. Для возобновления передачи необходимо установить бит POL := 1. После получения команды для деактивации канала необходимо сбросить бит V = 0 в TSA-таблице и бит ENT := 0 в регистре режима.
STOP RECEIVE 000 Команда обычно передается при выключении приемника и приводит к остановке приема на выбранном канале. Указатель текущего буфера RTBPTR не изменяется. Для возобновления приема необходимо проинициализировать переменные в ячейках ZDSTATE и RSTATE,. установив бит POL := 1. После получения команды для деактивации канала необходимо сбросить бит V = 0 в TSA-таблице и бит ENT := 0 в регистре режима.
О 12 34 5 6 7 8 9 10 11 12 13 14 15
[ RST | QMC OPCODE | 1 | 1 [ 1 | 0 [ 0 | CHNUM | — | FLG |
Рис. 5.99. Формат регистра команд RISC-контроллера CR для QMC
Механизм обработки прерываний. При обработке прерываний используются регистр событий SCC-канала (рис. 5.100), который работает с QMC-протоколом, и циклическая таблица прерываний, к которой обращаются логические каналы при своей работе. Напоминаем, что сброс битов в регистре событий производится записью в соответствующий бит кода «1». При желании пользователь может замаскировать прерывание от отдельных событий, установив в «1» соответствующий бит в регистре маски SCCM.
Формат ячеек в таблице прерываний зависит от типа протокола, с которым работает канал, и был описан выше (см. рис. 5.94, 5.97). Переменная INTBASE указывает на расположение первой ячейки таблицы прерываний во внешней памяти контроллера. Переменная INTPTR указывает на текущую пустую ячейку в таблице, доступную для RISC-контроллера. Бит W = 1 (Wrap) в составе каждой ячейки отмечает последнюю ячейку таблицы прерываний. Таблица прерываний обрабатывается циклически - после обработки последней ячейки RISC-контроллер перейдет к обработке первой ячейки таблицы и произойдет переназначение указателя INTPTR := INTBASE.
576