Eport Pro EP10 и EP20

pvvx

Активный участник сообщества
Построены на:
  • MCU M200 (MIPS 4Kc, CPUCLK: 512/480/384/320/..60 MHz, SYSCLK: 160..60 MHz)
  • RAM 32MiB (встроенные в чип M200)
  • FLASH 16MiB
Eport Pro-EP10:
Eport_Pro-EP10.jpg
Eport Pro-EP20 (снята крышка):
Eport_Pro-EP20sm.jpg
Питание 3.3В:
  • Стартовые пики до 260 mA 3.3В при 512 MHz и активных LAN, SPI, ...
  • Средние до 200 mA 3.3В при работе на 320 MHz
Питание от DC-DC (стартовый режим 512MHz, работа после загрузки и инициализации OpenWTR на 320 Mhz, время на графиках в сек):
EportDC-DC.gif
Производительность: 511.18 BogoMIPS при 512 MHz
UART модель типа 16550A (FIFO 14 байт). Работает нормально на 3 мегабита, более не проверял.
 

pvvx

Активный участник сообщества
Полные исходники (SDK) есть, для u-boot тоже.
Китайская прошивку сразу удаляю, т.к. она связывается с китайскими Cloud.
Я использую так GPIO на Eport Pro-EP10:
upload_2019-9-25_6-57-11.png
На своей сборке OpenWRT после старта доступно более 20 Мегабайт RAM с работающими сервисами:
DHCP, DNS, NBIOS, LLMNR, mDNS, WEB-сервер, ModbusTCP, ...
Загрузка использует не более 3-х мегабайт в SPI-Flash (сейчас 2.1 MiB). Остальная Flash отведена на диски для Web-сервера (5MiB) и сохранение годовой статистики-логов работы контролируемых устройств (8MiB).
 

pvvx

Активный участник сообщества
Web-сервер конфигурации переписан от обычного роутера и работает на отдельно выделенном порту:
upload_2019-9-25_7-21-0.png
Основная рабочая версия web, связанная со спецификой конечного устройства работает на стандартном порту.
 

pvvx

Активный участник сообщества
Короче - на стабильность работы всё протестировано. Принимаются предложения на темы создания open-source проектов на данных модулях (и аналогичных), но только предложения с обязательным участием и вкладом!
 

oleg_777

New member
Проект типа UART Bridge + скриптовый язык для реализации автономного контроллера на этой базе.
 

pvvx

Активный участник сообщества
Проект типа UART Bridge + скриптовый язык для реализации автономного контроллера на этой базе.
Это уже сделано, но Modbus RTU + типа SCADA. Накапливает данные с пром.установки с усреднением в 10 минут на циклический буфер на год, лог событий на последние дцать тысяч, и обеспечивает её управление и настройки. Скриптом описываются данные в виртуальном устройстве Modbus чтобы по имени и в определенном формате отдавать переменные + функции FIFO для получения быстрых текущих показаний на графике. Так-же скриптом описывается в каком формате передавать данные в Web (к примеру в XML или Json или в каком текстовом виде - без разницы, т.к. полностью задается). Глубина FIFO должна обеспечивать интервал между запросами эхплорера в javscript. Максимальная скорость набора FIFO = скорости передачи сообщений по modbus в RS-485. Для Modbus TCP модуль обеспечивает 10 тысяч запрос-ответов в сек.
Описывать всё сложно и долго - по тому кратко. И часть коммерческая.
 

pvvx

Активный участник сообщества
Для open-sorce предполагается упрощение сборки собственных модулей и заливка их во внутренний диск устройства. Это чтобы не собирать всю OpenWRT, только кросс компиляция приложений пользователя. Ну типа Arduino.
Так, по причине устойчивости - сама система Linux read-only.
Проект типа UART Bridge
Этого навалом для OpenWRT и требуется только собрать.
 

pvvx

Активный участник сообщества
Для наорду надо что-то немного проще.

К примеру такой процесс:
Берем исходники ina219 -> ZigFisher/Glutinium
Модифицируем, добавив непрерывный опрос в заданные мкс..сек и вывод к примеру в .csv формате.
Собираем исходник, закидываем на диск устройства и запускаем, примеру через отладку в web:
http://eport/cli.cgi?cmd=debug ina219 –i 5000 -w20 -l100
Получаем такую текстовую HTML страничку:
Код:
cmd=ina219 -i 5000 -w -l 100
mV;mA;step=5000us
3300;0.33
3304;0.32
3304;0.30
3304;0.33
3304;0.31
3300;0.33
3304;0.32
3300;0.33
3304;0.35
3304;0.31
3300;0.33
3304;0.32
3304;0.33
3304;0.31
3304;0.34
3300;0.32
3304;0.32
3308;0.31
3300;0.33
3300;0.35
3304;0.33
3304;0.35
3304;0.31
3304;0.30
3304;0.34
3304;0.30
3300;0.32
3308;0.32
3300;0.32
3304;0.32
3304;0.33
3304;0.32
3304;0.34
3304;0.33
3304;0.31
3304;0.32
3300;0.32
3304;0.33
3300;0.31
3304;0.29
3304;0.32
3300;0.31
3304;0.30
3304;0.30
3300;0.33
3304;0.34
3300;0.32
3304;0.35
3304;0.30
3300;0.33
3304;0.34
3304;0.32
3304;0.33
3304;0.33
3300;0.35
3300;0.35
3300;0.32
3300;0.33
3308;0.31
3304;0.30
3304;0.33
3304;0.32
3304;0.33
3304;0.32
3304;0.33
3304;0.32
3300;0.33
3300;0.33
3304;0.32
3300;0.32
3304;0.32
3308;0.32
3304;0.32
3304;0.32
3300;0.33
3300;0.32
3304;0.32
3300;0.32
3304;0.30
3304;0.32
3304;0.32
3304;0.33
3304;0.31
3300;0.32
3304;0.32
3304;0.33
3308;0.33
3304;0.33
3300;0.30
3304;0.33
3304;0.32
3304;0.31
3300;0.32
3300;0.32
3304;0.32
3300;0.31
3304;0.36
3308;0.33
3304;0.33
3304;0.32
Ok, 100 samples
Так-же возможно передать данные через websocket или ещё как в какой Cloud. Тут вариантов масса.

Пока сделан вариант передачи данных в виртуальное Modbus устройство. А там уже обработка скриптами, выдача в нужном формате для AJAX или websocket, накопление лога и т.д.
Но всё нужно оформлять, выкладывать и поддерживать, на что времени не очень...
 

pvvx

Активный участник сообщества
Чтобы была какая-то универсальность нужно в системе иметь некий буфер обмена. Я пока использую виртуальное modbus устройство.
Для него есть файлы скриптов с секциями-командами загружаемые при старте или при запросе с web если не указаны. Могут быть и отдельные файлы скриптов - тогда надо в запросе указать имя. Можно и передать скрипт на исполнение прямо в запросе к web.
Переменные modbus находятся в shm памяти и доступны любому процессу...
К примеру хотим прочитать на страницу молниеносный снимок первых 1000 ячеек, то лепим примерно такой HTML (вложен). *молниеносный снимок - без изменений другими процессами чтобы данные были правильные.
Запускаем на компе или кидаем на диск устройства в каталог Web файлов (это делается так-же через web c парольным доступом или ssh).
На исполнение скриптов и прочего в web требуется логин и пароль соответствующего уровня доступа необходимого для используемых команд.
В общем получаем такую страничку (уменьшено чтоб влезло):
upload_2019-9-25_14-17-16.png
Это самый примитивный пример :)
Простым людям и в этом не разобраться. По этому требуется упрощение.
 

Вложения

Сверху Снизу