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

Отправлено В.С. 14 марта 2002 г. 18:32
В ответ на: Ответ: отправлено Vallav 14 марта 2002 г. 17:31

Я в данном случае имею ввиду аппаратный USART. Программная реализация USART-а – это баловство и тема отдельной дискуссии. Разумеется в случае коллизии данных во время приема по вине третьей стороны флаг framing error будет взведен, но это прерывания не вызовет. Т.е. по любому (для простоты берем 9600) принимающий узнает о том, что ему пришел (или шел, но не дошел) один байт (не целый пакет, а всего байт) не раньше, чем через ~ 1мс. Кто мешает потенциально принимающему решить, что все тики-так и самому вломиться на шину, по которой ему уже что-то идет? Режим ведь используется ассинхронный и аппаратно приемник и передатчик на микроконтроллере независимы. Приемник и передатчик переключаются только на MAX485-м.
К тому же изначально автор темы вопрошал известен ли кому-нибудь 485-й с аппаратным арбитром (никто о таком, похоже не слыхал) или минимальными программными затратами на такой арбитраж. В данном случае программные затраты минимальные. Поэтому я и счел возможным поделиться опытом. Разумеется способов реализации сетевого обмена по RS485 огромное множество. Автор темы, похоже, уже утратил интерес к дискуссии, вероятно либо что-то сам придумал, либо отчаялся получить удовлетворяющий его ответ. Если есть интерес продолжать обсуждение – давайте е-мэл, поговорим!

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

Ответы



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

E-mail: info@telesys.ru