Лекция №11. Программируемый связной интерфейс
Содержание лекции:схема включения программируемого связного интерфейса в микропроцессорную систему, назначение его входов и выходов, адресация, форматы инструкции и команд управления.
Цели лекции:изучить назначение входов и выходов программируемого связного интерфейса, способы его инициализации, инструкции режима и команд управления.
Программируемый связной интерфейс (РСI – Programmable Communication Interface) или универсальный синхронно-асинхронный приемо-передатчик (УСАПП или USART – Universal Synchronous Asynchronous Receiver Transmitter) предназначен для организации обмена данными между МП и удаленными внешними устройствами (ВУ) в последовательном формате. По этой причине УСАПП называют также последовательным интерфейсом (IOS). В качестве передатчика УСАПП преобразует параллельный код в последовательный и отправляет его в линию связи, а в качестве приемника осуществляет обратное преобразование. УСАПП может обмениваться данными с удаленными устройствами в симплексном (движение информации в одном направлении) ,полудуплексном (информация передается и принимается в обоих направлениях, нопоочередно)и дуплексном режимах (обмен данными вобоих направленияходновременно).
На рисунке 32 приведено упрощенное условное обозначение УСАПП, схема его включения в микропроцессорную систему и типичная последовательность бит на входе приемника или выходе передатчика в асинхронном режиме работы. Микропроцессор на схеме не показан. Счетчик CT0 таймера (мог быть и другой) обеспечивает требуемую скорость обмена данными.
Назначение некоторых выводов: TxD - выход передатчика, RxD - вход приемника, CLK - вход частоты синхронизации, TxC - вход синхросигнала передатчика, RxC - вход синхросигнала приемника, ~CTS - инверсный вход готовности приемника терминала (удаленного устройства или модема). В простых системах связи вход ~CTS можно жестко связать с "землей", уведомляя передатчик, что приемник "всегда готов". Если используется стандартный протокол связи, например, RS-232C, то вход ~CTS должен быть отсоединен от нулевого провода. C/~D - функциональный вход "управление/данные". Если C/~D = 0 , то МП и УСАПП обмениваются байтом данных, если C/~D = 1, то происходит запись байта управления или чтение байта состояния. Назначение остальных выводов PCI аналогично назначению соответствующих выводов ППИ. Приведенных на рисунке 32 выводов достаточно для реализации связи с не очень удаленными объектами, например, с компъютером или с другими МП.
Рисунок 32 - Схема включения УСАПП в микропроцессорную систему
Из приведенного рисунка нетрудно вычислить адреса PCI. Для нулевого выхода дешифратора, подключенного к входу таймеру "выбор микросхемы" адреса уже найдены. Активизация инверсного входа ~CS УСАПП производится подачей сигналов A4,A3,A2 = 111(BIN) = 7(DEC) и разрешающих работу дешифратора сигналов A7,A6,A5 = 100(BIN). В таблице 32 приведены два из четырех возможных адресов PCI (A1 = 0).
Т а б л и ц а 32
ЛИНИИ ШИНЫ АДРЕСА | ДАННЫЕ / РЕГИСТР УПРАВЛЕНИЯ (CSR) | АДРЕС (HEX) | |||||||
AА7 | AА6 | AА5 | AА4 | AА3 | AА2 | AА1 | AА0 | ||
11 | хx | Адрес порта данных | 9С | ||||||
хx | Адрес порта CSR | 9D |
Одним из наиболее распространенных режимов работы УСАПП является асинхронный режим. В этом режиме каждый передаваемый символ (кадр) содержит следующие поля:
1) обязательный стартовый бит (ST) всегда равен нулю;
2) 5…8 информационных бит;
3) необязательный бит контроля четности/нечетности PB;
4) 1…2 стоп-бита SP.
Кадры следуют непрерывно или отделяются паузами. Инфомационные биты передаются, начиная со 010 старших разрядов. На рисунке 32 передается/принимается код 11001, а не 10011010.
УСАПП программируется записью в него байта управления, который может быть двух типов:
1) инструкция режима;
Команда управления.
Инструкция режима задает режим синхронизации, формат данных, скорость обмена, необходимость контроля. В таблице 33 приведен формат инструкции режима.
Т а б л и ц а 33
D7 | D6 | Число стоп-бит | Вид контроля | D5 | D4 | |
0 | Запрет | Нет контроля | ||||
1 стоп-бит | Контроль нечетности | |||||
"полтора" стоп-бита | Нет контроля | |||||
2 стоп-бита | Контроль четности |
Продолжение таблицы 33
D3 | D2 | Число информационных бит | Частота синхронизации | D1 | D0 | |
fTxC(RxC) / 1 | ||||||
fTxC(RxC) / 16 | ||||||
fTxC(RxC) / 64 | ||||||
Продолжение таблицы 33
Биты D7,D6 определяют число стоп-бит в каждом кадре, причем "полтора бита" обозначают длительность в полтора тактовых интервала.
Длительность тактового интервала (fTxC(RxC)/x)-1сек задают биты D1,D0. Частота fTxC или fRxC - частота сигнала на одноименных входах TxC и RxC приемопередатчика, должна быть меньше или равной fCLK/(4.5).
Внутри УСАПП может быть дополнительно поделена в 16 или 64 раза. Частота fTxC(RxC)/x определяет скорость передачи в Бодах (baud) или битах в секунду (bps). Для УСАПП обе скорости совпадают. В асинхронном режиме комбинация D1,D0 = 01 недопустима.
Максимальную скорость обмена данными нетрудно вычислить. Пусть fCLKmax = 2МГц, тогда fTxC(RxC) = fCLK/4.5 =444444,44Гц. В асинхронном режиме дополнительный коэффициент деления должен быть не менее 16, как показано в инструкции режима. Поэтому максимальная скорость обмена равна 444444,44Гц / 16 = 27777 бит в секунду.
Число информационных бит в кадре определяется битами D3,D2. Биты D5,D4 задают вид контроля за правильностью передачи.
В таблице 34 приведены некоторые биты команды управления.
Т а б л и ц а 34
Разряд | Обозначение | Назначение команды |
D0 | TxEN | Разрешение работы УСАПП в качестве передатчика, D0=1 |
D2 | RxEN | Разрешение работы УСАПП в качестве приемника, D2=1 |
D4 | ER | Сброс в ''0" флагов ошибок, D4=1 |
D6 | RESET | Программный сброс УСАПП в исходное состояние, D6=1 |
В процессе работы можно осуществлять контроль за работой УСАПП путем чтения байта его состояния. В таблице 35 приведены некоторые наиболее употребительные в асинхронном режиме биты состояния УСАПП.
Т а б л и ц а 35
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
FE | OE | PE | RxRDY | TxRDY |
Биты D5,D4,D3 (флаги) устанавливаются/сбрасываются приемником УСАПП, причем, PE=1 (Parity Error), если УСАПП зафиксировал ошибку при контроле четности/нечетности, OE=1(Overrun Error), если была попытка считать в микропроцессор передаваемый из линии в приемник код, до завершения его полной передачи, FE=1(Frame Error), если приемник не обнаружил стоп-бит(ы).
Бит RxRDY (готовность приемника), если RxRDY=0, то приемник еще не преобразовал последовательный код в параллельный и считывать его в микропроцессор бессмысленно.
Бит TxRDY (готовность передатчика), если TxRDY=0, то передатчик еще не преобразовал параллельный код в последовательный и загрузка следующего кода из микропроцессора в передатчик исказит текущее передаваемое значение.