
- •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. Особенности работы с квази - двунаправленными портами
ВВЕДЕНИЕ
В последнее время всё большее распространение в прикладных системах получили однокристальные микроконтроллеры.
Они отличаются от классических микропроцессоров тем, что на кристалле имеют память и периферийные устройства (последовательный канал, таймеры, аналого-цифровой преобразователь, широтно-импульсный модулятор и другие ).
На российский рынок цифровых интегральных схем начали поступать 16-разрядные однокристальные микроЭВМ (микроконтроллеры) семейства MCS-96 фирмы Intel.
Микроконтроллеры этого семейства предназначены для использования в управляющих и контрольно-измерительных системах и приборах различного назначения в качестве встраиваемых микропроцессорных устройств.
Отечественные разработчики аппаратуры со встроенными микроконтроллерами знакомы с некоторыми типами 8-разрядных однокристальных микроЭВМ семейств MCS-48 и MCS-51 фирмы Intel по их аналогам, выпускаемых в странах СНГ (серии 1816, 1830, 1835, 1850 ).
Основными достоинствами микроконтроллеров семейства MCS-96, отличающими их от микроконтроллеров других семейств являются:
- расширенная разрядная сетка, позволяющая выполнять операции с данными, представленными в формате “байт” (8 битов), и в формате “слово”(16 битов), а некоторые операции в формате “двойное слово” (32 бита);
- улучшенная система операций, содержащая операции умножения и деления для чисел со знаком и без знака при разных форматах представления данных, операции сдвига на заданное число разрядов, операции групповой пересылки и некоторые другие новые, сложные операции;
- совершенная система команд, имеющая в своём составе двухадресные команды арифметических и логических операций с различными способами адресации, что позволяет создавать компактные и быстродействующие программы;
- многообразие расположенных на кристалле периферийных устройств, выполняющих функции ввода и вывода данных, событий и аналоговых сигналов, обслуживания запросов прерывания без прерывания текущей программы, контроля правильности функционирования микроконтроллера, что позволяет разрабатывать малогабаритные и надёжные устройства с минимальным количеством дополнительных микросхем;
- наличие большого числа программных и программно-аппаратных средств поддержки разработки аппраратуры на базе микроконтроллеров семейства MCS-96, и в этом числе разрабатываемая в центре Микропроцессорных технологий СПбГЭТУ, (где была осуществлена настоящая работа) Интегрированная обучающая среда “Встроенные микропроцессорные системы”
Фирма Intel продолжает разработку новых моделей микроконтроллеров семейства MCS-96, отличающихся более высоким быстродействием, возможностью использования памяти большего объёма и рядом других характеристик при сохранении структурной и программной совместимости с ранее выпущенными моделями.
Универсальность, производительность и постоянное снижение цен обеспечивает контроллерам Intel популярность в мире встраиваемых систем.
1.Функциональное описание микроконтроллера i80196kc
1.1. Обзор архитектуры
На рис.1 приведена структурная схема микроконтроллера 8XC196KC. Устройство имеет 16-разрядный центральный процессор (ЦП,CPU), который соединяется и с контроллером прерывания (Interrupt Controller) и c контроллером памяти (Memory Controller) через шину центрального процессора. Эта шина соединяет ЦП с внутренними периферийными модулями. Кроме того, 8 бит шины центрального процессора передают байты команды из контроллера памяти в регистр команды в регистровом арифметико-логическом устройстве(РАЛУ,RALU).
Основные параметры микроконтроллера 8XC196KC следующие:
- адресуемое пространство памяти 64 Кб
- внутренняя оперативная память(ОЗУ) 488байт (данные)
- внутреннее постоянное запоминающее устройство(ПЗУ) 16 Кб
- максимальная тактовая частота 20 MГц
1.1.1. Ядро 80xc196kc
Ядро 8XC196KC (рис.2) состоит из центрального процессора(ЦПУ;CPU), контроллера памяти (Memory Controller) и контроллера прерываний (Interrupt Controller). Центральное процессорное устройство содержит регистровое арифметико-логическое устройство (РАЛУ;RALU) и файловый регистр (Register File). ЦПУ реализует микропрограммы операций, используя байты, слова, двойные слова Команды центрального процессора поступают из четырех-байтовой очереди команд (4-Byte Queue), расположенной в контроллере памяти, в регистр команды РАЛУ (Instruction Register) . Дешифратор команд (Microcode Engine) дешифрирует команды и затем генерирует управляющие сигналы для осуществления действий, заданных командой.
1.1.1.1. Файловый регистр (Register File)
Файловый регистр разделен на верхний и нижний файл. Нижний файловый регистр содержит 24 байта для регистров специальных функций (Special Function Registers;SFR CPU) и 232 байта для регистров общего назначения ОЗУ(Register RAM). Верхний содержит только регистры общего назначения ОЗУ (256 байтов в 8XC196KC). Регистры общего назначения могут рассматриваться как байты, слова, или двойные слова. РАЛУ обращается к верхнему и нижнему файловому регистру по-разному. Нижний файловый регистр всегда непосредственно доступен через режим прямой адресации. Верхний файловый регистр доступен через режим прямой адресации только когда разрешена работа с вертикальным окном. Работа с вертикальным окном - методика, которая отображает блоки верхнего файловый регистр в окно в нижнем файловом регистр.
1.1.1.2. Регистровое арифметико-логическое устройство (ралу)
РАЛУ содержит 17 битное арифметико-логическое устройство (АЛУ,ALU), слово состояния программы (Program Status Word;PSW), главный программный счетчик (Master Program Counter), регистр команды (Instruction Register), дешифратор команд (Microcode Engine), регистр констант (Constants), 3-битный регистр выбора константы (3-Bit Select Register), счетчик циклов (6-Bit Loop Counter), и три временных регистра: старшего слова (Upper Word Register), младшего слова (Lower Word Register) и регистр второго операнда (2nd Operand Register). Все регистры, за исключением 3-битного регистра выбора, являются или 16 или 17 битовыми ( 16 битов плюс расширение знака ). Некоторые из этих регистров могут уменьшать рабочую нагрузку АЛУ, выполняя простые операции.
АЛУ ускоряет вычисления, сохраняя константы (0,1,2) в регистре констант, поэтому они легко доступны и эффективно используются при дополнении, приращении, уменьшении байтов или слов. PSW содержит:
- бит psw.1 который глобально разрешает или запрещает обслуживание всех маскируемых прерываний,
- бит psw.2, который разрешает или запрещает использование периферийной станции транзакции (PTS),
- шесть булевых флажков которые отражают состояние программы пользователя.
Программный счетчик (Master PC) содержит адрес следующей команды и имеет встроенный формирователь адреса команды, который автоматически загружает адрес следующей выполняемой команды. Если переход, прерывание, вызов подпрограммы или возврат из подпрограммы изменяют последовательность адресов, АЛУ загружает соответствующий адрес в PC.
Регистры старшего и младшего слова используются совместно для 32-битных команд и как временные регистры для большого количества команд. Так как они имеют их собственную логику сдвига, РАЛУ также использует их для операций, которые требуют логических сдвигов, ( например, нормализация, умножение, и деление ). Регистр младщего слова используется только когда сдвигаются двойные слова.Регистр старшего слова используется при любом типе сдвига. Циклические сдвиги считаются 6-битным счетчиком циклов. В регистре второго операнда хранится второй операнд при выполнении команд с двумя операндами. Например, он хранит множитель, во время выполнения умножения или делитель во время выполнения деления.