- •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. Особенности работы с квази - двунаправленными портами
3.3.1. Выбор vWindow
Регистр Выбора Окна ( WSR, 14H ) обеспечивает доступ к HWindows и Vwindows. Установите WSR.4, WSR.5, или WSR.6 чтобы выбрать 128-, 64-, или 32-байтовое VWindow соответственно ( см. рис.7 ). Запишите номер VWindow в младшие биты WSR. Например, чтобы выбрать вертикальное окно показанное на рис.6, загрузите 13H в WSR
(LDB WSR,#13H для 8XC196KС).
Бит WSR.7 включает (Enable) или отключает (Disable) протокол захвата шины.
WSR
Рис.7 Установка битов в Регистре Выбора Окна
3.3.2. Работа с вертикальными окнами и Способы Адресации
В случае, когда разрешена работа с вертикальным окном то:
- Прямая регистровая команда, которая использует адрес внутри окна Нижнего Регистрового Файла, фактически обращается к VWindow в Верхнем Регистровом Файле.
- Косвенная или индекная команда, которая использует или адрес внутри окна Нижнего Регистрового Файла или VWindow обращается к определенной ячейке в памяти.
Примечание
Косвенные операции сдвига не будут правильно выполняться если WSR = X100 0000.
Следующий код иллюстрирует различие между прямой регистровой и индексной адресацией при использовании работы с вертикальными окнами.
PUSHA ; Помещает WSR в стек
LDB WSR, #13H ;Выбрать VWindow 3, 128-байтовый блок
;Следующая команда использует прямую регистровую адресацию
ADD 40H, 80H ; Mem_word ( 40H ) < - mem_word (40H)+ ; + < - mem_word (180H)
; Следующие две команды используют косвенный адрес
ADD 40H, 80H[0 ]; Mem_word(40H) < - mem_word(40H) +
; + < - mem_word(80H + 0)
ADD 40H, 180H[0 ]; Mem_word (40H) < - mem_word (40H)+
; + < - mem_word(180H +0)
POPA ; Перезагружает предыдущее содержимое WSR
4. Прерывания
4.1 Обработка Прерывания
Микроконтроллер должен обеспечивать управление прибором или устройством в реальном масштабе времени . Этому способствует схема управления прерываниями внутри микроконтроллера. Когда событие генерирует прерывание,CPU обслуживает его перед выполнением следующей команды.
Внутреннее периферийное устройство, внешний сигнал, или команда могут запрашивать прерывания. В самом простом случае, 8XC196KC получает запрос, выполняет обслуживание, и возвращается к задаче, которая прервалась.
8XC196KC обеспечивает два варианта обслуживания прерывания:
1) программы обработки программного прерывания через Кон- троллер Прерывания
2) микропрограммы обработки аппаратного прерывания через Периферийную Станцию Транзакции (Peripheral Transaction Server - PTS).
Вы можете выбрать любой вариант обслуживания для любого из маскируемых прерываний. ( См. "Выбор - PTS или Стандартное Обслуживание Прерываний". ) Немаскируемые
прерывания ( NMI, Ловушка Программного Обеспечения(TRAP), и Неcуществующий Код Операции(Unimplemented Opcode) ) всегда обслуживаются программами обработки прерывания.
На рис.8 представлена последовательность обработки прерываний.
Transition Detected- поступление прерывания
Set Int.Pending Bit- установка бита захвата прерывания
NMI Pending Bit - бит захвата немаскируемого прерывания
Int.Mask Bit - бит маскирования прерывания
PTS Select Bit - бит выбора PTS
Global Int/PTS Enable - глобальное разрешение прерываний
(Interrupt) или PTS
Priority Encoder - приоритетный шифратор
NMI - немаскируемое прерывание (Non-Maskable Interrupt)
Any PTS Request - любой запрос PTS прерывания
Highest Priority - наивысший приоритет
Vector Table - таблица векторов
Interrupt Service Routine - подпрограмма обслуживания пре рывания; PTS Control Block - блок управления PTS
Рис.8 Блок-схема обработки стандартных и PTS Прерываний микроконтроллером 8XC196KC