MCS-51 (1031646), страница 10
Текст из файла (страница 10)
При приеме стоп-бит заносится в бит RB8 регистра SCON. Скорость(частота) приема/передачи определяется частотой переполнений Таймера/Счетчика 1 - fOV.На рис. 2.19 показаны схема синхронизации и временные диаграммы, иллюстрирующие работу последовательного порта в режиме 1.В зависимости от состояния бита SMOD регистра PCON частота fi=fOv приSMOD=1 и fj=fov/2 при SMOD=0. Частота fj делится на 16 для получения сигналов синхронизации передачи СИНХР Тх и приема СИНХР Rx.Рис. 2.19. Работа последовательного порта в режиме 1Передача инициируется любой командой, использующей SBUF в качестве регистраназначения, в который производится запись.
Вырабатываемый при этом внутренний импульс ОМЭВМ ЗАПИСЬ В SBUF загружает предназначенный •= передаче байт в младшие8 разрядов регистра сдвига передатчика и инициирует начало работы блока управленияпередачей. В режиме 1 регистр сдвига передатчика имеет 9 разрядов и в его 9-й разряд поимпульсу ЗАПИСЬ В SBUF заносится "1" (стоп-бит).Реально передача начинается в фазе S1P1 машинного цикла, следующего за ближайшим после ЗАПИСЬ В SBUF переполнением делителя на 16 в цепи сигнала СИНХРТх (рис.
2.19). Таким образом, начало передачи синхронизовано делителем на 16, а не импульсом ЗАПИСЬ В SBUF. Период сигнала СИНХР Тх (синхронизация передачи) опреде-48ляет время, в течение которого выдаваемый бит присутствует на выходе TxD (времятрансляции бита).Передача начинается установкой активного (для режима 1 низкого) уровня внутреннего сигнала ОНЭВМ ПОСЫЛКА, появление которого вызывает выдачу на выход TxDуровня старт-бита (ноль).
После этого через время трансляции одного бита становится активным внутренний сигнал ОМЭВМ ДАННЫЕ, который разрешает выдачу содержимогорегистра сдвига передатчика на выход TxD (вывод F3.0 ОМЭВМ). При появлении активного сигнала ДАННЫЕ старт-бит т выходе TxD сменяется битом D0 регистра сдвига передатчика. По окончании времени трансляции бита D0 формируется первый внутреннийимпульс ОМЭВМ СДВИГ, по которому содержимое регистра сдвига передатчика сдвигается на один разряд и бит D0 на выходе TxD заменяется битом D1. Всего формируется 9импульсов СДВИГ, в результате чего на выход TxD выдаются 8 бит данных и стоп-бит.По окончании выдачи всех бит посылки блок управления передачей устанавливает, какпоказано на рис.
2.19, флаг прерывания передатчика TI и снимает сигналы ПОСЫЛКА иДАННЫЕ.Прием начинается при обнаружении перехода сигнала на входе RxD из "1" в "0".Для отслеживания такого перехода вход RxD аппаратно опрашивается с частотой f1 (рис.2.19). Когда переход сигнала на входе RxD из "1" в "0" обнаружен, немедленно сбрасывается счетчик-делитель на 16 в цепи сигнала СИНХР Rx (рис. 2.19), в результате чего происходит совмещение моментов переполнения этого счетчика-делителя (импульсы СИНХРRx на рис.
2.19) с границами смены битов принимаемой посылки на входе RxD. Шестнадцать состояний счетчика-делителя делят время, в течение которого каждый бит принимаемой посылки присутствует на входе RxD, на 16 фаз, с 1-й по 16-ю для каждого бита. Вфазах 7, 8 и 9 специальное устройство ОМЭВМ, бит-детектор, считывает со входа RxD 3значения принимаемого бита, по мажоритарному принципу "2 из 3-х" выбирает из них одно и подает его на вход регистра сдвига приемника. Блок управления приемом при этомформирует внутренний импульс ОМЭВМ СДВИГ, в результате чего содержимое регистрасдвига приемника сдвигается на один разряд и принятый бит заносится в регистр сдвигаприемника. Всего формируется 10 импульсов СДВИГ, а регистр сдвига приемника в режиме 1 является 9-разрядным.
Поэтому после 10-го импульса СДВИГ в регистре сдвигаприемника находятся биты данных D0—D7 и стоп-бит. После 10-го импульса СДВИГблок управления приемом загружает данные из регистра сдвига приемника в SBUF, загружает стоп-бит из регистра сдвига приемника в разряд RB8 регистра SCON и устанавливает флаг прерывания приемника RI.
Сигнал загрузки SBUF, RB8 и установки RI вырабатывается блоком управления приемом только в том случае, если в момент генерациипоследнего импульса СДВИГ выполняются следующие условия:1.RI=0 и2.Либо SM2=0, либо принятый стоп-бит равен "1".Если хотя бы одно из этих условий не выполняется, принятая посылка безвозвратнотеряется, а флаг RI не устанавливается. Если оба приведенных условия выполнены, стопбит поступает в RB8, восемь бит данных поступают в SBUF и устанавливается флаг RI. Вэто же время, независимо от выполнения приведенных выше условий, последовательныйпорт вновь начинает отслеживание перехода сигнала из "1" в "0" на входе RxD.Если мажоритарный отбор при приеме первого бита посылки (старт-бит) показывает ненулевое значение бита, все устройства блока приема сбрасываются и начинается отслеживание следующего перехода сигнала из "1" в "0" на входе RxD.
Таким образом обеспечивается защита от сбойных старт-битов.Режимы 2 и 3 — это режимы 9-разрядного УАПП с постоянной (режим 2) и переменной (режим 3) скоростью обмена. В этих режимах 11 бит передаются/принимаютсясоответственно через выводы TxD/RxD в следующей последовательности: старт-бит, 9бит данных, стоп-бит. 9-ый бит данных при передаче определяется содержимым разрядаТВ8 регистра SCON. При приеме 9-й бит данных заносится в бит RB8 регистра SCON.49Скорость (частота) приема/передачи в режиме 2 программно настраивается на однуиз двух возможных величин: fBQ/32 и fBQ/64, где fBQ — частота синхронизации МК. В режиме 3 скорость (частота) приема/передачи определяется частотой переполнений Таймера/Счетчика 1 fOV.Различие в скорости (частоте) приема/передачи является единственным отличиеммежду режимом 2 и режимом 3.
Во всем остальном эти два режима полностью идентичны.На рис. 2.20 показаны схема синхронизации и временные диаграммы, иллюстрирующие работу последовательного порта в режимах 2 и 3.Рис. 2.20. Работа последовательного порта в режимах 2 и 3Передача инициируется любой командой, использующей SBUF в качестве регистраназначения (выполняющей операцию "Запись в SBUF") Вырабатываемый при этом внутренний импульс ОМЭВМ ЗАПИСЬ В SBUF загружает в младшие восемь разрядов регистра сдвига передатчика предназначенный к передаче байт и инициирует начало работыблока управления передачей. Так же, как и в режиме 1, в режиме 2 и 3 регистр сдвига передатчика имеет 9 разрядов.
По импульсу 3АПИСЬ В SBUF в 9-ый разряд регистра сдвигапередатчика записывается значение бита ТВ8 регистра SCON. Передача начинается в фазеS1P1 машинного цикла следующего за ближайшим после ЗАПИСЬ В SBUF переполнением делителя на 16 в цепи сигнала СИНХР Тх (рис. 2.20).
Период сигнала СИНХР Тх (синхронизация передачи) определяет время, в течение которого выдаваемый бит присутствует на выходе TxD (время трансляции бита). Внутренние сигналы ОМЭВМ ПОСЫЛКА,50ДАННЫЕ и СДВИГ по функциональному назначению и формированию в режимах I и 3идентичны этим же сигналам в режиме 1. В отличие от режима 1 в режимах 2 и 3 на выходTxD выдается девять бит данных: D0—D7 и ТВ8. После первого импульса СДВИГ в освободившийся 9-й разряд регистра сдвига передатчика заносится "1" (стоп-бит). Всего формируется 9 импульсов СДВИГ, в результате чего все биты регистра сдвига передатчикапоследовательно выдаются на выход TxD.
По окончании выдачи всех бит посылки блокуправления передачей устанавливает, как показано на рис. 2.20, флаг прерывания передатчика TI и снимает сигналы ПОСЫЛКА и ДАННЫЕ.Прием начинается при обнаружении перехода сигнала на входе RxD из "1" в "0".Работа последовательного порта и блока управления приемом в режимах 2 и 3 полностьюидентична режиму 1, включая мажоритарный отбор по принципу "2 из 3-х" значения каждого принимаемого бита с помощью бит-детектора.
Регистр сдвига приемника в режимах2 и 3 является 9-разрядным. Поэтому после 10-го импульса СДВИГ (рис. 2.20) в регистресдвига приемника находятся 9 бит принятой посылки (обозначены на рис. 2.20 D0—D7 иRB8). После 10-го импульса СДВИГ блок управления приемом загружает биты D0—D7 изрегистра сдвига приемника в SBUF, переписывает 9-й разряд регистра сдвига приемника вбит RB8 регистра SCON и устанавливает флаг прерывания приемника RI в регистреSCON. Сигнал загрузки SBUF, RB8 и установки RI вырабатывается блоком управленияприемом тогда и только тогда, когда в момент генерации последнего импульса СДВИГвыполняются следующие условия:1.RI=0 и2.Либо SM2=0, либо принятый 9-й бит данных равен 0.Если хотя бы одно из этих условий не выполняется, принятая посылка безвозвратно теряется, а флаг RI не устанавливается. Если оба приведенных условия выполнены,принятый 9-й бит данных поступает в RB8, биты D0—D7 записываются в SBUF и устанавливается флаг RI.
Независимо от выполнения приведенных выше условий последовательный порт вновь начинает отслеживание перехода сигнала из "1" в "0" на входе RxD.Особо необходимо отметить, что значение принятого стоп-бита в режимах 2 и 3 не влияетна SBUF, RB8 или RI.Скорость (частота пересылки битов) последовательного обмена Fn в зависимости отрежима работы последовательного порта определяется либо частотой синхронизацииОМЭВМ fBQ (режимы 0 и 2), либо частотой переполнения Таймера/Счетчика 1 fOV (режимы 1 и 3).В режиме 0 частота пересылки одного бита (скорость последовательного обмена)максимальна.