Не обижайся, это тут народ веселится перед праздниками
(«Телесистемы»: «Конференция «Микроконтроллеры и их применение»»)

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

Отправлено Сергей Борщ 30 апреля 2003 г. 01:08
В ответ на: Передача 13-разрядного сигнала через UART отправлено Чайничек 29 апреля 2003 г. 18:49

В целом правильно, так и делается. Только надо еще добавить некоторые признаки, по которым РС включившись в произвольный момент времени (читай - между первым и вторым байтом) или случайно пропустив один из байтов сможет разобрать - какой из байтов первый, а какой второй. Для 12 бит это сделать довольно просто - например, передаешь в первой посылке 7 младших бит, а самый старший равен 0, и этот 0 в старшем бите является признаком первой части посылки, а оставшиеся биты передаешь второй посылкой, в которой старший бит взведен (1). Но это хоть и простой, но тем не менее некрасивый вариант. Ибо связь может на какое-то время прерваться. Предположим, что писюга примет один байт посылки до обрыва, второй после. Один с "1", второй с "0", в старшем бите. Но ведь это будут байты от разных посылок. Поэтому обычно байты объединяют в пакеты. Каким-то образом (каким - попробуй придумать сам) обозначаются начало и конец пакета, а чтобы быть уверенным, что это целый пакет и при обмене не произошло ошибок пакет обычно обкладывается контрольной суммой. По какому алгоритму ее считать - зависит от длинны пакета, важности его доставки (может можно переспросить), допустимой вероятности необнаруживаемой ошибки.
Так что вперед и успехов!

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

Ответы



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

E-mail: info@telesys.ru