Linux HOWTO


Как синхронизируется "асинхронное" соединение


В интерфейсе EIA-232 есть только два состояния передающего (или принимающего) провода: "метка" (-12 V) или "пробел" (+12 V). Состояния 0 V нет, и таким образом последовательность логических единиц передается только устойчивым -12 V без каких-либо маркеров между битами. Чтобы приемник обнаружил отдельные биты, он должен иметь тактовый сигнал, который синхронизирован с тактовым генератором передатчика. Такой тактовый генератор генерирует "тик" с передачей (или получением) каждого бита.

Для асинхронной передачи, синхронизация достигается введением для каждого байта стартового бита и стопового бита (выполненных аппаратными средствами). Приемник прослушивает линию, ожидая появления стартового бита, и когда обнаруживает его, запускает тактовый генератор. Он использует эти тактовые импульсы во время чтения следующих 7, 8 или 9 битов. (На самом деле этот процесс несколько более сложен, так как часто принимаются несколько выборок битов, и это требует дополнительных тактовых импульсов синхронизации.) Затем читается стоповый бит, тактовый генератор останавливается, и приемник ждет прибытия следующего стартового бита. Таким образом асинхронный обмен фактически синхронизирован в течение приема одного байта, но синхронизации между двумя соседними байтами нет.




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