Примечание. Все переменные в таблице, кроме ячеек RET_cnt, MAXD, DMA_ cnt, MAX_b, TBUF0.data0. TBUF0.data1, TBUF0.rba0, TBUF0.crc0, TBUF0.bcnt, RBFD_ptr, TBFD_ptr, TBLD_ptr, TBUF1.data0. TBUF1.data1, TBUF1.rba0, TBUF1I.crc0, TBUF1.bcnt, TX_LEN и BOFF_CNT, инициализируются пользователем до начала работы с Ethernet-контроллером.
Поле данных может иметь размер от 46 до 1500 байт. В ячейке MINFLR пользователь должен задать минимальный размер кадра (>64 байт), а в ячейке MFLR - максимальный размер кадра (<1518 байт). Если длина кадра меньше установленного минимума, то поле данных кадра будет дополнено специальными символами-заполнителями, формат которых указывается в ячейке PADS памяти параметров, но только если в слове состояния буферного дескриптора установлен бит PAD=1. Если же бит PAD=0, то символы PAD не добавляются к короткому кадру.
Для контроля правильности передачи данных в состав кадра данных введено поле контрольной суммы, в которое записывается 32-разрядная контрольная сумма кадра данных. Для настройки режима работы с 32-битной CCITT-CRC контрольной суммой с образующим полиномом
X^32+X^26+X^23+X^22+X^16+ X^12+X^11+X^10+X^8+X^7+X^5+ X^4+X^2+X^1+1
в биты CRC регистра режима PSMR требуется записать код 10. В ячейке C_MASK пользователь перед началом работы с Ethernet-контроллером должен задать константу образующего полинома 0xDEBB20E3, а в ячейке C_PRES - начальное значение счетчика контрольной суммы 0xFFFFFFFF.
3.5.1.2. Передача данных.
После включения передатчика канала в работу, Ethernet-контроллер начинает периодически раз в 128 тактов опрашивать готовность первого буфера в таблице буферов для передачи TxBD. Если пользователь подготовил данные для передачи и не желает ждать 128 тактов, то он может установить бит TOD:=1 в регистре TODR, чтобы вызвать принудительное начало опроса буферов для передачи данных.
Если данные для передачи подготовлены, то контроллер начинает загружать кадр по SDMA-каналам из буфера данных в буфер FIFO, выставляет сигнал TENA к микросхеме EEST и начинает передавать преамбулу, начальный ограничитель и далее сам кадр данных. При передаче bthernet-контроллер передает LSB-бит первым. Перед началом передачи контроллер проверяет наличие сигнала несущей частоты в канале; после того как в канале будет обнаружен пассивный сигнал несущей, контроллер проверяет, чтобы этот сигнал был пассивным в течение 6,4 мкс. Далее передача будет начата после ожидания 3,2 мкс. Таким образом, сигнал несущей должен быть пассивным в течение 9,6 мкс, перед началом передачи кадра. Поэтому минимальный межкадровый интервал (interpacket gap) для передачи кадров back-to-back установлен равным 9,6 мкс, и при возникновении коллизии повторная передача начинается через 9,6 мкс после того, как сигнал несущей в канале станет пассивным, при условии, что он оставался пассивным в течение 6,4 мкс.
Если в слове состояния буфера установлен, бит PAD=1, то контроллер при передаче добавляет специальные символы-заполнители PAD, формат которых задан в ячейке PADS памяти параметров, в поле данных короткого кадра, доведя длину кадра до значения, указанного в ячейке MINFLR.
После окончания передачи кадра данных, когда в слове состояния последнего буфера кадра обнаружен, бит L=l (Last) и установлен, бит ТС=1, контроллер начинает передавать контрольную сумму кадра и по окончании передачи сбрасывает сигнал TENA в пассивное состояние. Сброс этого сигнала заставляет микросхему EEST начать передачу специального некорректного символа, закодированного манчестерским кодом, уведомляющего о конце Ethernet-кадра.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.