Этернат
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 Board, в 2002 году проект перешёл на SourceForge.
Программное обеспечение
[ редактировать ]Гайка/ОС
[ редактировать ]Операционная с открытым исходным кодом система для этих плат называется Nut/OS. Это модульная операционная система реального времени, лицензируемая по лицензии BSD.
Характеристики:
- Кооперативная многопоточность
- Гарантированная прерывания задержка
- Приоритетная обработка событий
- Различные настраиваемые таймеры
- Динамическое управление памятью
- Технологии синхронизации процессов
- Хорошая переносимость на другие архитектуры.
Nut/OS поддерживается популярными библиотеками SSL/TLS, такими как wolfSSL, для обеспечения встроенной безопасности.
Nut/Net
[ редактировать ]Проект Ethernut реализует собственный сетевой стек под названием Nut/Net. Он реализует существенный протокол и API сокетов для использования в программах Nut/OS.
Поддерживаемые протоколы:
- Ethernet
- АРП
- ИП
- ICMP
- UDP
- TCP
- ГЧП
- DHCP
- DNS
- SNTP
- SNMP
- FTP
- ТФТП
- системный журнал
- HTTP
- ПОБЕДЫ (подмножество)
Конфигурация и использование
[ редактировать ]Настроить Nut/OS и Nut/Net довольно просто. После загрузки исходных пакетов необходимо запустить конфигуратор Nut/OS, который создаст необходимые библиотеки для выбранной конфигурации оборудования.
Программисты приложений теперь будут использовать эти библиотеки Nut/OS и Nut/Net для написания собственного программного обеспечения. Помимо библиотек Nut/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 Кортекс М3
Следующие архитектуры поддерживаются, но не поддерживаются активно:
Bluetooth-стек
[ редактировать ]Исследовательская группа распределенных систем ETH Zurich разработала распределенную сенсорную сеть с узлами на базе AVR. Эти сенсорные узлы обмениваются данными через Bluetooth . В качестве системного программного обеспечения с открытым исходным кодом стек BTNut Bluetooth- используется . Стек BTNut основан на системе Nut/OS и расширяет функциональность Nut/OS функциями доступа Bluetooth. Хотя стек BTNut был разработан в основном для сенсорных узлов BTNode , его можно легко портировать и на другие приложения.
Использование и доступность
[ редактировать ]По данным немецкого производителя (egnite GmbH) было продано около 33 000 плат Ethernut (по состоянию на декабрь 2013 г.). Есть несколько производителей совместимого оборудования: Achatz Electronics (Нидерланды), proconX (Австралия), Propox (Польша), SOC Robotics (Канада), HW group sro (Чехия), thermotemp Embedded-IT (Германия). Помимо этого, операционная система Nut/OS используется в качестве основы для сети BTNode Sensor ETH Zurich .
Ссылки
[ редактировать ]- ^ «Справочные платы Ethernet» . Эгнит ГмбХ . Проверено 11 декабря 2013 г.