
- •1.Функциональное описание микроконтроллера i80196kc
- •1.1. Обзор архитектуры
- •1.1.1. Ядро 80xc196kc
- •1.1.1.1. Файловый регистр (Register File)
- •1.1.1.2. Регистровое арифметико-логическое устройство (ралу)
- •1.1.1.4. Контроллер памяти ( Memory Controller)
- •1.1.1.5. Контроллер прерываний и pts (Interrupt Controller)
- •1.2. Параметры синхронизации
- •1.3. Внутренние периферийные устройства
- •1.3.1. Стандартные порты ввода-вывода
- •1.3.2. Последовательный порт ввода-вывода
- •1.3.3. Быстродействующий модуль
- •1.3.4. Аналого-Цифровой Преобразователь (ацп)
- •1.3.5. Широтно-импульсный модулятор (шим)
- •1.3.6. Сторожевой Таймер
- •2.Введение в программирование 8xc196kc
- •2.1. Типы программирования микроконтроллера
- •2.2. Система команд
- •2.3. Типы данных
- •2.4. Способы адресации
- •3. Карта памяти микроконтроллера i80c196kc
- •3.1. Основные разделы памяти
- •3.1.1. Разделы внешней памяти
- •3.1.2. Порты 3 и 4
- •3.1.3. Программная память и Память Специального назначения
- •3.1.3.1. Управление доступом к внутренней или внешней памяти
- •3.1.3.2. Память для программ
- •3.1.3.3. Память специального назначения
- •3.1.4. Регистровый Файл(Register File)
- •3.1.4.1. Указатель Вершины стека (sp)
- •3.1.4.2 Регистры Специальных Функций
- •3.2. Работа через горизонтальное окно
- •3.2.1. Выбор hWindow
- •3.3.1. Выбор vWindow
- •3.3.2. Работа с вертикальными окнами и Способы Адресации
- •4. Прерывания
- •4.1 Обработка Прерывания
- •4.2. Описание работы Контроллера Прерывания
- •4.3. Описание работы Периферийной Станции Транзакций(pts)
- •4.4. Приоритеты Прерывания
- •4.5. Изменение Приоритетов Прерывания
- •4.6. Программы Обработки прерывания
- •4.7. Распознавание Прерываний
- •4.8. Время Ожидания Прерывания
- •4.9. Специальные Прерывания
- •4.9.1. Прерывание по Невыполняемому Коду
- •4.9.2. Прерывание по Ловушке Программного
- •4.9.3. Немаскируемое Прерывание
- •4.10. Программирование Прерываний
- •4.11. Предоставление pts Прерывания
- •4.12. Предоставление Стандартных Прерываний
- •4.13. Выбор Источников Прерывания
- •4.14. Регистры Маскирования Прерываний
- •4.15. Регистры Захвата Прерывания
- •4.16. Pts Прерывания
- •4.16.1. Управляющие Блоки pts
- •4.16.1.1. Регистр ptscount
- •4.16.1.2. Прерывание End-of-pts
- •4.16.1.3. Регистр ptscon
- •4.16.2. Краткий Обзор Режима Одиночной
- •4.16.2.1. Пример Режима Одиночной Передачи
- •4.16.3. Краткий Обзор Режима Поблочной
- •4.16.3.1. Пример Режима Поблочной Пересылки
- •4.16.4. Краткий Обзор Режима Сканирования
- •4.16.4.1. Pts Циклы в Режиме Сканирования ацп
- •11Eh ad_result для ach0
- •102H ad_result для acHx
- •100H ad_command для acHx
- •4.16.5. Hsi. Краткий Обзор Режима
- •4.16.5.1. Пример Режима hsi
- •4.16.6. Hso. Краткий Обзор Режима
- •4.16.6.1. Пример Режима hso
- •6. Парраллельные порты ввода - вывода
- •6.1. Краткий Функциональный Обзор
- •6.2.Контакты Порта Ввода
- •6.3. Контакты Порта Вывода
- •6.4. Контакты квази-двунаправленного порта
- •6.5 Контакты Двунаправленного Порта с открытым стоком
- •6.6.Программирование Портов ввода-вывода
- •6.7.Организация Портов Ввода
- •6.7.1. Порт 0
- •6.8. Организация Портов Вывода
- •6.9. Порт 1
- •6.10. Порт 2
- •6.11. Доступ к Порту 3 и Порту 4
- •6.11.1. Порт 3 и Порт 4
- •6.12. Особенности работы с квази - двунаправленными портами
4.7. Распознавание Прерываний
Пять внешних источников могут прерывать 8XC196KC/KD. Детектор Перехода производит выборку входов прерывания в течение Фазы 1 ( CLKOUT низкого уровня )
и защелкивает прерывание, когда происходит переход от низкого к высокому уровню. Для того, чтобы гарантировать распознавание, вход прерывания должен удерживаться на высоком уровне больше чем одно время состояния. Если ширина импульса - точно одно время состояния или меньше,существует статистическая возможность того,что прерывание может быть пропущено.
Так как прерывания запускаемы фронтом сигнала, то если вход удерживается в высоком состоянии, генерируется только одно прерывание. ( Если бы устройство использовало переключаемые уровнем,а не фронтом входы, то генерировались бы многократные прерывания. )
Обратите Внимание
В то время, когда входной штырек удерживается в высоком состоянии, логика обнаружения прерывания может cгенерировать прерывание, если произойдет мгновенный отрицательный импульс . По этой причине, входы прерывания,когда они
не активны, должны находиться в низком состоянии.
4.8. Время Ожидания Прерывания
Время ожидания Прерывания - общая задержка между временем когда генерируется прерывание ( не подтверждается ) и временем,когда устройство начинает выполнять программу обработки прерывания или PTS цикл. Задержка происходит между временем, когда прерывание обнаружено и временем, когда оно подтверждается. Прерывание подтверждается, когда текущая команда заканчивает выполнение. Если прерывание происходит позже чем за четыре времени состояния перед концом текущей команды, оно может быть не подтверждено, пока не закончится следующая команда . Такая дополнительная задержка происходит из-за механизма предвыборки команд. Таким образом, максимальная задержка между порождением прерываний и их подтверждением - четыре времени состояния плюс время выполнения следующей команды.
Когда подтверждается стандартное прерывание, аппаратные средства очищают бит захвата прерывания и побужда-
ют обращение к адресу, содержащемуся в соответствующем векторе прерывания после завершения текущей команды. Процедура, которая получает вектор и побуждает обращение требует 11 тактов. Если стек находится во внешней оперативной памяти, обращение требует дополнительно еще двa такта для перевода шины в третье состояние.
Когда подтверждается PTS прерывание, обращение к PTSCB идет немедленно и начинает выполняться цикл PTS.
Выполнение любого из следующих условий откладывает подтверждение прерывания до окончания выполнения следующей команды :
* Знаковый Префиксный код операции (FE) для двухбайтово-
го,знакового умножения и команд деления
* Прерывание по Невыполняемому Коду Операции
* Прерывание по программной Ловушке
* Любая из следующих защищенных команд: DI, EI, DPTS,
EPTS, POPA, POPF, PUSHA, PUSHF
Время ожидания(для самого длительного случая) состоит из следующих элементов :
* Время для окончания выполнения текущей команды ( 4 такта )
* Если это - защищенная команда,то команда, которая следует за ней, должна выполниться раньше, чем прерывание может быть подтверждено. Поэтому следует добавить еще и время выполнения команды, которая следует за защищенной командой.
* Время выполнения следующей команды. ( Самая длинная команда, NORML,занимает 39 тактов.)
* Только для стандартных прерываний - время взятия вектора и обращения к подпрограмме( 11 тактов для внутреннего стека или 13 для внешнего).
Максимальная задержка для стандартного прерывания - 56 тактов ( 4 +39+ 13 ). Это время задержки не включает время необходимое для выполнения первой команды в программе обработки прерывания.
Максимальная задержка для прерывания PTS - 43 такта ( 4 + 39 ). Это время задержки не включает дополнительную задержку при отключении PTS (PSW.2 = 0 ) или при обслуживании PTS c более высоким приоритетом.