Работа с последовательным портом однокристальных микроЭВМ
Характеристика временных параметров работы последовательного канала в режиме сдвигового регистра. Работа последовательного порта однокристальной микроЭВМ в режиме 0, 1, 2 и 3. Стандартные скорости последовательного обмена и пример программы инициализации.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 20.02.2011 |
Размер файла | 326,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Работа с последовательным портом ОМЭВМ
Последовательный порт ОМЭВМ может использоваться в виде регистра сдвига для расширения ввода-вывода или в качестве универсального асинхронного приемо-передатчика (УАПП) с фиксированной или переменной скоростью последовательного обмена и возможностью дуплексного включения (т.е. через последовательный порт можно принимать и передавать данные одновременно). Последовательный порт может принимать очередной байт даже если уже принятый до этого байт не был прочитан из регистра приемника. Однако, если до окончания приема находящийся в регистре приемника байт не будет прочитан, принятый байт теряется. Программный доступ к регистрам приемника и передатчика осуществляется обращением к регистру специальных функций SBUF. При записи в SBUF байт загружается в регистр передатчика, а при чтении SBUF байт читается из регистра приемника.
Рисунок 1 - Временные диаграммы работы последовательного канала в режиме сдвигового регистра
Прием и выдача байта данных начинается с младшего разряда и заканчивается старшим разрядом. Для разрешения приема необходимо установить 1 в разряде REN регистра управления SCON.
Последовательный порт может быть запрограммирован на один из четырех режимов приема/передачи путем программирования разрядов SM0 и SM1 регистра SCON. Во всех четырех режимах передача инициируется любой командой, которая использует SBUF в качестве регистра назначения (выполняет операцию «Запись в SBUF»). Прием в режиме 0 инициируется одновременным выполнением условий REN = 1 и Rl = 0 (REN и RI - разряды регистра управления SCON). В остальных режимах прием инициируется приходом старт-бита (нулевой уровень) при REN = 1.
Таблица 1 - Временные параметры при работе последовательного канала в режиме сдвигового регистра
Ном. |
Наименование параметра, единица измерения |
Буквенное обозначение |
Значение параметров |
||
He менее |
He более |
||||
1 |
Период следования импульсов тактовых сигналов ВQ, нс |
Tbq = t |
83,3 |
286 |
|
2 |
Время цикла, нс |
tCY |
12t |
- |
|
3 |
Время задержки сигнала TxD относительно сигнала RxD |
tD(RxD-TxD) |
10t-133 |
- |
|
4 |
Время задержки сигнала RxD относительно сигнала RxD |
tD(TxD-RxD) |
2t-117 |
- |
|
5 |
Время установления сигнала RxD относительно сигнала TxD |
tSU(RxD-TxD) |
- |
2t+133 |
|
6 |
Время сохранения сигнала RxD относительно сигнала TxD |
tv(TxO-RxD) |
0 |
- |
В режиме 0 последовательный порт работает как восьмиразрядный сдвиговый регистр. При этом 8 бит информации в последовательном коде принимаются и передаются через двунаправленный вывод RxD. На выводе TxD формируется сигнал синхронизации сдвигов.
Скорость (частота) приема/передачи в режиме 0 постоянна и составляет fBQ/12, где fBQ - частота синхронизации ОМЭВМ.
Временные диаграммы, иллюстрирующие работу последовательного порта в режиме 0, показаны на рис. 1. Все изображенные на рис. 2 сигналы за исключением RxD и TxD являются внутренними сигналами ОМЭВМ.
Рисунок 2 - Работа последовательного порта в режиме 0
Передача начинается любой командой, которая использует SBUF в качестве регистра назначения (выполняет операцию «запись в SBUF»). При выполнении такой команды, в фазе S6P2 вырабатывается внутренний импульс ЗАПИСЬ В SBUF, по которому предназначенный к передаче байт записывается в регистр сдвига передатчика и запускается блок yпpaвления передачей. Внутренняя система тактирования ОМЭВМ организована так, что между сигналом ЗАПИСЬ В SBUF и началом передачи проходит один полный машинный цикл, после чего вырабатывается внутренний сигнал ПОСЫЛКА, разрешающий выдачу содержимого регистра сдвига передатчика на выход RxD (вывод РЗ.0 ОМЭВМ) и импульсов синхронизации сдвига (СИНХР СДВИГ на рис. 2) на выход TxD (вывод РЗ.1 ОМЭВМ).
Сигнал СИНХР СДВИГ имеет низкий уровень в состояниях S3, S4 и S5 каждого машинного цикла и высокий уровень в состояниях S6, SI и S2. В фазе S6P2 каждого машинного цикла, в котором сигнал ПОСЫЛКА активен, формируется внутренний импульс СДВИГ, по которому содержимое регистра сдвига передатчика сдвигается на одну позицию и на выходе RxD выставляется очередной бит передаваемой посылки. Всего формируется восемь импульсов СДВИГ, после чего блок управления передачей снимает сигнал ПОСЫЛКА и устанавливает флаг прерывания передатчика TI (разряд в регистре SCON). Оба эти действия выполняются в фазе S1P1 10-го машинного цикла после сигнала ЗАПИСЬ В SBUF. Прием начинается при одновременном выполнением двух условий: REN = 1 и RI = 0. В фазе S6P2 следующего машинного цикла блок управления приемом вырабатывает внутренний сигнал ПРИЕМ, разрешающий выдачу импульсов СИНХР СДВИГ на выход ОМЭВМ TxD.
Импульсы СИНХР СДВИГ меняют свое состояние в фазах S3P1 и S6P1. Биты принимаемой посылки через вход RxD поступают на регистр сдвига приемника. Состояние входа RxD опрашивается в фазе S5P2. В фазе S6P2 каждого машинного цикла, в котором сигнал ПРИЕМ активен, формируется внутренний импульс СДВИГ и содержимое регистра сдвига приемника сдвигается влево на одну позицию. Значение, которое при этом записывается в его крайний правый разряд, является значением сигнала на входе RxD, полученным в фазе S5P2 этого же машинного цикла. Всего формируется восемь импульсов СДВИГ, после чего блок управления приемом формирует сигнал загрузки содержимого регистра сдвига приемника в SBUF. В фазе S1P1 10-го машинного цикла после записи в SCON, сбросившей RI в 0, сигнал ПРИЕМ сбрасывается и устанавливается флаг прерывания приемника RI (бит в регистре SCON). В режиме 1 прием/передача данных осуществляется в формате восьмиразрядного УАПП. Через TxD передаются, а через Rxd принимаются 10 бит: старт-бит (0), 8 бит данных и стоп-бит (1). При приеме стоп-бит заносится в бит RB8 регистра SCON. Скорость (частота) приема/передачи определяется частотой переполнений Таймера/Счетчика 1 fOV.
На рис. 3 показаны схема синхронизации и временные диаграммы иллюстрирующие работу последовательного порта в режиме 1.
Рисунок 3 - Работа последовательного порта в режиме 1
В зависимости от состояния бита SMOD регистра PCON частота f1 = fOV при SMOD = 1 и f1 = fOV/2 при SMOD = 0. Частота f1 делится на 16 для получения сигналов синхронизации передачи СИНХР Тх и приема СИНХР Rx.
Передача инициируется любой командой, использующей SBUF в качестве регистра назначения, в который производится запись. Вырабатываемый при этом внутренний импульс ОМЭВМ ЗАПИСЬ В SBUF загружает предназначенный к передаче байт в младшие 8 разрядов регистра сдвига передатчика и инициирует начало работы блока управления передачей. В режиме 1 регистр сдвига передатчика имеет 9 разрядов и в его 9-й разряд по импульсу ЗАПИСЬ В SBUF заносится «1» (стоп-бит).
Реально передача начинается в фазе S1P1 машинного цикла, следующего за ближайшим после ЗАПИСЬ В SBUF переполнением делителя на 16 в цепи сигнала СИНХР Тх (рис. 3). Таким образом, начало передачи синхронизовано делителем на 16, а не импульсом ЗАПИСЬ В SBUF. Период сигнала СИНХР Тх (синхронизация передачи) определяет время, в течение которого выдаваемый бит присутствует на выходе TxD (время трансляции бита).
Передача начинается установкой активного (для режима 1 низкого) уровня внутреннего сигнала ОМЭВМ ПОСЫЛКА, появление которого вызывает выдачу на выход TxD уровня старт-бита (ноль). После этого через время трансляции одного бита становится активным внутренний сигнал ОМЭВМ ДАННЫЕ, который разрешает выдачу содержимого регистра сдвига передатчика на выход TxD (вывод РЗ.0 ОМЭВМ). При появлении активного сигнала ДАННЫЕ старт-бит на выходе TxD сменяется битом D0 регистра сдвига передатчика. По окончании времени трансляции бита D0 формируется первый внутренний импульс ОМЭВМ СДВИГ, по которому содержимое регистра сдвига передатчика сдвигается на один разряд и бит D0 на выходе TxD заменяется битом DI. Всего формируется 9 импульсов СДВИГ, в результате чего на выход TxD выдаются 8 бит данных и стоп-бит. По окончании выдачи всех бит посылки блок управления передачей устанавливает, как показано на рис. 3, флаг прерывания передатчика ТI и снимает сигналы ПОСЫЛКА и ДАННЫЕ.
Прием начинается при обнаружении перехода сигнала на входе RxD из «1» в «0». Для отслеживания такого перехода вход RxD аппаратно опрашивается с частотой f1 (рис. 3). Когда переход сигнала на входе RxD из «1» в «0» обнаружен, немедленно сбрасывается счетчик-делитель на 16 в цепи сигнала СИНХР Rx (рис. 3), в результате чего происходит совмещение моментов переполнения этого счетчика-делителя (импульсы СИНХР Rx на рис. 3) с границами смены битов принимаемой посылки на входе 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 вырабатывается блоком управления приемом только в том случае, если в момент генерации последнего импульса СДВИГ выполняются следующие уусловия:
Rl = 0
либо 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.
Скорость (частота) приема/передачи в режиме 2 программно настраивается на одну из двух возможных величин: fBQ/32 и fBQ/64, где fBQ - частота синхронизации ОМЭВМ. В режиме 3 скорость (частота) приема/передачи определяется частотой переполнений Таймера/Счетчика 1 fOV.
Различие в скорости (частоте) приема/передачи является единственным отличием между режимом 2 и режимом 3. Во всем остальном эти два режима полностью идентичны.
На рис. 4 показаны схема синхронизации и временные диаграммы иллюстрирующие работу последовательного порта в режимах 2 и 3.
Рисунок 4 - Работа последовательного порта в режимах 2 и 3
Передача инициируется любой командой, использующей SBUF в качестве регистра назначения (выполняющей операцию «Запись в SBUF»). Вырабатываемый при этом внутренний импульс ОМЭВМ ЗАПИСЬ В SBUF загружает в младшие восемь разрядов регистра сдвига передатчика предназначенный к передаче байт и инициирует начало работы блока управления передачей.
Так же, как и 9 режиме 1, в режимах 2 и 3 регистр сдвига передатчика имеет 9 разрядов. По импульсу ЗАПИСЬ В SBUF в 9-й разряд регистра сдвига передатчика записывается значение бита ТВ6 регистра SCON. Передача начинается в фазе SIPI машинного цикла, следующего за ближайшим после ЗАПИСЬ В SBUF переполнением делителя на 16 в цепи сигнала СИНХР Тх. Период сигнала СИНХР Тх (синхронизация передачи) определяет время, в течение которого выдаваемый бит присутствует на выходе TxD (время трансляции бита).
Внутренние сигналы ОМЭВМ ПОСЫЛКА, данные и СДВИГ по функциональному назначению и формированию в режимах 2 и 3 идентичны этим же сигналам в режиме 1. В отличие от режима 1 в режимах 2 и 3 на выход TxD выдается девять бит данных: D0-D7 и ТВ8. После первого импульса СДВИГ в освободившийся 9-й разряд регистра сдвига передатчика заносится «1» (стоп-бит). Всего формируется 9 импульсов СДВИГ, в результате чего все биты регистра сдвига передатчика последовательно выдаются на выход TxD. По окончании выдачи всех бит посылки блок управления передачей устанавливает, как показано на рис. 2, флаг прерывания передатчика Т1 и снимает сигналы ПОСЫЛКА и ДАННЫЕ.
Прием начинается при обнаружении перехода сигнала на входе RxD из «1» в «0». Работа последовательного порта и блока управления приемом в режимах 2 и 3 полностью идентична режиму 1, включая мажоритарный отбор по принципу «2 из 3-х» значения каждого принимаемого бита с помощью бит-детектора. Регистр сдвига приемника в режимах 2 и 3 является 9-разрядным. Поэтому после 10-го импульса СДВИГ (рис. ) в регистре сдвига приемника находятся 9 бит принятой посылки (обозначены на рис. 2 D0-D7 и RB8).
После 10-го импульса СДВИГ блок управления приемом загружает биты D0-D7 из регистра сдвига приемника в SBUF, переписывает 9-й разряд регистра сдвига приемника в бит RB8 регистра SCON и устанавливает флаг прерывания приемника RI в регистре SCON. Сигнал загрузки SBUF, RB8 и установки RI вырабатывается блоком управления приемом тогда и только тогда, когда в момент генерации последнего импульса СДВИГ выполняются следующие условия:
RI = 0
либо 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 частота пересылки одного бита (скорость последовательного обмена) максимальна. Она постоянна и составляет:
При необходимости работать с переменной скоростью используется режим 2 последовательного порта. В этом режиме скорость последовательной передачи зависит от состояния бита SMOD регистра SCON:
Т.е. при SMOD = 0 Fn2 = fBQ/64, а при SMOD = 1 Fn2 = fBQ/32. По сигналу сброс бит SMOD устанавливается в ноль. Для задания бита SMOD используются команды с байтовой адресацией, например, команда MOV 87Н, #80Н.
В режимах 1, 3 также имеется возможность изменить скорость последовательной передачи:
где fOV - частота переполнений Т/С 1.
Для использования Т/С 1 в качестве источника для задания частот Fn1 и Fn3 необходимо:
1) запретить прерывания от Т/С 1;
2) запрограммировать работу Т/С 1 в качестве таймера или в качестве счетчика, установив при этом для него один из режимов 0, 1 или 2;
3) запустить Т/С 1 на счет.
Обычно для синхронизации последовательного порта таймер T/C l включается в режим автозагрузки (режим 2).
В этом случае скорость последовательного обмена определяется по формуле:
где (ТН) - десятичный код содержимого TH1.
Если необходим последовательный обмен с очень низкой скоростью, то можно использовать Т/С 1 в режиме 16-разрядного таймера (режим 1), разрешив при этом прерывание от Т/С 1 с целью перезагрузки TL1/TH1 в подпрограмме обслуживания прерывания.
В табл. 2 приведен ряд стандартных скоростей последовательного обмена и то как они могут быть реализованы с помощью Т/С 1 в режимах 1, 3.
последовательный порт сдвиговый регистр
Таблица 2
режимы работы последовательного порта |
Скорость приема / передачи Кбод |
fBQ, МГц |
SMOD |
Разряды TMOD |
THI |
Примечание |
|||
С/Т |
М1 |
M0 |
|||||||
режим 0 |
Макс: 1000 |
12 |
X |
X |
X |
X |
X |
||
режим 2 |
Макс: 375 |
12 |
1 |
X |
X |
X |
X |
||
режимы 1,3 |
62,5 |
12 |
1 |
0 |
1 |
0 |
FFH |
||
19,2 |
11,059 |
1 |
0 |
1 |
0 |
FDH |
|||
9,6 |
11,059 |
0 |
0 |
1 |
0 |
FDH |
|||
4,8 |
11,059 |
0 |
0 |
1 |
0 |
FAH |
|||
2,4 |
11,059 |
0 |
0 |
1 |
0 |
E4H |
|||
1,2 |
11,059 |
0 |
0 |
1 |
0 |
E8H |
|||
0,1375 |
11,986 |
0 |
0 |
1 |
0 |
18H |
|||
0,110 |
6 |
0 |
0 |
1 |
0 |
72H |
|||
0,110 |
12 |
0 |
0 |
0 |
1 |
FEH |
TL1 = EBH |
В табл. 3 приведена сводная информация по всем четырем режимам работы последовательного порта ОМЭВМ семейства МК51.
Ниже приведен пример программы инициализации последовательного порта для работы на частоте тактового сигнала fBQ = 6 МГц.
Режим 2 и режим 3 последовательного порта позволяют организовать работу ОМЭВМ в многопроцессорных системах, использующих для обмена информацией между ОМЭВМ разделяемый моноканал (коаксиальный кабель, витая пара, оптоволокно). В этих режимах принимается 9 бит данных 9-й принятый бит записывается в бит RB8 регистра SCON. При этом, если бит SM2 регистра SCON установлен в «1», то после приема посылки флаг прерывания приемка RI будет установлен только в том случае, если RB8 = 1.
Таблица 3
Эту особенность работы последовательного порта в режимах 2 и 3 можно использовать для организации межконтроллерного обмена следующим образом.
Когда ведущая ОМЭВМ хочет передать блок данных одной из ведомых ОМЭВМ, она выдает в моноканал посылку с адресом ведомой, которой будет передан блок данных. Адресная посылка отличается от посылки с данными тем, что в адресной посылке 9-й бит данных равен «1», а в посылке с данными - «0». Таким образом, при SM2 = 1 ни одна ведомая ОМЭВМ не будет реагировать на посылку с данными, но все ведомые среагируют на адресную посылку. Проанализировав полученный адрес, адресуемая ОМЭВМ сбрасывает свой бит SM2, а остальные оставляют его без изменения и вновь переходят к выполнению прерванной программы. После этого ведущая ОМЭВМ может начинать выдачу в моноканал блока данных, на посылки которого будет реагировать только ОМЭВМ, у которой SM2 = 0.
Бит SM2 никак не участвует в работе последовательного порта в режиме 0. В режиме 1 бит SM2 может использоваться для контроля правильности принятого стоп-бита: в режиме 1, если SM2 = 1, флаг прерывания приемника RI не будет установлен, если принятый стоп-бит не равен «1».
Размещено на Allbest.ru
Подобные документы
Общая характеристика однокристальных микроЭВМ семейства МК51 и их структуры. Регистр состояния программы. Регистры таймера. Изучение восьмиразрядных высокопроизводительных однокристальных микроЭВМ (ОМЭВМ) семейства МК51, которое включает пять модификаций.
контрольная работа [151,7 K], добавлен 23.08.2010АТ-6-2: работа в режиме "стабилизации скорости". Система автоматического управления САУ-154-2: работа канала тангажа в режиме "управление по тангажу" по структурной и функциональной схемам. ВСУП-85: описание режимов работы бокового и продольного каналов.
контрольная работа [1,9 M], добавлен 10.12.2013Основные характеристики счетчиков. Микроконтроллер в пошаговом режиме работы и в режиме внешнего доступа. Структуры микроконтроллеров серии 1816 и их системы команд. Работа двоичного счетчика с последовательным переносом на примере микросхемы 155ИЕ5.
реферат [172,1 K], добавлен 29.09.2012Микропроцессорные системы и микроконтроллеры. Разработка схемы и программы микроконтроллера. Симуляция проекта в программе Proteus 7. Прерывание программы по внешнему сигналу, поступающему в процессор. Устройство и настройка канала порта на ввод-вывод.
контрольная работа [551,8 K], добавлен 26.01.2013Аналогово-цифровые преобразователи последовательного счета и последовательного приближения. Разработка модели аналогово-цифрового преобразователя с сигма-дельта модулятором. Проектирование основных блоков сигма-дельта модулятора на КМОП-структурах.
дипломная работа [2,1 M], добавлен 18.11.2017Процедура аналого-цифрового преобразования непрерывных сигналов. Анализ преобразователей последовательных кодов в параллельный. Преобразователи с распределителями импульсов. Разработка преобразователя пятнадцатиразрядного последовательного кода.
курсовая работа [441,5 K], добавлен 09.12.2011Синтез последовательного корректирующего устройства частотными методами. Обеспечение отсутствия статической ошибки. Оценка запасов устойчивости. Синтезировалось последовательное корректирующее устройство с помощью частотных методов.
курсовая работа [56,4 K], добавлен 09.03.2002Метод синтеза последовательного корректирующего устройства и оценка показателей качества переходных процессов. Структурная схема САУ с единичной обратной связью. Коэффициент усиления разомкнутой системы. Результаты имитационного моделирования САУ на ЭВМ.
курсовая работа [211,8 K], добавлен 20.12.2010Передаточные функции элементов системы слежения. Расчет последовательного непрерывного-коректирующего звена методом логарифмической амплитудно-частотной характеристики. Моделирование системы с непрерывным последовательным скорректированным звеном.
курсовая работа [182,3 K], добавлен 24.08.2010Последовательный связной интерфейс, скорость передачи данных. Интерфейс и его сигналы. Программная эмуляция SCI. Оборудование, особенности микросхемы. Структурная схема контроллера управления последовательным портом. Описание программного обеспечения.
курсовая работа [670,7 K], добавлен 23.06.2012