- •Российская открытая академия транспорта микропроцессорные информационно-управлчющие системы
- •Микроконтроллеры серии 1830ве51
- •1.1. Структурная схема микроконтроллера 1830ве51
- •1.1.1. Блок управления
- •1.1.2. Арифметико-логический блок
- •1.1.3. Организация памяти программ
- •1.1.4. Резидентная память данных
- •1.1.5. Счетчик команд и регистр указателя данных
- •1.1.6. Регистр указателя стека
- •1.1.7. Таймеры/счетчики
- •Режимы работы таймера/счетчика
- •1.1.8. Блок последовательного интерфейса и прерываний
- •1.1.9. Порты мк51
- •1.1.10. Начальная установка и режимы работы мк51
- •1.2. Система команд микроконтроллера 1830ве51
- •1.2.1. Команды пересылки данных
- •1.2.2. Команды арифметических операций
- •1.2.3. Команды логических операций
- •1.2.4. Команды операций над битами
- •1.2.5. Команды передачи управления
- •1.3. Структурная организация систем на основе микроконтроллеров
- •1.3.1. Подключение внешней памяти
- •1.3.2. Расширение каналов ввода/вывода информации
- •2. Программная реализация типовых вычислительных процедур
- •2.1 Типовые структуры схем алгоритмов обработки данных
- •2.2 Приемы программирования
- •2.3 Примеры программ обработки данных в мк51
- •2.3.1 Примеры использования команд передачи данных
- •2.3.2 Примеры использования команд арифметических операций
- •2.3.3 Примеры использования команд логических операций
- •3. Применение микропроцессорных информационно-управляющих систем на железнодорожном транспорте
- •3.1. Классификация микропроцессорных информационно-управляющих систем на железнодорожном транспорте
- •3.2 Автоматизированные системы управления и контроля движения поездов
- •3.3 Автоматизированные системы диспетчерского контроля
- •3.4 Информационные системы обслуживания пассажиров
- •Литература
1.1.8. Блок последовательного интерфейса и прерываний
Блок последовательного интерфейса и прерываний (ПИП) предназначен для организации ввода/вывода информации по последовательному каналу и обработки прерываний.
В состав блока входят:
Буфер ПИП;
Логика управления ПИП;
Регистр управления (SCON);
Приемо/передатчик последовательного порта;
Регистр приоритетов прерываний;
Регистр разрешения прерываний;
Схема выработки вектора.
Буфер ПИПобеспечивает побитовый обмен информацией между внутренней шиной данных МП и шиной ПИП.
Логика управления ПИПпредназначена для выработки сигналов управления последовательного порта задавая 1 из 4 возможных режимов его работы, и организации прерывания программ.
Последовательный порт МК51может работать в одном из 4 режимов:
Режим 0.Информация передается и принимается через вход приемникаRxD(вывод Р3.0). Через выход передатчикаTxD(вывод Р3.1) выдаются импульсы синхронизации, стробирующие каждый передаваемый или принимаемый бит информации. Формат посылки – 8 бит. Частота приема и передачи равна .
Режим 1.Информация передается через выходTxD, а принимается через вход приемникаRxD. Формат посылки – 10 бит: старт-бит (ноль), восемь бит данных и стоп-бит (единица). Частота приема и передачи задается Т/С 1.
Режим 2.Информация передается через выход передатчикаTxD, а принимается через вход приемникаRxD. Формат посылки 11 бит: старт-бит (ноль), восемь бит данных, программируемый девятый бит и стоп-бит (единица). Передаваемый девятый бит данных принимает значение бита ТВ8 из регистра специальных функцийSCON. Бит ТВ8 в регистреSCONможет быть программно установлен в 0 или в 1, или в него, к примеру, можно записать значение флага Р из регистраPSWдля повышения достоверности принимаемой информации (контроль по четности). При приеме 9-ый бит принятой посылки записывается в битRB8 регистраSCON. Частота приема и передачи в режиме 2 задается программно и может быть равна (SMOD=1) или (SMOD=0).
Режим 3полностью идентичен режиму 2, за исключением того, что частота приема и передачи задается с помощью Т/С1.
Регистр управления (SCON)предназначен для приема и хранения 8-ми разрядного управляющего слова последовательным портом. Обозначение разрядов регистра, их символьные имена и назначения приведены в табл. 1.8.
Таблица 1.8. Назначение разрядов регистра SCON
Разряд |
Имя |
Назначение | ||
SCON.7 SCON.6 |
SM0 SM1 |
Биты управления режимом работы УАПП (устанавливаются и сбрасываются программно) | ||
SM0 |
SM1 |
Режим работы УАПП | ||
0 |
0 |
Сдвиговый регистр | ||
0 |
1 |
8 битовый приемопередатчик, изменяемая скорость передачи | ||
1 |
0 |
9 битовый приемопередатчик. Фиксированная скорость передачи | ||
1 |
1 |
9 битовый приемопередатчик, изменяемая скорость передачи | ||
SCON.5 |
SM2 |
Бит управления режимом УАПП (разрешения многопроцессорной работы). В режимах 2 и 3 при SM2=1 флаг RI не активизируется, если девятый принятый бит данных равен «0». В режиме 1 при SM2=1 флаг RI не активен, если не принят стоп-бит, равный «1». В режиме «0» бит SM2 должен быть установлен в «0». | ||
SCON.4 |
REN |
Бит разрешения приема. Устанавливается/сбрасывается программно для разрешения/запрета приема последовательных данных | ||
SCON.3 |
TB8 |
Девятый бит передаваемых данных в режиме 2 и 3. Установка/сброс программно | ||
SCON.2 |
RB8 |
Девятый бит принятых данных в режиме 2 и 3. В режиме 1, если SM2=0, RB8 является принятым стоп-битом. В режиме 0 бит RB8 не используется. | ||
SCON.1 |
TI |
Флаг прерывания передатчика. Устанавливается аппаратно в конце передачи восьмого бита в режиме 0 или в начале стоп-бита в других режимах, сбрасывается программно. | ||
SCON.0 |
RI |
Флаг прерывания приемника. Устанавливается аппаратно в конце приема восьмого бита в режиме 0 или через половину интервала стоп-бита в режиме 1-3 при SM2=0. При SM2=1 смотри описание бита SM2. |
Буферы приемника и передатчика (БПП)(на структурной схеме не показаны) предназначены для приема/передачи данных с внутренней шины данных в последовательный порт. При программном доступе имеют одинаковые символические имена (SBUF) и адрес (99H) . Если команда используетSBUFкак регистр источника, то обращение происходит к буферу приемника. Если же команда используетSBUFкак регистр-приемник, то обращение происходит к буферу передатчика.
Во всех 4-х режимах работы УАПП передача инициируется любой командой, которая использует SBUFкак регистр-приемник. Прием в режиме 0 инициируется условиемRI=0 иREN=1 . В остальных режимах прием инициируется приходом старт-бита, еслиREN=1 .
Приемник/передатчикпоследовательного порта предназначен для приема последовательного потока символов с входа последовательного порта, выделения данных и выдачи их в буфер приемника. В режиме передачи он принимает последовательные данные с буфера передатчика, преобразует их в последовательный поток символов и выдает их на выход последовательного порта.
Скорость приема/передачи
Скорость приема/передачи в различных режимах работы УАПП определяется различными способами.
В режиме 0 частота передачи зависит только от частоты кварцевого резонатора и равна , т.е. за один машинный цикл последовательный порт передает 1 бит информации.
В режимах 1, 2, 3 скорость приема/передачи зависит от значения управляющего бита SMODв регистре управленияPCON.
В режиме 2 частота передачи определяется согласно выражению:
Скорость последовательного обмена УАПП в режимах 1 и 3 определяется по формуле:
,
где - значение битаSMOD регистра управления мощностью PCON;
- частота синхронизации МК-51;
- десятичное значение содержимого регистра TH1.
Если необходим последовательный обмен с очень низкой скоростью, то можно использовать Т/С1 в режиме 16-ти разрядного таймера (режим 1), разрешив при этом прерывание от Т/С1 с целью перезагрузки TH1 и TL1 в подпрограмме обслуживания прерывания.
Для использования Т/С1 в качестве источника для задания частот инеобходимо:
Запретить прерывания от Т/С1;
Запрограммировать работу Т/С1 в качестве таймера или счетчика, установив при этом для него один из режимов 0, 1 или 2;
Запустить Т/С1 на счет.
Обычно для установки скорости передачи данных через последовательный порт таймер Т/С1 включается в режим 2 (режим автозагрузки).
В табл.1.9 приведен ряд стандартных скоростей последовательного обмена и то, как они могут быть реализованы с помощью T/C1 в режимах 1 и 3 .
Таблица 1.9
Режим работы |
Скорость обмена, |
, МГц |
Бит SMOD |
Разряды TMOD |
Регистр ТН1 |
Примечание | ||
УАПП |
Кбод |
|
|
C/T |
М1 |
М0 |
|
|
0 2 1,3 |
Макс 1000 Макс 375 62,5 19,2 9,6 4,8 2,4 1,2 0,1375 0,110 0,110 |
12 12 12 11,059 11,059 11,059 11,059 11,059 11,986 6 12 |
Х 1 1 1 0 0 0 0 0 0 0 |
Х Х 0 0 0 0 0 0 0 0 0 |
0 0 1 1 1 1 1 1 1 1 0 |
0 1 0 0 0 0 0 0 0 0 1 |
х х FFH FDH FDH FAH E4H E8H 18H 72H FEH |
TL1=EBH |
Регистр приоритетов прерываний (IP)предназначен для установки уровня приоритетов прерываний для каждого из пяти возможных источников прерываний. Обозначение, номер разряда и их назначение приведены в табл.1.10.
Таблица 1.10. Назначение разрядов регистра приоритетов прерываний IP
Разряд |
Имя |
Назначение |
IP.7 IP.6 IP.5 |
- - - |
Не используются |
IP.4 |
PS |
Бит приоритета УАПП. Установка/сброс программой для присваивания прерыванию от УАПП высшего/низшего приоритета. |
IP.3 |
PT1 |
Бит приоритета Т/C1. Установка/сброс программой для присваивания прерыванию от Т/C1 высшего/низшего приоритета. |
IP.2 |
PX1 |
Бит приоритета внешнего прерывания . Установка/сброс программой для присваивания прерыванию отвысшего/ низшего приоритета. |
IP.1 |
PT0 |
Бит приоритета Т/C0. Работает аналогично PT1. |
IP.0 |
PX0 |
Бит приоритета внешнего прерывания . Работает аналогичноPX1. |
Регистр разрешения прерываний (IE)предназначен для разрешения или запрещения прерываний от соответствующих источников. Обозначение разрядовIEи их назначение приведено в табл.1.11.
Таблица 1.11. Назначение разрядов регистра разрешения прерываний IE
Разряд |
Имя |
Назначение |
IE.7 |
EA |
Снятие блокировки прерываний. Сбрасывается программно для запрета всех прерываний независимо от состояний IE4…IE0 . |
IE.6 IE.5 |
- - |
Не используются |
IE.4 |
ES |
Управление прерыванием от УАПП. ES=1 - разрешено, ES=0 - запрещено . |
IE.3 |
ET1 |
Управление прерыванием от Т/C1. EТ=1 - разрешено, ET=0 - запрещено . |
IE.2 |
EX1 |
Управление прерыванием от внешнего источника . Работает аналогичноET1. |
IE.1 |
ET0 |
Управление прерыванием от Т/C0. Работает аналогично ЕT1 . |
IE.0 |
EX0 |
Управление прерыванием от внешнего источника . Работает аналогичноET1. |
Логика обработки флагов прерываний осуществляет приоритетный выбор запроса прерывания в соответствии с рис.1.11, сброс его флага инициирует выработку аппаратно-реализованной команды перехода к программе обслуживания прерываний.
Рис. 1.11. Система прерываний МК51
Схема выработки вектора прерыванийпредназначена для формирования двухбайтового адреса подпрограммы обслуживания прерывания. Адреса подпрограмм и источники прерываний приведены в табл.1.12.
Таблица 1.12
Источник прерывания |
Вектор прерывания |
Внешнее прерывание Таймер/счетчик 0 Внешнее прерывание Таймер/счетчик 1 УАПП |
0003H 000BH 0013H 001BH 0023H |
При выполнении подпрограммы прерывания система прерываний формирует аппаратный вызов (LCALL) соответствующей подпрограммы обслуживания, если она не заблокирована одним из следующих условий:
в данный момент обслуживается запрос прерывания равного или высокого уровня приоритета;
текущий машинный цикл – не последний в цикле выполняемой команды;
выполняется команда RETI или любая команда, связанная с обращением к регистрам IЕ или IP.
Если флаг прерывания был установлен, но по одному из указанных выше условий не получил обслуживания и к моменту окончания блокировки уже сброшен, то запрос прерывания теряется и нигде не запоминается.
По аппаратно сформированному коду LCALL система прерывания помещает в стек только содержимое счетчика команд (PC), а в него загружает адрес вектора соответствующей подпрограммы обслуживания. По адресу вектора должна быть расположена команда безусловной передачи управления (JMP) к начальному адресу подпрограммы обслуживания прерывания. В случае необходимости она должна начинаться командами записи в стек (PUSH) слова состояния программы (PSW), аккумулятора, расширителя, указателя данных и т.д. и должна заканчиваться командами восстановления из стека (POP). Подпрограммы обслуживания прерывания должны завершаться командой RETI, по которой в счетчик команд перезагружается из стека сохраненный адрес возврата в основную программу. Команда RET также возвращает управление прерванной основной программе, но при этом не снимут блокировку прерываний, что приводит к необходимости иметь программный механизм анализа окончания процедуры обслуживания данного прерывания.