Cómo entender el diagrama de bloques de la arquitectura del microcontrolador

Empecé a aprender el controlador pic18f4550. Me resulta difícil entender el diagrama de bloques de la arquitectura. No puedo entender cómo los periféricos, el núcleo de la CPU (por ejemplo, ALU), el bus de datos, el bus del programa están interconectados. Busqué mucho en Google pero no entendí.pic18f4550 diagrama de bloquesingrese la descripción de la imagen aquí

enlace: http://ww1.microchip.com/downloads/en/devicedoc/39632c.pdf Número de página: 13

¿Qué quieres decir con "cómo"? Están organizados en un bus de datos compartido, con un bus de direcciones (no se muestra) que selecciona cuál puede escribir en el bus.
No entendí el flujo de datos.

Respuestas (1)

Si fuera un principiante tratando de entender cómo funciona un microcontrolador, realmente no comenzaría con algo tan complicado. En primer lugar, el diagrama de bloques no es un diagrama de circuito . No muestra cómo se conecta una parte a otra; identifica bloques de subsistemas dentro del chip y cómo fluyen los datos entre ellos.

Considere los bloques de funciones internas de un sistema mucho más simplificado (mínimo).

ingrese la descripción de la imagen aquí

En el corazón del microcontrolador hay un Núcleo (Unidad central de procesamiento) - ('instrucción/decodificación/control', 'Señal de control de la máquina de estado ') Funciona interpretando solicitudes y ejecutando una secuencia de operaciones (el 'cerebro' real del controlador)

Además de la alimentación (que no se muestra en estos diagramas de bloques), existen tres conjuntos de conexiones (líneas de bus) entre las diferentes partes:

Líneas de dirección

Líneas de datos

Líneas de control (leer, escribir, habilitar, etc. a pestillos, decodificadores, multiplexores, etc.)

Estos se muestran en el diagrama de la pregunta como líneas grises gruesas con puntas de flecha que indican la dirección. El ancho de estas conexiones (cuántos 'cables' separados) puede variar. Algunos son de 16 bits de ancho, otros de 8 bits, etc.

Considere cómo un controlador PIC ejecuta un programa.

El programa debe almacenarse primero en la memoria de programa (flash RAM). Comenzando en la dirección 0004. (En el caso del PIC, usa las primeras direcciones para las interrupciones) Al 'encender', la CPU establece el contador de direcciones en 0004 y 'lee' el contenido de la memoria del programa. Luego decide si se trata de una instrucción ejecutable y si es un byte único o múltiple. Digamos que esta es una sola instrucción.

La señal CLOCK se usa para mover la CPU al siguiente paso. Luego, la CPU ejecuta la instrucción. (decir borrar el bit de interrupción)

Para hacer esto, la CPU debe dirigirse al registro de bandera y realizar una operación de escritura.

Una vez realizada la primera instrucción del programa. La CPU incrementa el contador de direcciones en el siguiente pulso de reloj y lee el contenido de la memoria del programa y así sucesivamente.

Para las instrucciones de entrada y salida, se le indicará a la CPU (en la memoria del programa) que envíe o busque datos en el PUERTO (que tiene una dirección).

A veces necesita realizar operaciones aritméticas/lógicas, por lo que necesita almacenamiento temporal. Aquí es donde entran los Registros.

De manera similar, tiene que manejar una interrupción generada externamente, por lo que hay un bloque de manejo de interrupciones. Garantiza que la CPU no se interrumpa a mitad de una operación, sino que espera el siguiente punto (obtener instrucción) en el programa. (La CPU recuerda dónde se encuentra en el programa guardando la dirección del programa y varios registros en la memoria 'pila').

El chip PIC que ha elegido contiene muchos otros bloques, como un multiplicador de 8*8, temporizadores, etc. Cada uno de ellos tiene una dirección, líneas de control y datos conectados a ellos. Algunos requieren inicialización por parte de la CPU y luego funcionan bajo su propio vapor (Temporizador, por ejemplo), Algunos almacenan datos (no memoria de programa). Algunos se comunican (UART, USB). Tenga en cuenta que no se puede acceder a las líneas internas de dirección, control y datos desde los pines.

Espero que esto le dé una idea más clara de cómo funciona el chip y cómo 'leer' los bloques que contiene.