ENC28J60 Подключаем Микроконтроллер к сети Ethernet. Решения Microchip для промышленных и высокопроизводительных сетей Ethernet Если мы решили сразу делать свою плату

Печатная плата под модуль.

Схема подключения модуля к микроконтроллеру.

Печатная плата контроллера и шины ISA.

Изначально хотел сделать, чтобы можно было вставлять сетевую плату в ISA разъём, потом разъём выкусил и модуль просто впаял в эту плату. Можно конечно сделать и на разъёмах, даже лучше будет.

Внешний вид модуля.

Менеджер управления модулем Ethernet.

При работе с менеджером нажимаем START и в окне команд меняем цифру от 0 до 9. Наблюдаем реакцию модуля на команды.

Этот менеджер Генадия. Здесь вводим IP адрес, нажимаем кнопку Connect и кнопками On/Off можно поуправлять светодиодами на модуле.


Здесь выложен результат прослушки протокола при обмене менеджера с устройством.

Протокол ARP

Address Resolution Protocol

Запрос от мастера

0x0000 FF FF FF FF FF FF 00 0D-61 21 FF 96 08 06 00 01 ÿÿÿÿÿÿ..a!ÿ–....

0x0010 08 00 06 04 00 01 00 0D-61 21 FF 96 C0 A8 00 05 ........a!ÿ–À¨..

0x0020 00 00 00 00 00 00 C0 A8-00 19 ......ˬ..

Ethernet II

FF FF FF FF FF FF – Destination MAC - МАС адрес получателя.

08 06 – Ethertype 0x0806 - (2054) – ARP.

ARP

00 01 – Hardware 0x0001 (1) - Ethernet.

08 00 – Protocol 0x0800 (2048) – IP.

06 – Hardware address length 0x06 (6).

04 – Protocol address length 0x04 (4).

00 01 – Operation 0x0001 (1) – ARP Request.

00 0D-61 21 FF 96 – Sender MAC address - МАС адрес отправителя.

C0 A8 00 05 – Sender IP address – IP адрес отправителя.

00 00 00 00 00 00 – Target MAC address – МАС адрес получателя (все).

C0 A8-00 19 – Target IP address – IP адрес получателя.

Протокол IP / ICMP .

Internet Control Management Protocol

Запрос от мастера

0x0000 00 22 3A 6F 47 B9 00 0D-61 21 FF 96 08 00 45 00 .":oG¹..a!ÿ–..E.

0x0010 00 3C 19 E0 00 00 80 01 -9F 72 C0 A8 00 05 C0 A8 .<.à..€.ŸrÀ¨..À¨

0x0020 00 19 08 00 D2 5A 03 00 -78 01 61 62 63 64 65 66 ....ÒZ..x.abcdef

0x0030 ghijklmnopqrstuv

Ответ от слейва

0x0000 00 0D 61 21 FF 96 00 22-3A 6F 47 B9 08 00 45 00 ..a!ÿ–.":oG¹..E.

0x0010 00 3C 19 DD 00 00 80 01 -9F 75 C0 A8 00 19 C0 A8 .<.Ý..€.ŸuÀ¨..À¨

0x0020 00 05 00 00 DB 5A 03 00 -77 01 61 62 63 64 65 66 ....ÛZ..w.abcdef

0x0030 67 68 69 6A 6B 6C 6D 6E-6F 70 71 72 73 74 75 76 ghijklmnopqrstuv

0x0040 77 61 62 63 64 65 66 67-68 69 wabcdefghi

Ethernet II

00 0D-61 21 FF 96 – Source MAC - МАС адрес отправителя.

08 00 – Ethertype 0x0800 = IP.

IP

45 – IP version “4” and “5” – Header length =20 bytes.

00 – Type of service

00 3C – Total length 0x021 = 33

19 E0 – Id (номер пакета)

00 00 – Flagmant offset = 0.

80 – Time to Live (TTL) = 128.

01 – Protocol (ICMP)

9F 72 – Контрольная сумма.

C0 A8 00 05 – IP отправителя.

C0 A8 00 19 – IP получателя.

ICMP

08 – Type 0x08 (8) Echo. (0)- Echo reply.

00 – Code 0x00 (0).

D2 5A – Checksum 0xD25A (53850) correct.

03 00 – Identifier 0x0300 (768).

78 01 – Sequence Number 0x7801 (30721).

Протокол IP/UDP

User Datagram Protocol

0x0000 00 C9 3A 6F 47 B9 00 0D-61 21 FF 96 08 00 45 00 .É:oG¹..a!ÿ–..E.

0x0010 00 21 30 E0 00 00 80 11 -88 7D C0 A8 00 05 C0 A8 .!0à..€.ˆ}À¨..À¨

0x0020 00 19 17 D8 00 6F 00 0D -C3 75 2A 54 41 54 37 ...Ø.o..Ãu*TAT7

Ethernet II

00 C9 3A 6F 47 B9 – Destination MAC - МАС адрес получателя.

00 0D-61 21 FF 96 – Source MAC - МАС адрес отправителя.

Опубліковано 04.11.2011

Отдельно работающее устройство на микроконтроллере становится более полезным, если с него можно получить интересующую нас информацию. Для этого мы подключали .

Однако, зависимость от компьютера – это не всегда хорошо. Иногда требуется создать автономное сетевое устройство со своим сетевым адресом и, желательно, с уже ставшим привычным, Web-интерфейсом. Этим мы и займемся.

Я начинал с реализации схемы, опубликованной в этой статье:
http://www.rlocman.ru/shem/schematics.html?di=55059
http://www.radiolocman.com/shem/schematics.html?di=55059

Все оказалось не так сложно, как может показаться на первый взгляд. Мое первое устройство для удаленного отключения/включения питания через web интерфейс.

Как видите, ENC28J60 упрощает схему подключения микроконтроллера с компьютерной сети до простейшей.

После того, как компания Microchip выпустила микросхему Ehernet интерфейса ENC28J60 , имеющую SPI интерфейс, подключения микроконтроллера в компьютерную сеть стала довольно простой задачей. Подключенный к сети микроконтроллер становится сетевым устройством и доступ к нему может быть организован по локальной сети, интернет, беспроводным сетям. В общем, открываются очень радужные перспективы.

Итак, микросхема Ethernet интерфейса ENC28J60 включает протокол приема/передачи данных, MAC адрес, и протокол физического уровня в одном чипе. Микросхема имеет 28 ног.
Требует подключение всего нескольких внешних элементов. Кварц, Ethernet трансформатор, Ethernet-разъем, несколько конденсаторов и резисторов, пару светодиодов. Вот схема подключения к микроконтроллеру Atmega88 /Atmega168 .

Обращаю внимание, что все схемы и софт распространяются по лицензии GPL2. Т.е. общедоступны, и если Вы использовали что либо из софта, то свой софт Вы обязаны опубликовать и сделать общедоступным.

Микросхема Ehernet интерфейса ENC28J60 греется. Причем в SMD корпусе чуть больше, чем DIP. Вероятнее всего, это субъективное ощущение, но я в конце концов, перешел на DIP корпуса. Что касается Ehernet трансформаторов, сразу я выпаивал их из старых сетевых карточек. Мне ни разу не попадалось два одинаковых трансформатора. Отдельно их купить в Украине нереально. Утомившись каждый раз по новому разводить плату, я перешел на разъем со встроенным трансформатором и светодиодами. Цена немного кусается, но зато на плате сразу освобождается место, да и внешний вид устройства становится значительно симпатичнее.

ENC28J60 подключал к Atmega88 , ATMEga168 , ATMEga32 . Питание всей схемы 3.3В. Собственно, по железу все, ничего сложного. Проблем с запуском ни разу не испытывал. Все работало сразу и без вопросов.

Исходный пример для работы с ENC28J60 на CGG (WinAVR ) можно скачать в указанной выше статье. Я же расскажу о том, что получилось у меня в конечном итоге. Все основано на этом же примере и распространяется по лицензии GPL2.

Создавался как устройство для контроля климатических условий в серверных помещениях. Но его можно применять везде, где требуется удаленный контроль и управление. Например, дома или на даче, в качестве устройства для удаленного контроля поливом, вентиляцией, и т.п. Чуть позже я расскажу, как на базе была создана метеостанция, работающая в сети интернет. Задача контролировать состояние датчиков (аналоговых, дискретных, датчиков температуры), предоставлять Web интерфейс для контроля и управления, с заданной периодичностью отправлять данные на сервер. Отправлять сообщения для предотвращения аварийных ситуаций.

Характеристики Устройства:
– 3 цифровых датчика DS18B20
– 2 аналоговых входа (0…3,3В)
– 4 дискретных входа
– два дискретных выхода (управляются программно (настраивается через Web-интерфейс) или вручную)
– web-интерфейс, позволяющий настроить все параметры устройства, в том числе сетевые, и алгоритм срабатывания на разные состояния датчиков.
– отправка данных демону Syslog на указанный сервер через указанный промежуток времени
– отправка сообщений по UDP протоколу на указанный сервер в случае превышения критических показаний датчиков (настраивается через Web-интерфейс).

Схема

Внимание! В схеме используется микросхема Atmega32A или Atmega32L . Atmega32 не подойдет по напряжению питания.

Печатная плата двусторонняя сторона 1:

сторона 2:

Фьюзами нужно установить тактирование от внешнего источника и отключить JTAG. Все остальные по умолчанию.

Описание работы

Краткое описание NETAlarm

– устройство для отслеживания состояния различных датчиков и передачи данных по компьютерным сетям. Специализирован для контроля за климатической обстановкой в помещениях. Имеет Web-интерфейс для настройки и отслеживания состояния. Позволяет в случае аварийных ситуаций организовать уведомление серверов. Отправляет данные по протоколу Syslog через определенный промежуток времени. Позволяет подключить через два дискретных выхода внешние устройства и управлять ими по заданному алгоритму.

Характеристики и возможности

  • – до 3 цифровых датчиков температуры DS18B20 с интервалом измеряемых температур от -55 до +125 0C.
  • – 2 аналоговых входа 0…3,3В. Внутренний АЦП обеспечивает 10 разрядное преобразование.
  • – 4 дискретных входа (внутренняя подтяжка к логической 1)
  • – 2 дискретных выхода с нагрузочной способностью 10 мА
  • – отправка состояния датчиков на указанный сервер по протоколу Syslog
  • – отправка уведомления списку серверов или одному из списка, при наступлении указанного условия
  • – возможность управления выходами и отправкой данных по указанной логической схеме
  • – web-интерфейс для управления и получения данных

Требования к питанию и окружающей среде

Питание прибора осуществляется от внешнего стабилизированного источника питания +5В, 500mA. Прибор рассчитан на работу при температуре 0…85 0С. При относительно влажности до 90% в неагрессивной среде. Не рассчитан на прямое попадание воды и ВЧ излучений.

Подключение и установка датчиков

Позволяет подключить до 6 внешних датчиков помимо 3 датчиков температуры DS18B20. Для этого применяются клеммы.

На клеммы также выведено стабилизированное питание +5В от источника питания.


Подключение дополнительных датчиков температуры

Общее количество датчиков температуры DS18B20 не должно превышать трех. Датчики подключаются параллельно друг другу. Никаких других элементов не требуется. Длина провода не более 3 метров.

Подключение аналоговых датчиков

Подключаемый аналоговый датчик должен выдавать напряжение в пределах 0…3,3В. В противном случае, необходимо обеспечить согласование сигналов. При этом вся защита от возможного перенапряжения должна ложиться на схему согласования. Прибор имеет 10 разрядный АЦП. Уровень измеренного сигнала отображается в числовом выражении от 0 до 1023. Пересчет в милливольты и другие величины прибор не выполняет.

Подключение дискретных датчиков

Подключаемые датчики могут быть как контактными (герконы, переключатели, кнопки) так и электронными ключами (цифровые датчики Холла, датчики, имеющие на выходе транзистор с открытым коллектором) Подключение датчика выполняется между нужным входом и “GND”. Вход контроллера “подтягивается” к логической 1 через внутренний резистор 10…60 кОм. Поэтому, при разомкнутом датчике на входе будет 1. При замыкании датчика на входе 0. Использование схемы для предотвращения дребезжания контактов при замыкании/размыкании необязательна. Если существует возможность попадания в цепь датчика напряжения, превышающего 3,3В, необходимо реализовать схему защиты входов от перенапряжения.

Подключение исполнительных устройств

Номинальная нагрузочная способность выходов OUT9, OUT10 10 мА (максимальная 20 мА). Используя внешние исполнительные устройства, можно реализовать управление сильноточной нагрузкой (вентиляцией, кондиционером, насосом, генератором и т.п.)

Настройка NETAlarm через web-интерфейс

Вход на страницу управления выполняется по ссылке следующего вида: http://IP-адрес /пароль

Http://192.168.114.20/whfynl

Если выполняется первичная настройка устройства, IP-адрес и пароль, заданный производителем можно узнать на наклейке корпуса .
После удачного входа, первой откроется страница состояния датчиков. Используя меню, перемещайтесь по закладкам.

Сетевые настройки

В закладке “Settings” выполняются основные сетевые настройки. А именно настройка MAC-адреса, IP-адреса, маски подсети, адрес шлюза, пароль доступа.

Настройки заголовков

В закладке “Titles” можно установить короткие текстовые подписи длинной до 20 символов к входам . Эти подписи отображаются на страницах состояния датчиков.

Настройки лог-сервера

Настройка списка “Alarm”

В закладке “Alarm List” указывается список IP-адресов серверов и портов, сообщений, которые будут отправлять серверам при условиях, указанных в следующей закладке “Events”. При этом несколько строк могут содержать одну и ту же комбинацию IP-адреса и порта, но с разными сообщениями. Сообщения отправятся, если будет включено поле ‘Enable/Disable’.

Настройка списка “Events”

В закладке “”Events” настраивается логическая таблица работы . В каждой строке указывается:

  • – опрашиваемый датчик
  • – условие сравнения (> = <)
  • – значение для сравнения
  • – действие, которое необходимо выполнить при выполнении условия в течение времени, указанного в поле ‘Delay time
  • – поле ‘Delay time ‘ задающее время, в течении которого должно выполняться условие прежде чем указанное действие будет выполнено. Задается в секундах. Если установлен 0 – немедленное выполнение.
  • – поле Enable/Disable Для включения/отключения обработки строки.

Прибор проверяет таблицу условий 10 раз в секунду, проходя последовательно по таблице, начиная со строки 0 до строки 9. Проверка условий выполняется только для строк, у которых включено поле Enable/Disable .
При выполнении условия в течении указанного периода выполняется указанное действие. В списке действий имеется проверка другого условия, что позволяет реализовать операцию логического “И “. При этом желательно указывать строки с отключенным полем Enable/Disable . В этом случае условие будет проверено, но будет проигнорировано в основном цикле проверке.

Если Вам, вдруг, захочется “зациклить” проверку условий, Вы сможете это сделать, но прибор работать правильно не будет.

Подробное описание полей:

Первое поле содержит список датчиков :

  • T0 – цифровой датчик температуры #1
  • T1 – цифровой датчик температуры #2
  • T2 – цифровой датчик температуры #3
  • A3 – аналоговый вход #1
  • A4 – аналоговый вход #2
  • IN5 – дискретный вход #1
  • IN6 – дискретный вход #2
  • IN7 – дискретный вход #3
  • IN8 – дискретный вход #4
  • OUT9 – дискретный выход #1
  • OUT10 – дискретный выход #2

Как видно, в условиях может использоваться проверка состояния выходов.

Условие сравнения :

  • > – если значение датчика превышает указанное в поле ‘Value’ значение
  • = – если значение датчика равно указанному в поле ‘Value’ значению
  • < – если значение датчика меньше указанного в поле ‘Value’ значения

В Поле ‘Value’ можно указывать целые числа в диапазоне от -9999 до 32767

Поле ‘What to do’

  • On OUT9 -включить OUT9
  • On OUT10 -включить OUT10
  • Off OUT9 -выключить OUT9
  • Off OUT10 -выключить OUT10
  • Send to Log -отправить состояние датчиков серверу, указанному в закладке “Log-Server”
  • Send Alarm#0..#9 -отправить сообщения всем со списка
  • Send Alarm#0 -отправить сообщение серверу, указанному в строке #0 из списка ‘Alarm List’
  • Send Alarm#1 -отправить сообщение серверу, указанному в строке #1 из списка ‘Alarm List’
  • Send Alarm#2 -отправить сообщение серверу, указанному в строке #2 из списка ‘Alarm List’
  • Send Alarm#3 -отправить сообщение серверу, указанному в строке #3 из списка ‘Alarm List’
  • Send Alarm#4 -отправить сообщение серверу, указанному в строке #4 из списка ‘Alarm List’
  • Send Alarm#5 -отправить сообщение серверу, указанному в строке #5 из списка ‘Alarm List’
  • Send Alarm#6 -отправить сообщение серверу, указанному в строке #6 из списка ‘Alarm List’
  • Send Alarm#7 -отправить сообщение серверу, указанному в строке #7 из списка ‘Alarm List’
  • Send Alarm#8 -отправить сообщение серверу, указанному в строке #8 из списка ‘Alarm List’
  • Send Alarm#9 -отправить сообщение серверу, указанному в строке #9 из списка ‘Alarm List’
  • Event#0 -проверить условие в строке #0
  • Event#1 -проверить условие в строке #1
  • Event#2 -проверить условие в строке #2
  • Event#3 -проверить условие в строке #3
  • Event#4 -проверить условие в строке #4
  • Event#5 -проверить условие в строке #5
  • Event#6 -проверить условие в строке #6
  • Event#7 -проверить условие в строке #7
  • Event#8 -проверить условие в строке #8
  • Event#9 -проверить условие в строке #9

Поле ‘Delay time’

В этом поле следует указывать период в секундах, на протяжении которого условие должно выполняться, прежде, чем будет выполнено указанное действие.
Технически возможно указать значения в диапазоне от -9999 до 32767. Но отрицательные значения, лишенные логического смысла, лишат логики всего, что вы делаете.

Поле ‘Enable/Disable’

Если Вы хотите, чтобы условие проверялось, установите это поле. Если условие используется как подчиненное в цепочке логического “И”, и Вам не нужно чтобы эту условие работало как самостоятельное, не устанавливайте это поле.

Пример #1:

Задача:

При превышении температуры 27 градусов на протяжении 1 минуты включать вентиляцию.
Если температура превышает 30 градусов на протяжении 30 сек, рассылать сообщения всем серверам.
Выключать вентиляцию при температуре ниже 25 градусов

Решение:

0 T0 > 27 On OUT9 60
1 T0 > 30 Send Alarm#0..#9 30
2 T0 < 25 Off OUT9 0

Пример #2:

Задача:

Регистрировать момент открытия/закрытия двери серверной (датчик IN5)

Решение:

0 IN5 = 0 Send to Log 0
1 IN5 = 1 Send to Log 0

Пример #3:

Задача:

Отправлять сообщение серверам, если дверь в серверную (датчик IN5) закрыта более часа, вентилятор включен (Выход OUT9) более 30 минут, а температура превышает значение 30 градусов в течении 30 секунд.
При наличии воды на полу (датчик IN6) более 5 секунд отправлять сообщения.

Решение:

0 IN5 = 1 Event#1 3600
1 OUT9 = 1 Event#2 1800
2 T0 > 30 Send Alarm#0..#9 30
3 IN6 = 0 Send Alarm#0..#9 5

Настройка прибора через последовательный порт

Этот способ предназначен для возвращения контроля над устройством, если его основные параметры (IP-адрес, пароль доступа) безвозвратно утеряны и не представляется возможным их восстановить.

!ВАЖНО! Кабель последовательного интерфейса в комплект не входит. Для изменения настроек по последовательному порту нужно выполнить следующие действия:

  • открыть крышку прибора
  • подключить кабель последовательного интерфейса к разъему USART
  • подключить кабель к компьютеру
  • включить прибор
  • запустить терминальную программу (например HyperTerminal) и подключиться к по соответствующему COM порту

В таком варианте подключения имеет ограниченный набор команд:

  • AT – проверка связи, в случае успеха, возвращает ‘OK’
  • CONFIG – выводит на дисплей текущую конфигурацию в сжатом виде
  • SETMAC – устанавливает MAC-адрес. Пример:

    SETMAC 88-255-114-17-50-117

    Обратите внимание! MAC-адрес указывается в десятичном формате

  • SETIP – устанавливает IP-адрес.

    SETIP 192.168.0.1

  • SETPWD – устанавливает пароль.

    SETPWD qwerty

    Пароль может содержать латинские буквы и цифры. Использование других символов крайне не рекомендуется.

  • HELP – выводит подсказку по командам.

Страницы состояния датчиков

Кроме страницы состояния в главном web-интерфейсе, предоставляет дополнительные страницы, где можно получить состояние датчиков.

С описание входов: http:///status

http://192.168.114.20/status

Сокращенная информация: http:///stat

http://192.168.114.20/stat

Эти данные могут быть получены и обработаны любым ПО с любой операционной системы, что расширяет сферу использования .

Настройка Syslog на FreeBSD

Для настройки syslog необходимо в файл syslog.conf добавить строку

Local0.info /var/log/climate.log

где /var/log/climate.log – файл, в который будут записываться данные .

Пример файла syslog.conf :

# $FreeBSD: src/etc/syslog.conf,v 1.28 2005/03/12 12:31:16 glebius Exp $ # # Spaces ARE valid field separators in this file. However, # other *nix-like systems still insist on using tabs as field # separators. If you are sharing this file between systems, you # may want to use only tabs as field separators here. # Consult the syslog.conf(5) manpage. *.err;kern.warning;auth.notice;mail.crit /dev/console *.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages security.* /var/log/security auth.info;authpriv.info /var/log/auth.log mail.info /var/log/maillog lpr.info /var/log/lpd-errs ftp.info /var/log/xferlog cron.* /var/log/cron local0.info /var/log/climate.log *.=debug /var/log/debug.log *.emerg * # uncomment this to log all writes to /dev/console to /var/log/console.log #console.info /var/log/console.log # uncomment this to enable logging of all log messages to /var/log/all.log # touch /var/log/all.log and chmod it to mode 600 before it will work *.* /var/log/all.log # uncomment this to enable logging to a remote loghost named loghost #*.* @10.20.27.111 # uncomment these if you"re running inn # news.crit /var/log/news/news.crit # news.err /var/log/news/news.err # news.notice /var/log/news/news.notice !mpd *.* /var/log/mpd.log !startslip *.* /var/log/slip.log !ppp *.* /var/log/ppp.log

В rc.conf устанавливаем флаг syslog, и указываем от кого ему можно принимать данные. Пример:

syslogd_flags= “-a 192.168.114.20/32:*”

Настройка FreeBSD для приема и обработки сообщений

Предположим, отправка сообщений будет выполняться на порт 773. Смотрим в файле /etc/services 773/ud p – это notify

В файле inetd.conf добавляем строку

Notify dgram udp wait root /root/scripts/alarm.sh alarm.sh

/root/scripts/alarm.sh – это скрипт, который будет принимать, и обрабатывать полученное сообщение.

Пример скрипта:

#!/usr/local/bin/bash #LOG="/var/log/alarm.log" LOG=`mktemp /tmp/alarm.XXXXXX` || exit 1 MY_IP_AND_PORT="192.168.144.1 773" SECRET_STRING="balar" WAIT_CNT=3 # get modify time of log LOG_MODIFY=`stat -f "%m" ${LOG}` /usr/bin/nc -l -u ${MY_IP_AND_PORT} > ${LOG} & BG_PID=$! while [ $WAIT_CNT -gt 0 ]; do sleep 1 LOG_MODIFY_CUR=`stat -f "%m" ${LOG}` if [ $LOG_MODIFY -eq $LOG_MODIFY_CUR ]; then WAIT_CNT=$((WAIT_CNT-1)) else WAIT_CNT=0 fi done kill $BG_PID # bug fix BEGIN read -t 1 sss # bug fix END MSG=`cat ${LOG}` if [ $MSG=$SECRET_STRING ]; then echo ALARM! SHUTDOWN! | mail -s ALARM [email protected] logger AHTUNG! SHUTDOWN else logger GADI PITALIS POTUSHIT SERVER fi unlink ${LOG} exit 0

ВНИМАНИЕ! На разных версиях операционных систем скрипт может не работать как следует или не работать вовсе. Придется применить свое умение.

Настройка MRTG для построения графиков температуры

Создаем скрипт /usr/local/etc/periodic/daily/climate.sh Следующего содержания:

#!/bin/sh read=`cut -f 4 -d: /var/log/climate.log | tail -1` write=${read} echo ${read} echo ${write} echo 0 echo items

где /var/log/climate.log – файл, в который принимаются данные от .

В файле /usr/local/etc/mrtg/mrtg.cfg добавляем следующие строки:

Target:`/usr/local/etc/mrtg_scripts/climate.sh` Options: nopercent,growright,gauge,noinfo Title: Temperature PageTop:

Temperature

MaxBytes: 10000 YLegend: temperature, oC ShortLegend: items LegendI: Temperature: LegendO: Temperature: Legend1: temperature, oC Legend2: temperature, oC

Установка и настройка сервиса для обработки сообщений на Windows серверах

Для приема сообщений серверами под управлением Windows систем создан специальный сервис .exe . Установить как сервис командой:

Exe -install

Проверьте, служба Net Alarm должна появиться в списке сервисов.

Udpport=773 fromip=192.168.114.20 string=alarm todo="C:\Atmel_Projects\AVRWeb\WinUDPServer\WinService\1.bat"

  • udpport=773 – порт на котором служба будет принимать сообщения
  • fromip=192.168.114.20 – адрес от куда принимать сообщения, другие адреса будут игнорироваться
  • string=alarm – текст сообщения, после приема которого нужно выполнить команду
  • todo=”C:\NETAlarm\alarm.bat” – команда, которая выполняется после получения сообщения

На той же основе была создана метеостанция для работы в интернет.

Принцип тот же, что и . Добавлены:
– датчик давления HP02
– “тахометр” для измерения скорости ветра
– работа с 4 битным энкодером для определения направления ветра
– отправка данных на сервер по http протоколу
– вывод данных в XML формате

Со схемой и прошивкой метеостанции познакомлю Вас немного позже.

При использовании в качестве устройства прослушивания (например помещений). Один из вариантов - подключается параллельно лампе освещения под потолком.

Для передачи используется частотная модуляция и несущая частота, равная 94 кГц. Устройство питается от сети. Излишек гасится конденсатором и пониженное напряжение выпрямляется диодным мостом. Далее оно фильтруется и ограничивается стабилитроном КС520 и используется для питания выходного каскада на VT1. Напряжение, снимаемое со стабилитрона КС210 используется для питания остальной части устройства. НЧ сигнал с микрофона усиливается каскадом на VT2 и подается на управляемый напряжением генератор прямоугольных импульсов на DD1(ЧМ модулятор). Начальную частоту генератора устанавливают, при отсутствии сигнала с микрофона, равной 94 кГц с помощью подстроечного резистора.

Принципиальная схема 1


Принципиальная схема 2

Далее сигнал с генератора подается на выходной каскад на VT1. В коллекторную цепь включен трансформатор, первичная обмотка которого настроена на частоту несущей. Сердечник трансформатора и обмотки изолируются фторопластом или чем-нибудь подобным. Трансформатор на Ш-железе работал очень хре..во!

Настройку проводят с использованием ИП в районе 27 вольт, подключаемого плюсом в точку А на схеме. Закоротив базу VT2, подстроечным резистором устанавливают частоту генератора равной 94 кГц. Выходной каскад настраивают подбором конденсатора в коллекторной цепи по минимуму искажений синусоиды или, если нет осциллографа, по максимуму сигнала на вторичной обмотке трансформатора (НЕ ПОПАДИТЕ НА ВТОРУЮ ГАРМОНИКУ!).

ПРИЕМНИК

Изобретать что-либо было лень и поэтому был использован переделанный автомобильный УКВ радиоприемник. Первый гетеродин с кварцевой стабилизацией на 10,794(10,606)кГц. Кварц на 10800 уводил на 6 кГц ниже.Стандартный пьезофильр с полосой пропускания 300 кГц (маленький такой с тремя ножками!:-)) заменен на фильтр от р/ст "Лен" с полосой 15 кГц для подавления зеркального канала приема.Вместо фазосдвигающего контура у К174УР3 использовался кварц на частоту 10700 кГц (девиация меньше). УВЧ не использовался, а сигнал на смеситель подавался через двухконтурный полосовой фильтр на частоту 94 кГц выполненный на кольцах с данными, аналогичными трансформатору передатчика.

На пробу были испытаны готовые катушки на эту частоту от армейских р/приемников р-155 (или р-873). Именно она использована в синтезаторах этих приемников в одном из колец ФАПЧ. Результаты были лучше (скорее всего из-за более высокой добротности).

Эта схема изначально была задумана для связи по радиосети. Именно поэтому несущая равна 94 кГц и расположена между частотами второй (78кГц) и третьей (120 кГц) программы. Правда питание делалось отдельно, а выходной каскад передатчика нагружался на домотанную дополнительно обмотку стандартного трансформатора от абонентского радиоприемника. Число витков ну не помню сколько!. Приемник подключался к имеющейся вторичной обмотке. Дальше желание изобретать и улучшать пропало.

ПООСТОРОЖНЕЕ С ПЕРЕДАТЧИКОМ! ПИТАНИЕ БЕСТРАНСФОРМАТОРНОЕ!

Ethernet является одним из наиболее распространенных сетевых интерфейсов . Компания Miсrochip выпускает широкий спектр Ethernet-микросхем на все случаи жизни: микроконтроллеры, PHY, коммутаторы, мосты USB-Ethernet, контроллеры Ethernet . Практически для каждой микросхемы предлагается отладочный набор и программные средства разработки .

Ethernet является незаменимым инструментом для создания высоконадежных промышленных сетей и высокоскоростных каналов передачи данных. В данном случае слова «надежный» и «высокоскоростной» являются ключевыми. Ни один из беспроводных или проводных интерфейсов не сможет соперничать с Ethernet по этим показателям.

Если оценивать Ethernet с точки зрения стоимости реализации, то он, конечно, уступит более простым сетям, например, RS-422/RS-485. Однако для многих промышленных приложений обеспечение высокой скорости передачи данных оказывается более важным требованием.

Дальнейшее развитие Ethernet связано не только с ростом пропускной способности, но и с получением высокой временной детерминированности при передаче информации. Речь идет в первую очередь о такой технологии как EtherCAT.

К сожалению, расплатой за преимущества, которые дает Ethernet, становятся не только увеличение стоимости, но и высокая сложность реализации. Эти недостатки препятствуют массовому внедрению Ethernet в простые бюджетные устройства, которые должны стать основой Интернета вещей (IoT). Тем не менее, на рынке появляется все больше микросхем и решений, позволяющих при минимальных затратах времени и денег реализовать Ethernet-интерфейс. Например, номенклатура компании Miсrochip имеет множество Ethernet-решений: микроконтроллеры с Ethernet, микросхемы PHY, Ethernet-контроллеры, коммутаторы, законченные преобразователи интерфейсов USB-Ethernet (рисунок 1).

Многообразие компонентов и решений производства компании Microchip позволяет разработчикам очень гибко организовать Ethernet-соединение, исходя из возможностей и требований конкретного приложения, что значительно упрощает процесс разработки.

Организация Ethernet-соединения с помощью микросхем Microchip

Как известно, Ethernet работает на двух нижних уровнях модели OSI: физическом и канальном. В общем случае для реализации Ethernet потребуется стандартный набор функциональных компонентов: микроконтроллер (процессор), Ethernet-контроллер с MAC-адресом (Ethernet Controller ), микросхема PHY, Ethernet-коммутатор (Ethernet Switch ), элементы защиты (варисторы, TVS-диоды, защитные диоды), трансформатор, сетевой разъем. С помощью компонентов производства Microchip структуру Ethernet-интерфейса можно реализовать различными способами (рисунок 2).

Когда Ethernet только зарождался, уровень интеграции был достаточно скромным. По этой причине для создания Ethernet-интерфейса использовался набор отдельных микросхем (рисунок 2а). В этом случае микроконтроллер работает на верхних уровнях модели OSI и взаимодействует с Ethernet-контроллером с помощью одного из традиционных интерфейсов, например, по SPI. Ethernet-контроллер реализует канальный уровень OSI. Одна из главных его функций заключается в назначении уникального MAC-адреса устройства для работы в сети. За организацию физического канала отвечает микросхема Ethernet PHY. Она выполняет непосредственное кодирование и формирование выходных сигналов. Связь между Ethernet-контроллером и Ethernet PHY осуществляется с помощью интерфейса MII (Media Independent Interface) или его производных (RGMII/GMII и других). Если требуется на одном устройстве разместить несколько сетевых узлов, то для этих целей используется Ethernet-коммутатор.

С развитием технологических норм степень интеграции увеличивалась. Это позволяло разместить в одном корпусе не только процессорное ядро и стандартную периферию, но и «тяжелый» Ethernet-контроллер (рисунок 2б). В итоге для создания Ethernet-интерфейса требовалось подключить к такому микроконтроллеру только Ethernet PHY.

Стремление к созданию максимально простых решений привело к появлению микроконтроллеров и систем-на-кристалле (SOC), которые могут похвастаться не только встроенным Ethernet-контроллером, но и чипом Ethernet PHY (рисунок 2в). Для них подключение к сети оказывается максимально простым – остается только добавить элементы защиты и трансформатор.

В последнее время на рынке появляются и другие интересные решения. Например, компания Microchip предлагает широкий выбор различных мостовых схем USB-Ethernet (рисунок 2г). Их достоинствами являются универсальность, простота и низкая стоимость.

Компания Microchip выпускает весь спектр Ethernet-микросхем. Это дает пользователям возможность применять наиболее удобную структуру Ethernet-интерфейса, что в свою очередь значительно упрощает процесс разработки.

Обзор микроконтроллеров Microchip со встроенным Ethernet

Компания Microchip выпускает почти 200 моделей микроконтроллеров для Ethernet-приложений. Чтобы рассказать о них, потребуется не одна статья. По этой причине ограничимся кратким обзором основных семейств контроллеров с Ethernet.

Семейство PIC18 с Ethernet включает микроконтроллеры, построенные на базе 8-битного ядра с объемом Flash-памяти до 128 кбайт. Главной их особенностью является наличие встроенного Ethernet-контроллера и 10Base-T PHY, а также выделенного 8 кбайт ОЗУ для нужд Ethernet.

Сейчас семейство PIC18 с Ethernet объединяет трех представителей – , и , которые доступны в корпусных исполнениях 64/80/100 TQFP.

Производительность этих процессоров невелика – до 10,5 DMIPS. Если требуется более мощный процессор, стоит взглянуть на представителей семейства PIC32.

Таблица 3. Обзор мостов HSIC/USB-Ethernet Microchip

Наименование / /
Тип моста HSIC в 10/100 USB 2.0 в 10/100 USB 2.0 в 10/100 USB 2.0 в 10/100/1000 USB 2.0/HSIC в 10/100/1000 USB 3.1 Gen1 в 10/100/1000
Число портов USB 02.03.2004
Интерфейс с внешним PHY MII RGMII
NetDetatch™ + + + + + +
Wake-On-LAN + + + + + + +
Поддержка PME + + + + + +
Встроенный регулятор напряжения, В 3,3 в 1,2 3,3 в 1,2 3,3 в 1,8 3,3 в 1,8
EEE 802.3az + +
-40…85 -40…105
(AEC-Q100)
Корпус 56 QFN 64 QFN 56 QFN 56 QFN 48 QFN 64 QFN

Среди отличительных особенностей мостов от Microchip стоит отметить наличие встроенных регуляторов напряжения, поддержку IEEE 802.3az и Wake-On-LAN.

Обзор микросхем коммутаторов Ethernet от Microchip

Microchip предлагает микросхемы коммутаторов трех групп: высокоскоростные коммутаторы Gigabit Ethernet (таблица 4), 3-портовые коммутаторы 10/100 Мбит Ethernet (таблица 5) и 4/5/7/9-портовые коммутаторы Ethernet (таблица 6). Для большинства коммутаторов все порты за исключением одного снабжены полным комплектом из MAC + PHY. Один из портов имеет только MAC, для его использования требуется внешняя микросхема PHY, которая подключается с помощью одного из стандартных интерфейсов SGMII/RGMII/GMII/RMII/MII.

Таблица 4. Обзор микросхем высокоскоростных коммутаторов Gigabit Ethernet производства Microchip

Наименование
Скорость обмена данными 10Base-T/100Base-TX/1000Base-T
Число портов Ethernet 3, 6, 7 3, 7 7
Интерфейс SGMII/RGMII/GMII/RMII/MII
LinkMD® Есть
IEEE 1588 v2/802.1AS + +
Audio/Video Bridging (AVB) + +
Time Aware Scheduler + +
Low Latency Cut Through + +
Quiet-WIRE® +
Network Fault Recovery (DLR/HSR) +
IEEE 802.1X + + +
EEE/Wake-On-LAN + + +
Диапазон рабочих температур, °C -40…85
Корпус 64 QFN 128n TQFP 128 TQFP

Как и в случае с остальными Ethernet-микросхемами, ключевыми достоинствами коммутаторов Microchip являются компактные размеры, малое потребление и невысокая стоимость. Некоторые коммутаторы квалифицированы в соответствии с AEC-Q100. Для ответственных промышленных приложений выпускаются микросхемы с расширенным диапазоном температур -40…105°C.

Таблица 5. Обзор 3-портовых коммутаторов Ethernet производства Microchip

Наименование KSZ8463
Скорость обмена данными 10Base-T/100Base-TX 10Base-T/100Base-TX/100Base-FX
Интерфейс MII/RMII MII/RMII/RGMI MII/RMII SPI/SQI/RMII/MII MII
EEE 802.3az + + + +
Uпит, В 1,8/2,5/3,3 3,3 1,6…3,3
Диагностика подключения + + + + + +
IEEE 1588 + + + +
Мощность, мВт 520 330 640 555
Диапазон рабочих температур, °C -40…85 -40…85 (AEC-Q100) -40…85
Корпус 48 LQFP 64 LQFP 64 QFN 56 QFN 56-/64-/72 QFN, 64-/80 TQFP 88 QFN, 80 TQFP

Стоит отметить, что часть коммутаторов Microchip поддерживает протокол IEEE 1588 v2 Precision Time Protocol (PTP), что является обязательным условием при реализации EtherCAT.

Таблица 6. Обзор 5/7/9-портовых коммутаторов Ethernet производства Microchip

Наименование KSZ8565
Скорость обмена данными 10/100Base-T/TX, 100Base-FX 10/100Base-T/TX, 100Base-FX с GigE Uplink 10/100Base-T/TX с GigE Uplink 10/100Base-T/TX, 100Base-FX
Число портов Ethernet 4 5 4 5 7 9
Интерфейс MII/RMII (×2) RGMII MII/RMI GMII/RGMII MII/RMII RGMII MII/RMII GMII/RGMII MII/RMII RGMII/MII/ RMII RGMII/MII/ RMII/SGMI MII, SN
Wake-OnLAN EEE 802.3az + + + + + +
IEEE 802.1X + +
Uпит, В 1,8/2,5/3,3 3,3
LinkMD® +
Мощность, мВт 253 435 430 560 460 560 Нет данных Нет данных 1472
Диапазон рабочих температур, °C -40…85 (AEC-Q100) -40…85 -40…105 (AEC-Q100) -40…85
Корпус 64 QFN 128 LQFP 64 QFN 80 LQFP 128 TQFP 208 PQFP

Обзор инструментов для разработки и отладки Ethernet-приложений

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

Таблица 7. Отладочные платы микроконтроллеров Microchip со встроенным Ethernet

Наименование Описание
Стартовый набор PIC32 Ethernet Starter Kit II
Оценочный набор SAME70 Xplained Evaluation Kit
Оценочный набор SAM V71 Xplained Ultra Evaluation Kit
Оценочный набор SAM A5 D3 Xplained
KSZ9567-EVAL Оценочная плата KSZ9567 Gigabit Ethernet Evaluation Board
Стартовый набор PIC32MZ Embedded Connectivity Starter Kit

Компания Microchip предлагает огромное количество самых разнообразных отладочных наборов и оценочных плат (таблицы 7 и 8). В их число входят как оценочные платы для микроконтроллеров, например, PIC32 Ethernet Starter Kit II , так и законченные решения, например, преобразователь интерфейсов (рисунок 3).

Таблица 8. Отладочные платы для микросхем Ethernet от Microchip

Наименование Микросхема Описание
PHY Оценочная плата для PHY-микросхемы KSZ9031RNX Gigabit Ethernet
KSZ9897-EVAL Коммутатор Оценочная плата коммутатора на базе KSZ9897
KSZ9477-EVAL Коммутатор Оценочная плата коммутатора на базе KSZ9477
Контроллер Оценочная плата Ethernet-контроллера на базе KSZ8851SNL
EVB-LAN9250 Контроллер Оценочная плата Ethernet-контроллера на базе LAN9250

Кроме аппаратных средств Microchip предоставляет пользователям доступ к бесплатным драйверам и библиотекам. С точки зрения Ethernet-приложений разработчикам будет особенно интересен открытый и бесплатный стек TCP/IP от Microchip, который поддерживает следующие протоколы:

  • ARP, IP, ICMP, UDP, TCP, DHCP, SNMP, HTTP, FTP, TFTP;
  • TCP и UDP;
  • Secure Sockets Layer (SSL).

Данный стек протоколов является открытым. Он написан на языке С и имеет модульную структуру. По оценкам специалистов Microchip, использование стека займет всего 28…34 кбайт кода.

Если говорить о конкретных примерах использования микросхем Microchip, то в первую очередь стоит упомянуть готовые решения для EtherCAT и Интернета вещей (IoT).

Готовые решения: IoT и EtherCAT

EtherCAT представляет собой наиболее перспективную технологию прецизионного обмена данными, построенную на базе Ethernet. Для создания EtherCAT-приложений необходима поддержка протокола IEEE 1588 v2 Precision Time Protocol (PTP), который позволяет формировать временные метки, тем самым обеспечивая временную детерминированность при обмене данными, в то время как обычный Ethernet не гарантирует время доставки кадров.

Как говорилось выше, Microchip выпускает целый ряд микросхем с поддержкой IEEE 1588. Для быстрого освоения EtherCAT пользователям предлагаются специализированные отладочные наборы (таблица 9).

Таблица 9. Отладочные платы EtherCAT

Отладочный набор IoT Ethernet Kit , как следует из названия, представляет собой универсальную платформу для Интернета вещей (рисунок 4). Данное решение построено на базе производительного 32-битного контроллера с объемом Flash-памяти 2 Мбайт. Для создания Ethernet-канала используется . Готовые примеры для этой платформы находятся в открытом доступе на сайте github.com .

Заключение

Ethernet остается одним из наиболее распространенных проводных интерфейсов и является основой как для бытовых, так и для промышленных сетей. Он сочетает в себе высокую скорость передачи данных и умеренную стоимость реализации.

Компания Microchip выпускает широкий выбор микросхем для Ethernet-приложений: 8/16/32-битные микроконтроллеры, микросхемы PHY, Ethernet-контроллеры, коммутаторы, малобюджетные мосты USB-Ethernet.

Кроме самих микросхем Microchip предлагает множество разнообразных отладочных наборов и программных библиотек, в том числе – открытый стек TCP/IP. Также имеются специализированные решения для EtherCAT и IoT.

Ethernet («эзернет», «эфирная сеть», отлат. «aether» - эфир) - одна из самых популярных в настоящее время сетевых архитектур. Она использует узкополосную передачу данных со скоростью 10… 100 Мбит/с на «компьютерных» кабелях UTP/FTP. Основной топологией является «звезда» с возможностью каскадирования сети хабами. Расстояние единичных пролётов до 100 м, число узлов до 1024.

Технология Ethernet была разработана в 1970-х годах в исследовательском центре PARC фирмы Xerox. В 1980 г. опубликован первый официальный стандарт.

На сегодняшний день обеспечиваются следующие скорости передачи данных: 10 Мбит/с (Ethernet), 100 Мбит/с (Fast Ethernet), 1…100 Гбит/с (Gigabit Ethernet), в перспективе 1 Тбит/с (Terabit Ethernet). Чтобы легче было ориентироваться, вводят сокращённые названия, например, 10BaseT, где число «10» обозначает скорость передачи данных 10 Мбит/с, «Base» - немодулированный сигнал, T - две витые пары в кабеле. Для универсальных двухскоростных интерфейсов применяют надписи через дробь подобно 10/100BASE-T.

Логическая структура сигналов Ethernet достаточно сложная, поэтому для сопряжения компьютера с MK обычно ставят буферные специализированные контроллеры, например, Microchip ENC28J60, Realtek RTL8019AS, Crystal Semiconductor CS8900A, Silicon Laboratories CP220x или даже отдельную микросборку WIZnet W5100. Все они обеспечивают упаковку/распаковку данных на максимальной скорости 10 Мбит/с, которая является крейсерской для MK общего применения. Общение MK с контроллером Ethemet осуществляется через программно доступные регистры, определяющие тот или иной режим работы.

На физическом уровне для связи с компьютером используется стандартный четырёхжильный сетевой кабель. Гальваническая развязка производится через импульсные трансформаторы, причём часто они совмещаются с экранированным разъёмом RJ-45 и двумя светодиодами (Рис. 4.16). Коэффициент трансформации на приёме обычно составляет 1:1, на передаче 1:1 или 1:1.25. Цепь GND соединяется с металлическим экраном. Элементы R1…R4, C1 могут отстутствовать.

Рис. 4.16. Схема блока трансформаторов Ethemet с разъёмом XS1 RJ-45.

На основе связки «МК + контроллер Ethernet» (Рис. 4.17, а…д) делают не только локальные сети, но и веб-серверы с генераторами html-страниц. Это позволяет осуществлять дистанционное управление и контроль за состоянием датчиков из любой точки Земного шара, охваченной сетью Интернет.

Рис. 4.17. Схемы подключения компьютера через интерфейс Ethernet к MK (начало):

а) подключение Ethemet-модуля через интерфейс SPI к MK;

б) MK имеет встроенный контроллер Ethernet, тактируемый частотой 25 МГц. Резисторы RI, R2 ограничивают ток через светодиоды, находящиеся в блоке трансформаторов;

в) контроллер Ethernet DD1 (фирма Microchip) хранит данные в микросхеме памяти DS1\

Рис. 4.17. Схемы подключения компьютера через интерфейс USB к MK (окончание):

г) MK и микросхема контролера Ethernet DD2 (фирма Microchip) запитываются от разных напряжений. По входам согласование уровней не требуется, а по выходам оно производится через буферные повторители, входящие в состав микросхемы DD1. В блоке трансформаторовЛ/ отсутствуют индикаторы, поэтому применяются внешние светодиоды HL1, HL2\

д) аналогично Рис. 4.17, а, но без внешней микросхемы памяти.