Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы_v3.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.02 Mб
Скачать

17. Организация контроллера последовательного интерфейса rs-232 (usart).

Интерфейс RS-232– стандартный интерфейс, предназначенный для последовательной двоичной передачи данных между терминальным (DTE, Data Terminal Equipment) и связным (DCE, Data Communications Equipment) оборудованием.

Терминальное оборудование, например микрокомпьютер, может посылать и (или) принимать данные по последовательному интерфейсу. Оно как бы оканчивает (terminate) последовательную линию. Связное оборудование — устройства, которые могут упростить передачу данных совместно с терминальным оборудованием. Наглядным примером связного оборудования служит модем (модулятор–демодулятор). Он оказывается соединительным звеном в последовательной цепочке между компьютером и телефонной линией.

Сигналы интерфейса RS-232C подразделяются на следующие классы.

Последовательные данные (например, TXD, RXD). Интерфейс RS-232C обеспечивает два независимых последовательных канала данных: первичный (главный) и вторичный (вспомогательный). Оба канала могут работать в дуплексном режиме, т. е. одновременно осуществляют передачу и прием информации.

Управляющие сигналы квитирования (например, RTS, CTS). Сигналы квитирования - средство, с помощью которого обмен сигналами позволяет DTE начать диалог с DCE до фактической передачи или приема данных по последовательной линии связи. CTS - сброс передачи. На этой линии периферийное устройство формирует сигнал низкого уровня, когда оно готово воспринимать информацию от процессора; RTS - запрос передачи. На эту линию микропроцессорная система выдает сигнал низкого уровня, когда она намерена передавать данные в периферийное устройство.

Сигналы синхронизации (например, TC, RC). В синхронном режиме (в отличие от более распространенного асинхронного) между устройствами необходимо передавать сигналы синхронизации, которые упрощают синхронизм принимаемого сигнала в целях его декодирования.

UART (Universal asynchronous receiver/transmitter)

Универсальный асинхронный приёмник/передатчик (УАПП), предназначенный для приёма и передачи данных по последовательному интерфейсу. Характеристики последовательного порта UART не позволяют производить приём и передачу данных за пределы печатной платы. Для связи с другими устройствами, сигнал от UART необходимо пропустить через приёмопередатчик, работающий в одном из стандартов:

•RS-232;

•RS-485;

•RS-422.

Приемопередатчик — преобразователь уровня, как правило выполненный в интегральном исполнении. Предназначен для преобразования электрических сигналов из уровня ТТЛ в уровень, соответствующий физическому уровню определенного стандарта.

Контроллер UART обычно содержит:

•Источник тактирования (обычно с увеличенной частотой тактирования по сравнению со скоростью обмена, чтобы иметь возможность отслеживать состояние лини передачи данных в середине передачи бита).

•Входные и выходные сдвиговые регистры.

•Регистры управления приемом/передачей данных; чтением/записью.

•Буферы приема/передачи.

•Параллельная шина данных для буферов приема/передачи.

•FIFO буферы памяти (опционально).

Наиболее широко распространен формат, включающий в себя один стартовый бит, один бит паритета и два стоповых бита. Начало пакета данных всегда отмечает низкий уровень стартового бита. После него следует 7 бит данных символа кода ASCII. Бит четности содержит 1 или 0 так, чтобы общее число единиц в 8–битной группе было нечетным. Последним передаются два стоповых бита, представленных высоким уровнем напряжения.

Последовательный порт в микроконтроллерах MCS-51 позволяет осуществлять последовательный дуплексный ввод-вывод в синхронном и асинхронном режимах с разными скоростями обмена. Помимо обычного ввода-вывода, в нем предусмотрена аппаратная поддержка взаимодействия нескольких микроконтроллеров.

Схематически контроллер последовательного порта представлен на рисунке 5.

Как видно из рисунка, регистр SBUF, доступный пользователю для чтения и записи, есть на самом деле два регистра, в один из которых можно только записывать, а из другого – читать. Контроллер позволяет дуплексный обмен данными, т.е. одновременно может передавать и принимать информацию по линиям TxD (P3.1) и RxD (P3.0) соответственно.

Передача инициируется записью в SBUF байта данных. Этот байт переписывается в сдвиговый регистр, из которого пересылается бит за битом. Как только байт будет переслан целиком , устанавливается флаг TI, сигнализирующий о том, что контроллер готов к передаче очередного байта.

Прием осуществляется в обратном порядке: после начала процесса приема принятые биты данных последовательно сдвигаются в сдвиговом регистре, пока не будет принято их установленное количество, затем содержимое сдвигового регистра переписывается в SBUF и устанавливается флаг RI. После этого возможен прием следующей последовательности бит. Необходимо отметить, что запись принятого байта из сдвигового регистра в SBUF происходит только при условии, что RI=0, поэтому при заборе пользовательской программой очередного байта из SBUF ей необходимо сбрасывать этот флаг, иначе принятый в сдвиговый регистр, но не записанный в SBUF, следующий байт будет безвозвратно утерян.