Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

02f.Memorias de datos

4,346 views

Published on

  • Login to see the comments

  • Be the first to like this

02f.Memorias de datos

  1. 1. Sistemas Basados en Microprocesadores Memorias de Datos
  2. 2. Memorias de datos Los µcontroladores PIC disponen de dos memorias:  Una volátil de tipo RAM que se utiliza para el procesado rápido de datos temporales.  Una no volátil de tipo EEPROM para el almacenamiento de datos persistentes. http://paginaspersonales.deusto.es/jonathan.garibay/
  3. 3. Memoria de datos RAM Se utiliza un bus de direccionamiento está de 12 bits  Se pueden direccionar un máximo de 4KBytes.  Cada posición de memoria es de 8 bits.  Está organizada en 16 bancos de 256 posiciones. La memoria contiene dos zonas:  SFR (Special Function Registers): ocupa las últimas 128 posiciones y es usada para el control y estado del controlador y sus periféricos.  GPR (General Purpose Registers): ocupa el resto de la memoria y es utilizada para datos genéricos del programador. http://paginaspersonales.deusto.es/jonathan.garibay/
  4. 4. Memoria de datos RAM (continuación…) Modos de direccionamientos  Direccionamiento directo:  Por medio del registro BSR<3:0> se selecciona el banco activo, y en la instrucción se indica los 8 bits de menos peso que direccionan dentro del banco seleccionado  En las instrucciones en ensamblador se debe indicar que se hace uso del direccionamiento directo.  la instrucción movff siempre utiliza este direccionamiento y se indican los 12 bits del registro fuente y los 12 bits del registro destino http://paginaspersonales.deusto.es/jonathan.garibay/
  5. 5. Memoria de datos RAM (continuación…) Modos de direccionamiento (continuación…)  Direccionamiento de acceso a banco:  Se crea un banco de memoria especial formado por las 128 primeras posiciones y las 128 últimas posiciones  Sólo se requieren 8 bits para direccionar, indicados en la propia instrucción  Por defecto, las instrucciones utilizan este tipo de direccionamiento  Simplifica la programación al no tener en cuenta los bancos del direccionamiento directo http://paginaspersonales.deusto.es/jonathan.garibay/
  6. 6. Memoria de datos RAM (continuación…)  Direccionamiento directo y acceso a banco Con este bit (parámetro de las Registro de instrucciones) seselección de banco selecciona el tipoen direccionamiento de direccionamiento directo 128 primeras posiciones de la memoria Banco de acceso para el direccionamiento de acceso a banco 128 últimas posiciones de la memoria  registros SFR http://paginaspersonales.deusto.es/jonathan.garibay/
  7. 7. Memoria de datos RAM (continuación…) Modos de direccionamiento (continuación…)  Direccionamiento indirecto:  Permite al programador acceder a posiciones de memoria sin especificarlo en las instrucciones.  Para indicar la dirección, se utilizan los registros FSRxH:FSRxL (sólo se usan los 12 bits de menos peso)  Para el dato, se utiliza el registro INDFx que contendrá el dato del registro apuntado por FSRxH:FSRxL  Muy útil para la creación de estructuras de datos como arrays, pilas… http://paginaspersonales.deusto.es/jonathan.garibay/
  8. 8. Memoria de datos RAM (continuación…) Direccionamiento indirecto En la instrucción, se trabaja sobre el registro INDFx sin preocuparse de su dirección Estos registros pueden ser modificados aritméticamente; p.e. un incremento para recoger un espacio de memoria Se indica la dirección del registro sobre el que se va a trabajar http://paginaspersonales.deusto.es/jonathan.garibay/
  9. 9. Memoria de datos RAM (continuación…) Tabla de registros de propósito específico http://paginaspersonales.deusto.es/jonathan.garibay/
  10. 10. Memoria de datos EEPROM Se utilizan direcciones de 8 bits  Se pueden direccionar 256 posiciones  Cada posición de memoria tiene 8 bits Es una memoria persistente y se puede leer y escribir.  La memoria tiene una vida útil de alrededor de 1.000.000 de escrituras. Registros asociados a la lectura/escritura:  EEADR (registro de dirección):contiene la dirección sobre la que se va a leer o escribir.  EEDATA (registro de dato): contiene el dato a leer o escribir.  EECON1 (registro de control): configura las operaciones de lectura y escritura  EECON2 (registro de seguridad): para evitar falsas escrituras http://paginaspersonales.deusto.es/jonathan.garibay/
  11. 11. Memoria de datos EEPROM (continuación…) http://paginaspersonales.deusto.es/jonathan.garibay/
  12. 12. Memoria de datos EEPROM (continuación…) Proceso de lectura  La lectura del registro es inmediata.  Pasos a seguir 1. Se indica la dirección en el registro de dirección EEADR 2. Se configura el registro de control EECON1 3. Se lee el dato del registro de datos EEDATA http://paginaspersonales.deusto.es/jonathan.garibay/
  13. 13. Memoria de datos EEPROM (continuación…) Proceso de escritura  El proceso de escritura no es inmediato, sino que se requiere de un tiempo para que se complete la operación.  Se utiliza una secuencia de seguridad para evitar falsas escrituras (número limitado de escrituras de la memoria).  Este recurso implementa una interrupción por finalización de escritura (bits EEIP, EEIE, EEIF).  Pasos a seguir: 1. Se indica la dirección en el registro de dirección EEADR 2. Se escribe el dato en el registro de datos EEDATA 3. Se configura el registro de control EECON1 4. Se implementa la secuencia de seguridad (las interrupciones deben estar desactivadas) 5. Se espera a que finalice la escritura (bucle de chequeo de bit de estado o por interrupción) http://paginaspersonales.deusto.es/jonathan.garibay/
  14. 14. Memoria de datos EEPROM (continuación…) Proceso de escritura (continuación…) http://paginaspersonales.deusto.es/jonathan.garibay/

×