Как понять блок-схему архитектуры микроконтроллера

Я начал изучать контроллер pic18f4550. Мне трудно понять блок-схему архитектуры. я не могу понять, как взаимосвязаны периферийные устройства, ядро ​​​​процессора (например, ALU), шина данных, программная шина. Я много гуглил, но не понял. Блок-схема pic18f4550введите описание изображения здесь

ссылка: http://ww1.microchip.com/downloads/en/devicedoc/39632c.pdf Номер страницы: 13

Что вы подразумеваете под "как"? Они размещены на общей шине данных, а адресная шина (не показана) выбирает, какой из них будет записываться в шину.
Я не понял поток данных

Ответы (1)

Если бы я был новичком, пытающимся понять, как работает микроконтроллер, я бы не стал начинать с чего-то такого сложного. Во-первых, блок-схема не является принципиальной схемой . Он не показывает, как одна часть подключается к другой, он идентифицирует подсистемные блоки внутри чипа и то, как данные передаются между ними.

Рассмотрим внутренние функциональные блоки очень упрощенной (минимальной) системы.

введите описание изображения здесь

В основе микроконтроллера лежит ( центральный процессор) ядро ​​— («инструкция/декодирование/управление», «сигнал управления конечным автоматом »). Он функционирует путем интерпретации запросов и выполнения последовательности операций (фактический «мозг» процессора). контроллер)

Помимо питания (которое не показано на этих блок-схемах), существует три набора соединений (линий шины) между различными частями:

Адресные строки

Линии данных

Линии управления (чтение, запись, включение и т. д. на защелки, декодеры, мультиплексоры и т. д.)

Они показаны на диаграмме в вопросе в виде толстых серых линий со стрелками, указывающими направление. Ширина этих соединений (сколько отдельных «проводов») может варьироваться. Некоторые из них имеют ширину 16 бит, другие 8 бит и т. д.

Рассмотрим, как PIC-контроллер выполняет программу.

Программа должна быть предварительно сохранена в памяти программ (флеш-памяти). Начиная с адреса 0004. (В случае PIC он использует первые адреса для прерываний) При «включении питания» процессор устанавливает адресный счетчик на 0004 и «считывает» содержимое памяти программ. Затем он решает, является ли это исполняемой инструкцией и является ли она однобайтовой или многобайтовой. Допустим, это одна инструкция.

Сигнал CLOCK используется для перехода процессора к следующему шагу. Затем ЦП выполняет инструкцию. (скажем, очистить бит прерывания)

Для этого ЦП должен обратиться к регистру флагов и выполнить операцию записи.

После выполнения первой инструкции программы. ЦП увеличивает адресный счетчик на следующем тактовом импульсе и считывает содержимое памяти программ и так далее и тому подобное.

Для инструкций ввода и вывода ЦП будет сказано (в памяти программ) отправлять или получать данные в ПОРТ (у которого есть адрес).

Иногда ему нужно выполнять арифметические/логические операции, поэтому ему требуется временное хранилище. Здесь на помощь приходят регистры.

Точно так же он должен обрабатывать внешнее прерывание, поэтому существует блок обработки прерывания. Это гарантирует, что ЦП не будет прерван в середине потока в операции, а ожидает следующей точки (инструкции выборки) в программе. (ЦП запоминает, где он находится в программе, сохраняя адрес программы и различные регистры в памяти «стека»).

Выбранный вами чип PIC содержит множество других блоков, таких как умножитель 8 * 8, таймеры и т. Д. Каждый из них имеет адрес, линии управления и связанные с ними данные. Некоторые требуют инициализации процессором, а затем работают под собственным управлением (например, таймер), некоторые хранят данные (а не программную память). Некоторые общаются (UART, USB). Обратите внимание, что внутренний адрес, линии управления и линии данных не могут быть доступны с контактов.

Я надеюсь, что это дало вам более четкое представление о том, как работает чип и как «читать» блоки, содержащиеся внутри.