• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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
Это самый примитивный пример :)
Простым людям и в этом не разобраться. По этому требуется упрощение.
 

Вложения

chumxeed

New member
[QUOTE = "pvvx, post: 65477, member: 6"]
There are complete sources (SDK), for u-boot too.
I immediately delete the Chinese firmware, tk. she contacts the Chinese Cloud.
I use this way GPIO on Eport Pro-EP10:
Посмотреть вложение 7937
On its assembly of OpenWRT, after the start, more than 20 Megabytes of RAM are available with running services:
DHCP, DNS, NBIOS, LLMNR, mDNS, WEB server, ModbusTCP, ...
The download uses no more than 3 megabytes in SPI-Flash (currently 2.1 MiB). The rest of Flash is reserved for disks for the Web server (5MiB) and saving the annual statistics-logs of the controlled devices (8MiB).
[/ QUOTE]
I'm not sure this thread still active or not. BTW. great find out. I interested in this module. would you share the SDK and your custom openwrt toolchain for this module for the benefit of the other?.
 

aonmaster

New member
Китайская прошивку сразу удаляю, т.к. она связывается с китайскими Cloud.
Я использую так GPIO на Eport Pro-EP10:
Круто! Я пока во всём этом мало понимаю, прошу совета. Раньше использовал USR-TCP232-T2, тоже с веб интерфейсом. Но там GPIO как таковой обрезанный, а мне надо кроме преобразования UART-TCP/IP ещё и иметь возможность пин хотя бы один GPIO использовать через веб или телнет для управления реле.

Если подскажете, как это сделать на модуле Eport Pro-EP10 - буду очень благодарен.
 

aonmaster

New member
Обнаружил сейчас, что Ваш модуль с Pro, а то, что я нашёл на али - вот https://aliexpress.ru/item/32944878256.html там Pro нету :(
Но в PDF для обычного (не Pro) https://ptelectronics.ru/wp-content/uploads/Eport-E10-Serial-Server-User-Manual-20160822.pdf пины расписаны аналогично, вот и думаю теперь, одинаковые ли это устройства или Pro стоит совсем других денег.
 

chumxeed

New member
Версия PRO основана на MCU MIPS, а другая версия - на MCU Cortex-M3. Для этого модуля может существовать SDK, вам следует связаться с поставщиком или hiflying
 

aonmaster

New member
Поясните, пожалуйста, как использовать SDK. Есть для EP10 такой, там указано вот что:
6.6 ep10_gpio_set
Function prototype:
int HSF_API ep10_gpio_set(int gpio, int val)
Description:
Set gpio value for EP10/EP20/HF511A
Parameters:
gpio: gpio number, eg, 1,2
value: 0:low, 1: high

Типа установить уровень на ножке GPIO.
Но как это дело применить-то? я понимаю что такое команда CLI, а это наверное из другой оперы?
Вот ссылка на SDK http://www.hi-flying.com/download-c...download-item-eport-hf51-linux-sdk-user-guide
 

afedorov

New member
Внутри SDK есть файл-пример как это использовать - \package\hiflying\src\ep_api_test.c
Скомпилированный бинарник называется ept. Он присутствует в дефолтно-собраном образе (но не в заводской прошивке), можно запустить и поиграться из консоли.
Штатная прошивка (а именно бинарник eport, отвечающий за веб-интерфейс и работу с портами) лезет в облако с настройками по умолчанию, когда включен шлюз, если его выключить (через telnet) - никуда не лезет.
SDK нормально работает только в рекомендованной древней Федоре 12. Собрать хоть что-то на современной системе у меня не вышло.
 

afedorov

New member
GPIO также можно управлять и без API, используя стандартный GPIO интерфейс ядра. Управляется скриптом или из программы используя open/write. Для доступности GPIO 14/15 RTS/CTS нужно выключить соотв. функционал в конфиге ядра при сборке.
Нормальный телнет доступен на порту 2323, root:admin
 

Вложения

aonmaster

New member
Спасибо за ответ! Если можно, дайте ссылку на ядро, где выключен функционал в конфиге ядра при сборке. Боюсь запороть модуль, никогда для таких устройств ядра не компилировал, а детального руководства тоже не нашёл :(
Телнет тоже устроит, главное теперь ядро найти нужное.
Изначально я думал, что эти программы соединяются по какому-то служебному порту к прошивке модуля и дают команды. А раз они на C, то собрать их можно было бы хоть под винду.
 

afedorov

New member
Запороть модуль просто так не выйдет - у него загрузчик со своим HTTP для заливки прошивки. При окирпичивании нужно только через 3.3В UART-TTL пнуть загрузчик, чтобы он запустил свой аварийный интерфейс.
Я могу свою прошивку выложить, там только RTS включен (для RS485), GPIO 15 и GPIO11 свободны, плюс некоторые фиксы, но выпилены тестовые программы. На GPIO10 - софтовый дебаг UART TX. Светодиоды модуля также на GPIO висят и управляются ядром, соотв. тоже можно отключить если очень нужно еще GPIO.
Софт, разумеется должен быть собран под MIPS32. Если что-то общее без зависимостей от HF API, наверно можно и любым MIPS32 тулчейном собрать, вроде я собирал и работало, но это не точно.
прошивка https://cloud.mail.ru/public/3ont/aWoUaug9b
 

Вложения

aonmaster

New member
"зависимости от HF API, MIPS32 тулчейн" - всё это для меня слишком сложно.
Я хотел этот модуль заказать на али для Ethernet-UART конвертера, и 2 или 3 GPIO дёргать какой-то командой (думал, как раз под windows). Кроме Ethernet-UART конвертера от модуля ничего больше не нужно (веб сервер для управления и настройки параметров хотелось бы оставить). Но т.к. ответ в этой теме почти на полгода затянулся :) - я пока не заказывал сам модуль. Если Вы умеете компилировать ядро и смогли бы мне помочь, напишите в личку, пожалуйста.
 

afedorov

New member
В инструкции к SDK описано как собирать. На FTP и них же лежит образ федоры, которая ставится в виртуалку, в нее распаковывается SDK и собирается.
Если Вам нужно только порт и GPIO - моя сборка сойдет. GPIO можно дергать и через telnet скриптом.
 
Сверху Снизу