Ethernut является открытым исходным кодом аппаратных средств и программного обеспечения проекта для использования в качестве встроенного - Ethernet -системы.
Оборудование [ править ]
В настоящее время существует четыре различных эталонных дизайна (Ethernut 1, Ethernut 2, Ethernut 3 и Ethernut 5), которые доступны в виде готовых к использованию плат. [1]
Все эталонные проекты используют один и тот же набор интерфейсов:
- Разъем Ethernet
- Порты RS-232
- Разъем питания
- Почти все контакты ввода / вывода микроконтроллера доступны на порте расширения.
Конструкции в основном различаются используемым микроконтроллером (Ethernut 1 и 2: 8-битный AVR , Ethernut 3 и 5: 32-битный ARM ) и доступным объемом памяти. С платы Ethernut 3 доступен слот MMC . Ethernut 5 также включает в себя USB- хост и интерфейсы устройств.
История [ править ]
С появлением идеи Интернета вещей около 2000 года различные группы людей с разными целями начали разрабатывать встроенные системы, которые можно было бы интегрировать в существующие сети TCP / IP.
Ограниченные ресурсы этих в основном 8-битных встраиваемых систем, которые редко достигают или превышают 64 КБ основной памяти, создают большую проблему.
В 2000 году британский разработчик Дэйв Хадсон выпустил исходный код операционной системы реального времени со встроенным стеком TCP / IP под названием Liquorice .
Другая проблема заключалась в том, что подходящего оборудования для такого рода разработки практически не существовало. Почти все сетевые контроллеры того времени использовали интерфейс PCI-Bus, который слишком сложен для небольших микроконтроллеров. Но один из немногих все еще находящихся в производстве контроллеров с интерфейсом ISA-Bus , который также не рекомендовался для новых разработок, был использован вместе с микроконтроллером ATmega103 для создания одноплатного компьютера. Компоновка этой платы была выпущена под лицензией BSD и была одним из первых открытых аппаратных проектов.
Через год Хадсон прекратил работу над проектом. Но исходный код Liquorice использовался в качестве программной основы для нового проекта Ethernut, который был направлен на интеграцию разработки программного и аппаратного обеспечения. После того, как первые несколько версий были выпущены для Совета AVR Freaks, в 2002 году проект переключился на SourceForge.
Программное обеспечение [ править ]
Nut / OS [ править ]
С открытым исходным кодом операционной системы для этих плат называется Nut / OS. Это модульная операционная система реального времени под лицензией BSD.
Характеристики:
- Кооперативная многопоточность
- Гарантированное прерывание - задержка
- Приоритетная обработка событий
- Различные настраиваемые таймеры
- Динамическое управление памятью
- Технологии синхронизации процессов
- Хорошая переносимость на другие архитектуры
Nut / OS поддерживается популярными библиотеками SSL / TLS, такими как wolfSSL для встроенной безопасности.
Nut / Net [ править ]
В проекте Ethernut реализован собственный сетевой стек под названием Nut / Net. Он реализует существенный протокол и API сокетов для использования в программах Nut / OS.
Поддерживаемые протоколы:
Конфигурация и использование [ править ]
Настроить Nut / OS и Nut / Net довольно просто. После загрузки исходных пакетов должен быть запущен конфигуратор Nut / OS, который соберет необходимые библиотеки для выбранной конфигурации оборудования.
Программисты приложений теперь будут использовать эти библиотеки Nut / OS и Nut / Net для написания собственного программного обеспечения. Кроме ореховой / OS библиотеки прикладной программист может использовать стандартные библиотеки C . В качестве языков программирования используется C , но в основном поддерживается и C ++ . Кроме того, существует интерпретатор Lua, так что сценарии Lua могут выполняться интерактивно во время выполнения на плате.
Существует множество простых примеров приложений, которые можно легко ввести в Nut / OS.
Поддерживаемые архитектуры [ править ]
- Atmel AVR (например: ATmega103, ATmega128, ATmega2561, AT90CAN128 и т. Д.)
- Atmel AVR32 (например: AT32UC3A, AT32UC3B и т. Д.)
- ARM7 (например: AT91R40008, AT91SAM7X, LPC-E2294, Game Boy Advance и т. Д.)
- ARM9 (например: AT91SAM9260, AT91SAM9XE и т. Д.)
- ARM Cortex M3
Следующие архитектуры поддерживаются, но активно не поддерживаются:
- H8 / 300
- Motorola 68000
Стек Bluetooth [ править ]
Исследовательская группа по распределенным системам ETH Zurich разработала распределенную сеть датчиков с узлами на основе AVR. Эти сенсорные узлы обмениваются данными через Bluetooth . В качестве системного ПО используется стек BTNut Bluetooth с открытым исходным кодом . Стек BTNut основан на системе Nut / OS и расширяет функциональность Nut / OS функциями доступа Bluetooth. Хотя стек BTNut был разработан в основном для узлов датчиков BTNode, его можно легко перенести на другие приложения.
Использование и доступность [ править ]
По данным немецкого производителя (egnite GmbH) было продано около 33000 плат Ethernut (состояние: декабрь 2013 г.). Существует несколько производителей совместимого оборудования: Achatz electronics (Нидерланды), proconX (Австралия), Propox (Польша), SOC Robotics (Канада), HW group sro (Чехия), thermotemp Embedded-IT (Германия). Помимо этого, операционная система Nut / OS используется в качестве основы для сети BTNode Sensor ETH Zurich .
Ссылки [ править ]
- ^ "Справочные платы Ethernut" . egnite GmbH . Проверено 11 декабря 2013 года .
Внешние ссылки [ править ]
- Проект Ethernut
- NutWiki
- BTNode Projekt