Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Чему равны сбойные байты по UART?


Чему равны сбойные байты по UART?

Сообщений 1 страница 7 из 7

1

Доброго всем времени суток! Вот задался вопросом при приёме по UART если байт будет принят с ошибкой какого будет его значение? Или вообще в буфере не окажется не чего?

Отредактировано Foton-4n (2015-11-06 08:57:07)

0

2

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

0

3

может быть несколько иначе
если попортился 1 бит в посылке, то он будет обнаружен самой схемой uart. В буфере ничего.
если попртилось несколько бит И так, что бит четности/нечетности совпадает, то только верхним уровнем можете выявить

если полностью порушилась синхронизация, то вариантов как минимум три:
1. если данные передаются постоянно, то полностью нарушается обмен
2. если идут пакетами, то нарушается только 1 пакет, но потом обмен восстанавливается за счет пауз между пакетами и старт/стоповых бит И проверки пакетов верхним уровнем
3. если пакетами, но без проверки верхним уровнем И без запросов непринятого пакета, то тоже обмен полностью нарушается

0

4

Это всё будет рабоать, если использовать бит четности (хотя бы) при передачи. В основном используют облегченную схему передачу (10 бит) и в ней защиты от помех/глюка - нет. Чтобы это избежать, просто используют контрольную сумму при передачи данных (т.е. не на уровне интерфейса обмена, а на протокольном/программном уровне). А вообще, если у вас возникает помеха при передачи данных - значит вы неправильно используете UART (провод слишком длинный или рядом источник помех), в таких случаях надо уже использовать прочие интерфейсы (RS232, RS485, CAN...).

+1

5

полностью согласен с RWD

0

6

Зы дело тут не в высоком уровне. Это всё есть протоколом предусмотрено всё. Да меня как раз интересовал сбойный бит. Больше вопросов нет. Это для быстрой системы что бы если при приёме проскочила ошибка не тратить зря времени и сразу же запросить заново пакет.
Вообще про помехи мне говорить не надою А ошибок почему то при приёме на ПК хоть отбавляй летят целые пакеты, от разных чипов или кварцев всего скорее. Применяя компактные кварцы ошибок просто куча, а вот девайс принимает всё гораздо лучше. Может джиттер, Mega1284 вообще не завелась с 25МГц компактным.Хотя Mega328p на 25МГц работает отлично обычным.

Отредактировано Foton-4n (2015-11-08 09:46:06)

0

7

Переходите на ХМегу, если вам нужна скорость, иначе не гарантируется работа всех блоков МК при нестандартных частотах (тактирования).

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Чему равны сбойные байты по UART?