Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kharakhnin / ПОСОБИЕ_Харахнин.doc
Скачиваний:
281
Добавлен:
08.03.2016
Размер:
17.89 Mб
Скачать

1.8.5. Асинхронный обмен (режимы 1,2,3) данными

При таком обмене данные передаются по линии TxD, а принимаются по RxD.

В режиме 1 прием/передача данных осуществляется в формате восьмиразрядного универсального приемопередатчика. Через TxD передаются, а через RxD принимаются 10 бит: старт - бит, 8 бит данных, стоп - бит. При приеме стоп бит заносится в бит RB8 регистра SCON. Скорость приема/передачи определяется частотой переполнений fOV таймера 1 и зависит от загружаемого в него числа. Частота синхронизации получается следующим образом. В зависимости от состояния бита SMOD в регистре PCON частота делится либо на 16 при SMOD=1, либо на 32 при SMOD=0.

Передача инициируется любой командой, использующей SBUF в качестве регистра назначения. Вырабатываемый при этом внутренний импульс МК загружает предназначенный к передаче байт в младшие 8 разрядов регистра сдвига передатчика. В 9 бит заносится «1» , соответствующая стоп - биту. Передача начинается с установки активного (низкого) уровня старт – бита. После этого происходит непосредственно выдача информационного байта в линию связи, начиная с младшего бита D0. При передаче последнего (старшего) бита D7 в линию посылается стоп – бит и устанавливается флаг прерывания передатчика TI=1.

Прием начинается при обнаружении перехода сигнала на входе RxD из ‘1’ в ‘0’. Для фиксации этого события вход RxD аппаратно опрашивается. При обнаружении старт – бита блок управления приемом принимает биты в регистр сдвига приемника. После получения 10-го импульса данные из регистра сдвига приемника загружаются в регистр SBUF, стоп – бит загружается в бит RB8 регистра SCON, и устанавливается флаг прерывания приемника RI=1, говорящий о том, что информация получена. Все это происходит, если перед этим событием выполняются следующие условия: RI=0, SM2=0, стоп – бит равен 1. Если хотя бы одно из условий не выполняется, принятая посылка теряется и флаг RI не устанавливается.

Режимы 2 и 3. Это режимы 9-разрядного PS с постоянной (режим 2) и переменной (режим 3) скоростью обмена. В этих режимах передаются и принимаются через выводы TxD/RxD соответственно 11 бит данных. Биты идут в следующей последовательности: старт – бит, 9 бит данных, стоп – бит. При передаче девятый бит может использоваться для повышения достоверности передачи путём контроля по чётности, и в него можно поместить значение признака паритета из PSW. 9-й бит данных при передаче определяется содержимым разряда TB8 регистра SCON. При приеме 9-й бит данных заносится в бит RB8 регистра SCON. Различие режимов 2 и 3 заключается лишь в скорости приема/передачи, в остальном они полностью идентичны.

Передача инициируется любой командой, использующей SBUF в качестве регистра назначения аналогично режиму 1. Отличием является то, что на вывод TxD выдается 9 бит данных: D0-D7 и TB8. По окончании выдачи всех битов устанавливается флаг прерывания передатчика TI=1.

Прием начинается при обнаружении на входе RxD перехода из ‘1’ в ‘0’. Работа PS полностью идентична режиму 1. Отличием является разрядность посылки:D0-D7 и RB8. После десятого сдвигового импульса блок управления приемом загружает D0-D7 из регистра сдвига приемника в SBUF, переписывает 9-й бит в бит RB8 регистра SCON и устанавливает флаг прерывания приемника RI=1. Все это происходит, если до этого выполнялись условия: RI=0, SM2=0, 9-й бит равен 0. При невыполнении хотя бы одного условия принятая посылка теряется, флаг RI не устанавливается. А далее последовательный порт начинает вновь отслеживать переход с ‘1’ на ‘0’ на входе RxD.