- •Коммуникационные микроконтроллеры и системы на их основе
- •Коммуникационные микроконтроллеры и системы на их основе
- •Организация коммуникационных процессорных модулей в кмк
- •Коммуникационные микроконтроллеры и системы на их основе
- •Коэффициент внутреннего увеличения частоты
- •Организация коммуникационных процессорных модулей в кмк
- •Коммуникационные микроконтроллеры и системы на их основе
- •Режимы использования контактов
- •Организация коммуникационных процессорных модулей в кмк
- •Коммуникационные микроконтроллеры и системы на их основе
- •Типы пакетов подтверждений
- •Организация коммуникационных процессорных модулей в кмк
- •Коммуникационные микроконтроллеры и системы на их основе
- •Организация коммуникационных процессорных модулей в кмк
- •Коммуникационные микроконтроллеры и системы на их основе
- •Организация коммуникационных процессорных модулей в кмк
- •Память основных параметров usb-контроллера
- •Поддержка протоколов в коммуникационных контроллерах
- •5.3. Поддержка протоколов в коммуникационных контроллерах
- •Выбор источника тактирования канала
- •Режимы работы tdm-каналов
- •Режимы работы блока tsa
- •Характеристики временных каналов
- •Назначение сигналов idl-интерфейса
- •Коммуникационные микроконтроллеры и системы на их основе
- •Память маршрутизации приемника
- •Назначение сигналов gci-интерфейса
- •Коммуникационные микроконтроллеры и системы на их основе
- •Память маршрутизации
- •Поддержка протоколов в коммуникационных контроллерах
- •Типы сообщений м-канала для s/t-трансивера мс145574
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Поддержка протоколов в коммуникационных контроллерах
- •Память общих параметров всех логических каналов
- •Коммуникационные микроконтроллеры и системы на их основе
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •3 4 6 7 Рис. 5.100. Регистр событий scce и
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Конфигурации контроллеров мрс860мн
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Использование дробных стоп-битов
- •Тип контроля в сети
- •Коммуникационные микроконтроллеры и системы на их основе
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Размер синхросимволов
- •Коммуникационные микроконтроллеры и системы на их основе
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Коммуникационные микроконтроллеры и системы на их основе
- •Команды u-кадров
- •Коммуникационные микроконтроллеры и системы на их основе
- •Поддержка протоколов в коммуникационных контроллерах
- •Поддержка протоколов в коммуникационных контроллерах
- •Поддержка протоколов в коммуникационных контроллерах
- •Поддержка протоколов в коммуникационных контроллерах
- •5.3.5. Доступ к сетям ethernet
- •Коммуникационные микроконтроллеры и системы на их основе
- •Значения задержек при приеме кадра
- •Поддержка протоколов в коммуникационных контроллерах
Поддержка протоколов в коммуникационных контроллерах
5.3.5. Доступ к сетям ethernet
Ethernet-контроллер. Протокол Ethernet/IEEE 802.3 широко распространен в современных локальных сетях. Протокол предлагает множественный доступ станций к сети с обнаружением сигнала несущей частоты (метод CSMA/CD). Ethernet-версии - это расширение базовых версий контроллера МРС860, в которых к имеющимся коммуникационным протоколам добавлена поддержка Ethernet-протокола и реализованы функции МАС-уровня в соответствии с требованиями стандарта IEEE 802.3. Настройка SCC-канала на работу с Ethernet-протоколом (10 Мбит/с) производится в битах MODE (MODE = 1100) регистра GSMR. Рекомендуется для работы с Ethernet-протоколом использовать SCC1-контроллер, так как он имеет буферы FIFO, размер которых больше в два раза аналогичных буферов FIFO других SCC-каналов.
Для подключения Ethernet-контроллера к сети Ethernet требуется дополнительный внешний передатчик. Фирма «Motorola» выпускает специализированный модуль МС68160 EEST (Enhanced Ethernet Serial Transceiver) для подключения к реальной сети. QUICC-контроллер подготавливает кадры данных, а EEST-передатчик выполняет манчестерское кодирование/декодирование сигналов, автоматическое определение типа разъема и типа сетевого кабеля (AUI или 10Base-T) и выполняет преобразование логических сигналов в электрические импульсы, которые используются при передаче сигналов по выбранному кабелю. Следует обратить внимание, что встроенный блок DPLL не используется для манчестерского кодирования/декодирования сигналов, так как не обеспечивает требуемой скорости передачи данных в 10 Мбит/с. Поэтому при работе с Ethernet-протоколом DPLL-блок должен быть выключен, а все функции кодирования и декодирования данных возлагаются на внешний передатчик EEST. Подключение контроллера к микросхеме EEST показано на рис. 5.118.
Перечислим правила подключения PowerQUICC-контроллера к микросхеме EEST.
Тактовая частота приемника RCLK и передатчика TCLK поступает на QUICC через внешние контакты CLK1, CLK2, CLK3, CLK4 от выводов RCLK и TCLK микросхемы EEST.
Для передачи данных вывод TXD контроллера соединяется со входом ТХ передатчи ка, а для приема данных вход RXD контроллера соединен с выходом RX передатчика.
При работе с Ethernet-протоколом вывод RTS контроллера становится выводом сиг нала разрешения передачи TENA (Transmit Enable), который поступает на вход ТЕМА пе редатчика. Активное состояние сигнала - «1».
При работе с Ethernet-протоколом вход CD контроллера становится входом сигнала разрешения приема RENA (Receive Enable), который поступает с выхода RENA передат чика. Активное состояние сигнала - «1».
QUICC SCC |
|
EESTMC68160 |
|
|
|
|
TxD |
^ |
TX |
|
|
|
|
RTS |
»• |
TENA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CD |
|
RENA |
|
PACQIWC |
|
|
RCLKx |
•* |
RCLK |
|
|
|
|
CTS |
|
CTSN |
|
|
|
|
|
|
|
|
|
|
|
Рис. 5.118. Подключение контроллера к микросхеме EEST
623
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
5. При работе с Ethernet-протоколом вход CTS контроллера становится входом сигнала обнаружения коллизий CLSN (Collision), который поступает с выхода CLSN передатчика. Активное состояние сигнала - «1».
Сигнал обнаружения несущей частоты формируется как комбинация сигналов RENA или CLSN. Дополнительно передатчик EEST имеет вход LOOP, на который пользователь может программно подать сигнал с выхода параллельного порта ввода/вывода для циклического тестирования работы передатчика.
Коммуникационный контроллер сохраняет в буферах памяти каждый принятый байт кадра данных после получения начального ограничителя, используя каналы SDMA. При передаче пользователь должен подготовить в памяти данные, адрес приемника и передатчика и данные поля «тип кадра». При передаче этих данных в сеть QUICC-контроллер автоматически добавит поле контрольной суммы и заполнит поле данных, если его длина меньше 46 байт, специальными символами-заполнителями до заданного минимума.
Для тестирования работы аппаратуры приемника, передатчика и буферов FIFO Ethernet-контроллера пользователь может включить петлевой (loopback) тестовый режим. Этот режим включается при установке бита LPB := 1 в регистре режима PSMR Ethernet-контроллера. Если используется режим внешнего loopback, то биты DIAG в регистре общих режимов работы должны быть настроены для работы в нормальном режиме. Если установлен режим внутреннего loopback, то биты DIAG в регистре GSMR должны быть настроены для работы в петлевом режиме (loopback). В режиме внутренней петли схемы SCC-контроллера отключаются от схем последовательного интерфейса, выход передатчика внутри подключается ко входу приемника SCC-контроллера, тактирование приемника и передатчика производится от одного источника. В режиме внешней петли Ethernet-контроллер одновременно передает и принимает данные от микросхемы EEST.
В контроллере МРС860 пользователь имеет дополнительную возможность для настройки работы Ethernet-контроллера в полнодуплексном режиме обмена. Для этого требуется установить бит FDE := 1 в регистре режима PSMR (см. рис. 5.119).
Формат Ethernet-кадра. Кадр начинается с 7-байтного поля преамбулы, которое состоит из повторяющихся «1» и «О» и которое необходимо для подстройки генераторов станции приемника на частоту передатчика. Формат поля преамбулы фиксирован и известен всем станциям в сети, поэтому данное поле может быть использовано для регистрации начала нового кадра данных и обнаружения состояния коллизии, которое возникает, когда две или более станций пытаются одновременно выйти в сеть. Контроллер обеспечивает автоматическую вставку преамбулы при передаче кадра и ее удаление при приеме кадра. Далее следует поле «начального ограничителя», которое извещает приемник о начале нового кадра данных. Формат кадра представлен на рис. 5.120.
13
12
ю
FDE |
FC |
RSH |
IAM |
CRC |
PRO |
BRO |
SBT | LPB |
SIP |
LCW |
NIB |
|
Рис. 5.119. Формат регистра режима PSMR Ethernet-контроллера
Preamble |
Start Frame Delimiter |
Destination Address |
Source Address |
Type/Length |
DATA |
Frame Check Sequence |
7 байт
1 байт
6 байт
6 байт
2 байта
46-1500 байт
4 байта
624
Рис. 5.120. Формат кадра Ethernet-протокола
ПОДДЕРЖКА ПРОТОКОЛОВ В КОММУНИКАЦИОННЫХ КОНТРОЛЛЕРАХ
Два 48-битных поля адресов предназначены для указания адреса станции отправителя и адреса станции получателя информации. Адрес станции отправителя (48 бит) пользователь может задать в ячейках памяти параметров PADDR1_H, PADDR1_M, PADDR1J. (табл. 5.78). Двухбайтное поле «тип/длина» предназначено для задания длины поля данных или, в некоторых версиях протокола Ethernet, для задания типа кадра.
Таблица 5.78 Память параметров Ethernet-контроллера в микроконтроллере МРС860
Адрес |
Название |
Размер, бит |
Описание |
SCC base+30 |
C_PRES |
32 |
Начальные значения CRC |
SCC base+34 |
C_MASK |
32 |
Константа CRC |
SCC base+38 |
CRCEC |
32 |
Счетчик ошибок контрольной суммы CRC |
SCC base+3C |
ALEC |
32 |
Счетчик принятых невыравненных кадров |
SCC base+40 |
DISFC |
32 |
Счетчик непринятых кадров |
SCC base+44 |
PADS |
16 |
Формат символа заполнителя |
SCC base+46 |
RETJJM |
16 |
Максимальное число повторных попыток выхода в сеть |
SCC base+48 |
RET_cnt |
16 |
Текущее число повторных попыток выхода в сеть |
SCC base+4A |
MFLR |
16 |
Максимальная длина кадра |
SCC base+4C |
MINFLR |
16 |
Минимальная длина кадра |
SCC base+4E |
MAXD1 |
16 |
Максимальная длина DMA1 передачи при приеме |
SCC base+50 |
MAXD1 |
16 |
Максимальная длина DMA2 передачи при приеме |
SCC base+52 |
MAXD |
16 |
Максимальная длина DMA посылки при передаче |
SCC base+54 |
DMA_cnt |
16 |
Текущее значение счетчика DMA2 передачи |
SCC base+56 |
MAX_b |
16 |
Максимальное значение счетчика байт в BD |
SCC base+58 |
GADDR1 |
16 |
Фильтр фуппового адреса |
SCC base+5A |
GADDR2 |
16 |
Фильтр группового адреса |
SCC base+5C |
GADDR3 |
16 |
Фильтр группового адреса |
SCC base+5E |
GADDR4 |
16 |
Фильтр фуппового адреса |
SCC base+60 |
TBUFO.dataO |
32 |
Save Area 0. Временное хранение текущего кадра |
SCC base+64 |
TBUFO.datal |
32 |
Save Area 1 . Временное хранение текущего кадра |
SCC base+68 |
TBUFO.rbaO |
32 |
Временное хранение текущего кадра |
SCC base+6C |
TBUFO.crcO |
32 |
Временное хранение текущего кадра |
SCC base+70 |
TBUFO.bcnt |
16 |
Временное хранение текущего кадра |
SCC base+72 |
PADDR_H |
16 |
MSB |
SCC base+74 |
PADDR_M |
16 |
Физический адрес станции |
SCC base+76 |
PADDR_L |
16 |
LSB |
SCC base+78 |
P_PER |
16 |
Индекс активности после коллизии |
SCC base+7A |
RFBD_ptr |
16 |
Указатель первого BD приема |
SCC base+7C |
TFBD_ptr |
16 |
Указатель первого BD передачи |
SCC base+7E |
TLBD_ptr |
16 |
Указатель последнего BD передачи |
SCC base+80 |
TBUFLdataO |
32 |
Save Area 0. Временное хранение текущего кадра |
SCC base+84 |
TBUFldatal |
32 |
Save Area 1 . Временное хранение текущего кадра |
SCC base+88 |
TBUFLrbaO |
32 |
Временное хранение текущего кадра |
SCC base+8C |
TBUFLcrcO |
32 |
Временное хранение текущего кадра |
SCC base+90 |
TBUFLbcnt |
16 |
Временное хранение текущего кадра |
SCC base+92 |
TX_LEN |
16 |
Счетчик текущей длины передаваемого кадра |
SCC base+94 |
IADDR1 |
16 |
Фильтр индивидуальных адресов |
625
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
Продолжение табл. 5.78
Адрес |
Название |
Размер, бит |
Описание |
SCC base+96 |
IADDR2 |
16 |
Фильтр индивидуальных адресов |
SCC base+98 |
IADDR3 |
16 |
Фильтр индивидуальных адресов |
SCC base+9A |
IADDR4 |
16 |
Фильтр индивидуальных адресов |
SCC base+9C |
BOFF_CNT |
16 |
Счетчик кадров backoff |
SCC base+9E |
TADDR L |
16 |
LSB |
SCC base+AO |
TADDR_M |
16 |
Временное значение адреса при настройке |
SCC base+A2 |
TADDR H |
16 |
MSB |
Примечание. Все переменные в таблице, кроме ячеек RET cnt, MAXD, DMA cnt, MAX b, TBUFO.dataO, TBUFO.datal, TBUFO.rbaO, TBUFO.crc, TBUFO.bcnt, RBFD_ptr, TBFD ptr, TBLD ptr, TBUFLdataO, TBUF1.data1, TBUFLrbaO, TBUFLcrc, TBUFLbcnt, TXJen и BOFF_CNT, инициализируются пользователем до начала работы с Ethernet-контроллером. |
Поле данных может иметь размер от 46 до 1500 байт. В ячейке MINFLR пользователь должен задать минимальный размер кадра (>64 байт), а в ячейке MFLR - максимальный размер кадра (<1518 байт). Если длина кадра меньше установленного минимума, то при передаче поле данных кадра будет дополнено специальными символами-заполнителями, формат которых указывается в ячейке PADS памяти параметров, но только если в слове состояния буферного дескриптора установлен бит PAD = 1. Если же бит PAD = О, то символы PAD не добавляются к короткому кадру.
Для контроля правильности передачи данных в состав кадра данных введено поле контрольной суммы, в которое записывается 32-разрядная контрольная сумма кадра данных. Для настройки режима работы с 32-битной CCITT-CRC контрольной суммой с образующим полиномом ХЛ32+ХЛ26+ХЛ23+ХЛ22+ХЛ16+Хл12+Хл11+ХЛ10+ХЛ8+ХЛ7+ХЛ5+ +Хл4+Хл2+Хл1+1 в биты CRC регистра режима PSMR требуется записать код 10. В ячейке C_MASK пользователь перед началом работы с Ethernet-контроллером должен задать константу образующего полинома OxDEBB20E3, а в ячейке C_PRES - начальное значение счетчика контрольной суммы OxFFFFFFFF.
Передача данных. После включения передатчика канала в работу Ethernet-контроллер начинает периодически раз в 128 тактов опрашивать готовность первого буфера в таблице буферов для передачи TxBD. Если пользователь подготовил данные для передачи и не желает ждать 128 тактов, то он может установить бит TOD := 1 в регистре TODR, чтобы вызвать принудительное начало опроса буферов для передачи данных.
Если данные для передачи подготовлены, то контроллер начинает загружать кадр по SDMA-каналам из буфера данных в буфер FIFO, выставляет сигнал ТЕМА к микросхеме EEST и начинает передавать преамбулу, начальный ограничитель и далее сам кадр данных. При передаче Ethernet-контроллер передает LSB-бит первым. Перед началом передачи контроллер проверяет наличие сигнала несущей частоты в канале; после того как в канале будет обнаружен пассивный сигнал несущей частоты, контроллер проверяет, чтобы этот сигнал был пассивным в течение 6,4 мкс. Далее передача будет начата после ожидания 3,2 мкс. Таким образом, сигнал несущей должен быть пассивным в течение 9,6 мкс, перед началом передачи кадра. Поэтому минимальный межкадровый интервал (interpacket gap) для передачи кадров back-to-back установлен равным 9,6 мкс, и при возникновении коллизии повторная передача начинается через 9,6 мкс после того, как сигнал несущей в канале станет пассивным, при условии что он оставался пассивным в течение 6,4 мкс.
После окончания передачи кадра данных, когда в слове состояния последнего буфера кадра обнаружен бит L = 1 (Last) и установлен бит ТС = 1, контроллер начинает пере-
626
ПОДДЕРЖКА ПРОТОКОЛОВ В КОММУНИКАЦИОННЫХ КОНТРОЛЛЕРАХ
давать контрольную сумму кадра и по окончании передачи сбрасывает сигнал ТЕМА в пассивное состояние. Сброс этого сигнала заставляет микросхему EEST начать передачу специального некорректного символа, закодированного манчестерским кодом, уведомляющего о конце Ethernet-кадра.
Далее контроллер заполняет биты статуса переданного кадра в слове состояния последнего буфера и сбрасывает бит готовности буфера к передаче (бит R := 0). Если же текущий буфер кадра передан, но бит L = 0, то для данного буфера только сбрасывается бит R := 0, и контроллер переходит к обработке следующего буфера в таблице TxBD. Если в слове состояния переданного буфера установлен бит прерывания I = 1, то будет выработан запрос на прерывание.
Если во время передачи кадра данных обнаруживается коллизия, то контроллер выполняет специальную процедуру остановки, возвращается к первому буферу кадра и через некоторый интервал времени делает попытку повторной передачи. Для каждого переданного кадра данных в слове состояния последнего буфера кадра устанавливаются биты RC, значения которых определяют, сколько повторных попыток потребовалось, чтобы успешно закончить передачу текущего кадра. Общее число повторных попыток передачи задается в ячейке RET_LIM (стандартное значение 15). При начале передачи контроллер сохраняет первые 5-8 байт передаваемого кадра во внутренней памяти в ячейках TBUFx_xxx, поэтому при повторной передаче не требуется дополнительная загрузка этих данных из буферов данных. Единственное ограничение состоит в том, что первый буфер кадра должен иметь длину не менее 9 байт. Текущее значение числа повторных передач подсчитывается в ячейке RET_CNT, и если число повторов превысило значение RETJJM, то генерируется ТХЕ-запрос на прерывание в регистре событий, устанавливается бит ошибки RL := 1 в слове состояния буферного дескриптора, передача данных из буфера останавливается и буфер закрывается. Продолжение передачи возможно после получения контроллером команды RESTART TRANSMIT.
Ячейка Р_Рег памяти параметров предназначена для определения «степени активности» станции после обнаружения состояния коллизии. В нормальном режиме в эту ячейку заносится код 0x0000 и выполняется стандартный алгоритм расчета следующего момента выхода станции в сеть для повторной передачи. Если же в эту ячейку записан код от 1 до 9, то данный код будет добавлен к счетчику тайм-аута ожидания, и станция выйдет в сеть через большее время. Таким образом, значение «9» предназначено для менее активных станций. Пользователю также предоставляется возможность управлять временем выхода станции в сеть для повторной передачи через бит STB (Stop Backoff Timer) в регистре режима Ethernet-контроллера. Если бит STB = 0, то счетчик времени работает в обычном режиме. Если же бит STB = 1, то счетчик будет останавливаться всякий раз, когда в канале будет активным сигнал несущей частоты.
Если во время передачи обнаруживается ошибка незаполнения буфера underrun, которая возникает, если при передаче мультибуферных кадров данный центральный процессор не успел подготовить для передачи новые буферы, содержащие данные текущего кадра, а данные из последнего подготовленного буфера уже переданы в сеть, то Ethernet-контроллер прерывает текущую передачу, передает 32 «1» бита, которые позволят определить другим станциям CRC ошибку, закрывает буфер, устанавливает бит ошибки UN := 1 в слове состояния BD и генерирует, если разрешено, ТХЕ-прерывание через регистр событий SCC-канала. После получения команды возобновления передачи RESTART TRANSMIT контроллер продолжает дальнейшую передачу.
При передаче Ethernet-контроллер постоянно контролирует наличие сигнала несущей частоты. Если этот сигнал будет сброшен, но состояние коллизии не будет зафиксировано, то генерируется ошибка потери несущей частоты. Признаком этой ошибки будет установка бита CSL = 1 в слове состояния текущего BD. Передача кадра будет продолжена в нормальном режиме.
627