Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Пользователю -> Евстифеев А.В. -> "Микроконтроллеры семейства" -> 69

Микроконтроллеры семейства - Евстифеев А.В.

Евстифеев А.В. Микроконтроллеры семейства — Infineon, 2007. — 318 c.
Скачать (прямая ссылка): microkontrolleri2007.pdf
Предыдущая << 1 .. 63 64 65 66 67 68 < 69 > 70 71 72 73 74 75 .. 100 >> Следующая


8-разрядные данных передаются и принимаются синхронно с тактовыми импульсами, генерируемыми внутренним генератором baud rate. Тактовый генератор выдает тактовый сигнал только в случае передачи или приема данных.

Reload Regislw

CPL Clock

* т2

V X

* Baud Rat« Timer



SOR

SOM=OtHB

ІЇМ/РЗ.Ю ?—

SOREN->

SOQEhI-»

SOLB

Receive



R3DQ/P5.11

п

них

1 I t

SDOC

Clock

Serial Part Cantrol Shift СІкк

ItoMlvt Shlfl Register

Transmit

SflRlR


SOfTIR

SDLIR


,Recelva Int. Requvt

_ Transmit Irl. Request

, Error Int. Request

Transmft Shrtt Register

Receive Buffer Reg. SORBUf

Trarsmit Buffer Reg. SOTB U Г

Internal Вив

IEIDlUa

Рисунок 10-5

Синхронный режим последовательного порта ASC0

Синхронная передача начинается с загрузки данных в регистр S0TBUF, при этом необходимо установить S0R=1 и S0REN=0 (полудуплексная связь, нет приема). При передаче данных имеет место двойная буферизация. В тех случаях когда передатчик свободен передаваемые данные сразу поступают в промежуточный буфер, при этом освобождая S0TBUF для следующей передачи данных. При освобождении S0TBUF устанавливается флаг запроса на прерывание по передаче S0TBIR.

10-8 МЭИ, Центр Промышленной Электроники Фирмы Infineon

Последовательный интерфейс/С167

После этого параллельно с передачей данных можно загружать новое значение в буфер. Биты данных передаются по тактовым импульсам. После завершения передачи восьмого бита выставляется высокий уровень напряжения на выходах TXD0 и RXD0, также устанавливается флаг запроса на прерывание по завершению передачи S0TIR, и прекращается передача данных.

Для правильной работы в этом режиме необходимо установить P3.10=1 и DP3.10=1. Также на время передачи необходимо настроить RXD0/P3.11 на вывод (33.11=1 и DP3.11).

Режим синхронного приема данных будет разрешен после установки «1» в бите S0REN. При S0R=1 данные, поступающие на вход RXD0, записываются в промежуточном регистре по тактовым импульсам, поступающим на выход TXD0. После получения восьмого бита содержимое промежуточного регистра получения будет передано в буферный регистр получения S0RBUF, и одновременно с этим будет установлен флаг запроса на прерывание по получению данных S0RIR, после этого значение бита S0REN очищается и прекращается последовательный прием данных.

Также необходимо тактовый генератор настроить на выход, путем установки P3.10=1 и DP3.10=1. Вывод RXD0/P3.11 должен быть настроен на альтернативную функцию ввода (DP3.11=0).

Синхронный прием данных прекращается после очистки бита S0REN. После этого будет завершен текущий прием данных, включая генерацию запросов на прерывание по завершению запроса на прерывание по ошибке передачи (в случае необходимости). Запись нового значения в буфер передачи во время приема данных не приведет к началу передачи.

Если предыдущий данные не были прочитаны из буферного регистра до завершения передачи следующего байта, будет выставлен флаг запроса на прерывание S0EIR и флаг ошибочного состояния overrun S00E(если разрешена установка флага в бите S00EN).

10-9 МЭИ, Центр Промышленной Электроники Фирмы Infineon

Последовательный интерфейс/С167

10.3 Возможности аппаратного обнаружения ошибок

Для повышения надежности последовательного обмена данными последовательный порт ASC0 может выставлять запрос на прерывание по ошибке, указывающего на наличие ошибок. При этом три флага состояния ошибок регистра S0C0N указывают на тип произошедшей ошибки. Одновременно с завершением приема данных будет установлен флаг запроса на прерывание по ошибке S0EIR в том случае, если:

• при установленном бите обнаружения ошибок S0FEN, не обнаружена «1» в любом из ожидаемых стоповых битов. После этого будет установлен флаг S0FE, показывающий ошибки формата передаваемых данных.

• При включенном режиме проверки четности (S0PEN=1), в случае обнаружения неправильного результата, устанавливается флаг S0PE.

• В том случае если не был считан буфер до окончания следующего цикла получения данных, устанавливается флаг S00E.

10.4 Создание baud rate ASC0

Последовательный порт ASC0 имеет собственный тактовый baud rate генератор с возможностью перезагрузки 13-равзрядного значения, позволяющего устанавливать скорость передачи вне зависимости от GPT-таймеров.

Генератор baud rate работает частотой, составляющей половину от частоты ЦПУ (10МГц при частоте ЦПУ 20МГц). Отсчет в таймере ведется в отрицательном направлении и может начаться или остановиться после изменении значения бита S0R регистра S0C0N. При каждом переходе через нуль, на последовательный порт посылается один тактовый импульс. После этого в таймер загружается значение, сохраненное в 13-разрядном регистре. Также результирующую частоту можно уменьшить, изменяя значение в бите S0BRS. При S0BRS=1, частота тактового сигнала уменьшается на 1/3. Поэтому скорость передачи ASC0 зависит от частоты ЦПУ, перезагружаемого значения, значения бита S0BRS и от режима работы (синхронный или асинхронный).
Предыдущая << 1 .. 63 64 65 66 67 68 < 69 > 70 71 72 73 74 75 .. 100 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100