- •1. Однокристальные микро-эвм (омэвм) семейства mcs51. Обобщённая структурная схема микроЭвм. Основные характеристики омэвм.
- •2. Структурная схема микро-эвм семейства mcs51 (к1816ве51). Операционный узел. Формат регистра psw. Структурная схема микроконтроллера
- •Операционный узел
- •3. Структурная схема микро-эвм семейства mcs51 (к1816ве51). Узел внутренней памяти. Состав регистров специального назначения.
- •4. Организация адресного пространства микро-эвм семейства mcs51. Узел внутренней памяти
- •5. Порты микро-эвм семейства mcs51 (к1816ве51). Назначение портов. Функциональная схема порта р0. Узел управления и синхронизации
- •Узел сопряжения с внешними устройствами
- •6. Способы адресации микро-эвм семейства mcs51 (к1816ве51).
- •Cпособы адресации
- •7. Система команд микро-эвм семейства mcs51 (к1816ве51). Группа команд пересылки данных.
- •8. Система команд микро-эвм семейства mcs51 (к1816ве51). Группа команд обработки данных.
- •9. Система команд микро-эвм семейства mcs51 (к1816ве51). Группа команд управления.
- •11. Временная диаграмма типового машинного цикла. Примеры временных диаграмм для выполнения команд за один и за два машинных цикла.
- •А) Считывание команд из внутр. Памяти программ (сверху до пунктира).
- •Б) Ниже пунктира – внешняя память данных. Данные читаются во 2ом мц.
- •1. Если чтение из внутр. Пп, то psen не вырабатывается.
- •12. Таймеры/счётчики 0 и 1 микроконтроллера семейства mcs51 (омэвм51). Режимы работы, программирование таймера/счётчика.
- •13. Таймер/счётчик 2. Режимы работы.
- •14. Организация прерываний в омэвм51.
- •Обработка внутренних прерываний
- •15. Организация последовательного ввода/вывода микроконтроллера семейства mcs51 (омэвм51). Режимы работы uart. Расчет скорости передачи данных для асинхронного режима.
- •Формирование p для передатчика.
- •Примеры программирования последовательного ввода/вывода.
- •16. Последовательный интерфейс i2c.
- •Случай чтения байта из памяти:
- •Временная диаграмма
- •17. Последовательный интерфейс spi (Serial Periferial Interface).
- •18. Последовательный интерфейс can.
- •19. Последовательный интерфейс One wire (MicoLine).
- •Структурная схема шины usb
- •Хост контроллер – на шине только один. Функция – периферийное устройство. В хабе имеется порт (точка подключения). Корневой хаб входит в состав хоста.
- •21. Обзор современных микроконтроллеров семейства mcs51. Особенности микроконтроллеров фирм Philips, Atmel и др.
- •22. Микроконтроллеры mсs 251, 151. Микроконтроллер 251.
- •23. События. Примеры захвата событий. Массив программируемых счетчиков (pca). Режимы захвата, программируемого таймера, скоростного ввода вывода, генератора шим.
- •Краткий обзор pic 16c 6x/7x/8x
- •3. Управляющие команды
- •4. Команды пересылки данных
- •25. Микроконтроллеры с risc архитектурой (семейство avr). Организация памяти. Особенность портов ввода вывода. Обзор системы команд. Пример программы с использованием команд микроконтроллера avr.
- •26. Цифровая обработка сигналов (цос). Примеры задач цос. Сигнальные микроконтроллеры фирмы Texas Instruments (tms320). Сигнальные процессоры
- •Рассмотрим tms 320
- •Организация памяти
- •Инструментальные ср-ва разработки и отладки мпс
Краткий обзор pic 16c 6x/7x/8x
Режимы тактового генератора.
Внутренний тактовый генератор МКр может работать в одном из 8 режимов.
LP – низкочастотный кварцевый резонатор (рекомендуется для пониженного потребления).
XT – стандартный кварцевый резонатор.
HS – высокочастотный резонатор.
RC – генератор с внешним резистором.
EXTRC – внешний резистор, конденсатор.
EXTRC внешний CLK OUT.
INTRC- внутренний резистор конденсатор (const f= 4 МГц).
INTRC 4 CLK OUT.
Контроллер полностью выполнен на статических элементах. Все режимы программируются. Режим 6 устанавливается по умолчанию для «чистого» микроконтроллера (МКр).
Особенности сброса.
POR – сброс по включению питания.
MCLR – сброс по сигналу в нормальном режиме работы.
MCLR – сброс по сигналу в режиме SLEEP.
WDT - Сброс по прерыванию WDT в нормальном режиме.
BOR - сброс по снижению питания.
PER - Сброс по ошибке приоритета (четности).
Используется аппаратный стек –отдельная память; доступа со стороны use’ra НЕТ; его глубина всего 8 байтов; указателя по переполнению НЕТ .
Организация памяти (внутренней).
Контроллер имеет Гарвардскую архитектуру, т.е. раздельные память программ и память данных. Подключение внешней памяти данных по схеме, аналогичной используемой в микроконтроллерах семейства MCS51, в контроллерах семейства PIC не предусмотрено.
Память данных, называемая в фирменной документации файлом регистров, имеет размер 256 байт (8-битных ячеек). Часть регистров этого файла являются регистрами специального назначения, часть – предоставлены для размещения данных пользователя. Дополнительно имеется регистр аккумулятора W (working register), не входящий в адресное пространство памяти данных. Все ячейки файла регистров (но не аккумулятор!) допускают побитовую адресацию. Файл регистров разбит на два банка по 128 байт. Память делится на страницы по 2К ячеек, количество страниц зависит от модификации контроллера (т.е. от установленной на нем памяти).
В микроконтроллере имеется программно-недоступный стек на 8 ячеек, предназначенный для сохранения счетчика команд. Стек позволяет осуществлять вызовы процедур и переходы к обработчикам прерываний, однако в системе команд отсутствуют команды, аналогичные PUSH и POP, и нет возможности прочитать или модифицировать содержимое стека в явном виде. Стек имеет кольцевую структуру, то есть при переполнении стека ошибка не возникает, но происходит запись поверх значений, лежащих на дне стека.
Для организации косвенной адресации к файлу регистров используется псевдорегистр INDF (по адресу 00). При обращении к INDF производится реальное обращение по адресу, содержащемуся в регистре FSR.
00 |
1f |
9f |
80 |
Вся помещается в 4 байта; Размер банка 128 байт. Получилось 32 ячейки = 64 регистра. При смене банка некоторые регистры дублируются |
|
7F |
|
|
FF |
(например STATUS-аналог PSW). От 00 до 1F и от 80 до 9F SFR. (вроде регистры спец функций). |
|
|
‘0’ |
‘1’ |
|
- банки (минимум - 2 штуки, может быть и больше). |
Обработка прерываний.
Источников прерываний может быть несколько, но вектор прерывания только один, располагается по адресу 04h. Поэтому, если нужно обрабатывать прерывания от нескольких источников, то определение источника прерывания делается программно.
Источники прерываний: 1)таймеры, 2) изменение уровня на входах RB4:RB7 порта B, 3) АЦП, 4)внешнее прерывание INT, 5) и еще десяток источников, в зависимости от того, какая еще начинка есть внутри конкретного контроллера.
Порты ввода/вывода.
Пример для контроллера PIC16F74/PIC16C74. Для других контроллеров конфиг портов может быть другим, но принципиально все примерно так.
Контроллер имеет 5 портов ввода-вывода:
- PORTA - 6-разрядный, 5 из 6 выводов могут использоваться как входы АЦП;
- PORTB - 8-разрядный;
- PORTC - 8-разрядный, выводы порта могут использоваться как входы/выходы различных устройств, например – имеющегося на борту контроллера асинхронного приемопередатчика (UART), устройства ШИМ и т.д.;
- PORTD - 8-разрядный;
- PORTE - 3-разрядный, все 3 линии порта могут использоваться как входы АЦП.
Каждый вывод любого из портов может быть независимо от других сконфигурирован для работы в режиме входа или выхода. Каждому порту соответствует регистр TRIS, например для порта В это будет регистр TRISB. Разряды этого регистра соответствуют выводам порта. Если необходимо сконфигурировать вывод как вход, то в соответствующем разряде регистра TRIS ставится 1, как выход – ставится 0. В режиме входа сопротивление вывода велико, и его можно рассматривать как вывод, находящийся в третьем (высокоимпедансном) состоянии.
Система команд.
Яркой особенностью системы команд является то, что в ней НЕТ в принципе команд условного перехода. Их заменяют команды условного пропуска: если выполняется какое то условие, то следующая команда не исполняется, а выполняется следующая за ней. Комбинируя условный пропуск и команды безусловного перехода GOTO можно делать конструкции, эквивалентные командам условного перехода в ассемблерах CISC. Правда, это требует определенной внимательности .
Всего микроконтроллер имеет 35 команд.
F - регистр; W – рабочий регистр (типа аккумулятора).
В каждой команде используется признак D={ 0,1 } D=1- результат заносится в W, иначе в F ; В- номер бита; К – константа.
Арифметические команды. Особенность – команд умножения/деления НЕТ! Эти действия программист будет реализовывать сам, «ручками». Довольно веселое занятие надо сказать))).
Общий принцип – если команда кончается на WF, то она оперирует с какой то ячейкой памяти и рабочим регистром W. Если на LW – то с рабочим регистром и константой. Если просто на F – то просто делает что-то с ячейкой памяти.
ADDWF f,d Складывает содержимое аккумулятора с указанной ячейкой памяти f, результат помещает в аккумулятор или в ячейку f в зависимости от флага d. Влияет на флаги C, DC, Z.
SUBWF f,d
ADDLW k Прибавляет к содержимому аккумулятора константу k. Влияет на флаги C, DC, Z.
SUBLW k ANDWF f,d IORWF f,d XORWF f,d
ANDLW k IORLW k XORLW k INCF f,d
DECF f,d SWAPF f,d
RLF f,d ; RRF f,d – циклический сдвиг через флаг переноса.
CLRF f CLRW
COMF f,d – образует дополнение к ячейке F.
2. бит-ориентированные. Их всего две.
BCF f,b. Сбрасывает бит номер b в ячейке памяти f в значение "0". Результат – в ячейке f. Не влияет на флаги.
BSF f,b Устанавливает бит номер b в ячейке памяти f в значение "1". Результат – в ячейке f. Не влияет на флаги.