Вопросы по Modbus

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Опытный кот
Аватара пользователя
Сообщения: 770
Зарегистрирован: Пн сен 15, 2025 08:43:23
Откуда: Маленький СССР посреди недругов

Сообщение linux_rulezz »

даже если все более высокоприоритетные прерывания наложатся друг на друга.
Нужно очень постараться, чтобы нагрузить системную шину так, что DMA начнет сбоить…
Кстати, для своего мультипортового преобразователя USB в разные интерфейсы, я для нескольких UART'ов (насколько DMA хватило: увы, у STM32F303 с DMA очень плохо) вообще циклические буферы на прием завел. Если получаю IDLE, все пришедшее помещаю в кольцевой буфер и отмечаю флаг "пакет пришел", а пока IDLE нет, в суперлупе проверяю, что там поднакопилось, и понемногу сливаю в кольцевой буфер большего размера. И смотрю: если пришло байт не меньше размера буфера USB, либо появился флаг конца пакета, отправляю по USB. Пришедшее из USB коплю в кольцевом буфере и, когда передача по соответствующему каналу DMA окончена, заполняю его и запускаю новую передачу. Проверял на 3Мбод, пропуска символов не было. Правда, при активном трафике на всех каналах, понятное дело, уже упираемся в пропускную способность USB (около 6Мбод в "одну сторону" в моей реализации), поэтому одновременно пять последовательных портов не потянут непрерывный поток данных на больших скоростях.

Если же устройство изготавливают на какой-нибудь убогой 8-битной АВРке, понятно, скорость шины больше 19200 лучше не выставлять. А то и 9600…
Windows must die!
Контактная информация:
Реклама
Это не хвост, это антенна
Сообщения: 1374
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Сообщение tonyk »

linux_rulezz писал(а):Если же устройство изготавливают на какой-нибудь убогой 8-битной АВРке, понятно, скорость шины больше 19200 лучше не выставлять. А то и 9600…
Вот именно, а то выставят на дохленькой восьмибитке 115200, а потом сетуют на большие паузы между байтами.
Помню, гоняли повторители для 485-го, так 922 Кбит/с через DMA без проблем принимались.
Реклама
Вымогатель припоя
Сообщения: 511
Зарегистрирован: Пт окт 28, 2011 16:01:18

Сообщение ~Dimon~ »

115200,8,N,1 при тактовой 18,432МГц, это АЖ 1600 тактов на байт.
Инструкции у AVR в основном однотактные.
USART буферезован (можно считать это как 1 байт FIFO).
Если у кого то "не тянет", то возможно там руки кривые :D

Учитесь программировать.
Учитесь программировать МК.
Учитесь программировать МК с ограниченными ресурсами.
Опытный кот
Аватара пользователя
Сообщения: 770
Зарегистрирован: Пн сен 15, 2025 08:43:23
Откуда: Маленький СССР посреди недругов

Сообщение linux_rulezz »

~Dimon~ писал(а): Ср сен 16, 2026 08:44:55Учитесь программировать МК с ограниченными ресурсами.
Зачем, если полно недорогих (кстати, есть и дешевле тех же 8-битных аврок) ARM и RISC-V?
Зачем уродоваться на тормозной восьмибитке с почти никакущей периферией, если рублей за 300-400 можно получить 32 бита, 170МГц, флоаты, кучу таймеров, приличное количество флеша и оперативки, разнообразные интерфейсы (кстати, а CAN в "ардуине" есть?) и т.д., и т.п.
Windows must die!
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Это не хвост, это антенна
Сообщения: 1374
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Сообщение tonyk »

~Dimon~ писал(а):Учитесь программировать.
Учитесь программировать МК.
Учитесь программировать МК с ограниченными ресурсами.
Странный подход. Хочешь скорость- бери современный МК, периферия которого тот же Модбас принимает аппаратно, вплоть до сравнения адреса узла, и дёргает прерывание тогда, когда есть фрейм для тебя. Мне нужно решить свои задачу на МК, не тратя время на выдумывание головоломных, но предельно эффективных алгоритмов работы с Модбас. Тем более, когда стоимость и доступность современных МК почти не отличается от древних AVR. Более того, в более-менее сложных изделиях стоимость МК составляет несколько процентов от себестоимости всего изделия, поэтому нет смысла тратить время дорогостоящего инженера на создание глубоко оптимизированного кода, проще и дешевле взять МК на 50 рублей дороже, на котором тот же Модбас реализуется на раз-два студентом за вечер.
Реклама
Ответить

Вернуться в «Периферия»