
- •Конспект лекций оглавление
- •Общие с ведения о микроконтроллерах
- •Обобщенная структурная схема микроконтроллера
- •Система прерываний
- •Работа системы прерываний
- •Стек данных
- •Микроконтроллеры 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 в программу
Ведомый параллельный порт (psp)
Регистр TRISE
IBF |
OBF |
IBOV |
PSPMODE |
- |
BIT2 |
BIT1 |
BIT0 |
Бит 7 |
|
|
|
|
|
|
Бит 0 |
IBF: статус приема, 1/0 - байт принят/нет
OBF: статус передачи, 1/0 – байт не прочитан/прочитан
IBOV: флаг переполнения буфера, 1/0 – буфер полон/пуст
PSPMODE: включение режима PSP для выводов порта
BIT2:BIT0: обычное назначения для определения направления ввода/вывода
Структурная схема порта PSP
Временные диаграммы порта psp
Кодирование
Обмен данными внутри микроконтроллера выполнение операций осуществляется в цифровом виде. Данные кодируются в виде слова, в каждой позиции которого стоит цифра. Такой код называется позиционным. Количество позиций - разрядность числа. Набор цифр, из которых может быть составлено слово образует алфавит. Алфавит состоит т набора цифр от 0 до р-1. Каждой k-ой позиции слова соответствует вес = рk, где р - основание цифрового представления числа. Запись вида: am-1am-2…a1a0 по основанию р - соответствует числу N=a0p0 + a1p1 + а2р2 +...+ аm-1pm-1, где аk = 0.1,...,(р-1) - обозначает цифру в k-ой позиции, m - разрядность числа. В частности, если р=2, то получаем двоичный код. а если р=16 - шестнадцатеричный.
Пример записи чисел в двоичном и шестнадцатеричном коде:
Десятичное число (DEC) |
Двоичное число (BIN) |
Шестнадцатеричное число (HEX) |
0 |
0000 |
0 |
1 |
0001 |
1 |
2 |
0010 |
2 |
3 |
0011 |
3 |
4 |
0100 |
4 |
5 |
0101 |
5 |
6 |
0110 |
6 |
7 |
0111 |
7 |
8 |
1000 |
8 |
9 |
1001 |
9 |
10 |
1010 |
A |
11 |
1011 |
B |
12 |
1100 |
C |
13 |
1101 |
D |
14 |
1110 |
E |
15 |
1111 |
F |
16 |
0001 000 |
10 |
31 |
0001 1111 |
1F |
32 |
0010 0000 |
20 |
Способы кодирования данных
Существуют прямой код, обратный код, дополнительный код для кодирования данных.
Прямой код. Старший бит - знак числа (1 – отрицательное, 0 - положительное), младшие 7 бит - модуль числа в двоичном коде. Недостатки: два представления нуля +0 и -0: трудности в операциях с числами, имеющими разный знак.
Обратный код. Старший бит - знак числа (1 – отрицательно, 0 – положительно), младшие 7 бит - модуль числа в ин
версном двоичном коде (0 вместо 1 и 1 вместо 0). Недостатки: два представления нуля +0 и -0; трудности в операциях с числами, имеющими разный знак.
Дополнительный код. Старший бит - знак числа (1 - отрицательное, 0 - положительное), младшие 7 бит - модуль числа в инверсном двоичном коде (0 вместо 1 и 1 вместо 0) плюс 1 в младший разряд. Достоинства: одно представление нуля; вычитание сводится к сложению; отрицательный результат операции представляется в дополнительном коде. Преобразование дополнительный код в прямой код и обратно; не знаковые биты в обратный код - 1 в младший разряд.
Пример 4-х уровневого конвейера команд
Если операнд следующей команды является результатом предыдущей команды (зависимые команды), то конвейер для синхронизации вычислений должен сделать холостые циклы (без получения результата). Для сокращения простоев конвейера следует распараллеливать вычисления. Часто используемые функции контроля могут быть реализованы в микроконтроллере аппаратно с помощью периферийных устройств. Они «разгружают» CPU.
Периферийные устройства соединяются между собой и с CPU установкой определенных битов в специальных ячейках памяти данных микроконтроллера. Эти ячейки называются регистрами специальных функций (SFR). При этом говорят, что они «отображены в адресное пространство памяти данных».
SFR - также служат для установки режимов работы периферийных устройств и временного хранения данных.