
- •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.2. Описание работы Контроллера Прерывания
Контроллер Прерываний обслуживает прерывания посредством подпрограмм обработки прерываний. Когда аппаратные средства обнаруживают прерывание, он генерирует и выполняет специальный вызов по прерыванию. Он помещает содержимое программного счетчика в стек и затем загружает PC содержимом соответствующего вектора прерывания.
Старшие и младшие Вектора Прерываний в памяти специального назначения содержат адреса программ обработки прерывания. CPU выполняет программу обработки прерывания. После завершения сервисной программы, счетчик программ
перезагружается из стека и выполнение программы продолжается.
4.3. Описание работы Периферийной Станции Транзакций(pts)
Периферийная Станция Транзакции (PTS) - микропрограммный драйвер аппаратного прерывания. Она может использоваться вместо стандартной программы обработки прерывания для каждого из маскируемых прерываний. PTS обслуживает прерывания с меньшим количеством непроизводительных затрат; она не изменяет стек и PSW, что позволяет продолжаться нормальному потоку команд.
По этим причинам, PTS может обслуживать прерывание за время, требуемое для выполнения одной команды.
PTS функционирует в пяти специальных микропрограммных режимах, которые дают возможность PTS выполнять специфические задачи за еще меньшее время, чем использование программ обработки прерываний. См. раздел "PTSCON" где приведено описание PTS режимов.Каждое PTS прерывание требует блока данных, называемых Управляющим Блоком PTS (PTS Control Block - PTSCB). Когда происходит PTS прерывание, приоритетный шифратор выбирает соответствующий вектор и выбирает Управляющий Блок PTS (PTSCB).
PTSCB определяет режим, общее число передач ( если необходимо ),общее число циклов, которые будут выполнены перед тем, как PTS прерывание будет обслужено, и источник
и/или адресат передачи данных ( если необходимо).
Каждое PTS прерывание генерирует один PTS цикл.
На рис.9 приведён алгоритм PTS цикла .
Рис.9 Блок-схема PTS Цикла
4.4. Приоритеты Прерывания
Прерывания по Невыполняемому Коду Операций и Ловушкам(Trap) не различаются по приоритетам; они идут для обслуживания непосредственно в Контроллер Прерываний . Контроллер Прерываний выбирает соответствующую ячейку вектора в памяти специального назначения. Вектор содержит начальный адрес программы обработки прерывания.
Приоритет поступившего прерывания относительно всех других отложенных запросов прерывания определяет Приоритетный шифратор. В табл.1 приведены приоритеты прерываний по умолчанию ( 15 самый высокий и 1 самый низкий ).
Немаскируемые прерывания (NMI) имеют самый высокий приоритет относительно всех располагаемых по приоритетам прерываний. Если NMI отложено, Приоритетный шифратор выбирает его как самый высокий приоритетный запрос, и Контроллер Прерываний выбирает соответствующую ячейку вектора в памяти специального назначения.
Любой запрос PTS прерывания имеет более высокий приоритет чем все маскируемые стандартные запросы прерывания. Если никакой запрос NMI не отложен, Приоритетный шифратор определяет, что самый высокий приоритет имеют PTS запросы и Контроллер Прерывания выбирает соответствующую ячейку вектора PTS в памятиспециального назначения .Вектор содержит начальный адрес соответствующего управляющего блока PTS (PTSCB).
Если никакие NMI или PTS запросы не отложены, Приоритетный шифратор определяет самый высокий приоритет стандартным запросам прерывания, и Контроллер Прерывания выбирает соответствующую ячейку вектора в памяти специального назначения. Вектор содержит начальный адрес соответствующей программы обработки прерывания.