[an error occurred while processing this directive]
Жаль, что нежелательно использовать 9-й бит. Несколько лет назад я прорабатывал различные варианты протокола обмена для похожего применения и вот на чем остановился (правда до реализации дело пока не дошло - сказалась необходимость совместимости с уже разработанными устройствами). Привожу часть описания:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Владимир З 16 мая 2003 г. 14:58
В ответ на: Вопрос про UART....(+) отправлено PAL 16 мая 2003 г. 09:56

(Нумерация битов начинается с 0, как и положено. :0) )

Каждый байт передается асинхронно, младшим битом вперед, 1 как логическая 1, 0 как логический 0 (кодирование NRZ).
1 стартовый бит (‘0’), 9 битов данных, 1 стоповый бит (‘1’). В отсутствие передачи на линии формируется состояние =1, соответствующее передаче стопового бита. Первым байтом кадра является маркер - байт с шестнадцатеричным значением = 0x7E. На принимающей стороне прием байта 0x7E (т.е. шести единичных битов подряд) всегда производит инициализацию процесса приема кадра.
Для исключения ложной синхронизации передающая сторона не должна формировать посылку, в которой идет подряд больше 5 единичных битов, учитывая и стоп бит. С этой целью в любом передаваемом байте (кроме маркера) значение бита 4 передается в дополнительном бите 8.(Естественно, сам бит 4 при этом всегда устанавливается в 0).

Плюсы:
-возможность передачи любых значений байтов без специальной подмены (0x55 на 0x55 и 0x01 и т.д.)
- однозначное определение начала пакета независимо от момента начала приема.
Минусы:
- некоторая избыточность (11 бит вместо 10-ти)
- сложности при работе с компьютером.


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru