- •Конспект лекций оглавление
- •Общие с ведения о микроконтроллерах
- •Обобщенная структурная схема микроконтроллера
- •Система прерываний
- •Работа системы прерываний
- •Стек данных
- •Микроконтроллеры Intel, Motorola и Microchip
- •Краткое описание особенностей микроконтроллеров
- •Работа сср в режиме шим
- •Примеры контроллеров 18еххх, 16еххх. Характеристики 16 и 18 серии.
- •Периферийные модули
- •Основные характеристики микроконтроллеров
- •Рекомендации по схематическому решению для портов (16 серия)
- •Структура памяти
- •Банк памяти быстрого доступа
- •Регистр выбора банка памяти данных bsr (18 серия)
- •Косвенная адресация, регистра indf и fsr
- •Операция косвенной адресации
- •Механизм косвенной адресации
- •Работа с памятью рiс16fххх
- •Чтение из еерrом-памяти
- •Запись еерrом данных
- •Управление прерываниями Серия рiс16ххх
- •Система прерывании рiс18fхх2
- •Обработка прерываний
- •Контроллеры pic16f87x
- •Карта памяти микроконтроллеров:
- •Структурная схема микроконтроллеров pic16f87x:
- •Служебные регистр:
- •Контроллеры 18 серии
- •Карта памяти микроконтроллеров рiс18f242/442:
- •Регистры конфигурации контроллера:
- •Аппаратный умножитель 8х8
- •Модуль ацп
- •Конфигурация выводов модуля ацп (рiс16f873/76)
- •Источник опорного напряжения
- •Параллельные порты ввода/вывода
- •Последовательный синхронный порт (мssр)
- •Временные диаграммы работы mssp
- •Пример соединения двух мк через spi
- •Режим i2c последовательного порта mssp.
- •Асинхронно-синхронный последовательный порт (usart)
- •Временные диаграммы работы usart в асинхронном режиме
- •Ведомый параллельный порт (psp)
- •Временные диаграммы порта psp
- •Способы кодирования данных
- •Универсальная последовательная шина (usb) Краткий обзор шины
- •Протоколы передачи
- •Питание
- •Оконечные точки
- •Нумерация устройств
- •Описатели
- •Классы устройств / Драйверы класса
- •Микроконтроллеры с модулем usb
- •Приемопередатчик
- •Регистры управления и состояния модуля usb
- •Регистр флагов прерываний модуля usb (uir)
- •Регистр разрешения прерываний модуля usb (uie)
- •Регистр флагов ошибок модуля usb (ueir)
- •Регистр разрешения прерывания по ошибкам модуля usb (ueie)
- •Регистр состояния модуля usb (ustat)
- •Регистр управления модулем usb (uctrl)
- •Регистр адреса usb (uaddr)
- •Регистр состояния программного обеспечения usb
- •Регистры управления оконечными точками (uepn)
- •Буферы оконечных точек
- •Программирование модуля usb
- •Программное обеспечение usb
- •Основные функции и подпрограммы
- •Ресурсы процессора
- •Уровни стека
- •Память программ
- •Память данных
- •Буферные регистры
- •Выбор страниц/Выбор банков
- •Интегрирование подпрограмм usb в программу
Общие с ведения о микроконтроллерах
Микроконтроллер - микропроцессорное ядро, память и интерфейсные модули, выполненные в одном кристалле.
Обобщенная структурная схема микроконтроллера
Объем адресуемой памяти определяется разрядностью шины адреса.
Разрядность шины данных памяти программ совпадает с разрядностью команды CPU. Разрядность шины данных памяти данных совпадает с разрядностью данных CPU.
Система прерываний
Служит для прерывания выполнения основной программы при появлении определенного события, связанного с работой периферийных устройств.
События (источники прерываний):
- таймера (переполнение или антипереполнение, момент равенства содержимого таймера/счетчика и регистра сравнения, момент захвата внешнего импульса);
- последовательных портов (окончание приема или записи байта, неправильный формат кадра, переполнение буфера приемника или передатчика);
- АЦП (готовности данных);
- ЕЕРRОМ (момент окончания операции);
- параллельных портов (по фронту, по спаду, по уровню импульса на выводе);
- компаратора (момент равенства напряжений, переход от отрицательной разности к положительной и наоборот);
- при сбросе микроконтроллера, при обнаружении падения напряжения питания.
Для каждого прерывания может быть собственная подпрограмма - обработчик прерывания. Каждому источнику прерывания соответствует адрес в памяти программ - вектор прерывания. Вектора расположены в определенном порядке и образуют таблицу прерываний.
Порядок следования векторов прерываний задает порядок их выполнения (приоритет) при одновременном появлении нескольких событий. Этот порядок соответствует приоритетам источников прерываний по умолчанию.
Существуют двухуровневая (высший и низший) и многоуровневая системы приоритетов. Приоритет по умолчанию может быть изменен установкой соответствующих битов в SFR – регистре приоритетов.
Прерывания программы от источников прерываний могут быть разрешены или запрещены установкой или сбросом соответствующих битов в SFR - регистре разрешения прерываний. Запрещение прерываний называется маскированием.
Работа системы прерываний
1. Событие от источника прерывания сопровождается установкой определенного бита в SFR - регистре флагов прерываний. Этот факт называется запросом прерывания.
2. Если запрашиваемое прерывание запрошено (замаскировало), то никаких изменений в работе программы не происходит.
3. Если разрешено, то выполнение основной программы приостанавливается адрес следующей команды (содержимое счетчика команд+1) сохраняется в стеке, в счетчик команд загружается требуемый вектор прерывания (происходит переход на адрес = вектору прерывания). По адресу = вектору прерывания может быть расположена начальный адрес обработчика прерывании (1-2 команды) или команда перехода на него (много команд).
4. Выполняется подпрограмма обработчика прерываний.
5. Последняя команда обработчика прерывания: возврат из прерывания.
6. По команде «возврат их прерывания» происходит загрузка из стека адреса сохраненной перед прерыванием основной программы команды. Продолжается выполнение основной программы.
7. Если в процессе выполнения обработчика прерываний появляется запрос от источника прерывания с более высоким приоритетом текущий обработчик прерывается описанным выше способом на выполнение высокоприоритетного обработчика прерываний. Запрос от низкоприоритетного источника откладывается до завершения обработчика текущего (высокоприоритетного) прерывания.
Схема обработки прерывания