SlideShare a Scribd company logo
1 of 75
«Вжух» и получился компьютер 2
Александр Сурков
Microsoft MVP, IoT Community Leader
В предыдущей серии…
Транзисторный элемент И-НЕ
ТТЛ версия И-НЕ
Булева Алгебра
Основа всех основ.
Операции:
•И
•ИЛИ
•НЕ
•XOR
Базовые элементы
Базовые элементы
Работает не мгновенно
Гонки и Синхронизация
Триггеры
Триггером называют логическую схему с положительной
обратной связью, способную формировать 2 устойчивых
состояния на своих выходах Q и не Q, изменения которых
происходит под действием входных сигналов.
Предназначен в основном для хранения одного бита
информации, т.е. логических «0»или «1». Схема триггера
обеспечивает запись, считывание, хранение и стирание
двоичной информации.
RS триггер
D триггер – запоминание входа
T триггер – счетный триггер
JK триггер – Универсальный триггер
Дешифратор – сигнал по шифру
Мультиплексор – включить сигнал по
номеру
Регистры
Регистром называют группу или линейку
запоминающих элементов (чаще триггеров),
предназначенных для: записи, хранения,
сдвига, выдачи двоичного слова.
Параллельный регистр
Последовательный (сдвиговый) регистр
Счетчики
Счетчики могут выполнять операции:
•Установка в «0».
•Запись входных импульсов (информации).
•Хранение информации.
•Инкремент – увеличение хранящегося кода на «1».
•Декремент – уменьшение хранящегося кода на «1».
•Деление частоты входных сигналов.
Суммирующий счетчик
Вычитающий счетчик
Компараторы
Компаратор – это узел для сравнения двух
чисел. Простейший компаратор сравнивает 2
числа (слова) А и В и выдает однобитовый
сигнал: при равенстве А=В - 1, при
неравенстве – 0.
Компаратор
Еще чуть-чуть…
Блок логических операций
Сумматор
Самое главное – АЛУ
Важнейший постулат
Вычитание, деление и
умножение в двоичном коде
можно сделать через
сложение.
Арифметико-логическое устройство
ALU – функционально законченный узел процессора ЭВМ,
предназначенный для выполнения арифметических и логических
операций по обработке информации.
Основные операции, выполняемые ALU:
•Арифметические (все они сводятся к сложению), до 50% от всех
выполняемых операций.
•Логические (до 16 операций – до 45% от всех выполняемых операций).
•Остальные 5% - операции управления.
Арифметико-логическое устройство
Пока можно выдохнуть 
Итак что у нас есть
•Элемент И-НЕ - на основе транзистора
•Булевы элементы – логические операции на основе И-НЕ
•Триггер – единица памяти на основе булевых элементов
•Регистр – Набор триггеров для хранения данных
•Шифратор, дешифратор, мультиплексор – управляющие сигналы
•Сумматор – математические операции над числами
Зачем все это знать?
Чтобы понимать как работает
микроконтроллер и чем
отличаются разные архитектуры
контроллеров
Выполнение команды
•Считывание операндов
•Считывание команды и ее
выполнение
•Сохранение результата
CPU
Типы архитектур
•Гарвардская (например Intel 8051):
• Память и данные физически разные модули
• Шина команд и шина данных так же разделены
• Считывать данные и команды можно одновременно
•Фон Неймана (например ARM):
• Единая шина данных для команд и данных
• Едина память для команд и данных
• Работают медленнее, но физически и логически проще
Разрядность микроконтроллера
•8,16 и 32 бита
•Это число – количество бит, которые
параллельно может обработать CPU. Как
правило соответствует ширине шины данных
и разрядности ALU.
•Например, в Intel 8051 шина данных 8 бит а
шина адреса 16 бит
Организация памяти
•8 разрядов шины адреса – 256 байт
•16 разрядов шины адреса – 64 Кб
•32 разряда шины адреса – 4 Гб
Больше пропускная способность шины и
больше памяти можно адресовать
И что мы имеем в итоге ?
CISC & RISC
•CISC – complex instruction set computer – сложные инструкции,
которые быстро выполняются, но долго подготавливаются.
Сложно распараллелить
•RISC – reduced instruction set computer – упрощенные инструкции,
которые быстрее подготавливаются к выполнению. Хорошо
поддаются распараллеливанию.
Есть еще
•MISC
•OISC
Конвеер
•IF (Instruction Fetch) — получение инструкции,
•ID (Instruction Decode) — раскодирование инструкции,
•EX (Execute) — выполнение,
•MEM (Memory access) — доступ к памяти,
•WB (Register write back) — запись в регистр.
Самые распространенные архитектуры
•MCS51 (Intel)
•MSP430 (TI)
•ARM
•AVR (Atmel)
•PIC (Microchip)
Что у них общего
•CPU – вычислительное ядро, умеющее исполнять инструкции
•Interrupt Controller – аппаратный контроллер прерываний
•RAM (оперативная память) – энергозависимая быстрая память
•ROM (ПЗУ, Flash) – энергонезависимая, но более медленная память
•Clock Unit – модуль настройки тактовой частоты
•Watchdog – модуль слежения за «подвисанием» ядра
•GPIO – порты ввода-вывода общего назначения
•Набор «периферии» - SPI,UART,I2C,USB,ADC,DAC, и т.д.
MSP430
AVR
PIC16F887
CortexM0
Вроде все одинаково, но в чем отличия ?
С точки зрения C/C++ программиста кажется что отличия в
мелочах – ассемблер (который все равно скрыт под C/C++) и
способы управления тем или иным узлом с помощью регистров и
наборы регистров.
Но это очень серьезные отличия.
Микроконтроллеры ARM
Что такое ARM
1) Компания ARM Ltd – разрабатывающая архитектуру ARM
2) ARM - Advanced RISC Machine - 32х разрядная
микропроцессорная RISC архитектура фон Неймана,
разрабатываемая компанией ARM
Какие бывают ARM ядра
ARM7 – мк для встраеваемых устройств
ARM9 и ARM11 – мощные микропроцессоры
CortexM – замена ARM7
CortexA – замена ARM9 и ARM11
A – application, R – real-time, M - microcontroller
Семейство Cortex M
На примере Cortex M0
Cortex M0 processor core - ARMv6-M
•Архитектура фон Неймана
•RISC
•32 разрядное ядро
•Наборы инструкций ARM,Thumb,Thumb2
•3х ступенчатый конвеер
CPU
Регисты общего и специального
назначения
Эти регистры в ядре, вне
адресного пространства
•SP – указатель стека (2
режима)
•LR – информация,
возвращаемая из
подпрограмм
•PC – счетчик команд
Program Status Register (PSR)
N – флаг отрицательного значения Exception Number – номер прерывания
Z – флаг нуля
C – флаг переноса разряда
V – флаг переполнения
T`- Флаг Thump state
Exception mask register (PRIMASK)
Делает только одно. Его младший (0) бит запрещает или
разрешает все прерывания. По отдельности работы с
прерываниями идет через блок NVIC.
Control register (CONTROL)
Бит 1 определяет какой
из регистров PSP или
MSP использовать как
регистр стека:
0 = Main Stack Pointer (MSP).
1 = Process Stack Pointer (PSP).
Память
•Архитектура фон Неймана
•единое адресное пространство 4 Гб
•Распределена на блоки по своему
функционалу.
•Little-endian формат
Память
•Code - Executable region for program code.
•SRAM - Executable region for data. You can also put code here.
•Peripheral - External device memory.
•External RAM - Executable region for data.
•External device - External device memory.
•Private Peripheral Bus - This region includes the NVIC, System timer
and System Control Block.
•Device - Vendor specific.
Функциональные блоки Cortex M
•NVIC – контроллер прерываний, который тесно интегрирован с
вычислительным ядром
•System Control Block – блок управления, позволяющий делать
небольшие настройки работы ядра
•System Timer – системный таймер/счетчик, который используется
на низком уровне операционными системами.
Регистры управляющие этими блоками находятся в едином
адресном пространстве в блоке Private Peripheral Bus
NVIC – контроллер прерываний
ISER (0xE000E100 ) - Interrupt Set-enable Register - разрешение
ICER (0xE000E180 ) - Interrupt Clear-enable Register - запрет
ISPR (0xE000E200 ) - Interrupt Set-pending Register - ожидание
ICPR (0xE000E280) - Interrupt Clear-pending Register – снятие с ожидания
IPR0-7 (0xE000E400-0xE000E41C) - Interrupt Priority Registers - приоритет
)
System Control Block – блок управления
CPUID (0xE000ED00) – processor part number, version и т.д.
ICSR (0xE000ED04 ) – Interrupt Control and State Register
AIRCR (0xE000ED0C) – Application Interrupt and Reset Control
SCR (0xE000ED10) – System Control Register
CCR (0xE000ED14) – Configuration and Control Register
SHPR2 (0xE000ED1C) – System Handler Priority Register 2
SHPR3 (0xE000ED20) – System Handler Priority Register 3
System Timer – системный таймер/счетчик
SYST_CSR (0xE000E010) - SysTick Control and Status Register
SYST_RVR (0xE000E014) - SysTick Reload Value Register
SYST_CVR (0xE000E018) - SysTick Current Value Register
SYST_CALIB (0xE000E01C) - SysTick Calibration Value Register
CMSIS
Cortex Microcontroller Software Interface Standard
Свободно распространяемая библиотека, написанная на С, позволяющая
удобно работать со всеми выше описанными блоками.
Заключение
•Мы рассмотрели основные составляющие части Cortex M контроллеров.
•Мы не рассмотрели еще много всего:
• Этапы загрузки
• Детали работы прерываний
• Режимы работы ядра
• И т.д.
Все что мы изучили – Ядро Cortex M – есть во всех Cortex M контроллерах.
Но все, что кроме ядра везде будет разное. Набор периферии и
компонентов примерно одинаков, но вот наборы управляющих регистров и
логика работы модулей своя у каждого производителя.
Ссылка
http://infocenter.arm.com/help/index.jsp -
большой справочник от самой ARM Ltd
Чтобы найти там Cortex M0:
Cortex-M series processors –> Cortex-M0->Revision: r0p0
Хотите знать больше про Internet of Things?
Присоединяйтесь к нам!
IoT Community:
•https://www.facebook.com/groups/RU.IoT.Community/
•http://vk.com/iot_community
•https://www.meetup.com/IoTCommunity/
«Вжух» и получился компьютер 2
Александр Сурков, Microsoft MVP, IoT Community leader
@AOSurkov

More Related Content

What's hot

Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)
Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)
Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)Ontico
 
41
4141
41JIuc
 
16 процессоры и память эвм лекция
16 процессоры и память эвм лекция16 процессоры и память эвм лекция
16 процессоры и память эвм лекцияSergey Lomakin
 
ARM vs Intel microarchitecture
ARM vs Intel microarchitectureARM vs Intel microarchitecture
ARM vs Intel microarchitectureIlya Kryukov
 
Смарт - Технологии, Взгляд Со Стороны Разработчика
Смарт - Технологии, Взгляд Со Стороны РазработчикаСмарт - Технологии, Взгляд Со Стороны Разработчика
Смарт - Технологии, Взгляд Со Стороны РазработчикаPositive Hack Days
 
тест Atutor аппаратное обеспечение
тест Atutor аппаратное обеспечениетест Atutor аппаратное обеспечение
тест Atutor аппаратное обеспечениеJIuc
 
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Mikhail Kurnosov
 
Medical informatics
Medical informaticsMedical informatics
Medical informaticsHelao Silas
 
устройство компьютера.
устройство компьютера.устройство компьютера.
устройство компьютера.Svetlana Belova
 
Аппаратная реализация персонального компьютера
Аппаратная реализация персонального компьютераАппаратная реализация персонального компьютера
Аппаратная реализация персонального компьютераstudent_SSGA
 
лекция 4
лекция 4лекция 4
лекция 4JIuc
 
034
034034
034JIuc
 
тест Atutor аппаратное обеспечение
тест Atutor аппаратное обеспечениетест Atutor аппаратное обеспечение
тест Atutor аппаратное обеспечениеJIuc
 
компьютер 5
компьютер 5компьютер 5
компьютер 5vampir3424
 

What's hot (20)

Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)
Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)
Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)
 
41
4141
41
 
4
44
4
 
Am3
Am3Am3
Am3
 
16 процессоры и память эвм лекция
16 процессоры и память эвм лекция16 процессоры и память эвм лекция
16 процессоры и память эвм лекция
 
ARM vs Intel microarchitecture
ARM vs Intel microarchitectureARM vs Intel microarchitecture
ARM vs Intel microarchitecture
 
06. memory
06. memory06. memory
06. memory
 
Смарт - Технологии, Взгляд Со Стороны Разработчика
Смарт - Технологии, Взгляд Со Стороны РазработчикаСмарт - Технологии, Взгляд Со Стороны Разработчика
Смарт - Технологии, Взгляд Со Стороны Разработчика
 
Theme 01
Theme 01Theme 01
Theme 01
 
тест Atutor аппаратное обеспечение
тест Atutor аппаратное обеспечениетест Atutor аппаратное обеспечение
тест Atutor аппаратное обеспечение
 
Ardi
ArdiArdi
Ardi
 
Лекция № 2 Организация ЭВМ и систем
Лекция № 2 Организация ЭВМ и системЛекция № 2 Организация ЭВМ и систем
Лекция № 2 Организация ЭВМ и систем
 
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
 
Medical informatics
Medical informaticsMedical informatics
Medical informatics
 
устройство компьютера.
устройство компьютера.устройство компьютера.
устройство компьютера.
 
Аппаратная реализация персонального компьютера
Аппаратная реализация персонального компьютераАппаратная реализация персонального компьютера
Аппаратная реализация персонального компьютера
 
лекция 4
лекция 4лекция 4
лекция 4
 
034
034034
034
 
тест Atutor аппаратное обеспечение
тест Atutor аппаратное обеспечениетест Atutor аппаратное обеспечение
тест Atutor аппаратное обеспечение
 
компьютер 5
компьютер 5компьютер 5
компьютер 5
 

Similar to Обзор современных микроконтроллеров и их архитектур

06. Память Cortex-M3(4)
06. Память Cortex-M3(4)06. Память Cortex-M3(4)
06. Память Cortex-M3(4)KamlachPV
 
prezlec_Історія.ppt
prezlec_Історія.pptprezlec_Історія.ppt
prezlec_Історія.pptssusere2bc36
 
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...Mikhail Kurnosov
 
Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)
Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)
Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)Mikhail Kurnosov
 
Лекция №4(часть 1) Организация ЭВМ и систем
Лекция №4(часть 1) Организация ЭВМ и системЛекция №4(часть 1) Организация ЭВМ и систем
Лекция №4(часть 1) Организация ЭВМ и системpianist2317
 
42
4242
42JIuc
 
023
023023
023JIuc
 
Лекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системЛекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системpianist2317
 
Лекция №4 Организация ЭВМ и систем (продолжение)
Лекция №4 Организация ЭВМ и систем (продолжение)Лекция №4 Организация ЭВМ и систем (продолжение)
Лекция №4 Организация ЭВМ и систем (продолжение)Александр Силантьев
 
TMPA-2013 Smirnov
TMPA-2013 SmirnovTMPA-2013 Smirnov
TMPA-2013 SmirnovIosif Itkin
 
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...Mikhail Kurnosov
 
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)Mikhail Kurnosov
 
Константин Трушкин. Использование платформы Эльбрус в информационно-защищённы...
Константин Трушкин. Использование платформы Эльбрус в информационно-защищённы...Константин Трушкин. Использование платформы Эльбрус в информационно-защищённы...
Константин Трушкин. Использование платформы Эльбрус в информационно-защищённы...Kaspersky
 
Лекция №2 Организация ЭВМ и систем
Лекция №2 Организация ЭВМ и системЛекция №2 Организация ЭВМ и систем
Лекция №2 Организация ЭВМ и системpianist2317
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...a15464321646213
 
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...Mikhail Kurnosov
 

Similar to Обзор современных микроконтроллеров и их архитектур (20)

06. Память Cortex-M3(4)
06. Память Cortex-M3(4)06. Память Cortex-M3(4)
06. Память Cortex-M3(4)
 
prezlec_Історія.ppt
prezlec_Історія.pptprezlec_Історія.ppt
prezlec_Історія.ppt
 
Prez osob mikroproc
Prez osob mikroprocPrez osob mikroproc
Prez osob mikroproc
 
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
 
Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)
Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)
Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)
 
Лекция №4(часть 1) Организация ЭВМ и систем
Лекция №4(часть 1) Организация ЭВМ и системЛекция №4(часть 1) Организация ЭВМ и систем
Лекция №4(часть 1) Организация ЭВМ и систем
 
42
4242
42
 
023
023023
023
 
Лекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системЛекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и систем
 
Platov
PlatovPlatov
Platov
 
Лекция №4 Организация ЭВМ и систем (продолжение)
Лекция №4 Организация ЭВМ и систем (продолжение)Лекция №4 Организация ЭВМ и систем (продолжение)
Лекция №4 Организация ЭВМ и систем (продолжение)
 
Лекция № 3 Организация ЭВМ и систем
Лекция № 3 Организация ЭВМ и системЛекция № 3 Организация ЭВМ и систем
Лекция № 3 Организация ЭВМ и систем
 
TMPA-2013 Smirnov
TMPA-2013 SmirnovTMPA-2013 Smirnov
TMPA-2013 Smirnov
 
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
 
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
 
Константин Трушкин. Использование платформы Эльбрус в информационно-защищённы...
Константин Трушкин. Использование платформы Эльбрус в информационно-защищённы...Константин Трушкин. Использование платформы Эльбрус в информационно-защищённы...
Константин Трушкин. Использование платформы Эльбрус в информационно-защищённы...
 
Лекция №2 Организация ЭВМ и систем
Лекция №2 Организация ЭВМ и системЛекция №2 Организация ЭВМ и систем
Лекция №2 Организация ЭВМ и систем
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
[DD] 10. Memory
[DD] 10. Memory[DD] 10. Memory
[DD] 10. Memory
 
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
 

More from IoT Community

Параметрическое моделирование городского озеленения
Параметрическое моделирование городского озелененияПараметрическое моделирование городского озеленения
Параметрическое моделирование городского озелененияIoT Community
 
Как перестать убивать цветы. IoT в гидропонике
Как перестать убивать цветы. IoT в гидропоникеКак перестать убивать цветы. IoT в гидропонике
Как перестать убивать цветы. IoT в гидропоникеIoT Community
 
Сити-фермерство: от "умного дома" до Smart-City
Сити-фермерство: от "умного дома" до Smart-CityСити-фермерство: от "умного дома" до Smart-City
Сити-фермерство: от "умного дома" до Smart-CityIoT Community
 
Основы микроэлектоники
Основы микроэлектоникиОсновы микроэлектоники
Основы микроэлектоникиIoT Community
 
Введение в схемотехнику
Введение в схемотехникуВведение в схемотехнику
Введение в схемотехникуIoT Community
 
Введение в интернет вещей
Введение в интернет вещейВведение в интернет вещей
Введение в интернет вещейIoT Community
 
Интернет вещей в концепции умных городов
Интернет вещей в концепции умных городовИнтернет вещей в концепции умных городов
Интернет вещей в концепции умных городовIoT Community
 

More from IoT Community (7)

Параметрическое моделирование городского озеленения
Параметрическое моделирование городского озелененияПараметрическое моделирование городского озеленения
Параметрическое моделирование городского озеленения
 
Как перестать убивать цветы. IoT в гидропонике
Как перестать убивать цветы. IoT в гидропоникеКак перестать убивать цветы. IoT в гидропонике
Как перестать убивать цветы. IoT в гидропонике
 
Сити-фермерство: от "умного дома" до Smart-City
Сити-фермерство: от "умного дома" до Smart-CityСити-фермерство: от "умного дома" до Smart-City
Сити-фермерство: от "умного дома" до Smart-City
 
Основы микроэлектоники
Основы микроэлектоникиОсновы микроэлектоники
Основы микроэлектоники
 
Введение в схемотехнику
Введение в схемотехникуВведение в схемотехнику
Введение в схемотехнику
 
Введение в интернет вещей
Введение в интернет вещейВведение в интернет вещей
Введение в интернет вещей
 
Интернет вещей в концепции умных городов
Интернет вещей в концепции умных городовИнтернет вещей в концепции умных городов
Интернет вещей в концепции умных городов
 

Обзор современных микроконтроллеров и их архитектур

  • 1. «Вжух» и получился компьютер 2 Александр Сурков Microsoft MVP, IoT Community Leader
  • 3.
  • 4.
  • 5.
  • 7. Булева Алгебра Основа всех основ. Операции: •И •ИЛИ •НЕ •XOR
  • 12. Триггеры Триггером называют логическую схему с положительной обратной связью, способную формировать 2 устойчивых состояния на своих выходах Q и не Q, изменения которых происходит под действием входных сигналов. Предназначен в основном для хранения одного бита информации, т.е. логических «0»или «1». Схема триггера обеспечивает запись, считывание, хранение и стирание двоичной информации.
  • 14. D триггер – запоминание входа
  • 15. T триггер – счетный триггер
  • 16. JK триггер – Универсальный триггер
  • 18. Мультиплексор – включить сигнал по номеру
  • 19. Регистры Регистром называют группу или линейку запоминающих элементов (чаще триггеров), предназначенных для: записи, хранения, сдвига, выдачи двоичного слова.
  • 22. Счетчики Счетчики могут выполнять операции: •Установка в «0». •Запись входных импульсов (информации). •Хранение информации. •Инкремент – увеличение хранящегося кода на «1». •Декремент – уменьшение хранящегося кода на «1». •Деление частоты входных сигналов.
  • 25. Компараторы Компаратор – это узел для сравнения двух чисел. Простейший компаратор сравнивает 2 числа (слова) А и В и выдает однобитовый сигнал: при равенстве А=В - 1, при неравенстве – 0.
  • 31. Важнейший постулат Вычитание, деление и умножение в двоичном коде можно сделать через сложение.
  • 32. Арифметико-логическое устройство ALU – функционально законченный узел процессора ЭВМ, предназначенный для выполнения арифметических и логических операций по обработке информации. Основные операции, выполняемые ALU: •Арифметические (все они сводятся к сложению), до 50% от всех выполняемых операций. •Логические (до 16 операций – до 45% от всех выполняемых операций). •Остальные 5% - операции управления.
  • 35. Итак что у нас есть •Элемент И-НЕ - на основе транзистора •Булевы элементы – логические операции на основе И-НЕ •Триггер – единица памяти на основе булевых элементов •Регистр – Набор триггеров для хранения данных •Шифратор, дешифратор, мультиплексор – управляющие сигналы •Сумматор – математические операции над числами
  • 36. Зачем все это знать? Чтобы понимать как работает микроконтроллер и чем отличаются разные архитектуры контроллеров
  • 37. Выполнение команды •Считывание операндов •Считывание команды и ее выполнение •Сохранение результата
  • 38. CPU
  • 39. Типы архитектур •Гарвардская (например Intel 8051): • Память и данные физически разные модули • Шина команд и шина данных так же разделены • Считывать данные и команды можно одновременно •Фон Неймана (например ARM): • Единая шина данных для команд и данных • Едина память для команд и данных • Работают медленнее, но физически и логически проще
  • 40. Разрядность микроконтроллера •8,16 и 32 бита •Это число – количество бит, которые параллельно может обработать CPU. Как правило соответствует ширине шины данных и разрядности ALU. •Например, в Intel 8051 шина данных 8 бит а шина адреса 16 бит
  • 41. Организация памяти •8 разрядов шины адреса – 256 байт •16 разрядов шины адреса – 64 Кб •32 разряда шины адреса – 4 Гб Больше пропускная способность шины и больше памяти можно адресовать
  • 42. И что мы имеем в итоге ?
  • 43. CISC & RISC •CISC – complex instruction set computer – сложные инструкции, которые быстро выполняются, но долго подготавливаются. Сложно распараллелить •RISC – reduced instruction set computer – упрощенные инструкции, которые быстрее подготавливаются к выполнению. Хорошо поддаются распараллеливанию. Есть еще •MISC •OISC
  • 44. Конвеер •IF (Instruction Fetch) — получение инструкции, •ID (Instruction Decode) — раскодирование инструкции, •EX (Execute) — выполнение, •MEM (Memory access) — доступ к памяти, •WB (Register write back) — запись в регистр.
  • 45. Самые распространенные архитектуры •MCS51 (Intel) •MSP430 (TI) •ARM •AVR (Atmel) •PIC (Microchip)
  • 46. Что у них общего •CPU – вычислительное ядро, умеющее исполнять инструкции •Interrupt Controller – аппаратный контроллер прерываний •RAM (оперативная память) – энергозависимая быстрая память •ROM (ПЗУ, Flash) – энергонезависимая, но более медленная память •Clock Unit – модуль настройки тактовой частоты •Watchdog – модуль слежения за «подвисанием» ядра •GPIO – порты ввода-вывода общего назначения •Набор «периферии» - SPI,UART,I2C,USB,ADC,DAC, и т.д.
  • 47.
  • 49. AVR
  • 52. Вроде все одинаково, но в чем отличия ? С точки зрения C/C++ программиста кажется что отличия в мелочах – ассемблер (который все равно скрыт под C/C++) и способы управления тем или иным узлом с помощью регистров и наборы регистров. Но это очень серьезные отличия.
  • 54. Что такое ARM 1) Компания ARM Ltd – разрабатывающая архитектуру ARM 2) ARM - Advanced RISC Machine - 32х разрядная микропроцессорная RISC архитектура фон Неймана, разрабатываемая компанией ARM
  • 55. Какие бывают ARM ядра ARM7 – мк для встраеваемых устройств ARM9 и ARM11 – мощные микропроцессоры CortexM – замена ARM7 CortexA – замена ARM9 и ARM11
  • 56. A – application, R – real-time, M - microcontroller
  • 59. Cortex M0 processor core - ARMv6-M •Архитектура фон Неймана •RISC •32 разрядное ядро •Наборы инструкций ARM,Thumb,Thumb2 •3х ступенчатый конвеер
  • 60. CPU
  • 61. Регисты общего и специального назначения Эти регистры в ядре, вне адресного пространства •SP – указатель стека (2 режима) •LR – информация, возвращаемая из подпрограмм •PC – счетчик команд
  • 62. Program Status Register (PSR) N – флаг отрицательного значения Exception Number – номер прерывания Z – флаг нуля C – флаг переноса разряда V – флаг переполнения T`- Флаг Thump state
  • 63. Exception mask register (PRIMASK) Делает только одно. Его младший (0) бит запрещает или разрешает все прерывания. По отдельности работы с прерываниями идет через блок NVIC.
  • 64. Control register (CONTROL) Бит 1 определяет какой из регистров PSP или MSP использовать как регистр стека: 0 = Main Stack Pointer (MSP). 1 = Process Stack Pointer (PSP).
  • 65. Память •Архитектура фон Неймана •единое адресное пространство 4 Гб •Распределена на блоки по своему функционалу. •Little-endian формат
  • 66. Память •Code - Executable region for program code. •SRAM - Executable region for data. You can also put code here. •Peripheral - External device memory. •External RAM - Executable region for data. •External device - External device memory. •Private Peripheral Bus - This region includes the NVIC, System timer and System Control Block. •Device - Vendor specific.
  • 67. Функциональные блоки Cortex M •NVIC – контроллер прерываний, который тесно интегрирован с вычислительным ядром •System Control Block – блок управления, позволяющий делать небольшие настройки работы ядра •System Timer – системный таймер/счетчик, который используется на низком уровне операционными системами. Регистры управляющие этими блоками находятся в едином адресном пространстве в блоке Private Peripheral Bus
  • 68. NVIC – контроллер прерываний ISER (0xE000E100 ) - Interrupt Set-enable Register - разрешение ICER (0xE000E180 ) - Interrupt Clear-enable Register - запрет ISPR (0xE000E200 ) - Interrupt Set-pending Register - ожидание ICPR (0xE000E280) - Interrupt Clear-pending Register – снятие с ожидания IPR0-7 (0xE000E400-0xE000E41C) - Interrupt Priority Registers - приоритет )
  • 69. System Control Block – блок управления CPUID (0xE000ED00) – processor part number, version и т.д. ICSR (0xE000ED04 ) – Interrupt Control and State Register AIRCR (0xE000ED0C) – Application Interrupt and Reset Control SCR (0xE000ED10) – System Control Register CCR (0xE000ED14) – Configuration and Control Register SHPR2 (0xE000ED1C) – System Handler Priority Register 2 SHPR3 (0xE000ED20) – System Handler Priority Register 3
  • 70. System Timer – системный таймер/счетчик SYST_CSR (0xE000E010) - SysTick Control and Status Register SYST_RVR (0xE000E014) - SysTick Reload Value Register SYST_CVR (0xE000E018) - SysTick Current Value Register SYST_CALIB (0xE000E01C) - SysTick Calibration Value Register
  • 71. CMSIS Cortex Microcontroller Software Interface Standard Свободно распространяемая библиотека, написанная на С, позволяющая удобно работать со всеми выше описанными блоками.
  • 72. Заключение •Мы рассмотрели основные составляющие части Cortex M контроллеров. •Мы не рассмотрели еще много всего: • Этапы загрузки • Детали работы прерываний • Режимы работы ядра • И т.д. Все что мы изучили – Ядро Cortex M – есть во всех Cortex M контроллерах. Но все, что кроме ядра везде будет разное. Набор периферии и компонентов примерно одинаков, но вот наборы управляющих регистров и логика работы модулей своя у каждого производителя.
  • 73. Ссылка http://infocenter.arm.com/help/index.jsp - большой справочник от самой ARM Ltd Чтобы найти там Cortex M0: Cortex-M series processors –> Cortex-M0->Revision: r0p0
  • 74. Хотите знать больше про Internet of Things? Присоединяйтесь к нам! IoT Community: •https://www.facebook.com/groups/RU.IoT.Community/ •http://vk.com/iot_community •https://www.meetup.com/IoTCommunity/
  • 75. «Вжух» и получился компьютер 2 Александр Сурков, Microsoft MVP, IoT Community leader @AOSurkov