Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микроконтроллеры семейства MCS-196.DOC
Скачиваний:
67
Добавлен:
02.05.2014
Размер:
1.09 Mб
Скачать

1. Цель работы

Изучение архитектуры, системы команд, принципов программирования MCS-196 и работа с компилятором-отладчиком PDS-96.

2. Теоретические сведения

2.1. Архитектура семейства mcs-196

На рис.1 изображена обобщенная структурная схема микроконтрорллеров семейства MCS –196. Рассмотрим назначение и принцип действия основных функциональных узлов микроконтроллера..

2.1.1 Центральный процессор (cpu)

Основные компоненты CPU MCS-196 - регистровый файл (Register File) и регистровое арифметико-логическое устройство (Register/Arithmetic Logic Unit - RALU). Регистровый файл- это адресуемое пространство регистров процессора. Ячейки от 00h до 17h - это управляющие регистры ввода-вывода или регистры cпециальных функций (Special Function Registers - SFR). Ячейки 18h и 19h содержат указатель стека, они могут использоваться как обычная RAM-память, когда не выполняются стековые операции.

Остальные байты регистрового файла служат как обычная RAM-память, доступная как байт, слово или как двойное слово. CPU выполняет вычисления в RALU. RALU содержит 17-битное арифметико-логическое устройство (ALU), слово состояния программы (PSW), счетчик команд (PC), счетчик циклов и три временных регистра. RALU работает напрямую с регистровым файлом, таким образом устраняются пересылки через аккумулятор и обеспечивается прямое управление операциями ввода/вывода через SFR.

Рисунок 1 -

2.1.2. Периферийные устройства 8xc196kc и 8xc196kd

Стандартные I/O порты. 8ХС196КC/KD имеют пять 8-битных I/O портов. Порт 0 - входной, он же порт аналоговых входов для A/D-преобразователя. Порт 1 - квазидвунаправленный, он разделяет выводы с двумя выходами PWM. Порт 2 содержит три типа линий - квазидвунаправленные, входные и выходные. Другие функции 8ХС196КC/KD используют входные и выходные линии совместно с Портом 2. Порты 3 и 4 являются двунаправленными портами с открытым стоком, они могут использоваться как шина адрес/данные.

Таймеры. 8ХС196КС/KD имеет два 16-битных таймера: Таймер1 и Таймер2. При внутренней синхронизации значение Таймера1 увеличивается каждые 8 тактов процессора (такт - два периода тактового генератора ). При внутренней синхронизации Таймер2 может наращиваться на каждом 1 или 8 такте. При внешней синхронизации значение Таймера2 наращивается или уменьшается при каждом положительном или отрицательном перепаде. Любой внутренний или внешний источник может сбросить Таймер2. Таймер1 может сформировать прерывание при переходе границы 0FFFFh/0000h. Таймер2 может сформировать прерывание при переходе границ 0FFFFh/0000h или 7FFFh/8000h. 8ХС196КC/KD также позволяет использовать таймеры для задания скорости передачи информации и временного контроля WDT (watchdog timer). WDT - это отдельный внутренний таймер для сброса системы в случае, если программное обеспечение не сможет нормально функционировать.

Устройства высокоскоростного ввода (HSI). HSI 8ХС196КC/KD может записывать время внешних событий с разрешающей способностью в 9 тактов. HSI может следить за четырьмя независимыми линиями HSI и определять значение Таймера1, когда произойдет событие. Четыре типа событий могут инициализировать захват: нарастающий фронт, спад сигнала, нарастание и спад или каждый восьмой нарастающий фронт. HSI может хранить 8 элементов (значений Таймера1), 7 в 7-уровневой очереди FIFO и 1 в регистре хранения HSI. Чтение регистра хранения HSI не перегружает значения, размещенные в FIFO ранее. Устройства HSI могут сформировать прерывание при загрузке регистра хранения HSI, или когда загружаемое значение является четвертым или шестым элементом FIFO.

Высокоскоростное устройство вывода (HSO). HSO 8ХС196КC/KD может инициализировать события в определенные моменты, базирующиеся на значениях Таймера1 или Таймера2. Эти программируемые события заключаются в запуске A/D- преобразования, сбросе Таймера2, формировании до четырех программных временных задержек и установке или очистке одной или нескольких линий из шести выходных линий HSO. HSO хранит ожидаемые события и соответствующее время в файле памяти Content Addressable Memory (CAM). Этот файл хранит до восьми команд. Каждая команда определяет время действия, "природу" действия, имеет ли место прерывание, идет ссылка на Таймер1 или Таймер2. Каждый 8 такт HSO сравнивает значение ячеек CAM на совпадение с текущим временем. HSO инициализирует определенные события при совпадении времени. Команда стирается из CAM после выполнения или остается в CAM как запомненная точка входа CAM, тогда команда будет постоянно выполняться при совпадении значения времени для этой точки со значением текущего времени в соответствующем Таймере. Запомненнная точка входа полезна в применениях, требующих периодических или повторяющихся событий, таких как повторяющаяся ШИМ последовательность.

Последовательный порт имеет один синхронный режим (Mode0) и три асинхронных (1, 2 и 3). Асинхронные режимы полностью дуплексные, т.е. они могут передавать и принимать данные одновременно. Приемник на 196/KD буферизован так, что прием второго байта может начаться до считывания первого. Передатчик также дважды буферизован. Наиболее общее использование синхронного Режима 0 – расширение возможностей устройств ввода-вывода 8ХC196KC/KD, использующих регистры сдвигов.

Режим 1 - стандартный асинхронный режим, используемый для нормальных последовательных коммуникаций. Структура данных для режима 1 состоит из 10 бит: стартовый, 8 бит данных (LSB первый) и стоповый бит. Если передача бита четности разрешена (PEN=1), бит дополнения до четности посылается вместо восьмого бита данных.

Режимы 2 и 3 - девятибитные режимы общего пользования для межпроцессорных коммуникаций. Структура данных, используемых в этих режимах, состоит из 11 бит: стартовый, 9 бит данных (LSB первый) и стоповый бит. Устройства, работающие в режиме 2, будут вырабатывать прерывание при приеме только тогда, когда девятый информационный бит будет установлен. Устройства, работающие в режиме 3, всегда будут вырабатывать прерывание при приеме. Режим 3 позволяет передавать 8 информационных бит плюс бит дополнения до четности.

Широтно-импульсный модулятор (PWM) устройства 8XC196KC/KD имеет три выхода PWM. Скважность импульса на выходе формирователя является переменной, импульсы повторяются каждые 256 или 512 тактов. Различные типы моторов требуют PWM - формирователя импульсов для наиболее эффективной работы. Кроме того, фильтрация этой ШИМ последовательности будет создавать постоянный уровень, который измененяется с изменением скважности.

A/D-преобразователь конвертирует аналоговый вход в цифровой эквивалент. Разрешающая способность 8 или 10 бит с программируемыми временами фиксации и преобразования. Основные компоненты A/D -преобразователя: фиксирующий и хранящий конденсатор, 8-канальный мультиплексор и 8- или 10-битный аналогово/цифровой преобразователь поразрядного взвешивания. Преобразователь может начать преобразование немедленно, или HSO может инициализировать преобразование в запрограммированное время. При завершении каждой конверсии преобразователь вырабатывает прерывание. 8XC196KC/KD имеет отдельные выводы питания Vref и ANGND, что исключает влияние помех по Vcc- или Vss - линиям на A/D преобразование.

Прерывания. Здесь 28 источников прерывания и 16 векторов прерывания, а также 2 дополнительных вектора прерывания Software Trap (Пошаговое выполнение программ) и Unimplemented Opcodes (Неопознанные коды операций), используемых в системах отладки фирмы Intel или платах-прототипах. Когда контроллер прерывания определит одно из шестнадцати прерываний, он устанавливает соответствующий бит в один из двух регистров ожидания прерываний. Отдельные прерывания разрешаются либо запрещаются установкой или очисткой бит в регистре маски прерываний. Когда контроллер прерывания производит обработку прерывания, он делает вызов программы обслуживания прерываний (ISR). Соответствующий вектор прерывания содержит адрес ISR. Затем контроллер прерывания очищает соответствующий бит ожидания.

Сервер периферийного обмена (PTS) - микропрограммный процессор аппаратной обработки прерывания. Он реагирует на прерывание фиксированной последовательностью действий. Эти действия состоят из передачи данных, запуска A/D-преобразования, чтения HSI FIFO и загрузки событий HSO. PTS выполняет эти задачи намного быстрее, чем это произойдет при использовании программ, обслуживающих прерывание. PTS может обслуживать все прерывания, исключая NMI, пошаговое прерывание и прерывания по неопознанным кодам операций. Каждое прерывание, управляемое PTS, требует блока данных, называемого управляющим блоком PTS (PTSCB). Kаждый PTSCB требует 8 байт данных в регистре RAM. PTSCB определяет: тип PTS, номер отклика PTS (если необходимо), источник для данных и приемник (если необходимо). Циклы PTS имеют более высокий приоритет, нежели прерывания и могут временно приостанавливать программы обслуживания прерываний.