Аппаратные и программные средства встраиваемых систем


  Контроллер последовательного интерфейса в



Pdf көрінісі
бет76/268
Дата07.01.2022
өлшемі3,23 Mb.
#18255
1   ...   72   73   74   75   76   77   78   79   ...   268
2.2.9.1  Контроллер последовательного интерфейса в 
микроконтроллере с ядром Intel MCS-51 
Последовательный  порт  в  микроконтроллерах MCS-51 позволяет 
осуществлять  последовательный  дуплексный  ввод-вывод  в  синхронном  и 
асинхронном режимах с разными скоростями обмена. Помимо обычного ввода-
вывода,  в  нем  предусмотрена  аппаратная  поддержка  взаимодействия 
нескольких микроконтроллеров. 
Схематически  контроллер  последовательного  порта  представлен  ниже  на 
рисунке.  Как  видно  из  рисунка,  регистр SBUF, доступный  пользователю  для 
чтения  и  записи,  есть  на  самом  деле  два  регистра,  в  один  из  которых  можно 
только  записывать,  а  из  другого – читать.  Контроллер  позволяет  дуплексный 
обмен данными, т.е. одновременно может передавать и принимать информацию 
по линиям TxD (P3.1) и RxD (P3.0) соответственно. 
Передача  инициируется  записью  в SBUF байта  данных.  Этот  байт 
переписывается  в  сдвиговый  регистр,  из  которого  пересылается  бит  за  битом. 


 
99 
Как  только  байт  будет  переслан  целиком,  устанавливается  флаг TI, 
сигнализирующий о том, что контроллер готов к передаче очередного байта. 
 
Рисунок 46. Схема контроллера UART МК ADuC812 (Intel MCS-51) 
Прием осуществляется в обратном порядке: после начала процесса приема 
принятые  биты  данных  последовательно  сдвигаются  в  сдвиговом  регистре, 
пока  не  будет  принято  их  установленное  количество,  затем  содержимое 
сдвигового регистра переписывается в SBUF и устанавливается флаг RI. После 
этого  возможен  прием  следующей  последовательности  бит.  Необходимо 
отметить,  что  запись  принятого  байта  из  сдвигового  регистра  в SBUF 
происходит  только  при  условии,  что RI=0, поэтому  при  заборе 
пользовательской  программой  очередного  байта  из SBUF ей  необходимо 
сбрасывать этот флаг, иначе принятый в сдвиговый регистр, но не записанный в 
SBUF, следующий байт будет безвозвратно утерян. 
Контроллер последовательного порта может работать в одном из четырех 
режимов  (один  синхронный  и  три  асинхронных),  различающихся  скоростями 
обмена (бод) и количеством передаваемых/принимаемых бит: 
•  Режим 0 (синхронный): данные передаются и принимаются через RxD, 
TxD является синхронизирующим (выдает импульсы сдвига). Скорость 
в этом режиме фиксирована (1/12 частоты тактового генератора). 
•  Режим 1 (8 бит  данных,  асинхронный,  переменная  скорость). 
Передаются 10 бит: старт-бит, 8 бит данных (SBUF) и стоп-бит.  
•  Режим 2 (9 бит  данных,  асинхронный,  фиксированная  скорость). 
Передаются 11 бит:  старт-бит, 8 бит (SBUF), бит TB8/RB8 
(посылка/прием  соответственно)  и 1 стоп-бит.  Биты TB8 и RB8 
содержатся  в  регистре SCON (биты 3 и 2 соответственно),  первый 
устанавливается  программно,  а  второй  содержит 9-й  бит  принятой 
комбинации. С помощью них можно организовать, например, контроль 
четности или обмен с двумя стоп-битами. 
•  Режим 3 (9 бит данных, асинхронный, переменная скорость). То же, что 
и режим 2, только скорость обмена переменная. 
В  режиме 1 и 3 используются  Таймер 0 и/или  Таймер 1 для  настройки 
скорости обмена. 
Режим контроллера UART, а также другие параметры его работы задаются 
в регистре специального назначения SCON (98h).  


 
100 
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
7
6
5
4
3
2
1
0
 
 
Таблица 6. Описание регистра специального назначения SCON 


Достарыңызбен бөлісу:
1   ...   72   73   74   75   76   77   78   79   ...   268




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет