Добрый день, имеются в наличии модули (XBP24BZ7SIT-004 -2 штука), прошил по инструкции. Скорость выставил 38400. Вообщем лагает падла. Медленно передает Хотя на простеньких s1 всё лётает. Товарищи подскажите чё делать? Понижать скорость не вариант мне кажется (размер пакета данных 311 байт).
В чём заключается суть лага? Долго реагирует перед отправкой большого пакета, а потом всё норм (latency) или же реагирует быстро, но данные идут медленно (throughput)?
Данные идут медленно. Если сравнивать с s1, то на экране циферки бегут ну очень быстро=)) А у s2b, есть притормаживание типа throughput. может, что тут уже как бы mesh сеть. Я собираю данные с акселерометра и гироскопа и этот лаг меня сильно напрягает.
Медленно передает - это в чем выражается? А пакеты часто ходят? Чем плохо снизить скорость, если будет все успевать? Меньше скорость == меньше помех. На 38400 получается что-то около 12 пакетов в секунду (или 10 с запасом).
окей, а у меня в подписи написано нуб. Объясните нубу. Как определить часто ли ходят пакеты? Датчики работают по i2c 400 кГц, mcu обрабатывает и шлёт по uart. А лаг выглядит, типа как будто ждёт какое то время, а потом выплевывает строку данных.
Подпись можете в настройках исправить, если не нравится Не "часто ли ходят пакеты" а "как часто они могут ходить на скорости 38400". Длина пакета - 311 байт. 1 байт - это стартовый бит, 8 бит данных, стоповый бит - итого 10 бит. Тогда длина пакета 3110 бит. Получаем 38400 / 3110 = 12,347 (пакетов в секунду). Теперь дальше. 400 кГц - видимо, все же тактовая частота шины, а не частота опроса. Я так понимаю, что Вам нужно завести таймер примерно на 100 мс и по его срабатыванию читать датчик и отправлять пакет. Тогда никаких лагов быть не должно. Постоянно читать датчик и слать пакеты- неправильно, канал забьется (будет переполнение буфера) и произойдет потеря данных.
насчёт подписи, всё должно быть честно)) Это то что вы посчитали это по этой формуле. Буфер забивается у xbee или у мк?
Вы передаете от МК - стало быть, у него буфер и забивается - не успевает все выдать, а тут уже новый пакет подкладывают - затирается хвост предыдущего пакета - данные испорчены. А вообще Вы бы выложили код - стало бы намного понятней, в чем затык. Причин на самом деле может быть масса.
Понятно. Оно то да, МК заикается вот и начинает буксовать. Но тогда бы была такая же проблема и c xbee s1, но с ними всё нормально. Насчёт кода программы тут вообщем всё круто, я не "кодер", а "быдло-нуб". Поэтому вся системы на программирована через simulink coder. Исходники я могу выложить, но там matlab такого наворотил, поэтому не хотелось бы Вас сильно удручать. Но если вдруг, то я могу))