С тенденциями современного развития, сферы производства всё больше нуждаются в информационном обслуживании, переработке огромного количества информации. Современное производство компьютеров позволило внедрить их во все сферы человеческой жизни. Компьютеры открыли новые возможности. Их быстродействие позволяет выполнять миллионы операций в секунду. Кроме того, выполнение операций характеризуется высокой точностью и отсутствием человеческого риска. Компьютер, по сути, является универсальной аппаратной платформой. Этой аппаратной платформой управляет программное обеспечение. Программное обеспечение во многом определяет функциональные возможности компьютера.
В начале двадцать первого века широкое распространение получили микропроцессорные устройства. Во многом этому способствовала низкая себестоимость их производства и высокий вычислительный потенциал. Микропроцессоры внедряются во все сферы человеческой жизни, начиная от его дома, где они управляют влажностью воздуха, системой безопасности, использованием электроэнергии. На сегодняшний день, роботизированные установки, которыми управляют микропроцессоры, используются как на производстве автомобилей, так и в медицине, при проведении сложных операций.
По вычислительной мощности, микропроцессоры уступают компьютерам. К положительным чертам микропроцессоров можно отнести их низкую стоимость, низкое энергопотребление, маленькие размеры и, по сравнению с компьютером, более широкие условия эксплуатации. К тому же, зачастую, для автоматизации производственного процесса, не требуется большой вычислительной мощности компьютера.
Ethernet традиционно был довольно таки сложным интерфейсом. Все Ethernet чипы имели до сегодняшнего дня 100 и более контактов, их было тяжело найти в маленьких количествах и ими было тяжело управлять с помощью маленького микроконтроллера с небольшим количеством памяти. Компания Microchip изменила мир с появлением их нового Ethernet чипа - ENC28J60.
ENC28J60 это небольшой чип всего с 28 контактами, он имеет интерфейс SPI, который легко использовать с любого микроконтроллера.
Это открывает целый мир совершенно новых прикладных задач. Вы можете легко создавать небольшие устройства, которые могут распространиться на все в доме и просто будут подключены в сеть Ethernet. Вы более не должны разделять последовательные подключения или другие шины. Все может быть легко подключено через Ethernet. Расстояние больше не ограничивающий фактор. Даже WIFI соединения возможны, так как вы можете подключить устройства к беспроводному мосту.
Чип ENC28J60 от компании Microchip это «сказочный», уникальный чип. Он включает протокол приема/передачи данных, MAC адрес, и протокол физического уровня в одном чипе. К нему подключаются несколько внешних элементов, в основном это кварцевый резонатор и Ethernet трансформатор, так же известный как магнит. Внешне он представляет из себя 28 – выводный чип в DIP корпусе, легко паяется и идеально подходит для применения в хобби.
Рис. 1: Структурная схема подключения ENC28J60
Микроконтроллер таким образом может управлять любым устройством. Можно подключить какие либо датчики (фото, тепловые), что ни будь включать и выключать, можно подключить LCD дисплей и т.п.
Чип ENC28J60 поддерживает стандарт IEEE 802.3i . В этом стандарте физический уровень — это 10BASE-T, 10 мбит/с по витой паре (Twisted pair).
Рис.2.Структурная схема модуля с ENC28J60.
ENC28J60 содержит в себе физический уровень (PHY) и канальный уровень (MAC) Ethernet. Микроконтроллеру остаётся только подгружать пакеты для отправки и забирать принятые через SPI протокол. В прошивке микроконтроллера реализован простенький IP-стек, позволяющий прикладной задаче общаться с задачами на других системах с помощью стандартных протоколов.
Модель OSI — полезная вещь для понимания того, как работает сеть. Данная модель разбивает коммуникационную систему на простые части, называемые уровнями. Каждый уровень обслуживает следующий (верхний) и обслуживается предыдущим (нижним) — вертикальные связи. Особенности функционирования каждого уровня скрыты от других уровней. Взаимодействует две системы, соответственно есть и по два экземпляра каждого уровня. На каждом уровне используются свои протоколы (горизонтальные связи). Всего есть 7 уровней модели OSI. В ENC28J60 используются 5 уровней:
Физический уровень У нас это 10BASE-T. Физический уровень реализован в ENC28J60. Сюда входит витая пара и всё, что нужно для передачи данных по ней (драйверы, трансформаторы).
Канальный уровень Канальный уровень Ethenet (MAC) тоже реализован в ENC28J60. Канальный уровень отвечает за передачу Ethernet-фреймов между узлами локальной сети (адресацию, проверку контрольной суммы, разрешение коллизий, etc.). Проще говоря, канальный уровень — это то, что позволяет посылать фреймы другим узлам локальной сети и принимать фреймы от них. Также к канальному уровню относится протокол ARP, который служит для преобразовния IP-адресов в MAC-адреса.
Сетевой уровень Сетевой уровень отвечает за передачу пакетов. У нас это IP. IP-пакет спокойно может пройти через несколько разных сетей с различными технологиями физического и канального уровня. Проще говоря, сетевой уровень — это то, что позволяет отправлять пакеты любым узлам и принимать пакеты от любых узлов. В нашем маленьком IP-стеке сетевой уровень будет очень простой. Скажем, отправка пакета будет сводиться к добавлению к блоку данных IP-заголовка и отрпавке в виде фрейма канального уровня на определённый MAC-адрес.
Транспортный уровень Транспортный уровень отвечает за связь узлов. Скажем, приложение хочет отправит данные другому узлу. Транспортный уровень представляет эти данные в виде пакета сетевого уровня (или пакетов) и отправляет. Если используется протокол с установкой соединения, транспортный уровень занимается также установкой и контролем соединения. UDP и TCP — протоколы транспортного уровня.
Прикладной уровень
Та самая задача, обменивающаяся с внешним миром данными по какому-то своему или стандартному протоколу.
Рис.3.Принципиальная схема включения ENC28J60.
Питание — 3.3 В, но входы микросхемы совместимы с 5-вольтовыми TTL уровнями. Потребляет микросхемка прилично — 250 мА. Нужно столько для питания драйверов передатчика. Есть режим «пониженного энергопотребления», когда вся «силовая» часть отключается. VCAP — выход встроенного преобразователя на 2,5 В (именно такое напряжение используется при передачи данных по сетевому кабелю). К этому выводу нужно подключить конденсатор на 10 мкф. Даташит не рекомендует питать от этого вывода что-то ещё. R7 (RBIAS) — резистор для балансировки. В даташите указан номинал 2 кОм с допуском 1%. TR1 и TR2 — специальные Ethernet-фильтры (Ethernet magnetics). Представляют собой систему из нескольких катушек на ферритовых колечках. Обычно выпускаются в виде готовых сборок (оба фильтра в одном корпусе, совместимом с DIP-16). Нужны они, судя по всему, для развязки, защиты от статики, etc. (сетевой кабель может иметь длину до 100, а то и 300м —статический потенциал может быть огромным между девайсами на таком расстоянии).
Рис.4.Архитектура ENC28J60.
- PHY — физический уровень. Приёмник, передатчик, драйверы, etc. В общем, всё, что необходимо для работы с определённой средой передачи данных (medium). В данном случае — с витой парой, по стандарту 10BASE-T. Доступ к PHY происходит исключительно через MII — Medium Independent Interface. MII задуман так, чтобы следующий (канальный) уровень мог абстрагироваться от типа среды передачи данных. PHY имеет свой набор 16-битных регистров (специфичных для среды передачи данных), доступ к которым осуществляется через MII. Не нужно пугаться аббревиатуры MII — это всего лишь набор регистров, через которые управляется PHY.
- MAC (Medium Access Controller) — канальный уровень. В него входит вся логика, необходимая для отправки и приёма пакетов в сети Ethernet. MAC занимается адресацией, рассчётом контрольной суммы, фильтрацией принимаемых пакетов, разрешением коллизий (в полудуплескном режиме), etc. Обменивается со следующим, сетевым уровнем готовыми пакетами, а с физическим — отправляемыми и принимаемыми «сырыми» байтами.
- Управляющая логика занимается всем остальным. В том числе, обслуживает буфер, из которого MAC берёт отправляемые данные и складывает принятые. Управляет режимами энергопотребления, etc.
Вся память в ENC28J60 делится на буфер для данных, управляющие регистры и регистры PHY. Обмен микроконтроллера с модулем осуществляется по SPI протоколу, и ведётся в режиме 0 (CPOL=0, CPHA=0). ENC28J60 поддерживает скорость
передачи данных по SPI до 10 мбит/с.
Пример программного кода, реализующего передачу информации по протоколу SPI:
Рис.5.
Обмен данными с ENC28J60 выполняется транзакциями. Транзакция начинается с отправки микроконтроллером команды. Затем идут опциональные данные (приём или передача). Завершается транзакция «поднятием» ножки CS.
Чтение:
Рис.6. Диаграмма сигналов чтения шине SPI.
При чтении данных уровень на линии MOSI не имеет значения.
Запись:
Рис.7. Диаграмма сигналов записи шине SPI.
Заключение
В настоящее время тема удаленного управления оборудованием очень актуальна. Желание дистанционно контролировать и при необходимости изменять режим работы оборудования появляется теперь не только в промышленности, но и в домашних условиях. Сейчас практически у каждого дома есть компьютер, который соединен с роутером для выхода во всемирную сеть интернет или для связи с другими компьютерами и оборудованием. ENC28J60 упрощает схему подключения микроконтроллера с компьютерной сети до простейшей. Работа с традиционно сложным интерфейсом Ethernet упрощается до минимума. Это открывает целый мир совершенно новых прикладных задач, а также значительно расширяет область применения устройств автоматизации на микроконтроллерах. Расстояние больше не является ограничивающим фактором.