Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессорные системы / i96_ПК_КП_СпАдресации.doc
Скачиваний:
12
Добавлен:
01.05.2014
Размер:
556.54 Кб
Скачать

Лектор: Зуев Игорь Станиславович

Разделы iMCS96 (выборочно).

Изложение конспективное. Возможны неточности

Последовательный порт

Реализует синхронный обмен и асинхронный обмен информации последовательным кодом. Асинхронный обмен выполнен по стандарту UART(UnversalAsynchronousReceiver/Transmitter). Аналогичен 51-ой серии; в дополнении реализован контроль четности / нечетности при передаче информации и блок генерации частоты обмена не использует общие таймеры Т1 и Т2, позволяя воспроизводить частоту более точно. В следующем рисунке есть неточности.

* (BH, KB, KC)

Преобразование параллельного кода в последовательный

Информация передается на вывод TxD (TransmittData), принимается на входе RxD (ReceiveData)

SBUF_TX– при записи,

SBUF_RX– при чтении два разных регистра.

Полнодуплексный режим – запись и чтение могут происходить параллельно

SP_CON

SP_STAT

SP_BAVD– регистр частоты

15 бит содержит константу В, 16 старший содержит clockselect

Протокол обмена

Режим «0»– синхронный обмен

Р2.0 – синхронизация, выдает тактовую частоту обмена

Р2.1 – мы имеем данные (входные – выходные; прием – передача)

Данные считаются действительными на фронте тактового сигнала

Передача:

Флаг REN= 0. передача начинается, когда записан байт в регистрSBUF_TX→TSR→P2.1 → →TI= 1 записан байт в регистрSBUF_TX– информация.

Прием:

Флаг REN= 1 иRI= 0 →RSR→SBUF_RX→RI= 1– параллельный прием в последовательном коде.

В режиме 1-3 порт функционирует как асинхронный приемо-передатчик UART.

TxD– передача;RxD– прием могут происходить одновременно. Пока на выводе 1 то, ничего не происходит; передача началась, когда происходит перепад из 1 в 0.

Режим «1»

Кадр 10 битный.

Режим «2» (11-битный кадр)

Режим «3»(11- битный кадр)

У 9го бита еще больше функций

Передача данных

SBUF_TXTSR→P2.0 →TI= 1

Прием данных

Только если PEN= 1

RSR→SBUF_RX→RI= 1, прерывание, если

Многопроцессорная связь

Многопроцессорная связь главный процессор находится в режиме 3, подчиненные в режиме 2. Алгоритм передачи данных:

1) главный ЦП выдает адрес, при этом ТВ8 = 1.

2) следствием этого является прерывание всех подчиненных процессоров

- анализ адреса.

- перевод адресованного подчиненного процессора в режим 3

3) передача данных, ТВ8 = 0 (прерывается только адресованного подчиненного процессора)

Частота обмена в режимах 1, 2, 3:

Флаги:

TxE= 1 (TxEmpty)TSRвыдан и не поступила информация вSBUF_TX– режим ожидания.

OE= 1 передачаRSR→SBUF_RXзатирает еще не прочитанную информацию.

FE= 1 – (FramingError) – ошибка кадра – возникает, когда при приеме отсутствует стоп бит в ожидаемом месте. При возникновении ошибокOEилиFEвсю информацию необходимо передавать снова.

Контроллер прерываний

Контроллер прерываний может обрабатывать прерывания без перехода к программе

Нужно просто настроить блок

Структура контроллера прерываний

Первый раз нужно сгенерировать прерывание искусственно для этого записать единицу в соответствующий разряд регистра. Естественные прерывания сверху ловит детектор восходящий фронт.

В регистре INT_MASK-разрешение прерываний

ПШ- приоритетный шифратор

В архитектуре регистры разделены на две части, поскольку в начальной серии BH было только 8 запросов на прерывания; 15 запросов являются маскируемыми, то есть любое прерывание, чтобы оно работало, должно быть разрешено. Старший запрос – немаскируемый.

Адрес вектор – есть 16 разрядный адрес перехода на подпрограмму обработки прерываний в данном такте, либо адрес управляющего блока, если обработка прерывания происходит через PTS.

С системой прерывания связаны следующие команды:

PUSHF,POPF– добавка и извлечение флага – заносит в стек регистр -PSW,INTMASK

PUSHA,POPA– заносит в стек регистр -PSW,INTMASKи ещеINTMASK1 иWSR. После выполнения этих команд обнуляются автоматическиPSW,INTMASK,INTMASK1. Данная деталь означает, что

1) все прерывания запрещены каждое в отдельности (так как INTMASKиINTMASK1 равны 0) и запрещены все вместе (так какPSWравно 0).

2) Также позволяется программировать вложенность прерываний. Вложенность прерываний 96 серии: при входе в программу прерываний можно разрешать определенные прерывания, если это необходимо.

Запросы прерывания текущей программы могут поступать от внешних источников или формироваться внутри микроконтроллера в различных периферийных устройствах. Общее число источников запросов прерывания у микроконтроллеров разных типов может быть 21, 28 или 37.

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

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

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

В микроконтроллерах некоторых типов кроме программного контроллера прерываний имеется микропрограммный контроллер прерываний (PTS). Любой запрос прерывания, кроме нескольких особых запросов, может быть направлен для обслуживания или в PIC или в PTS. Прерывание обслуживается через PTS, если по соответствующему разряду регистра PTSSEL записана 1.

Обслуживание запроса прерывания с использованием PTS заключается в выполнении типовой микропрограммы, при этом выполнение операций по микропрограмме совмещается во времени с выполнением команд текущей программы или подпрограммы обработки обычного прерывания. Микропрограммы PTS охватывают, в основном, пересылки данных. Прерывания, обслуживаемые PTS, отрабатываются быстрее, чем те, которые обслуживаются обычным способом. Однако, программировать PTS непросто, а отлаживать еще сложнее.

Таблица источников прерывания (источники запросов на прерывание)

разряда

RG

Источники запросов

Приоритет/адрес вектор:

IRS

PTS(KC)

0

INT_PEND, INT_MASK,

PTSEL, 0-7,PTSSRV, 0-7

T1 переполнение таймера

T2 переполнение таймера

0/2000h

15/2040h

1

A/D- Аналого-цифровое преобразование завершено

1/2002

16/2042

2

FIFOполон ( 6 значений, 7ой в резерве)

HIS_RG полон

2/2004

17/2044

3

Любая операция в HSO.0

3/2006

18/2046

4

HSI.0

4/2008

19/2048

5

Software

T0,T1,T2,T3,RESETT2,началоA/D->все вызывают прерывание таймераHS0

5/200A

20/204A

6

TI,RI-> Последовательный порт

6/200C

21/204C

7

EXTINT,ACH.7 – внешнее прерывание

7/200E

22/204E

0

INT_PEND, INT_MASK1,

PTSEL, 8-14,PTSSRV, 8-14

TI

8/2030h

23/2050h

1

RI

9/2032h

24/2052h

2

HSI.FIFO 4

10/2034

25/2054

3

T2 CAPT

11/2036

26/2056

4

T2переполнение

12/2038

27/2058

5

EXTINT1 внешнее прерывание

13/203А

28/205А

6

HSI.FIFO – полон

14/203C

29/205C

7

NMI не маскированное прерывание

30/203E

Возрастание приоритета в таблице от начала к концу!!!