Интерфейсы микроконтроллерных систем
32/32/10
Л1-2
О микроконтроллерах фирмы STM32 и ядре Cortex-M4
1. Что такое ARM.
Компания ARM Holdings, за годы своего существования, спроектировала ни один десяток процессоров, основанных на одноименной архитектуре ARM (Advanced RISC Machine), предназначенных для разных областей применения. Все эти процессоры были раскуплены ведущими производителями микроконтроллеров и систем-на-кристалле. Одним из последних творений компании является семейство процессоров Cortex (архитектура ARMv7-M) :
Cortex-A (аббревиатура от слова “Application”)
Cortex-R (аббревиатура от слова “Real-Time”)
Cortex-M (аббревиатура от слова “Microcontroller”)
В общем, ядра Cortex-A и Cortex-R используются в высокопроизводительной техники (смартфоны, планшеты, ноутбуки и т.д.) и промышленности (автомобильная, медицинская, охранная и др. техника) соответственно. Контроллеры на базе этих ядер дорогие, производятся на заказ (в радиомагазинах их не найти ), а самое главное избыточны для различных малых и средних проектов. Специально для таких проектов (бытовая техника, измерительные приборы, любительские проекты и т.д.) было разработано подсемейство Cortex-M, но это не означает что микроконтроллеры на базе ядра Cortex-M, не могут быть использованы в областях предназначенных для старших семейств (A и R). У семейства Cortex-M имеется свое подсемейство:
Cortex-M0
Cortex-M0+
Cortex-M1
Cortex-M3
Cortex-M4
Микроконтроллеры на базе процессора Cortex-M0 и Cortex-M0+ предназначены стать альтернативой 8-разрядным микроконтроллерам. В сравнении с ядрами Cortex-M3 и выше, имеют меньшую производительность и меньше периферийных устройств, к тому же архитектура отличается от остальных Cortex’ов (ARMv6-M). Что касается семейства Cortex-M1, то оно существует лишь в виде исходного кода на языках описания аппаратуры (HDL) и предназначено для встраивания в FPGA и CPLD кристаллы.
2. Микроконтроллеры фирмы STMicroelectronics.
О протоколах передачи данных
4. Синхронная и асинхронная передача данных.
5. Потенциальные коды и импульсные коды.
· Двуполярный импульсный код
· Потенциальный код NRZI
6. Битовая синхронизация.
· Преамбула.
Преамбула |
7 байт 0хАА ( 10101010 ) |
SFD (start frame delimiter ) |
1 байт 0xAB ( 10101011) |
CRC ( cyclic redundancy check) |
|
EFD (End frame delimiter) |
Межпакетный промежуток 9.6 мкс |
· Вставка бита. Пример сеть CAN:
11111111 à 111110111
11111000 à 111110000
7. Самосинхронизирующиеся коды.
· Код NRZI
· 4B à 5B
0000 11110 0001 01001 0010 10100 0011 10101 0100 01010 0101 01011 0110 01110 0111 01111 |
1000 10010 1001 10011 1010 10110 1011 10111 1100 11010 1101 11011 1110 11100 1111 11101 |
8. Код Манчестер-II
· Бифазный код.
9. Скорость передачи и полоса пропускания канала.
10. Кадровая синхронизация.
· Стартовый и стоповый биты – протокол RS232
· Бит пробуждения (wake up bit) – 9-й бит в некоторых микроконтроллерах
· Преамбула сети Ethernet (SFD - start frame delimiter )
· Байт пробуждения (wake up byte) – протокол SLIP (Serial Link Interface Protocol)
· Символ разделитель – протокол ModBus ASCII
· Протокол NMEA. Символ разделитель $
$GPRMC,180301.45,A,5546.8890,N,03733.3533,E,22.4,090.4,190608,10,E*45
· Временной интервал – протокол ModBus RTU
О структуре сети
11. Модель OSI.
12. Топология сети.
· Шина. Звезда. Кольцо.
· Физическая и логическая топологии.
· Сеть Ethernet: HAB и Switch.
Л3-4 16.09.2013
13. Технология master-slave.
Физический уровень
14. Режимы работы выводов микроконтроллера.
· Порт микроконтроллера
· Открытый коллектор
· Выход с 3-мя состояниями.
· Резисторы подтяжки.
Монтажное ИЛИ
· Внешние прерывания.
15. Обычная и дифференциальная передача данных.
· Интерфейс RS232
· Интерфейс RS422
· Интерфейс RS485
· Гальваническая развязка
· Управление потоком данных
16. Universal synchronous asynchronous receiver transmitter (USART).
Л5-6 31.09.2013
Синхронные интерфейсы
SPI - Serial Peripheral Interface
17. Синхронный периферийный интерфейс SPI фирмы Motorola.
- Отсутствует стандарт
- Режим master-slave, синхронизация
- Передача данных
- Сигнал SS (CS)
Структура связей и линии интерфейса SPI
Временная диаграмма SPI для режима 0
18. Режимы работы интерфейса SPI
- Длина пакета
- Последовательность битов
- 4-типа синхронизации
19. Объединение устройств на шине SPI
Шина I2C (Inter-Integrated Circuit)
20. Концепция шины I2C.
- режим master-slave
- число линий связи и их назначение
- адресация устройств
- арбитраж
- скорость работы.
21. Физический уровень шины I2C.
22. Сигналы на шине I2C.
23. Структура кадра шины I2C.
- порядок битов
- подтверждение, неподтверждение
- управление линией SCL, затягивание
24. Пересылка данных по шине I2C.
- 1-й байт после старта. 7-ми битная адресация
- бит направления
- комбинированный формат
- передача данных
- прием данных
25. Распределение адресов.
- зарезервированные адреса
- адрес общего вызова
- 10-ти битные адреса
26. 10-ти битная адресация.
27. Арбитраж.
- захват шины.
28. Прерывания и прямой доступ к памяти (DMA).
Л7-807.10.2013
IDE Keil µVision
29. Этапы создание программы для микроконтроллера.
- Редактор текста
- Препроцессор, директивы: #include <имя файла> (“имя файла”), #define (макроподстановки и макросы), #ifdef (условной трансляции)
- Компилятор: assembler, C, C++, ключи компилятора: стандарт языка, оптимизация.
- Компоновщик, библиотеки.
- Симулятор и отладчик.
- Форматы выходных файлов: BIN, HEX, Elif
:020000040800F2
:10000000601F0020D9010008DD2C00080F2C00081B
:10001000D92C0008272A0008FF3100080000000042
:10002000000000000000000000000000D12E0008C9
:10003000C92A0008000000006D2D0008C52F000827
………………………………………………………..
:0C03D00000000000000000000000000021
:04000005080000F5FA
:00000001FF
- Вспомогательные утилиты: lib, bin2heh, …
- Программирование микроконтроллера.
- Отдельные утилиты командной строки.
- Процесс создания исполняемого модуля.
- Семейство утилит make (cmake, gmake)
- IDE - Интегрированная среда разработки (Integrated Development Environment), проект и его назначение.
30. IDE Keil MDK-ARM.
- Основные IDE для МК семейства cortex-M3.
RealView Development Suite (ARM C/C++ Compiler)
Keil MDK-ARM (ARM C/C++ Compiler)
IAR Embedded Workbench for ARM (IAR C/C++ Compiler)
Eclipse
Sourcery CodeBench (GCC - GNU Compiler Collection)
CooCox CoIDE (GCC Compiler)
Atollic TrueSTUDIO (GCC Compiler)
Rowley CrossWorks for ARM (GCC Compiler)
RAISONANCE Ride7 IDE for ARM (GCC Compiler)
mikroC for ARM (MikroElektronika C Compiler)
MULTI IDE for ARM (Green Hills C/C++ Compiler)
TASKING VX-toolset for ARM (Altium C/C++ Compiler)
31. Установка и конфигурирование Keil MDK-ARM.
- Расположение на диске, переменные среды окружения.
- Русские символы в названиях файлов и каталогов.
- Установка (копирование) Keil MDK-ARM.
- Конфигурирование IDE
- Проблема кодировок и ее решение
- Регистрация IDE
- Установка ST-LINK Utility и драйвера для отладчика: .. \Soft\ STM32 ST-LINK Utility_v2.5.0.exe.
Л9-10 14.10.2013
32. Создание проекта в Keil MDK-ARM. Свойства проекта.
- Меню Project. Расположение проекта. Выбор процессора
- Device
- Target
- Output, каталог для выходных файлов
- Listing, каталог для листингов
- C/C++. Макроопределения: HSE_VALUE=8000000, STM32F40XX,
USE_STDPERIPH_DRIVER
- Linker, Scatter File
- Debug, ST-Link Debugger, в свойствах выбрать SW
- Utilites, ST-Link Debugger, в свойствах …, ini-файл …, выбор отладчика
33. Библиотеки в исходных текстах
- библиотека ядра - CMSIS (Cortex Microcontroller Software Interface Standard)
- библиотека драйверов - StdPeriph_Driver (Standard Peripherals Library Drivers)
- библиотеки сторонних разработчиков
- собственные библиотеки
- конфигурирование проекта - пути к библиотекам
34. Файлы, подключаемые к проекту.
- startup_stm32f4xx.s – инициализация стека и «кучи»
- system_stm32f4xx.c – инициализация тактирования, питания и др.
- stm32f4xx_it.cpp (.c), stm32f4xx_it.h – прерывания
- retarget.c и retarget.h – потоковый ввод вывод
- stm32f4xx_conf.h – библиотека драйверов периферийных устройств
35. Матрица шин МК STM32F4xx
36. Система ФАПЧ (PLL)
37. Система тактирования
38. Программа для конфигурирования системы тактирования.
39. Программирование портов.
- Два подхода к программированию периферии: регистры и библиотеки.
- Включить файл gpio.h
- Описать используемые выводы (заполнить структуру GPIO_PIN_DECLARATION)
- Разрешить тактирование портов, к которым относятся выводы.
- Проинициализировать выводы.
40. Программирование последовательного интерфейса USARTx.
- Включить файл stm32f4xx_usart_c.h.
- Описать выводы к которым подключен соответствующий USART (заполнить структуру GPIO_PIN_DECLARATION).
- Заполнить структуру для инициализации USART (USART_InitTypeDef)
- Разрешить тактирование портов, к которым относятся выводы.
- Разрешить тактирование USART.
- Перевести выводы для работы с USART в режим альтернативной функции.
- Проинициализировать выводы.
- Проинициализировать USART.
- Разрешить работу USART
Л11-12 18.11.2013
Интерфейс 1-Ware
41. Эквивалентная схема шины 1-Ware.
· одна линия для передачи данных и питания
· эквивалентная схема
· архитектура master-slave
· возможные варианты построения однопроводной шины
Подключение устройств к шине 1-Ware
Эквивалентная схема шины 1-Ware
42. Сигналы на шине 1-Ware.
· возможные варианты построения однопроводной шины
· принцип формирования сигналов – тайм-слоты
· сигнал RESET – кадровая синхронизация
· передача 1, передача 0
· прием 1, прием 0
43. Влияние кабеля на качество связи.
44. Структура адреса устройства.
· структура адреса
· таблица идентификаторов
· порядок битов в адресе и общих командах
Таблица идентификаторов (частично)
45. Поиск устройств
· команда 0xF0 (SEARCH ROM)
· чтение «прямого бита»
· чтение «инвертированного бита» (дополнение)
· запись одного бита адреса
· пример сети с 2-мя устройствами
Если бит = дополнение = «1», это значит, что на линии нет готовых устройств, т.е. никто не ответил. В этом случае поиск прекращается.
Если биты не равны, т.е. бит = 0, а дополнение = 1 или наоборот — это значит, что у всех устройств этот бит совпадает. Этот случай простой — мы просто записываем к себе этот бит и переходим к следующим операциям
Если бит = дополнение = «0» — это значит, что у устройств первый бит кода ПЗУ не совпадает, т.е. у кого-то «1» а у кого-то «0», это сложный случай называется
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.