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

2

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 (p. ej., ALU), el bus de datos, el bus de programa están interconectados. He buscado mucho en Google pero no lo entendí. Diagrama de bloques de 18f4550

enlace: enlace Número de página: 13

    
pregunta tamil_innov

1 respuesta

9

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

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

Enelcorazóndelmicrocontroladorseencuentraunnúcleo(Unidadcentraldeprocesamiento)-('Instrucción/decodificación/control','Señaldecontroldelamáquinadeestado')Funcionainterpretandolassolicitudesyejecutandounasecuencia.deoperaciones(el'cerebro'realdelcontrolador)

Apartedelapotencia(quenosemuestraenestosdiagramasdebloques),haytresconjuntosdeconexiones(líneasdebus)entrelasdiferentespartes:

Líneasdedirección

Líneasdedatos

Líneasdecontrol(leer,escribir,habilitar,etc.,enlatches,decodificadores,multiplexores,etc.)

Estossemuestraneneldiagramadelapreguntacomolíneasgruesasgrisesconcabezasdeflechaqueindicanladirección.Elanchodeestasconexiones(cuántos"cables" separados) puede variar. Algunos tienen 16 bits de ancho, otros 8 bits, etc.

Considere cómo un controlador PIC ejecuta un programa.

El programa primero debe almacenarse en la memoria del programa (RAM de flash). Comenzando en la dirección 0004. (En el caso del PIC, utiliza 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 esta es 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. La CPU ejecuta la instrucción. (diga claro el bit de interrupción)

Para hacer esto, la CPU debe dirigir el 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 PORT (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 para que haya un bloque de manejo de interrupciones. Asegura que la CPU no se interrumpa a mitad de la secuencia en una operación, sino que espera el siguiente punto (instrucción de búsqueda) en el programa. (La CPU recuerda dónde se encuentra en el programa al guardar la dirección del programa y varios registros en la memoria de "pila").

El chip PIC que ha elegido contiene muchos otros bloques, como un multiplicador de 8 * 8, temporizadores, etc. Cada uno tiene una dirección, líneas de control y datos conectados a ellos. Algunos requieren la inicialización por parte de la CPU y luego trabajan bajo su propio vapor (Timer, por ejemplo). Algunos almacenan datos (no la memoria del 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 te dé una idea más clara de cómo funciona el chip y cómo "leer" los bloques que contiene.

    
respondido por el JIm Dearden

Lea otras preguntas en las etiquetas