Сетевой контроллер W3150A от WIZnet: новые возможности

№ 7’2006
Корейская компания WIZnet с 2002 года выпускает микросхемы W3100A, аппаратно реализующие стек сетевых протоколов TCP/IP. Эти кристаллы используются во встраиваемых системах с Ethernet-интерфейсом и выполняют рутинную работу по подготовке данных к передаче по сети. В 2006 году вышла новая модификация сетевого контроллера — микросхема W3150A. В настоящей статье описываются аппаратные особенности этой версии популярного кристалла.

Корейская компания WIZnet с 2002 года выпускает микросхемы W3100A, аппаратно реализующие стек сетевых протоколов TCP/IP. Эти кристаллы используются во встраиваемых системах с Ethernet-интерфейсом и выполняют рутинную работу по подготовке данных к передаче по сети. В 2006 году вышла новая модификация сетевого контроллера — микросхема W3150A. В настоящей статье описываются аппаратные особенности этой версии популярного кристалла.

Рис. 1. Семь логических уровней модели OSI
Рис. 1. Семь логических уровней модели OSI

Микросхемы WIZnet W3100A и W3150A являются изделиями класса ASIC (Application Specific Integrated Circuit), выполненными по технологии i2Chip. Сегодня данное аппаратное решение для встраиваемых систем на основе Ethernet является единственным, поэтому достаточно сложно определиться с терминологией. Как назвать эту микросхему? Логично было бы назвать ее «Ethernet-контроллер», так как микросхема в качестве протокола канального уровня реализует Ethernet MAC и организует передачу данных по линиям 10BaseT/100BaseTX. Но, как правило, Ethernet-контроллерами называют микросхемы, реализующие физический или физический плюс канальный уровень логической структуры OSI (Open System Interconnection, или «Взаимодействие открытых систем») [1], а все вышележащие уровни реализуются программно (рис. 1). Примерами таких Ethernet-контроллеров могут служить микросхемы Realtek RTL8201BL и RTL8201CP, Davicom DM9616AE, Silabs CP2200 и CP2201, Microchip ENC28J60. Микросхемы WIZnet, напротив, не поддерживают аппаратную реализацию физического уровня*, а реализуют протоколы трех вышележащих уровней: канального, сетевого и транспортного (табл. 1).

Таблица 1. Особенности микросхем W3100A иW3150A
Таблица 1. Особенности микросхем W3100A иW3150A

Термин «Internet-контроллер» тоже не полностью отражает суть и назначение микросхем WIZnet. Эти кристаллы действительно реализуют протоколы, которые используются в сети Internet, но они могут применяться не только в Internet-сетях. Сети стандарта Ethernet на сегодняшний день широко используются в локальных и корпоративных сетях, а также в качестве коммуникационного интерфейса для различных систем, в которых необходимо организовать передачу данных (системы контроля доступа, видеонаблюдение, сбор информации с удаленных датчиков, удаленное управление и мониторинг в промышленности и т. д.). Принимая во внимание вышеизложенное, остановимся на термине «сетевой контроллер». На самом деле микросхемы WIZnet являются полноценными сетевыми контроллерами, позволяющими организовать передачу данных по сети со скоростью до 25 Мбит/c. Итак, перейдем к рассмотрению их особенностей.

Универсальность. Аппаратная реализация стека сетевых протоколов имеет неоспоримое преимущество — независимость от типа управляющего микроконтроллера. В случае, когда аппаратно реализованы только физический или физический плюс канальный уровни модели OSI, программная реализация стека протоколов TCP/IP прилагается в виде библиотек для конкретной микроконтроллерной платформы. Теоретически разработчик имеет возможность реализовать самостоятельно стек TCP/IP и для другого микроконтроллера, но трудоемкость данной задачи требует больших временных затрат, а также высокой квалификации в области сетевых технологий. При работе же с сетевым контроллером WIZnet под конкретную микроконтроллерную платформу необходимо адаптировать только программу-драйвер, причем WIZnet бесплатно предоставляет исходные коды управляющих программ на языке C. Таким образом, с сетевыми контроллерами WIZnet могут использоваться практически любые микроконтроллеры.

Обычно при выборе платформы разработчик руководствуется следующими соображениями:

  1. Опыт работы с определенной архитектурой. Очевидно, что выбор хорошо знакомой платформы позволяет существенно сократить время на разработку.
  2. Требования к производительности конечной системы. Использование маломощных 8-разрядных микроконтроллеров не позволяет достичь максимальной скорости передачи данных 25 Мбит/с, так как микроконтроллер не способен столь быстро выдавать данные на обработку сетевому контроллеру. Так, скорость передачи данных системы на базе 8-разрядного микроконтроллера Atmel AT89C51RD2 составляет всего 400 кбит/c, а при использовании более производительного 8-разрядного AVR-микроконтроллера ATmega128 скорость возрастает до 4 Мбит/c. При использовании 32-разрядного микроконтроллера с ядром ARM7 удалось получить скорость 21 Мбит/c.
  3. Стоимость системы. Существует зависимость цены конечного изделия от производительности. Использование микроконтроллера с избыточными возможностями однозначно удорожает разработку. Поэтому перед началом проектирования следует четко определить требования к системе и убедиться, что стоимость решения является приемлемой.

Совместимость. Необходимо отметить, что микросхема W3150A не является совместимой со своей предшественницей W3100A. Это означает, что при переходе от W3100A к новой модификации придется изменять аппаратную часть устройства и переписывать программное обеспечение. Поэтому компания WIZnet не имеет планов по сокращению производства микросхем W3100A. Тем не менее, для новых разработок лучше использовать микросхему W3150A, так как она имеет некоторые дополнительные возможности.

Новые протоколы в W3150A. Главной особенностью сетевого контроллера W3150A является аппаратная реализация протокола PPPoE (Point to Point Protocol over Ethernet). PPPoE — это реализация протокола PPP (point-to-point protocol), хорошо известного любому владельцу обычного модема, при которой происходит инкапсуляция пакетов PPP в пакеты Ethernet.

PPPoE используется для установления соединения типа «точка-точка» и авторизации у провайдера при подключении через широкополосное соединение типа xDSL: ADSL, HDSL, SDSL, VDSL [2]. DSL-модем осуществляет преобразование кадров Ethernet в ячейки формата ATM, которые передаются по телефонной линии от DSL-модема к провайдеру (рис. 2).

Рис. 2. Структурная схема соединения с провайдером через xDSL
Рис. 2. Структурная схема соединения с провайдером через xDSL

Модем, установленный на местной телефонной станции (блок DSLAM — DSL Access Multiplexer) осуществляет обратное преобразование — от ATM в пакеты Ethernet. Большинство DSL-модемов ориентировано на работу с персональными компьютерами и имеет программную поддержку протокола PPPoE. Программная реализация протокола PPPoE прилагается в виде драйверов для популярных операционных систем персональных компьютеров и не может быть портирована во встраиваемое устройство. Благодаря аппаратной поддержке протокола PPPoE, встраиваемые устройства на базе W3150A могут самостоятельно запустить PPPoE-сессию и авторизироваться у провайдера. При подключении же к провайдеру через линию DSL встраиваемого устройства на базе микросхемы W3100A необходимо использовать более дорогой модем (или роутер), имеющий аппаратную поддержку протокола PPPoE.

В микросхеме W3150A реализован еще один протокол, которого нет в W3100A — IGMP (Internet Group Management Protocol, или протокол управления группами Internet) [3]. Реализация этого протокола позволяет определить принадлежность встраиваемого устройства к группе для получения групповых рассылок. Групповой режим часто используется при передаче видео и звука по сети. Наиболее типичной схемой в этом случае является наличие одного передатчика и большого числа приемников мультимедийных данных. Учитывая высокую производительность сетевых контроллеров WIZnet, новая возможность получения мультимедийных данных по сети в групповом режиме выглядит весьма привлекательно.

Дополнительные возможности W3150A. Микросхема W3150A имеет ряд дополнительных возможностей, которые не поддерживались предыдущей версией сетевого контроллера, а именно:

  1. Посылка UDP-пакетов по MAC-адресу. При отправке UDP-пакета обычно используется IP-адрес получателя. В ситуации, когда адресат находится в другой сети, по IP-адресу сначала находится сеть, а затем формируется ARP-запрос для определения его MAC-адреса. В случае, если отправитель и получатель находятся в одной сети, циркуляции ARP-пакетов можно избежать, если использовать непосредственно физический (MAC) адрес получателя вместо сетевого (IP). Такая возможность позволяет снизить трафик при передаче данных в пределах одной сети.
  2. Монитор работоспособности TCP-соединения— функция TCP Keep Alive. Для проверки работоспособности TCP-соединения сетевой контроллер посылает 1 байт данных адресату и ждет подтверждения получения. Длительность периода ожидания регулируется двумя регистрами: RTR (Retry Time-value Register) и и RCR (Retry Count Register). Регистр RTR содержит время ожидания ответа, а RCR — количество попыток. Как только количество указанных попыток исчерпывается, возникает прерывание Timeout Interrupt, сигнализирующее о разрыве (или невозможности установления) соединения.

Для сетевого контроллера W3100A существует возможность программной реализации TCP Keep Alive, а кристалл W3150A реализует эту функцию аппаратно.

  1. Функция Destination Unreachable Address — проверка существования адресата по указанным IP-адресу и номеру порта в режиме UDP. Так как обмен пакетами UDP осуществляется без установления соединения и без подтверждения получения данных адресатом, то использовать механизм, подобный Keep Alive, в этом режиме не представляется возможным. Поэтому в UDP-режиме используется иная функция — Destination Unreachable Address. Если UDP-пакет будет отправлен по несуществующему адресу, отправителю вернется ICMP-пакет с уведомлением об ошибке. Ошибочный IP-адрес будет сохранен в регистре UIPR (Unreachable IP Address), а неверный номер порта — в регистре UPORT (Unreachable Port Register). При этом бит UNREACH в регистре прерываний Interrupt Register будет установлен в единицу.
Рис. 3. Реализация сетевого интерфейса встраиваемого устройства
Рис. 3. Реализация сетевого интерфейса встраиваемого устройства

Интерфейсы взаимодействия с микроконтроллером. На рис. 3 представлена структурная схема встраиваемого устройства, использующего микросхему WIZnet в качестве сетевого контроллера.

Микроконтроллер (MCU) управляет работой сетевого контроллера по одному из трех интерфейсов: I2C, InDirect и Direct (табл. 2). Разработчику предоставляется возможность выбрать наиболее подходящий режим взаимодействия узлов устройства, исходя из требований к производительности системы в целом.

Таблица 2. Интерфейсы взаимодействия MCU и сетевого контроллера
Таблица 2. Интерфейсы взаимодействия MCU и сетевого контроллера

Двухпроводный последовательный интерфейс I2C [4] задействует минимальное количество линий — SDA (для данных) и SCL (для сигнала синхронизации). Экономия аппаратных ресурсов уменьшает стоимость конечного изделия, но сказывается на скорости передачи данных. При этом главное достоинство сетевых контроллеров — высокая производительность — сводится на нет. Именно поэтому данный интерфейс не унаследован кристаллом W3150A и поддерживается только микросхемой W3100A.

Интерфейс Direct (прямая адресация) использует параллельные шины адреса и данных, при этом задействуется максимальное количество линий: 15—адресных, 8—данных, а также сигналы /RD, /WR, /CS и /INT. Выбор этого режима позволяет максимально полно использовать возможности сетевых контроллеров WIZnet.

Интерфейс Indirect (косвенная адресация) является компромиссом между стоимостью и производительностью системы. В этом режиме также используется параллельная 8-битная шина данных и сигналы /RD, /WR, /CS и /INT, но для передачи адреса используется всего две адресные линии. Cхема взаимодействия микроконтроллера и сетевого контроллера в режиме Indirect показана на рис. 4.

Рис. 4. Режим Indirect (косвенная адресация)
Рис. 4. Режим Indirect (косвенная адресация)

Тактирование. Для микросхемы W3100A необходимо выбрать источник тактового сигнала для интерфейсной шины при работе в режимах Direct и Indirect. Возможны три варианта выбора, представленные в таблице 3.

Таблица 3. Источники тактового сигнала
Таблица 3. Источники тактового сигнала

Первый вариант (Clocked mode) — использование основного генератора, который тактирует саму микросхему W3100A. В качестве частотно-задающего элемента генератора применяется кварцевый резонатор с частотой 25 МГц.

Второй вариант (External clocked mode) используется для «разгона» интерфейсной шины. При выборе этого режима для тактирования используется дополнительный кварцевый резонатор с частотой не более 75 МГц.

Третий вариант (Non-clocked mode) является асинхронным режимом передачи данных. Для того, чтобы данные передавались корректно, необходимо точно выдерживать интервалы времени, указанные во временных диаграммах в документации на микросхему. Сложности по реализации этого требования компенсируются высокой производительностью: цикл доступа к данным по чтению или записи в асинхронном режиме в несколько раз короче цикла для синхронных режимов.

Как видно из таблицы 3, микросхема W3150A не имеет возможности выбора источника тактового сигнала и работает только в режиме clocked. Почему разработчики компании WIZnet решили упразднить два альтернативных режима, несмотря на то, что они позволяют получить большую скорость пересылки данных? Дело в том, что интерфейсная шина между сетевым контроллером и микроконтроллером не является «узким местом», ограничивающим производительность системы. Так, время чтения/записи одного байта по интерфейсу Direct в режиме clocked составляет 80 нс, что соответствует скорости передачи данных 95 Мбит/c. Такая скорость является не только достаточной, но даже избыточной, так как сетевой контроллер способен выдавать данные в сеть со скоростью до 25 Mбит/c.

Внутренняя память. Оба сетевых контроллера, W3100A и W3150A, имеют по 16 К двухпортовой статической памяти для хранения данных. При этом для буферов приемника и передатчика отводится по 8 К. Микросхема W3150A имеет новые особенности работы с регистрами-указателями, предназначенными для доступа к буферам приемника и передатчика, а именно:

  1. Размер указателей буферов изменен с четырех до двух байт.
  2. Часть вычислений, выполнявшихся ранее в микроконтроллере, теперь реализована аппаратно:
    1. а) определение размера свободной памяти буфера передатчика. Упразднены регистры ACK-pointer, которые содержали вспомогательную информацию, необходимую для программного вычисления свободной памяти. Введен дополнительный регистр TX_FSR (Tx Free Size Register), содержащий результат аппаратных вычислений;
    2. б)определение размера полученных данных, находящихся в буфере приемника. Результат расчетов сохраняется в новом регистре RX_RSR (Rx Received Size Register).
  3. В результате доработки кристалла отпала необходимость в использовании так называемых «теневых» регистров. При работе с W3100A для корректного считывания значений указателей перед обращением к регистрам-указателям буферов приемника и передатчика необходимо было обращаться к вспомогательным «теневым» регистрам. При невыполнении данного условия младший байт регистров мог произвольно изменять свое значение. Микросхема W3150A не имеет такой особенности, что значительно упрощает работу с регистрами-указателями.

Система прерываний. Система прерываний микросхемы W3150A также претерпела некоторые изменения. Были добавлены новые источники прерываний:

  • CONFLICT — сигнализирует о конфликте IP-адресов, если в ARP-пакете адрес получателя совпадает с адресом отправителя;
  • UNREACH — возникает в результате работы функции Unreachable Destination Address, о которой упоминалось ранее;
  • PPPoE — сообщает о разрыве PPPoE-сессии.

Некоторые источники прерываний, такие как Sys_Init (успешное выполнение инициализации микросхемы), Sock_Init (успешное завершение инициализации сокета), напротив, были упразднены. Также не используется аппаратное прерывание Send_OK для оповещения о том, что данные успешно переданы в канал. Теперь для того, чтобы убедиться, что передача данных завершена, необходимо контролировать состояние соответствующего бита в управляющем регистре Sn_CR (Sn Command Register), который очищается автоматически при успешной передаче.

Энергопотребление. Собственный ток потребления микросхемы WIZnet W3150A относительно невелик и составляет 16 мА при передаче данных по сетям 10BaseT и 24 мА при работе с сетями 100BaseTX. Но сетевой контроллер должен работать совместно с микросхемой, реализующей физический уровень системы OSI. Поэтому при расчете энергопотребления конечной системы следует учитывать также ток потребления Ethernet-контроллера физического уровня.

Температурный диапазон. К сожалению, в настоящее время сетевые контроллеры WIZnet выпускаются только в коммерческом температурном диапазоне. Рабочая температура микросхемы W3100A — 0…70 °С, а W3150A — 0…80 °С. Производитель готов начать выпуск аналогичных микросхем для работы в промышленном температурном диапазоне при условии, что спрос на них будет достаточно велик. При этом цена на микросхемы в расширенном температурном диапазоне будет увеличена на 30–50% от базовой. В данный момент компания WIZnet изучает спрос на микросхемы с промышленным температурным диапазоном.

В заключение отметим, что главная отличительная особенность микросхемы W3150A — поддержка протокола PPPoE—пока не нашла широкого распространения на российском рынке. Но эта особенность широко используется в Корее, Тайване и Китае, где распространено цифровое телевидение с передачей сигнала по Интернет-сетям. Сетевой контроллер WIZnet используется в так называемых SetTopBox—устройствах, позволяющих преобразовать цифровой видеосигнал в аналоговый для того, чтобы его можно было вывести на традиционный аналоговый TV-приемник. Тем не менее, новый кристалл W3150A имеет дополнительные полезные функции, которые должны быть интересны и российским разработчикам. В первую очередь, это поддержка протокола IGMP, а также функции TCP Keep Alive, Destination Unreachable Address и использование непосредственно MAC-адреса для пакетов UDP.

Надеемся, что данная статья поможет разработчикам по достоинству оценить дополнительные возможности новой микросхемы которая будет с успехом применяться во встраиваемых устройствах.

* Для обеспечения работы микросхем WIZnet необходимо использовать Ethernet-контроллеры, реализующие физический уровень. Для совместной работы с W3100A или W3150A применяются микросхемы Realtek RTL8201BL. В связи с сокращением производства RTL8201BL и перспективой прекращения их выпуска в дальнейшем, к использованию в новых разработках рекомендуются микросхемы Realtek RTL8201CP и Davicom DM9616AE.

Литература

  1. http://www.citforum.ru/nets/switche/osi.shtml#r1a — «Модель OSI». Перевод материалов на русский язык с сервера BiLiM Systems Ltd. (http://www.bilim.com).
  2. http://www.mcopy.nnov.ru/support/?action=show&cat_id=21&prod_id=38001 — Технология ADSL. Материалы ЗАО «Интек-НН».
  3. http://book.itep.ru/4/44/igmp_449.htm — Семенов Ю. А. Протокол IGMP и передача мультимедиа по Интернет.
  4. http://gaw.ru/html.cgi/txt/interface/iic/index.htm — спецификация интерфейса I2C на русском языке.
  5. Хребтов П., Кривченко И. I2Chip — новая технология для приложений Embedded Internet // Компоненты и технологии. 2002. № 4.
  6. Кривченко И. W3100A — новая микросхема для приложений Embedded Internet // Электронные компоненты. 2002. № 5.
  7. http://www.efo.ru
  8. http://www.wiznet.co.kr

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *