Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить

Uart синхронизация

Вт дек 15, 2020 14:27:06

Всем добрый)

Подкиньте плз инфы (или ссылочек) по поводу того, как в деталях работает UART, а именно синхронизация.

Понятно, что есть старт бит, стоп бит и т.д. Но это же работает в слуае, когда долгое время "тишина", потом начинается передача байта, потом опять "тишина" нескольке секунд, потом ещё передача байта.

А в случае передачи кучи байтов в непрерывном потоке, что будет, если из-за помехи произойдет рассинхронизация, то как приёмнику найти границу начала передачи следующего байта? Думаю, это особенно актуально для передачи по радиоканалу.

Много гуглил, но мало что нашёл именно по своему вопросу. Пытался провести аналогию с передачей PPM (Pulse-position modulation), где есть явная и длинная синхопауза после передачи каждой "пачки" данных, но про UART такого нигде не нагуглил...

Re: Uart синхронизация

Вт дек 15, 2020 15:12:46

Приёмник уарта ждёт старт-бита (нулевого уровня). Первый же нуль достаточной длительности на линии воспринимается уартом как старт-бит, и он принимает байт. Если стоп-бит(ы) окажутся на месте и будут соблюдены другие возможные условия (чётность), то всё ОК. Если подключить уарт к потоку, когда он уже прёт, или если произойдёт сбой, то попрёт мусор. Скорее всего, недолго, ибо первое же несоблюдение наличия стоп-бита выдаст ашыпку, а там - как уж прописано: то ли ожидать нового потока с начала, то ли принимать как есть...
Что касается прямой подачи уарта в радиоканал: так делать нежелательно. Есть стандартные протоколы, есть не очень... кто-то придумал своё, даже ваш покорный слуга в своё время озаботился (нет, выкладывал это не я) от нечего делать, и даже где-то опубликовал.

Re: Uart синхронизация

Вт дек 22, 2020 10:33:42

mickbell благодарю за ответ )

PS Хотя для меня странно, почему при передаче потока, хотябы через каждые 10-100 байт не делать синхропаузу в полтора-два байта, это бы и дало возможность синхронизироваться в случае сбоя и не сильно бы снизило скорость передачи

Re: Uart синхронизация

Вт дек 22, 2020 10:50:55

При приеме ведется программный анализ принятых данных а уж по результатам применяем соответствующие меры.
Протоколов весьма много.
Помимо прочего никто не запрещает и чего-то своего соорудить.
(обмен с ПК к примеру вот тут заложен
https://radiokot.ru/forum/viewtopic.php ... 7#p3167597
https://radiokot.ru/forum/viewtopic.php ... 1#p3435971
https://radiokot.ru/forum/viewtopic.php ... 1#p3472041
принимаем отсылаемый из ПК символьный файл формата intel hex8)
или та же CRC8 в пакетах микроLAN и прочее (не говоря о XON/XOFF или аппаратном RTS/CTS)...
:dont_know:
Ответить