- •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
- •Организация памяти
- •Инструментальные ср-ва разработки и отладки мпс
Примеры программирования последовательного ввода/вывода.
Задача: организовать прием данных из СОМ-порта РС.
Fт = 6 МГц, V = 1200 б/с, режим 1 (без контроля четности).
REC EQU 6 ;принимаем 6 байт
SETB P3.0 ;настроим порт RxD для ввода
MOV SCON, #01010000B ;режим 1, прием
MOV TMOD, #20H ;режим 2 таймера 1
MOV TH1, #256-13 ;расчет скорости см.выше
MOV TL1, #256-13
SETB TR1 ;запуск таймера, приемник ждет прихода данных
;есть бит готовности RI, по которому определяется начало приема
MOV R2, #REC
MOV R0, #40H ;адрес массива, куда скидываем байты
M1:
JNB RI,M1 ;если ничего не приходит, то крутимся бесконечно (формирование бита RI)
CLR RI
MOV A, SBUF ;из послед. в параллельный код
MOV @R0, A
INC R0
DJNZ R2,M1
NOP
Недостатки: 1. Обычно REC неизвестно, проверяют переполнение таймера.
2. При прогр. Проверке RI уходит много времени.
16. Последовательный интерфейс i2c.
Inter Integrated Circuit (Philips)
SCL – синхронизация, SDA – прием и передача данных. Мастер формирует SCL.
Протокол интерфейса I2C.
AT24C16 – 2 Кбайта х 8.
Случай чтения байта из памяти:
Все начинается со START – условия. Адрес устройства (слэйва). R/W – сначала низкий, т.к. надо записывать адрес устройства. R – запрос данных. W – передача данных. Можно адресовать 128 устройств. Это один из вариантов протокола, когда адрес 7-разрядный. Имеется расширенный вариант протокола, когда 7+4 разрядов.
Адрес: 1 0 1 0 .. .. .. (послед. 3 разряда – адрес внутри АТ24, 8 штук)
Const для АТ24
Slave в ответ устанавливает бит подтверждения АСК низкого уровня. Если запись, то подтверждение посылает Slave.
Если мастер читает, то он посылает подтверждение. Адрес байта – с какого места будем читать. После прочтения одного байта связь разрывается Stop-условием.
Временная диаграмма
П ример применения интерфейса I2C с использованием м/сх памяти АТ24C16. Формат байта адреса АТ24C16: (её ёмкость 2К х 8)
7 1 0 1 0 В2 В1 В0 R/W 0
эта комбинация является идентификационным номером для АТ24, т.е. если комбинация будет другой, то этот адрес не будет понят этой м/сх-ой.
В2 В1 В0 – здесь может содержаться различная информация для АТ24. Для АТ24C16 - в этих 3-х битах номер страницы, т.е. всего восемь страниц(банков). {256 байт = (2к х 8)/8}
В режиме записи байта в память требуется время на фиксацию этого байта в памяти = 10мс (это особенность flash-памяти).
П ример. Чтение блока из 16-ти байт из памяти.
S 1 0 1 0 В2 В1 В0 W A ADDR A S 1 0 1 0 В2 В1 В0 R A DATA A ∙∙∙ A P
1 2 3 4 5 6 7 8 9 10
1 – старт
2 – байт (ищем устройство) Запись адреса устройства
3 – адрес внутри страницы памяти (ADDR = 8 бит)
4 – далее идёт чтение 16-ти байтов
5 -
6 – подтверждение от Slave
7 – чтение байтов (1-й байт, DATA = 8 бит)
8 – это подтверждение посылает Master (получает байт)
9 – когда Master получает все 16 байт, он не подтверждает квитанцию
10 – стоп
MK 24
Master Slave
!!! Ошибки не исправляются! Принятая квитанция (низкий уровень) говорит о том, что передачу информацию необходимо продолжить. Высокий уровень – передачу прекратить. Подтверждения используются для того, чтобы сообщать, что connect есть (т.е., что соединение не «умерло»).
mov R6, #16 ; счётчик страницы (байтов внутри блоков)
mov DPTR, #Buffer ; адрес буфера внешн. памяти, куда будем складывать
call fnStart ; подпрога, формирующая старт условия
mov a, #1010 0000b ; запись байта (первого)
call fnWriteByte ; подтверждение проверяется внутри fnWriteByte
; параметр – содержимое аккумулятора
mov a, #0 ; начало участка памяти, с которого начинается
call fnWriteByte ; считывание
c all fnStart 16
mov a, #1010 0001b 256
call fnWriteByte 16
mov R4, #16 ; счётчик блоков внутри страницы
call fnReadByte ; считываем байт --> в АС
mov @DPTR, а ; запись в память
inc DPTR
…
cjne R4, #1, m1 ; проверка счётчика
call NAK ; послали (отриц.) подтверждение (низк. уровень)
jmp end_block
m1:
call ACK ; квитанция подтверждения
djnz R4, m2
end_block:
call Stop
djnz R6, m3
Для программной реализации необходимо 5 подпрограмм:
Формирование старт-условия;
Формирование стоп-условия;
Запись байта;
Чтение байта;
Анализ АСК.