Linux HOWTO


Как определить - асинхронный обмен или синхронный


Асинхронный (async) означает "не синхронный". Практически, асинхронный обмен - это когда асинхронный последовательный порт посылает и получает поток байтов, разграниченных стартовым и стоповым битами. Синхронный (Sync) - большинство остальных видов обмена. Но это не объясняет основные понятия.

Теоретически, синхронный обмен означает, что байты посланы с постоянной скоростью один за другим (с промежутками, равными одному такту тактового генератора).

Асинхронные байты могут быть посланы с различными интервалами времени между байтами (подобно тому, как поступают символы с клавиатуры).

Имеются пограничные ситуации, которые должны быть классифицированы или как синхронный, или как асинхронный. Асинхронный последовательный порт часто выпускает байты устойчивым потоком, который мог бы сойти за синхронный, но так как они все еще имеют старт/стоповые биты (из-за которых возможно посылать их с произвольными промежутками), то обмен называется асинхронным. Другой случай - когда байты данных (без старт/стопных битов) помещены в пакеты с возможным ошибочным интервалом между соседними пакетами. Это называется синхронным обменом, так как байты внутри каждого пакета должны быть переданы синхронно.




Начало  Назад  Вперед



Книжный магазин