• Nenhum resultado encontrado

5. INTRODUÇÃO À PRÁTICA LABORATORIAL COM O Z80

N/A
N/A
Protected

Academic year: 2021

Share "5. INTRODUÇÃO À PRÁTICA LABORATORIAL COM O Z80"

Copied!
13
0
0

Texto

(1)

5.

I

NTRODUÇÃO À PRÁTICA LABORATORIAL COM O

Z80

Este capítulo efectua a apresentação de um pequeno sistema de apoio ao ensino do microprocessador Z80, que deverá ser utilizado para consolidar a apreensão dos conceitos ministrados nos capítulos anteriores, bem como para estimular no leitor o interesse pelo desenvolvimento de pequenas aplicações, proporcionando-lhe para tal um sistema mínimo que permita a respectiva implementação.

5.1

R

EQUISITOS E MODELO FUNCIONAL DE UM SISTEMA MÍNIMO

O sistema apresentado foi desenvolvido para verificar o seguinte conjunto de requisitos principais:

1. Ser suficientemente simples para que se torne possível efectuar neste capítulo uma apresentação exaustiva, garantindo que mesmo utilizadores com conhecimentos básicos consigam compreender em pormenor todos os aspectos da respectiva implementação.

2. Proporcionar entradas e saídas em quantidade e variedade suficiente para que se possa idealizar um conjunto relevante e interessante de exemplos de aplicação, por forma a estimular o interesse pela prática e a motivar a compreensão dos assuntos já anteriormente estudados.

3. Empregar componentes generalizadamente acessíveis e de baixo custo, de modo a possibilitar uma simples e rápida replicação do sistema.

Mantendo como linha orientadora este conjunto de requisitos, adoptou-se como modelo funcional a seguinte especificação:

1. O sistema deve dispor de uma memória de leitura / escrita não volátil (NVRAM), de modo a que a carga do programa a executar se possa efectuar através da seguinte sequência de operações: com a alimentação desligada, transferir a memória para um outro sistema que disponha de comunicação série e que permita carregar o programa a executar a partir do computador onde se efectuou a geração do código objecto; de novo com a alimentação desligada, transferir para o sistema do Z80 a memória com o programa pretendido; ligar a alimentação para executar o programa.

(2)

através de uma operação de escrita num porto de saída. Os valores extremos obtêm-se através da escrita dos valores 00H e FFH (respectivamente para -5 V e +5 V), devendo o valor analógico na saída crescer “linearmente” com o código escrito.

3. Devem existir quatro entradas digitais, cujo estado possa ser lido pelo microprocessador através de uma operação de leitura de um porto de entrada. 4. Devem existir quatro saídas digitais, cujo estado possa ser controlado pelo

microprocessador através de uma operação de escrita num porto de saída. 5. A descodificação de sistema deve observar a alocação de endereços

apresentada na tabela 5.1:

RD WR MREQ IORQ A15 A7 A6 Acesso seleccionado

0 (1) 1 (0) 0 1 0 X X Memória†

- - 1 0 X 0 0

-1 0 1 0 X 0 1 Saída analógica

1 0 1 0 X 1 0 Saídas digitais

0 1 1 0 X 1 1 Entradas digitais

Tabela 5.1: Mapa de descodificação especificado para o sistema mínimo pretendido.

Repare-se que a descodificação das entradas e saídas está condicionada ao tipo de acesso (leitura ou escrita), uma vez que as operações “ilegais” poderiam provocar situações de conflito no barramento de dados. A título de exemplo, e se esta precaução não tivesse sido tomada, a operação de escrita nas entradas digitais faria com que quer o processador (a efectuar um ciclo de escrita), quer o componente que permite passar para o barramento de dados o valor das entradas (a responder à descodificação do respectivo endereço), estivessem simultaneamente a forçar valores lógicos (eventualmente diferentes) nas mesmas linhas.

Refira-se que a especificação deste modelo funcional permite desde logo que se desenvolvam programas de aplicação, uma vez que estão já disponíveis todos os elementos necessários para este fim. A título de exemplo, e se se pretender gerar uma forma de onda em dente de serra na saída analógica, aproveitando a

A memória tanto pode ser seleccionada com WR=0 e RD=1 (ciclo de escrita) como com WR=1 e RD=0 (ciclo de leitura).

(3)

máxima excursão possível, seria desde já possível escrever um pequeno programa como o que se apresenta a seguir:

inicio .org 0h ; posiciona o codigo a partir de 0000

saida .equ 40h ; endereco do conversor D/A

inicio ld a,$00 ; comeca com o valor minimo

ciclo out (saida),a ; escreve no D/A (saida analogica)

inc a ; incrementa o valor para o D/A

jp ciclo ; repete o ciclo escreve / incrementa

.end

Chama-se em particular a atenção do leitor para a importância de se chegar a uma cuidada identificação de requisitos quando nos confrontamos com a necessidade de desenvolver uma dada aplicação, a que se deverá seguir uma caracterização em pormenor do modelo funcional do sistema pretendido. Quando convenientemente levadas a cabo, estas duas etapas facilitam largamente a tarefa de implementação do sistema, permitindo ao mesmo tempo iniciar em paralelo o desenvolvimento do hardware e dos programas que constituirão a aplicação pretendida.

5.2

I

MPLEMENTAÇÃO

A partir do modelo funcional descrito na secção anterior torna-se relativamente simples efectuar a respectiva implementação, que deverá processar-se através de um conjunto de passos que incluem a definição do diagrama de blocos global (onde se representam os principais componentes que deverão estar presentes), a descodificação do sistema, a passagem do diagrama de blocos para um diagrama esquemático detalhado e finalmente a concepção da carta de circuito impresso que permita a montagem do sistema. Cada uma destas etapas será agora analisada em detalhe.

5.2.1

Diagrama de blocos e selecção dos componentes

A partir do modelo funcional anteriormente definido torna-se relativamente simples chegar ao diagrama de blocos representado na figura 5.1.

(4)

Memória Conversor D/A Z80

Descodificação e entrada / saída paralela entradas digitais saídas digitais barramento de dados barramentos de endereços e de controlo selecção de acesso selecção de acesso saída analógica

Figura 5.1: Diagrama de blocos do sistema mínimo pretendido.

Repare-se que esta representação não inclui quaisquer aspectos de pormenor, embora permita identificar com facilidade quais os tipos de componentes que deverão estar presentes, bem como a interdependência entre os vários blocos.

5.2.2

A descodificação do sistema (e implementação da E/S digital)

Embora a descodificação do sistema pudesse ser feita com circuitos SSI/MSI da gama comercial corrente (tipo TTL), optou-se neste caso pela utilização de um dispositivo lógico programável (DLP) com recursos internos (arquitectura e número de macro-células) adequados aos requisitos da aplicação. Para além dos aspectos didácticos inerentes à utilização de DLPs, que aliás constituem uma solução comum para este tipo de aplicação, esta opção permitiu também implementar no mesmo componente os blocos necessários às entradas e saídas digitais pretendidas, contribuindo deste modo para minimizar o número de circuitos integrados empregues e a área de circuito impresso necessária.

No sentido de não expandir a apresentação para áreas que se afastam do seu tema central, omitem-se nesta secção a descrição da arquitectura interna do DLP seleccionado (o 22V10) e dos comandos de simulação lógica que permitiram efectuar a validação de projecto. As respectivas equações de funcionamento, que definem a geração dos sinais de descodificação (de acordo com a tabela 5.1) e a implementação das entradas e saídas digitais, merecem no entanto uma análise em pormenor:

(5)

/MEM_CS = /MREQ*IORQ*/A15

DA_CS = MREQ*/IORQ*/A7*A6*/WR*RD

OUT0 := (MREQ*/IORQ*A7*/A6*/WR*RD)*D0 + /(MREQ*/IORQ*A7*/A6*/WR*RD)*OUT0 OUT1 := (MREQ*/IORQ*A7*/A6*/WR*RD)*D1 + /(MREQ*/IORQ*A7*/A6*/WR*RD)*OUT1 OUT2 := (MREQ*/IORQ*A7*/A6*/WR*RD)*D2 + /(MREQ*/IORQ*A7*/A6*/WR*RD)*OUT2 OUT3 := (MREQ*/IORQ*A7*/A6*/WR*RD)*D3 + /(MREQ*/IORQ*A7*/A6*/WR*RD)*OUT3

D0.TRST = MREQ*/IORQ*A7*A6*WR*/RD D1.TRST = MREQ*/IORQ*A7*A6*WR*/RD D2.TRST = MREQ*/IORQ*A7*A6*WR*/RD D3.TRST = MREQ*/IORQ*A7*A6*WR*/RD D0 = KEY0 D1 = KEY1 D2 = KEY2 D3 = KEY3

A geração do sinal de descodificação da memória (/MEM_CS) não está condicionada aos sinais de /WR e /RD, uma vez que estes sinais vão ligar directamente aos pinos correspondentes neste componente.

Uma das vantagens da utilização de DLPs consiste precisamente em permitir ao projectista efectuar uma especificação textual (através de uma linguagem descritiva com vários níveis possíveis de abstracção) da funcionalidade pretendida para o circuito, sem necessitar portanto de se preocupar com a sua transposição para uma representação por diagrama esquemático. No entanto, e para os leitores menos familiarizados com a utilização desta tecnologia, poderá ser útil que se analise brevemente a relação entre cada bloco de equações e as estruturas dos circuitos que elas implicitamente sugerem (o que não significa necessariamente que a sua implementação nos DLPs siga os modelos que serão agora apresentados).

1. A descodificação do acesso à memória e ao conversor D/A, através das equações correspondentes aos sinais /MEM_CS e DA_CS, indica uma estrutura do tipo ilustrado na figura 5.2:

Figura 5.2: “Equivalente” dos sinais de descodificação da memória e do conversor D/A.

(os sinais estarão negados nas entradas ou nas saídas, quando forem activos em zero)

(6)

2. A implementação das saídas digitais, que memorizam os valores escritos pelo microprocessador, sugere uma estrutura como a que se ilustra na figura 5.3:

mux OUTi Di D relógio do sistema elemento de memória (flip-flop) do tipo D condição de selecção de Di:

MREQ*/IORQ*A7*/A6*/WR*RD 0 1

Figura 5.3: “Equivalente” das saídas digitais.

3. A implementação das entradas digitais, cujo valor deve aparecer no barramento de dados apenas quando se efectua a respectiva leitura, sugere a utilização de um dispositivo com terceiro estado controlado pelas condições de selecção, como se apresenta na figura 5.4:

KEYi Di

condição de selecção:

MREQ*/IORQ*A7*A6*WR*/RD

Figura 5.4: “Equivalente” das entradas digitais.

A simulação efectuada produziu as formas de onda da figura 5.5, onde está representada a evolução temporal das saídas de selecção (/MEM_CS e DA_CS, na figura 5.5 (a)) e do bit 2 das E/S digitais (D2, OUT2 e KEY2, na figura 5.5 (b)).

(7)

(b) Bit 2 das E/S digitais (D2, OUT2, KEY2).

Figura 5.5: Resultados da simulação do bloco de descodificação e E/S digital.

5.2.3

Diagrama esquemático

O diagrama esquemático do sistema desenvolvido está representado na figura 5.6, onde a conectividade entre os pinos pertencentes à mesma ligação é identificada pela utilização de um nome comum (D0, por exemplo, é o nome da ligação que une o pino 14 do Z80, o pino 11 da RAM, o pino 20 do DLP e o pino 3 do 373 que memoriza os valores escritos no D/A).

Repare-se em particular que houve o cuidado de garantir que nenhuma entrada não usada ficasse a flutuar, como se pode verificar no caso dos dois inversores que sobram no 74HCT14 e dos vários sinais do barramento de controlo do Z80 (/WAIT, /BUSRQ, /INT e /NMI). Todos estes sinais têm resistências para VCC,

estando alguns deles disponíveis exteriormente através de um conector que inclui também outros sinais com interesse para vários exercícios práticos de aplicação.

Refira-se ainda a presença de vários condensadores de desacopulamento entre os pinos de VCC e GND (100 nF), que têm por objectivo responder aos picos de

corrente pedidos pelos circuitos integrados, minimizando as flutuações na tensão de alimentação.

(8)

Date: December 12, 1995 Sheet 1 of 1

Size Document Number REV

A JMF / HCM 1.0 SITEMA Z80 - SD2 1 2 C3100n VCC OUT3 OUT2 OUT1 D3 D2 D1 D0 I1/CLK 1 I2 2 I3 3 I4 4 I5 5 I6 6 I7 7 I8 8 I9 9 I10 10 I11 11 I12 13 O1 23 O2 22 O3 21 O4 20 O5 19 O6 18 O7 17 O8 16 O9 15 O10 14 U3 22V10 CLK /MREQ /IOREQ A15 A7 A6 KEY0 D0 D1 D2 D3 D4 D5 D6 A0 10 A1 9 A2 8 A3 7 A4 6 A5 5 A6 4 A7 3 A8 25 A9 24 A10 21 A11 23 A12 2 A13 26 A14 1 CE 20 WE 27 OE 22 Q0 11 Q1 12 Q2 13 Q3 15 Q4 16 Q5 17 Q6 18 Q7 19 U2 DS1230Y A0 A1 A2 A3 A4 A5 A6 A7 A0 A1 A2 A3 A4 A5 A6 A0 30 A1 31 A2 32 A3 33 A4 34 A5 35 A6 36 A7 37 A8 38 A9 39 A10 40 A11 1 A12 2 A13 3 A14 4 A15 5 D0 14 D1 15 D2 12 D3 8 D4 7 D5 9 D6 10 D7 13 M1 27 MREQ 19 IORQ 20 WR 22 RD 21 REFSH 28 HALT 18 WAIT 24 INT 16 NMI 17 RESET 26 BUSRQ 25 BUSAK 23 CLK 6 U1 Z80 /MREQ /IOREQ /WR /RD VCC 1 2 R1 2K2 1 R2 2K22 1 R3 2 2K2 1 2 R4 2K2 1 R5 2K22 /NMI /INT /RESET A8 A9 A10 A11 A12 A13 A14 A15 D0 A7 A8 A9 A10 A11 A12 A13 A14 /M_CS 1 2 C2 100n D7 VCC KEY1 KEY2 KEY3 /WR /RD OUT0 DA_CS GND VCC Q0 /M_CS OUT0 OUT1 OUT2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 JP1 CONECTOR OUT3 KEY0 KEY1 KEY2 KEY3 /NMI /INT 1 2 R10 2K49 Q1 Q2 Q3 Q4 Q5 Q6 Q7 1 2 C5 100n VCC /WR /RD D1 D2 D3 D4 D5 D6 D7 1 2 C1 100n CLK VCC 1 2 U4A 74HCT14 1 2100pC8 1 2 R13 1K 13 12 U4F 74HCT14 1 Y12 4MHz 1 2 R14 1K CLK D0 3 Q0 2 D1 4 Q1 5 D2 7 Q2 6 D3 8 Q3 9 D4 13 Q4 12 D5 14 Q5 15 D6 17 Q6 16 D7 18 Q7 19 OC 1 G 11 U5 74LS373 D0 D1 D2 D3 D4 D5 D6 B8 12 B7 11 B6 10 B5 9 B4 8 B3 7 B2 6 B1 5 VR+ 14 15 IOUT 4 IOUT 2 COMP 16 VLC 1 V + 1 3 V -3 U6 DAC0800 Q0 Q1 Q2 Q3 Q4 Q5 Q6 3 2 1 8 4 U7A TL082 5 6 7 U7B TL082 VEE VDD 1 2 J1 SAIDA 1 2 R8 10K 1 2 R9 10K VCC VCC 1 2 D4 LED_2 1 2 C6 100n 1 2 C7100n VEE VEE 1 2 R11 2K49 1 2 R12 4K99 Q7 DA_CS D7 1 2 D1 1N4148 VCC 1 2 R16 10K VCC 1 2 R15 1K 1 2 S1 RESET 1 2 C94u7 5 6 U4C 74HCT14 11 10 U4E 74HCT14 /RESET VCC VCC VCC 1 2 R28 390R VCC 1 2 D5 LED_3 1 R26 2 10K 1 2 R27 390R 2 3 1 Q2 BC547 1 R25 2 10K 2 3 1 Q1 BC547 OUT2 OUT3 1 2 R23 390R 1 2 R24 390R 1 2 D2 LED_0 1 2 D3 LED_1 1 2 R21 2K2 1 2 R22 2K2 KEY2 KEY3 VCC VCC 1 2 R19 2K2 1 2 R20 2K2 KEY0 KEY1 VCC VCC 9 8 U4D 74HCT14 1 2 R18 2K2 VCC 3 4 U4B 74HCT14 VCC 1 2 R17 2K2 VCC -12V +12V +5V 1 2 3 4 JP2 ALIMENTACAO GND VCC VDD VEE VCC 1 2 C4 100n 1 2 S2 KEY0 1 2 S3 KEY1 1 2 S4 KEY2 1 2 S5

KEY3 OUT0 OUT1

(9)

5.2.4

Disposição dos componentes e circuito impresso final

Apresenta-se na figura 5.7 uma fotografia do respectivo circuito impresso, já completamente populado. Todos os componentes se encontram montados sobre o mesmo lado da carta, pelo que é fácil de estabelecer a sua associação com o diagrama esquemático apresentado anteriormente na figura 5.6. O conector de alimentação encontra-se na parte inferior esquerda, situando-se na margem direita o conector com os sinais disponíveis para o exterior (o conector para cabo plano com 20 pinos) e a ficha BNC que contem a saída analógica.

Figura 5.7: Fotografia da carta de circuito impresso.

5.3

E

XEMPLO DE APLICAÇÃO

O exemplo de aplicação descrito nesta secção consiste no programa apresentado já anteriormente na secção 5.1, que efectua a geração de uma onda em dente de serra na saída analógica. A geração do respectivo código objecto efectua-se invocando um cross-assembler que toma por entrada o código fonte então apresentado, podendo para o caso do TASM esta invocação fazer-se através do seguinte comando:

tasm -80 -f00 -c -h -s -b serra.asm

(os parâmetros apresentados têm o seguinte significado: -80: usa a tabela correspondente ao microprocessador Z80; -f00: preenche o espaço de memória não usado com 00h; -c: escreve o ficheiro objecto como um único bloco; -h: produz uma

(10)

tabela de símbolos; -b: produz o código objecto em formato binário; serra.asm: nome do ficheiro que contem o código fonte)

A execução deste comando produz a correspondência que se apresenta a seguir entre o código simbólico (assembly) e o respectivo código objecto. Repare-se que o código objecto ocupa 8 posições de memória (8 bytes), de 0000 até 0007, cujo conteúdo está também indicado (repare-se que o argumento da instrução de salto surge na memória com o byte menos significativo em primeiro lugar, a que se segue o byte mais significativo).

0001 0000 0002 0000 inicio .org 0h 0003 0000 0004 0000 saida .equ 40h 0005 0000 0006 0000 3E 00 inicio ld a,$00

0007 0002 D3 40 ciclo out (saida),a

0008 0004 3C inc a 0009 0005 C3 02 00 jp ciclo 0010 0008 0011 0008 .end 0012 0008 ADDR 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ---0000 3E 00 D3 40 3C C3 02 00 00 00 00 00 00 00 00 00

tasm: Number of errors = 0

A execução deste programa será feita colocando no sistema uma memória de leitura / escrita não volátil, com o respectivo código previamente memorizado, e dará origem na saída analógica à forma de onda que se apresenta na figura 5.8.

(11)

Sendo a frequência da forma de onda gerada de 625 Hz, verifique que o conjunto de instruções que lhe dá origem, executado à frequência de relógio de 4 MHz, conduz efectivamente aquele valor de frequência para a onda em dente de serra. No sentido de consolidar a compreensão dos elementos apresentados nesta secção, recomenda-se ao leitor que procure identificar as modificações a introduzir para proporcionar a funcionalidade referida nos pontos seguintes: 1. Dispor da possibilidade de seleccionar uma das seguintes formas de onda:

dente de serra, triangular, rectangular, sinusoidal.

2. Permitir o ajuste da frequência da forma de onda seleccionada.

3. Permitir o ajuste da componente contínua e da amplitude pico-a-pico da forma de onda seleccionada.

5.4

O

UTRAS FONTES DE INFORMAÇÃO

Tratando-se de um capítulo que apresenta questões essencialmente relacionadas com aspectos práticos de aplicação, as fontes de informação adicionais mais recomendáveis neste contexto serão naturalmente os catálogos e manuais que apresentam as folhas de características dos vários componentes empregues, e que frequentemente são complementadas com exemplos de aplicação. O catálogo da Zilog com os componentes da família do Z80, o da Dallas Semiconductor sobre as memórias não voláteis, e vários outros sobre DLPs, circuitos TTL / HCT, conversores D/A e amplificadores operacionais, são exemplos que deverão ser consultados para realizar qualquer projecto do tipo apresentado neste capítulo. A consulta ao manual que acompanhe o cross-assembler seleccionado é também naturalmente necessária, já que é necessário conhecer as suas regras sintácticas específicas. Para o caso do TASM recomenda-se a consulta a Thomas N. Anderson, TASM User’s Manual, Versão 2.8, Speech Technology Inc., 1990. Finalmente, e atendendo à enorme variedade de fontes de informação disponíveis via Internet, recomendam-se ainda como locais privilegiados de consulta os seguintes endereços no WWW:

1. http://www.yahoo.com/text/Computers_and_Internet/Hardware/Microprocessors,

(12)

2. http://infopad.eecs.berkeley.edu/CIC/archive/cpu_history.html, cujo tema principal é Great Microprocessors of the Past and Present.

3. http://www.ti.com/, para informações relativas aos produtos da Texas

Instruments (a generalidade dos fabricantes dispõe igualmente de páginas WWW que permitem o acesso a informações técnicas dos mais variados tipos).

(13)

5. I

NTRODUÇÃO À PRÁTICA LABORATORIAL COM O

Z80 ...5.1

5.1 Requisitos e modelo funcional de um sistema mínimo... 5.1 5.2 Implementação ... 5.3 5.2.1 Diagrama de blocos e selecção dos componentes... 5.3 5.2.2 A descodificação do sistema (e implementação da E/S digital)... 5.4 5.2.3 Diagrama esquemático... 5.7 5.2.4 Disposição dos componentes e circuito impresso final... 5.9 5.3 Exemplo de aplicação... 5.9 5.4 Outras fontes de informação ... 5.11

Referências

Documentos relacionados

Corretora especializada em Seguros para Clubes em ‐ Corretora especializada em Seguros para Clubes, em  todos os ramos, para inclusão em apólices coletivas  com

O vereador Anderson pede aparte e comenta sua preocupaçao com relação ao PPE, pois segundo ele os projetos aprovados pela camara o Prefeito Laercio não cumpre, e

4-Conclusão: A dosagem de IgG para o antígeno Glc-B do Mycobacterium tuberculosis foi capaz de discriminar entre trabalhadores da área da saúde PPD positivos, PPD negativos

Em particular podemos fazer pullback de G-fibrados principais topol´ ogicos por aplica¸ c˜ oes continuas, e mais importante ainda ´ e a observa¸ c˜ ao que todos G-fibrado

Entrega do material para finalização: até as 18h da quinta-feira que antecede o início da cine-semana. Para casos de remanejamento de cópias (cinema para cinema) será necessária

A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se baseia no fato de que uma

Como eles não são caracteres que possam ser impressos normalmente com a função print(), então utilizamos alguns comandos simples para utilizá-los em modo texto 2.. Outros

Entrando para a segunda me- tade do encontro com outra di- nâmica, a equipa de Eugénio Bartolomeu mostrou-se mais consistente nas saídas para o contra-ataque, fazendo alguns golos