Скачиваний:
90
Добавлен:
21.02.2014
Размер:
4.45 Mб
Скачать

4.3.1 Работа последовательного порта в режиме 0

В режиме 0 последовательный порт работает как восьмиразрядный регистр сдвига. При этом 8 бит информации в последовательном коде принимаются и передаются через двунаправленный вывод RxD. На выводе TxD формируется сигнал синхронизации сдвигов.

Скорость (частота) приема/передачи в режиме 0 постоянна и составляет fBQ/12, где fBQчастота синхронизации ОМЭВМ.

Временные диаграммы, иллюстрирующие работу последовательного порта в режиме 0, показаны на рисунках 15, 16. Все изображенные на этих рисунках сигналы, за исключением RxD и TxD, являются внутренними сигналами ОМЭВМ.

Рисунок 14 - Передача в режиме 0

Рисунок 15 - Прием в режиме 0

4.3.1.1 Передача в режиме 0

Передача начинается любой командой, которая использует SBUF в качестве регистра назначения (выполняет операцию "запись в SBUF") (рисунок 15).

При выполнении такой команды в фазе S6P2 вырабатывается внутренний импульс ЗАПИСЬ В SBUF, по которому предназначенный к передаче байт записывается в регистр сдвига передатчика и запускается блок управления передачей. Внутренняя система тактирования ОМЭВМ организована так, что между сигналом ЗАПИСЬ В SBUF и началом передачи проходит один полный машинный цикл, после чего вырабатывается внутренний сигнал ПОСЫЛКА, разрешающий выдачу содержимого регистра сдвига передатчика на выход RxD (вывод Р3.0 ОМЭВМ) и импульсов синхронизации сдвига (СИНХР СДВИГ на рисунке 15) на выход TxD (вывод Р3.1 ОМЭВМ). Сигнал СИНХР СДВИГ имеет низкий уровень в состояниях S3, S4 и S5 каждого машинного цикла и высокий уровень в состояниях S6, S1 и S2. В фазе S6P2 каждого машинного цикла, в котором сигнал ПОСЫЛКА активен, формируется внутренний импульс СДВИГ, по которому содержимое регистра сдвига передатчика сдвигается на одну позицию и на выходе RxD выставляется очередной бит передаваемой посылки. Всего формируется восемь импульсов СДВИГ, после чего блок управления передачей снимает сигнал ПОСЫЛКА и устанавливает флаг прерывания передатчика TI (разряд в регистре SCON). Оба эти действия выполняются в фазе S1P1 10-го машинного цикла после сигнала ЗАПИСЬ В SBUF. По прерыванию (TI = 1) прерывается основная программа, вызывается подпрограмма, которая сбрасывает флаг TI и записывает очередной передаваемый байт в SBUF

4.3.1.2 Приём в режиме 0

Прием начинается при одновременном выполнением двух условий: REN = 1 и RI = 0 (рисунок 16). В фазе S6P2 следующего машинного цикла блок управления приемом вырабатывает внутренний сигнал ПРИЕМ, разрешающий выдачу импульсов СИНХР СДВИГ на выход ОМЭВМ TxD. Импульсы СИНХР СДВИГ меняют свое состояние в фазах S3P1 и S6P1 и синхронизируют моменты поступления посылок на вход ПРМ. Биты принимаемых посылок через вход RxD поступают на регистр сдвига приемника. Состояние входа RxD опрашивается в фазе S5P2. В фазе S6P2 каждого машинного цикла, в котором сигнал ПРИЕМ активен, формируется внутренний импульс СДВИГ и содержимое регистра сдвига приемника сдвигается влево на одну позицию. Значение, которое при этом записывается в его крайний правый разряд, является значением сигнала на входе RxD, полученным в фазе S5P2 этого же машинного цикла. Всего формируется восемь импульсов СДВИГ, после чего блок управления приемом формирует сигнал загрузки содержимого регистра сдвига приемника в SBUF. В фазе S1P1 10-го машинного цикла после записи в SCON, сбросившей RI в 0, сигнал ПРИЕМ сбрасывается и устанавливается флаг прерывания приемника RI (бит в регистре SCON). Далее по RI = 1 выполняется прерывание основной программы, вызывается подпрограмма, которая сбрасывает флаг RI и читает принятый байт из буфера ПРМ.

Соседние файлы в папке КУРСАЧ