Добрый день! Подскажите простой способ "кодирования" пакета из трех полезных байт (команда 8bit + значение 16bit) для передачи по UART и последующего гарантрированного получения этих трех байт на другом устройстве, без использования эха, то есть за одну передачу. Понимаю, полный пакет должен быть с достаточным избытком, соответсвенно с определением ошибок и возможностью их исправления. Чтобы задать хоть какието границы "избытка" принимаем (прочитав спор двух спецов из соседней темы в этой ветке) вероятность ошибки передачи данных порядка 1/8...1/4 так как используется в достаточно зашумленной среде. Готов на передачу этих трех байт тратить до 8..10 байт
Непонимаю с чего начинать и как. Кто то может подсказать на пальцах, кроме общих фраз CRC8 и полиномов
На пальцах не выйдет. Вам нужен код с исправлением ошибок. Такие кода обнаруживают ошибок больше, чем исправляют. Избыточность определит количество обнаруживаемых и количество исправляемых ошибок. Из заявленного: БЧХ-коды (код Рида-Соломона). Код Хемминга. Но требуется комментарий. Дело в том, что коды с исправлением ошибок не помогают при тотально зашумленном канале. Эти коды работают при случайной и относительно редкой помехе. Они не способны вытащить сигнал из под шума. Теорема Шеннона-Хартли определяет пропускную способность канала с шумами. Поэтому нужно не ошибки исправлять, а правильно модулировать сигнал в канале передачи, чтобы минимизировать потери информации, а лишь затем применять коды с исправлением ошибок.
Может я переборщил с вероятностью ошибок, но даже с 1/8 мне в голову приходит только посылка этих трех байт три раза подряд. Получается при этой вероятности испортиться может только один, максимум два байта, и ещё более мало вероятно что именно один и тот же байт из трех повредится дважды. Но этот способ какойто уж жутко топорный
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
это сварочный аппарат, данные передаются от источника в механизм подачи проволоки. Что в источнике импульсные помехи, что в механизме подачи проволоки электромагнитные помехи от двигателя, все фонит. Пробовал делать с эхом, возможно допустил ошибку, но передатчик и приемник сильно занимались тем что обменивались "охами и ахами" вместо полезной работы. В результате сделал без эха, просто перестал принимать искаженные пакеты, но в результате стали проглатываться иногда пакеты, не часто, впринципе работает, поэтому и говорю что скорее всего переборщил с вероятностью ошибки в верхнем посту. Но меня это всё равно "муляет", пусть лучше пошлю данные с огромным избытком, но приемник должен принять все без исключения команды!
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Это все несерьезно. Нужна полноценная гальваноразвязка и дифференциальный сигнал. Гальваноразвязка подразумевает уже на выходе устройства управления в кабель к управляемому устройству полную изоляцию дифсигналов, питания и общего провода от платы управления. Плюс к этому кабель должен быть экранирован и экран нужно соединить с горячей землей управляемого устройства.
я не ракету запускаю на орбиту Луны ))) ничего подобного не видел ни у одного производителя сварочного оборудования, повидимому решают сугубо программным путем за счет кодирования ... собственно с чего и начал данную тему
Какая еще нахрен ракета? Ровно одна микросхема. Причем совершенно стандартное решение. Просто учите матчасть. Никто не компенсирует безграмотную схемотехнику и конструкцию сложными алгоритмами, тем более, что это невозможно по определению.
Заголовок сообщения: Re: Кодирование пакета из трех полез. байт для передачи по U
Добавлено: Сб янв 13, 2024 19:52:25
Друг Кота
Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52 Сообщений: 4470 Откуда: Главный Улей России (Moscow)
Рейтинг сообщения:0
Вместо CAN драйвера возьмите драйвер, предназначенный для этого: MAX485 или иной, для шины RS-485. В CAN драйверах всякие зашиты от зависаний бывают и потому, если тайминги сигнала ему не понравятся, он отвалится от шины. Помимо этого, в CAN шине есть доминантные и рецессивные состояния (для разрешения коллизий на шине), в RS-485 таких состояний нет, потому драйвера 485 лучше держат уровень сигналов при воздействии на них помех. Соединять стороны нужно витой парой. На обоих концах должны стоять терминирующие резисторы сопротивлением, равным волновому сопротивлению витой пары. Это чтобы устранить эффекты отражения сигналов на линии. Не нужно забывать и о защитах линии и драйверов от сильных всплесков, иначе драйвера умрут. КРАМ прав абсолютно. Сначала нужно по максимуму очистить среду от помех, потом уже заниматься защитой данных.
_________________ I am DX168B and this is my favourite forum on internet!
я так и знал, этот ситуация, когда лучше было бы не говорить для чего нужно кодирование, чтобы не было идей "все исправить и поделить между всеми поровну" .... DX168B все что Вы предложили уже сделано, отработано и работает .... НО я знаю что можно сделать лучше, ведь сам и прошел весь этот предыдущий путь, знаю всю систему досканально и где узкие места. Поэтому и пришел сюда чтобы спросить о том чего не знаю, может кто подскажет
Это прикольно... Приходит персонаж с вопросом. Ему на него отвечают люди, которые этим вопросом занимаются профессионально. А он начинает их учить жить. Любезный, зачем вас учить? Вас учить - только портить...
Заголовок сообщения: Re: Кодирование пакета из трех полез. байт для передачи по U
Добавлено: Сб янв 13, 2024 20:38:18
Друг Кота
Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52 Сообщений: 4470 Откуда: Главный Улей России (Moscow)
Рейтинг сообщения:0
Бывает... К сожалению часто бывает.
Тогда пусть берет код Рида-Соломона или код Хеммига и реализует его. Только если канал жестко засран помехами, то ничто уже не поможет. Это как картину Пикассо замазать толстым слоем гомна, а потом пытаться разглядеть ее из под слоя гомна с помощью рентгенаппарата.
_________________ I am DX168B and this is my favourite forum on internet!
ну я же в третьем же сообщении признался что "В результате сделал без эха, просто перестал принимать искаженные пакеты, но в результате стали проглатываться иногда пакеты, не часто, впринципе работает" ... ну немного приукрасил силу проблемы, чтобы поняли что это важно и нужно, а ведь реально все работает уже более семи лет, всех то устраивает .... НО меня не устраивает, так как знаю что не идеально .... А в общем КРАМ спасибо, код Хемминга скорее всего самое лучше подойдет ... думал что как профессионалы подскажут что лучше подойдет, у какого метода преимущества и недостатки, но похоже все самому все самому
люди давно уже придумали изернет)) с симметричным входом и выходом... гальванической развязкой... и заземлением... причём заземление не только экрана но и сигнальных проводов...
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения