СОВРЕМЕННАЯ ЭЛЕКТРОНИКА 2011-7

AMB . Основой интерфейса Ethernet является стандарт IEEE 802.3. Послед няя редакция стандарта вышла в 2008 г., и его подробное описание приведе но в [4]. Согласно этому стандарту, данные передаются пакетами, струк тура которых изображена на рисун ке 6. Преамбула, разделитель, допол нение и контрольная сумма – это слу жебные данные, генерируемые не посредственно модулем tx_mac . Всё остальное генерируется протокола ми более высокого уровня и просто инкапсулируется в пакет Ethernet. В состоянии конечного автомата TX MAC_PREAMB передаётся преамбула, которая состоит из семи байтов со значением 8'h55, т.е. чередованием единиц и нулей. После преамбулы пе редаётся разделительный байт 8’hD5. Этот байт также представляет собой последовательность единиц и нулей, но заканчивается двумя единицами. Преамбула и SFD необходимы для синхронизации передатчика и при ёмника. После этого автомат переходит в со стояние TXMAC_FDSTART . В этом состо янии происходит передача полезной информации, полученной от контрол лера буфера, на скорости 1 Гб/c в пол нодуплексном режиме. Особенностью этого режима является то, что дан ные передаются по 8 бит на частоте 125 МГц, причём частота для PHY ге нерируется на канальном уровне. За метим, что в режиме приёма частота 125 МГц для канального уровня гене рируется в PHY. Полезные данные, как видно из ри сунка 6, также структурированы. Пер вые шесть байт – это MAC адрес при ёмника, следующие шесть байт –MAC адрес передатчика. После этого два байта – длина/тип*. Далее идут данные протоколов более высокого уровня. Ес ли длина пакета меньше 46 байт, он до полняется до этого минимального раз мера байтом 8’hFF. С момента передачи первого байта значимых данных, т.е. адреса приём ника, включается модуль подсчёта контрольной суммы. Подробно алго ритм подсчёта контрольной суммы описан в стандарте IEEE 802.3 2008, а также в других источниках в Интерне те. После окончания передачи значи мых данных передаётся контрольная сумма в состоянии TXMAC_FCS , гаран тирующая целостность данных. После окончания передачи пакета необходимо выдержать минималь ный промежуток времени до нача ла передачи следующего пакета. Это время равно времени переда чи 96 бит данных и выдерживается в состоянии конечного автомата TXMAC_IFRAME . После этого автомат снова переходит в состояние ожида ния TXMAC_IDLE . Фрагмент симуляции работы пе редатчика изображён на рисунке 7. Контроллер буфера считывает дан ные из основной памяти в состоянии tx_fsm_state = TX_FRAG_READ . После окончания процесса чтения конечный автомат tx_fsm переходит в состояние TX_FIFO_BLOCK и активирует линию tx_start_i . При получении этого сигна ла конечный автомат txmac_fsm выхо дит из режима ожидания и начинает передачу пакета данных. В момент пе редачи первого байта преамбулы ак тивируется линия tx_en_o , которая включает передатчик в PHY. В схе ме есть две тактовые частоты – clk_i (30МГц), основная частота контролле ра буфера, и tx_clk_i (125МГц), частота блока tx_mac . П РИЁМНАЯ ЧАСТЬ КОНТРОЛЛЕРА Приёмная и передающая части конт роллера во многом схожи. Приёмник, как это видно из рисунка 2, состоит из блока интерфейса с физическим уров нем, расположенным в файле rx_mac.v , и контроллера буфера приёмника (файлы rx_bufmgr.v и rx_fsm.v ). К блоку rx_mac.v также относится модуль конт роля чётности crc_gen.v . Алгоритм ра боты передающего и приёмного моду лей контрольной суммы отличается только временем выборки сигнала. Мо дуль crc_gen обрабатывает данные на отрицательном фронте синхросигна ла, а модуль crc_gen_tx – на положи тельном. Приёмник может принимать все пакеты или только те, у которых MAC адрес приёмника совпадает с адресом контроллера. Этот параметр контролируется регистром rfcr . Преамбула и SFD принимаются, но не копируются в память FIFO. После начала приёма значимых данных на чинается копирование 32 битных слов в память FIFO. Однако до получения контрольной суммы, которая переда ётся последним словом пакета, неиз вестно, достоверны данные или нет. По окончании приёма пакета получен ная контрольная сумма проверяется на основе вычисленной. В случае их равенства пакет фиксируется как дос товерный. В противном случае бит дос товерности сбрасывается: ПРОГРАММИРОВАНИЕ 68 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2011 Преамбула Адрес приёмника Адрес передатчика Разделитель (SFD) Длина/тип Дополнение (Pad) Данные Контрольная сумма 46 1500 байт 7 байт 1 байт 4 байта 2 байта 6 байт 6 байт Рис. 6. Структура пакета IEEE 802.3 TXMAC _IDLE TXMAC _START TXMAC _PREAMB TXMAC _FDSTART TXMAC _PAD TXMAC _FCS TXMAC _IFRAME tx_start_i duplex_i && phy_crs_i next_state_1 next_state_2 &~tx_pad next_state_2 &tx_pad next_state_1 next_state_1 & next_state_2 ~next_state_1 Рис. 5. Конечный автомат интерфейса передатчика с физическим уровнем *В ранних редакциях стандарта IEEE 802.3 это поле определялось как длина, тогда как в стандарте Ethernet это поле всегда обозначало тип. В стандарте IEEE 802.3 2008 это поле называется длина/тип. © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy