HBus

Aven
Сообщения: 529
Зарегистрирован: Сб мар 12, 2016 6:33 pm
Откуда: Ухта, Россия
Благодарил (а): 3 раза
Поблагодарили: 154 раза

Re: HBus

Сообщение Aven » Вс фев 02, 2020 12:06 pm

еще CanX продвигают на OpenRB, свободная топология, до 700м
http://canx.info
https://openrb.com/wp-content/uploads/2 ... 9.2019.pdf
https://openrb.com/wp-content/uploads/2 ... final2.pdf
akouz
Сообщения: 254
Зарегистрирован: Ср июл 09, 2014 3:48 pm
Благодарил (а): 6 раз
Поблагодарили: 41 раз

Re: HBus

Сообщение akouz » Вт фев 04, 2020 8:29 am

Aven писал(а):
Вс фев 02, 2020 12:06 pm
еще CanX продвигают на OpenRB, свободная топология, до 700м
Это реклама. В реальности же они предлагают пользоваться калькулятором, чтобы рассчитывать длину кабеля для каждого конкретного случая, http://canx.info/calc/

2 устройства - 19 метров, 10 устройств - 96 метров, 32 устройствa - 304 метрa. Чудес не бывает, задрав бодовую скорость до 100 kbps, они автоматически получили проблемы со свободной топологией и длиной кабеля.
Aven
Сообщения: 529
Зарегистрирован: Сб мар 12, 2016 6:33 pm
Откуда: Ухта, Россия
Благодарил (а): 3 раза
Поблагодарили: 154 раза

Re: HBus

Сообщение Aven » Вт фев 04, 2020 11:51 am

Так если понизить скорость, дальность увеличится...
Я больше имел ввиду сам протокол.
Удаленное обновление прошивок устройств необходимо тоже.

и я так и не понял, что не так с ESP32 и как можно исправить
akouz
Сообщения: 254
Зарегистрирован: Ср июл 09, 2014 3:48 pm
Благодарил (а): 6 раз
Поблагодарили: 41 раз

Re: HBus

Сообщение akouz » Вт фев 04, 2020 12:43 pm

Aven писал(а):
Вт фев 04, 2020 11:51 am
Я больше имел ввиду сам протокол.
Что там у них с протоколом мне не совсем понятно. Вроде бы то же самое, что и KNX, но с добавками (обнаружение узлов, удаленная прошивка). Описание беглое, подробностей я не увидел.
Aven писал(а):
Вт фев 04, 2020 11:51 am
и я так и не понял, что не так с ESP32 и как можно исправить
Сейчас все узлы HBus основаны на кооперативной ОС a_сoos, которая, в свою очередь, базируется на стандартной библиотеке <setjmp>. А в ESP32 у этой библиотеки баг, она не работает, система падает. Поэтому ESP32 для HBus использовать нельзя. Вернее, в принципе можно, но код придется серьезно перетряхивать.
Kiruxa
Сообщения: 14
Зарегистрирован: Пн янв 16, 2017 12:26 pm
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Re: HBus

Сообщение Kiruxa » Пт мар 05, 2021 1:36 pm

Решил я начать использовать HBus в своем проекте, но не очень понял, как будет работать шина без дополнительного PICa? Будет коллизия, при этом пакет просто отбрасывается? И где найти прошивку для PICa?
akouz
Сообщения: 254
Зарегистрирован: Ср июл 09, 2014 3:48 pm
Благодарил (а): 6 раз
Поблагодарили: 41 раз

Re: HBus

Сообщение akouz » Ср мар 10, 2021 1:53 pm

Kiruxa писал(а):
Пт мар 05, 2021 1:36 pm
Решил я начать использовать HBus в своем проекте, но не очень понял, как будет работать шина без дополнительного PICa? Будет коллизия, при этом пакет просто отбрасывается? И где найти прошивку для PICa?
Без дополнительного PIC-а при коллизии двух передатчиков чаще всего ни один из них не сможет закончить пакет. Каждый из них обнаружит, что из сети слышен не тот байт, который он только что отправил, то есть, обнаружит коллизию. После этого он перестанет передавать, подождет некоторое время, и, если шина свободна, попробует повторить передачу.

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

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

Прошивку для PIC-а я пока не выкладывал. Она получилась немножко некрасивая, но работала нормально. Там для икебаны надо было бы пины у PIC-а получше назначить. Я надеялся причесать, но руки так и не дошли.

Выложил в папке https://github.com/akouz/HBus/tree/mast ... USB_Bridge, архив HBus_Arbiter.zip
akouz
Сообщения: 254
Зарегистрирован: Ср июл 09, 2014 3:48 pm
Благодарил (а): 6 раз
Поблагодарили: 41 раз

Re: HBus

Сообщение akouz » Вс сен 19, 2021 2:38 pm

Начанаю новый раунд развития HBus. Хочу первым делом сменить шлюз. Новый шлюз буду делать на модуле MEGA+WiFi R3 ATmega2560+ESP8266. За обмен по HBus будет отвечать AT2560, поэтому блокирующие библиотеки ESP8266 перестанут быть проблемой.

Для связи с HBus сделал Arduino shield. Помимо шинника CAN для выхода в HBus, на шилде есть разъем для связи с модемом X-10, а также RF модуль на 433 МГц.

Сначала закладывался на RFM69CW, но потом задвинул его на второй план, как опцию, и решил первым делом использовать модуль E04-400M16S китайской фирмы Ebyte. В основе RF модуля лежит чип S2-LP от STM, который я хорошо знаю. Ожидаемая дальность связи не менее 100м при использовании встроенной PCB антенны шилда, или порядка 300...500 м при использовании промышленной штыревой антенны.

Первым периферийным RF устройством планирую сделать измеритель влажности почвы. Питание от встроенной солнечной панельки, измерение влажности почвы емкостное, на частоте порядка 100 МГц, чтобы не влияла проводимость почвы.

Модем Х-10 планирую использовать прежде всего для рассылки по сетевой проводке значений освещенности и меток времени. Чтобы лампы наружного освещения могли включиться, когда солнце село, а выключиться в полночь.
akouz
Сообщения: 254
Зарегистрирован: Ср июл 09, 2014 3:48 pm
Благодарил (а): 6 раз
Поблагодарили: 41 раз

Re: HBus

Сообщение akouz » Вт фев 07, 2023 10:07 am

Год пропал, начатое брошено. На ближайшие несколько месяцев ставлю себе новую задачу.

Дешевые ранее модули Arduino Pro Mini, на которых "держится" HBus, вздорожали чуть ли не вдвое. Очевидно, это следствие традиционной маркетинговой политики Microchip: цены на старые чипы они неимоверно задирают, а цены на заменяющие их новые чипы ставят демпинговые. В данном случае Микрочип, очевидно, толкает пользователей от Атмеги к AVR серий DA DB и DD. Что ж, это возможность самому сделать замену Arduino Pro Mini, чтобы решить следующее:

(1) Увеличить память программ, поскольку 32К в Atmega328 хватало еле-еле, надо бы 64К.
(2) Обеспечить дистанционную загрузку скетчей по HBus.
(3) Избавиться от внешнего арбитра, обеспечить CSMA/CA ресурсами самого модуля, если получится

Выбор пал на AVR64DD32, это обеспечивает п.(1).

В помощь п.(2) у Микрочипа имеется пример бутлодера для AVR128DA48, это большое подспорье. Но в отличие от "традиционных" бутлодеров, которые поток из последовательного порта непосредственно пишут в память программ, для HBus перезапись скетчей собираюсь сделать двухступенчатой. На модуль поставлю I2C EEPROM 24LC512, которая будет хранить загружаемый скетч. Загрузка скетча в EEPROM будет вестись по HBus "кусочками", при помощи обычных точка-точка HBus сообщений. Когда EEPROM полностью загружена и целостность данных проверена, подается команда дистанционного сброса. После сброса бутлодер считывает EEPROM и, обнаружив там валидный код, переписывает его в память программ в сектор application code, после чего затирает EEPROM и передает управление на application.

Для реализации п.(3) планирую использовать CLC, но пока что этот вопрос глубоко не прорабатывал.
Kiruxa
Сообщения: 14
Зарегистрирован: Пн янв 16, 2017 12:26 pm
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Re: HBus

Сообщение Kiruxa » Чт фев 09, 2023 11:14 pm

А почему бы не использовать что-то типа ESP32? Мощный, дешевый, доступный. Еще и Wi-Fi как РЕЗЕРВНЫЙ канал, на случай падения H-BUS по какой либо причине?
akouz
Сообщения: 254
Зарегистрирован: Ср июл 09, 2014 3:48 pm
Благодарил (а): 6 раз
Поблагодарили: 41 раз

Re: HBus

Сообщение akouz » Вс фев 12, 2023 11:32 am

Есть несколько причин, по которым я не использовал ESP32 в качестве основного процессора HBus:
-- На ESP32 не работает моя кооперативная ось a_coos, а это стержень, на котором держится весь софт. Возможно на ESP32-С3 она заработает, поскольку там процессорное ядро не Тензелика, а RISC-V, и библиотечные функции setjmp и longjmp, возможно, реализованы так, как для большинства процессоров, а не так, как для ESP32. Надо бы попробовать.
-- Модули на ESP8266, где a_coos работает нормально, имеют очень мало свободных пинов и весьма второсортный 10-битный АЦП. Модули на ESP32-С3 по распиновке такие же, то есть, пинов мало, правда АЦП получше, уже 12 бит.
-- Потребление у ESP модулей великовато, примерно 80 мА, с пиковыми выбросами до 0.5А когда WiFi работает на передачу. Надо шину питания ставить развязывающие кондеры не менее 470 мкФ.
-- Питание у них 3.3 В, что накладывает ограничения на то, как сделана периферия, в том числе какие CAN трансиверы можно использовать.
-- Придется применять готовые модули с ESP. Возиться с настройкой антенны 2.4 ГГц на собственных модулях нет желания, это требует много времени и измерительной аппаратуры, которой у меня нет.

Хотя идея вобще-то привлекательная, поэтому в будущем я ее рассмотрю еще раз. Помнится, новый вариант векторного анализатора NanoVNA вроде бы уже дотягивается до диапазона 2.4 ГГц. Если так, то с ним можно было бы настроить свою WiFi антенну, т.е. сделать свой модуль на базе ESP32-С3, чтобы задействовать больше пинов.
Ответить