Easyelectronics.ru

Электроника для всех
Текущее время: 19 сен 2018, 04:42

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 16:43 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 758
Господа. Есть ли опыт реализации помехоустойчивого кодирования над uart? Что можете порекомендовать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 16:47 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1723
Откуда: Харьков
Чисто UART между двумя МК? Если только на софтовом уровне то пакеты с CRC в конце + подтверждение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 16:50 
Старожил

Зарегистрирован: 02 май 2015, 16:16
Сообщения: 1640
протокол ModBus содержит в пакете передачи контрольную сумму CRC.
Но это не помехоустойчивое кодирование, а контроль наличия помех, так как помехи могут полностью загадить передачу на линии и ни какое кодирование не сможет восстановить исходные данные из электрического шума.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 16:51 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 758
Пакеты - это перепосылка. А это может быть не всегда уместно. Пусть работает медленно, но стабильно.
Интересуют системы без подтверждения. Возможно код Хэмминга. Или что-то подобное.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 17:03 
Старожил

Зарегистрирован: 02 май 2015, 16:16
Сообщения: 1640
Mirmik писал(а):
Интересуют системы без подтверждения. Возможно код Хэмминга. Или что-то подобное.
Сколько дополнительных бит требуется для однозначного исправления 8-ми ошибок передачи в байте данных ?
А сколько бит требуется для однозначного исправления ошибок передачи в байте контрольного кода ?
Гарантирует это целостность и истинность полученного байта данных если по пути порушатся контрольные коды исправления ошибки ?

код Хэмминга ? это мы хотим замахнуться на Уильяма Шекспира и решить проблему мировой индустрии памяти ECC и корректировать 64-бит ошибок одним чудесным битом ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 17:09 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 758
Да, да, да!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 17:15 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 758
Вообще, у меня вопрос скорее о другом...
Насколько последовательные линии связи подвержены одиночным ошибкам? То есть, имеет ли смысл вообще пытаться это дело ловить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 17:19 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2170
Mirmik писал(а):
Господа. Есть ли опыт реализации помехоустойчивого кодирования над uart? Что можете порекомендовать.

https://en.wikipedia.org/wiki/Reed–Solomon_error_correction


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 17:30 
Старожил

Зарегистрирован: 02 май 2015, 16:16
Сообщения: 1640
Mirmik писал(а):
Вообще, у меня вопрос скорее о другом...
Насколько последовательные линии связи подвержены одиночным ошибкам? То есть, имеет ли смысл вообще пытаться это дело ловить.
Последовательные линии не подвержены одиночным ошибкам... называйте термины своими именами по назначению.
Те или иные электрические/электро-магнитные/оптические/ультра/звуковые стандарты передачи данных в той или иной степени подвержены воздействию соответствующих природе передачи помех,
которые в определённых условиях искажают передаваемые данные, приводящие к получению недостоверных данных приёмником.
Самое простое для медленной связи со скоростью 1 бит в час на расстоянии 55 миллионов километров ... вчера из-за мощной песчаной бури на Марсе инженеры потеряли связь с марсоходом Opportunity...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 17:51 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 758
Да... Код рида-соломона - это может быть тем, что надо.
Как насчет реализации?. Смущает возможность полной потери байтов в serial сети. В этих условиях рид-соломон работать не будут.

Насколько вообще уместно внедрение помехоустойчивого кода?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 18:10 
Старожил

Зарегистрирован: 02 май 2015, 16:16
Сообщения: 1640
Mirmik писал(а):
Насколько вообще уместно внедрение помехоустойчивого кода?
Насколько уместно знать приёмнику, что он получил достоверные непротиворечивые истинные данные ?
Иногда для увеличения помехоустойчивости линии связи достаточно понизить скорость передачи.
В промышленности уже много десятилетий в условиях сильных помех используют различные протоколы с CRC.
Если подсчитанное CRC не совпадает с полученным, то обычно об этом сообщается передатчику с запросом повторной передачи.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 18:12 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 1220
Откуда: Китай, Пекин
Цитата:
Насколько вообще уместно внедрение помехоустойчивого кода?

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

пугает сложность написания протокола? так делай это с BlackBox!
сейчас в процессе написания поддержка C++

и новшество:
внутри пакета данных, помимо примитивных данных и их многомерных массивов, можно будет внедрять другие пакеты и их многомерные массивы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 18:44 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 758
Протокол (точнее даже стэк протоколов) у меня свой, со всевозможными подтверждениями, вариантами качества обслуживания, передачей сообщений между процессами, словарями, массивами, прочими свистоперделками :).

Это как бы не вместо, а вместе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 19:02 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 1220
Откуда: Китай, Пекин
Цитата:
Протокол (точнее даже стэк протоколов) у меня свой,

жутчайше любопытно было бы посмотреть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 19:07 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2170
Mirmik писал(а):
Да... Код рида-соломона - это может быть тем, что надо.
Как насчет реализации?.

Например вот: https://www2.cs.duke.edu/courses/spring ... ing_rs.pdf А вообще гугл никто не отменял.
Mirmik писал(а):
Смущает возможность полной потери байтов в serial сети. В этих условиях рид-соломон работать не будут.

Еще как будут. Собственно, это кодирование работает на уровне блока. Для блока размером в байт это не эффективно - слишком велики накладные расходы. Нужно использовать блоки бОльшего размера и (в зависимости от параметров) можно будет восстановить в том числе и потерянный байт.
Mirmik писал(а):
Насколько вообще уместно внедрение помехоустойчивого кода?

Для того, что бы с этим определиться, вам нужно принять решение насчет допустимой частоты ошибок.

P.S. к слову, если добавлять контрольные суммы, то не стоит использовать CRC - он достаточно слаб в плане контроля целостности. какие-нибудь более толковые алгоритмы проконтролируют целостность куда лучше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 19:13 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 758
cheblin писал(а):
Цитата:
Протокол (точнее даже стэк протоколов) у меня свой,

жутчайше любопытно было бы посмотреть.


Рано или поздно подготовлю статью...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 19:16 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 1220
Откуда: Китай, Пекин
Цитата:
более толковые алгоритмы проконтролируют целостность куда лучше.

1) какие именно?
2) какой ценой?

удивлен, поскольку повсеместно используют CRC. отчего так?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 19:19 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 758
Я правильно понимаю, что для того, чтобы рид-соломон восстановил потерянный байт, пакет должен быть фиксированной длины?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 19:24 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 758
Чтоб не потерялось: http://we.easyelectronics.ru/Soft/kaska ... terbi.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 15 июн 2018, 20:10 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 4805
К сожалению, UART не является, как бы это выразится, "чистым" последовательным интерфейсом. В нем смешаны И данные И синхросигнал И признак начала обмена. Если есть желание чтой-то накодить в передаче, то надо учитывать сей факт ... а то все размышления превратятся в измышления. ))
Самое гадкое - по любому чиху признается старт-сигнал и далее считается "передача". Если сбой был _перед_ самой передачей, которая еще и идет 8n1, то всё (ВСЁ) превратится в кашу, которую нельзя декадировать, при любом хитро[] методе кодирования данных. Что для этого надо? Да, хотя-бы то, как работает САN, например - при передаче (Tx) надо его-же принимать (Rx) и при нарушении (привет, помехи) мгновенно прекращать посылку.
Затраты мизерные, эффект есть.
Второе - что дает 8n1? Против 8n претензий нет, хотя приятнее смотрелось 7+parity+кодирование, но не в этом суть - сие вы и так знаете. Я про цифру "1" в конце. Из-за нее практически не работает режим автосинхронизации при приеме байтов. Если был сбой и приемник начал принимать биты раньше реального старта, то ... он так и продолжит. Стоп бит один, с вероятностью 50% "байт" будет оцифрован и принят, а затем начнется прием следующего, так-же посередь.

Так, мысли вслух.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 18 июн 2018, 18:27 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 758
Любопытно.
Вообще, ситуация ложного старта более свойственна радио применению... На проводах такого практически не бывает. Не задумывался об этом.

По факту, к созданию этой темы меня как раз и привело размышление о том, что от uart сложно добиться реальной последовательной работы. Поэтому и хотелось заслушать тех, кто смог. Но, судя по всему все не очень радостно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 18 июн 2018, 19:01 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3591
Откуда: Кемеровская область, Киселевск
Для начало физический уровень TTL нужно перевести на дифференциальный сигнал RS485 или RS232

_________________
RADIOWOLF.RU


Последний раз редактировалось Oxford 18 июн 2018, 19:05, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 18 июн 2018, 19:05 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2507
Откуда: Санкт-Петербург
Mirmik, насчёт ложного старта - это даже на CD есть: http://www.ixbt.com/optical/magia-chisel.shtml


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 18 июн 2018, 19:06 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 758
На CD гораздо проще с этим...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART и помехоустойчивое кодирование
СообщениеДобавлено: 23 июн 2018, 16:20 
Старожил

Зарегистрирован: 02 июл 2010, 23:41
Сообщения: 402
CRC несколько затратен по времени и объёму памяти для МК.
При небольших посылках, скажем, несколько байт или в пределах двух десятков байт, может быть, проще просто в посылаемый пакет добавить такую же посылку. Принимающий МК просто проверит равенство первой и второй половины пакета.
Возникает вопрос, какой метод (этот или CRC) более надёжно проверит пакет.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB