[an error occurred while processing this directive]
Вопрос про UART....(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
PAL 16 мая 2003 г. 09:56
|
|
|
|
Надо заставить разговаривать м/у собой два МК по уарту. Вопрос в протоколе верхнего уровня. Посылки могут быть 3-8 байт. Подскажите кто как делал (или мот быть у кого сохранились ссылки на обсуждение в конфе)? Нужно чтобы приёмник точно распознавал начало посылки(или конец или ещё что лучше), желательно хоть минимальную проверку целостности. Посмотрел слип-последовательности, но там по-моему будет большая нагрузка на МК, а у него своих задач хватает. С 9-м битом не хочу связываться принципиально. Толкните сирого в нужном направлении. Спасибо.
Составить ответ
|||
Конференция
|||
Архив
Ответы
- Ответ: Непонятно какой тип МП. Если это 51, то проще не бывает(+) — ВIN (16.05.2003 16:29, 1602 байт)
- Кстати, а какая частота передачи и растояние между МК? — Звероящер (16.05.2003 15:39, пустое)
- А такой вариант - при обмене гарантированная пауза больше длительности байта. Это значит, любой "вновь приплывший байт" является головой пакета. — Весельчак_У (16.05.2003 15:12, пустое, картинка)
- Жаль, что нежелательно использовать 9-й бит. Несколько лет назад я прорабатывал различные варианты протокола обмена для похожего применения и вот на чем остановился (правда до реализации дело пока не дошло - сказалась необходимость совместимости с уже разработанными устройствами). Привожу часть описания: — Владимир З (16.05.2003 14:58, 1174 байт)
- Если трафик позволяет, делаю так: — CTAC (16.05.2003 13:30, 163 байт)
- Ответ: зря вы так про 9 бит(+) — bam (16.05.2003 13:14, 339 байт)
- ну, что решили , PAL? озвучьте пожалуйста...вон, какую волну подняли..;)) — lmu (16.05.2003 12:32, пустое)
- Ответ: — ... (16.05.2003 11:45, 2277 байт)
- Обычно, в нормальных девайсах аппаратно реализована проверка правильности протокола, даже без пресловутого 9 бита. Условие старт-бит и стоп-бит всяко проверяется, и если нет последнего, флаг ошибки взводится. А вообще, если у вас частоты UART одинаковые, и длина канала связи не больше 10 метров, да кабель в экране, то все будет железно работать... — Звероящер (16.05.2003 11:44, пустое)
- Делал синхронизацию по таймауту.(+) — abivan (16.05.2003 11:40, 81 байт)
- Обычно хватало маркера начала пакета и контр суммы (CRC совсем долго наверное считать будет). можно дополнить пакет служебной информацией типа "длинна пакета" + сигнал "подтверждение приема" — ES (16.05.2003 10:35, пустое)
- Ответ: Напрасно отказываетесь от 9-го бита. Он придуман именно для решения таких проблем на аппаратном уровне с минимальной нагрузкой на программу. Всегда применяю, если позволяет аппаратура МК. — 9-й BIТ (16.05.2003 10:32, пустое)
- Можно так: стартовый символ (например 0xAB), а в посылке этот символ удваивать, т.е. 0xAB = 0xAB 0xAB. — LG (16.05.2003 10:20, пустое)
- Ответ: — lmu (16.05.2003 10:16, 287 байт)
- делал (и работаю) на аналоге слипа. Старт 0xaa, подмена 0xaa на 0x55, 0x01 в данных (+) — DASM (16.05.2003 10:09, 144 байт)
- Можно выделить символ для обозначения начала посылки (типа xon), и добавить в конце байт с контрольной суммой, а потом конец посылки ( типа xoff) — Al Volovich (16.05.2003 10:07, пустое)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru