ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
7 июля
205973 Топик полностью
rezident (14.08.2010 19:48 - 19:54, просмотров: 87) ответил z00f на А зачем буферизация нужна? Если рассматривать каждый бит, то он сразу должен быть передан. Нужно просто логику быструю ставить, чтобы задержки были минимальные.
Буферизация желательна для RTU-ных протоколов. Принцип такой. Изначально все трансиверы стоят в режиме приема. Подключена "растяжка" линии, чтобы по возможности избежать ложных срабатываний по приему. По первому перепаду на любой из линий, приемник данной линии "захватывает" управление внутри разветвителя и переключает все остальные трансиверы на передачу, чтобы транслировать битовый поток со своего входа на все остальные выходы. Но переключение трансивера с приема на передачу может (кончено не обязан, но все же может) вызвать переходный процесс на линии, который (опять же) может быть продетектирован приемниками узлов/нод как старт-бит первого символа фрейма. А поскольку это срабатывание ложное, то в байт-ориентированном протоколе будет искажен только первый "лишний" символ, но в RTU-ном протоле весь фрейм окажется "битым". В RTU-ном протоколе, где начало и конец фрейма определяется по временным паузам "тишины" начало следующего пакета должно быть не ранее этой оговоренной протоколом паузы. Поэтому в нашем корверторе-репитере первый бит передается не сразу, а с некоторой задержкой, во время которой передатчик удерживает линию в неактивном состоянии (MARK), но ничего не передает. В то время как трансивер, осуществляющий прием, работает и принимает весь битовый поток, транслируя его в буфер. Задержка в трансляции с активного входа на выходы выбирается самим пользователем в зависимости от типа протокола. Для байт-ориентированного протокола задержка около 1-1,5 символов, для RTU-ных около 3,5-4 символов. Величина задержки определяется глубиной буфера в SRAM, через который проходит весь битовый поток.