CDP1802

INTRODUCCION

DESCRIPCION

ALGUNAS DESCRIPCIONES DE SEÑALES

ARQUITECTURA

Daniela Pairicán Padilla









Introducción

El CDP1802 es un microprocesador 8-bit fabricado por Harris Semiconductor, diseñado para los usos encajados. A estado alrededor por diez años por lo menos.

Algunas de sus características son: era uno de los primeros microprocesadores radiacio'n-endurecidos, y fue utilizado extensamente en satélites y puntas de prueba de espacio. Tiene un diseño estático del Cmos sin frecuencia de reloj mínima, para poderlo funcionar en las velocidades muy bajas y la energía baja. Tiene un autobús paralelo 8-bit con el ómnibus de datos bidireccional y el autobús de dirección multiplexado. Tiene un puerto de salida pedacito-programable. Tiene cuatro pernos entrados que sean probados directamente por instrucciones de rama. Tiene un modo programable flexible de I/O. El reloj es un reloj monofásico, con un oscilador de la en-viruta. El sistema del registro es 16 registros, cada 16 pedacitos. El contador de programa puede ser uno de éstos, proporcionando una manera simple de poner contadores de programa en ejecucio'n múltiples, indicadores, o los registros.

Regresar al Inicio






Descripción

La familia CDP1802 de microprocesadores CMOS son registros de 8 bit orientados a la Unidad de Procesamiento Central (CPU) diseñado para usarlo como computador de proposito general o elementos de control en un rango ancho de sistemas o productos de programas almacenados.

El tipo CDP1802 incluye todo tipo de circuitos requeridos para ir a buscar, interpretar y ejecutar instrucciones que han sido almacenadas en tipos standar de memoria. Las extensas caracteristicas de control I/O estan proporcionando facilitar el diseño del sistema.

La series de CPU 1800 también proporcinn una interface de sincronización a memoria y controladores externos para dispositivos I/O y minimiza el costo de controladores de interface. Adicionalmente, la interface I/O es capaz de soportar dispositivos operando en polled, manejador de interrupciones o modos de acceso a memoria directo.

El CDP1802A y el CDP1802AC tienen una entrada maxima de frecuencia veloz de 32MHz a 5[v]. El CDP1802A y el CDP1802AC son funcionalmente identicos. Ellos difieren en que el 1802A tiene un rango de voltage recomendado para operar de 4[v] a 10.5[v] y el 1802AC tiene un rango recomendado de 4[v] a 6.5[v].

El 1802BC es una versión más veloz que el 1802AC, teniendo una entrada maxima de frecuencia de reloj de 50MHz a 5[v] y teniendo un rango recomendado de 4[v] a 6.5[v].

NUMERO DE PIEZA RANGO DE TEMPERATURA PAQUETE PKG. NO
5v - 3.2MHz 5v - 5MHz
CDP1802ACE CDP1802BCE -40°c a +85°c PDIP Burm-In E40.6
CDP1802ACEX CDP1802BCEX E40.6
CDP1802ACQ CDP1802BCQ -40°c a +85°c PLCC N44.65
CDP1802ACD
-
-40°c a +85°c SBDIP Burm-In D40.6
CDP1802ACDX CDP1802BCDX D40.6

Regresar al Inicio


Algunas Descripciones de Señales

Bus 0 al bus 7 (buses de datos)
La linea del bus de datos 8 bit bidireccionales. Esas lineas son usadas para transferir datos entre la memoria, el microprocesador, y dispositios I/O.

N0 al N2 (Lineas de ControlI/O)
Activado por una instrucción I/O a una señal lógica de control I/O de un dato transferido entre memoria e interfaces I/O. Esas lineas pueden ser usadas para códigos de comando o codigos de selección de dispositivos (independiente o combinado con el byte de memoria en el bus de datos cuando una instrucción I/O esa siendo ejecutada). Los N bits estan bajo todo el tiempo excepto cuando una instrucción I/O esta siendo ejecutada. Durante este tiempo su estado es el mismo que el bit correspondiente en el registro N.
La dirección del flujo de datos esta definido en la instrucción I/O por el bit N3 (internamente) y es indicado por el nivel de la señal MRD.
MRD = VCC: Datos desde I/O a la CPU y memoria
MRD = VSS: Datos desde memoria a I/O
EF1 a EFa (4 banderas)
Esas entradas permiten que los controladores de I/O transfieran información al procesador. Los niveles pueden ser testeados por las instrucciones condicionales Branch. Ellos pueden ser usados en conjunto con el interruptor de lineas solicitada para establecer prioridades de interrupción. Esas banderas pueden ser usadas tambien por dispositivos I/O para "llamar la atención" del procesador, en cada caso el programa deberia testear el estado de esa bandera. Las banderas son probadas al comienzo de cada ciclo S1.

Interrupción, DMA - IN, DMA - OUT (3 I/O solicitadas)
Esas entradas son mostradas por la CPU durante el intervalo entre el cargado de TPB y el cargado de TPA.

Acción Interrumpir: X y P son cargados en T después de ejecutar la instrucción actual. El designado X es set a 2; el designado P es set a 1. La acción de interrumpir necesita un ciclo de máquina.

Acción DMA: finalizando la ejecución actual, R(0) apunta al area de memoria para transferir datos. El dato es cargado al interior o leido afuera de la memoria, y se incrementa R(0).

SC0, SC1, (2 Codigo de Lineas de Estados): ): las salidas indican que la CPU esta:
1. Va a buscar una instrucción, o
2. ejecuta una instrucción, o
3. procesa una solicitud DMA, o
4. solicita una interrupción de Acknowledging.
Los niveles de código de estado son tabulados Below. Todos los estados son validos en TPA.
H = VCC, L = VSS.

Tipo de Estado Estado de Lineas de Codigo
SC1
SC0
S0(buscar)
L
L
S1(ejecutar)
L
H
S2(DMA)
H
L
S3(interrupción)
H
H

TPA, TPB (2 Timing Pulses): Los pulsos positivos que ocurren una vez en cada ciclo de maquina (TPB sigue TPA). Son usados con controladores E/S para interpretar códigos y el tiempo de interacción con el bus de datos.

MA0 a MA7 (8 líneas de dirección de memoria): en cada ciclo la dirección del byte más alto, aparecen en la línea de dirección MA0 - 7 primero. La dirección del byte más bajo aparece en la línea de dirección después de la terminación del TPA.

MWR (pulso escrito): un pulso negativo, aparece en un ciclo de Memory - write, después que la línea de dirección ha sido estabilizada.

MRD (nivel de escritura): un nivel bajo en MRD indica un ciclo de Memory read. Esto puede ser usado para controlar tres estados de salida desde la memoria direccionada que puede tener en común un dato de entrada y un bus de salida.

Q: Un bit de salida desde la CPU que puede ser resetiado bajo un control de programación durante la ejecución de la instrucción SEQ ó REQ, Q es setiado o resetiado entre la pista del TPA y la delantera del TPB.

Reloj: el reloj es un contador internamente para 8 pulsos de reloj por ciclo de máquina.

WAIT, CLEAR (2 líneas de control): provee cuatro modos de control que se muestran en la siguiente tabla.

CLEAR WAIT Modo
L
L
LOAD
L
H
RESET
H
L
PAUSE
H
H
RUN

VDD, VSS, VCC (Niveles de Poder): El voltaje interno es suministrado VDD es aislado desde el voltaje E/S suministrando VCC para que el procesador pueda operar a la máxima velocidad mientras la interfase con dispositivos periféricos operen a bajo voltaje. VCC debería ser menor o igual a VDD. Todas las salidas van y vienen desde VSS a VCC. La recomendación de entrada de voltaje es que vaya de VSS a VCC.

Regresar al Inicio


Arquitectura

La principal característica de este sistema es un registro de vectores consistente en registros de 16 bit scratchpad. Los registros individuales en el vector son asignados por un código binario de 4 bit desde uno de los registros de 4 bit etiquetados N, P y X. El contenido de algún registro puede ser dirigido a una de las siguientes 3 partes:

1. La memoria externa
2. El registro D
3. El circuito incremento/decremento donde es incrementado o decrementado por uno y almacenado en el registro 16 bit.

Las tres partes dependiendo sobre la naturaleza de la instrucción, podría operar independientemente o en varias combinaciones en el mismo ciclo de maquina.
Con dos excepciones, la instrucción de la CPU consiste en 2 ciclos de 8 ciclos de reloj por pulso de maquina.
El primer ciclo, es el ciclo fetch, y el segundo, y tercero si es necesario, son la ejecución de ciclos.
Durante el ciclo fetch los 4 bits en el asignado P selecciona uno de los 16 registros R(P) como el actual contador de programa. El registro seleccionado R(P) contiene la dirección de localidad de memoria desde que la instrucción esta siendo ida a buscada. Cuando la instrucción es leída desde la memoria, los bits más altos son cargados en el registro y los 4 más bajos en el registro N. El contenido del contador de programa es automáticamente incrementada en uno para que R(P) esta ahora "apuntando" al próximo byte en la memoria.
El asignado X selecciona uno de los 16 registros R(X) para "apuntar" a la memoria por un operando (o dato) en cierta ALU u operación I/O.
El asignado N puede realizar las siguientes funciones dependiendo sobre el tipo de instrucción ida a buscar:

1. Indicar para los dispositivos I/O un código de comando o código de selección de dispositivos para periféricos.
2. Indicar la operación especifica para ser ejecutada durante las instrucciones ALU, tipos de pruebas para ser realizados durante la instrucción Branch (rama).
3. Indicar el valor para ser cargado en P para designar un nuevo registro para ser usado como el contador de programas (RP).
4. Indicar el valor para ser cargado en X para designar un nuevo registro para ser usado como puntero de datos (RX).

El registro en R puede ser asignado por un programador en 3 diferentes maneras:
* Como contador de programa
* Puntero de datos
* Locación Scratchpad (registros de datos) para retener 2 bytes de datos.

Contador de Programas
Algún registro puede ser el contador de programa principal; la dirección del registro seleccionado esta retenida en el asignado P. Otro registro en R puede ser usado como contador de programa subrutina. Por una instrucción el contenido del registro P puede ser cambiado para efectuar un "llamado" a subrutina. Cuando los interruptores están siendo ocupados, el registro (R1) es usado como el contador de programa para los interruptores de usuarios de servicios de rutina. Después de resetear y durante una operación DMA, R(0) es usado como el contador de programa. En todo el otro tiempo el registro designado como contador de programa es la discreción del usuario.

Puntero de Datos
El registro en R podría ser usado como puntero de datos para indicar una localidad de memoria. El registro designado por X (es decir R(X)) apunta a memoria por las siguientes instrucciones .

1. Operaciones ALU F1 - F5, F7, 74, 75, 77
2. Instrucciones de salida 61 a través del 67
3. Diversas instrucciones seguras -70 - 73, 78, 60, F0

El registro designado por N (es decir R(N)) apunta a memoria por las instrucciones 0N y 4N "cargar D desde la memoria" y la instrucción 5N "almacenamiento D". El registro asignado por P (es decir, el contador de programas) es usado como el puntero de datos para instrucciones ALU F8 - FD, FF, 7C, 7D, 7F. Durante esas instrucciones ejecutadas, la operación es referida como "dato inmediato".
Otro importante uso de R como puntero de datos, soporta la función BUILT - IN DIRECT - MEMORY - ACCESS (DMA). Cuando una solicitud DMA - in o una DMA - out es recibida, un ciclo de maquina es "robado". Esta operación ocurre al final de la ejecución del ciclo de maquina en la instrucción actual. El registro R(0) es siempre usado como un puntero de datos durante la operación DMA. El dato es leído desde (DMA - out) o escrito (DMA - in) in la locación de memoria apuntada por el registro R(0). Al final de la transferencia, R80) es incrementado para que el procesador este listo para actuar sobre la próxima solicitud de transferencia de byte DMA.
Estas características en la arquitectura de las series 1800 guarda una cantidad sustancial de lógica cuando intercambios rápidos de bloques de datos son requeridos, tales como con discos magnético o durante los ciclos CRT - Display - Refresh (CRT - mostrar - actualizar).

Registro de Datos
Cuando los registros en R son usados para almacenar bytes de datos, 4 instrucciones son proporcionadas las cuales permiten a D recibir desde, o escribir en cualquiera de las 2 porciones mas altos o mas bajos del registro asignado por N. Por este mecanismo (junto con cargar el dato inmediato) de asignación del puntero de programa y el puntero de datos son inicializados. También, esta técnica permite "scratchpad" registros en R para ser usados para retener datos generales. Para emplear las instrucciones de incremento o decremento, tal registro podría ser usado como contador de loops.

El Flip - Flop Q
Un flip - flop interno Q, puede ser cubierto o recubierto por instrucciones y pueden ser sentidas por las instrucciones de ramificación condicional. La salida de Q esta también disponible como microprocesador de salida.

Resumen de Registros
D
8 Bits
Registro de Datos (acumulador)
DF
1 Bit
Bandera de Datos (ALU carry)
B
8 Bits
Registro Auxiliar de Retención
R
16 Bits
Registro 1 de 16 "scratchpad"
P
4 Bits
Designa cual Registro es Contador de Programas
X
4 Bits
Designa cual Registro es Puntero de Datos
N
4 Bits
Retiene bajo orden la instrucción digito
I
4 Bits
Retiene en orden alto la instruccion digito
T
8 Bits
Retener el viejo X, P despues de la interrupción
IE
1 Bit
Permite Interrupción
Q
1 Bit
Flip Flop de salida

Regresar al Inicio