Недавно читал что wirenboard научился поддерживать произвольные команды по rs-485, не обязательно modbus и подумал: а нельзя ли подобным образом совместить разные скорости.
Условно: все устройства работают на 115200, а одно только 9600. Для опроса этого устройства контроллер переходит на 9600, опрашивает его, потом обратно на 115000 общаться с остальными.
При этом шедулер может оптимально распределять опросы регистров медленных и быстрых устройств, чтобы не слишком тормозить быстрых и при этом продолжать опрашивать медленных. Например на шине есть одно устройство на 9600, два на 19200 и остальные 115200.
Можно опрашивать например так:
9600 - 1 регистр
быстрый опрос (широковещательный опрос по протоколу быстрого modbus)
19200 - 2 регистра
быстрый опрос
115200 - опрос остальных устройств
быстрый опрос
9600 - опрос второго регистра
быстрый опрос
19200 - опрос ещё 2 регистров
быстрый опрос
и т.д.
Если есть команда на исполнение - то она влезает вперёд очереди и для любого устройства работает быстро.
т.е. быстрые продолжают опрашиваться относительно быстро, медленные работают медленнее чем могли (но возможно всё равно быстрее чем если вообще все устройства на 9600 перевести), при этом остаётся быстрая реакция на быстрый modbus и сокращается потребность в разных шинах если есть несколько штук устройств со своими ненастраиваемыми предпочтениями по скорости.
Увидел что реализация подобного механизма уже есть для частных случаев - электросчётчиков и обновления прошивок модулей.
К сожалению, это не укладывается в общую концепцию развития наших устройств и софта, да и влечёт очень много работы с непонятным профитом для компании и клиентов.
Есть требования к шине и одинаковая скорость устройств на шине одно из них. Остальное сильно усложнит драйвер, отладку и добавит много задержек в итоге. Но, конечно, вы можете реализовать сами такое, если вам очень нужно.
Электросчетчики (всегда) работают на той же скорости что и остальные устройства.
А заливка прошивок - это операция пусконаладки/обслуживания и проходит под управлением квалифицированного специалиста.