EA079 { Laboratorio de Micro e
Minicomputadores: Hardware
Laborat
orio III
Projeto de Interfaces com o Oscilosc
opio
1
Objetivos do Laborat
orio III
1. Entender o mecanismo de interrupc~ao do MC68HC11.
2. Entender o funcionamento do temporizador embutido no MC68HC11 e o
circuito de interrupc~ao associado a ele implementado na placa PDHC11FEEC.
3. Projetar e implementar a interface entre o MC68HC11 e o osciloscopio.
4. (Opcional) Projetar e implementar a interface entre o MC68HC11 e quatro
displays de 7 segmentos.
5. Desenvolver um programa de forma que nos permite visualizar no osciloscopio a partir das amostras carregadas na memoria um padr~ao de sinal
gerado pelo gerador em projeto
Teclado
Interface
de
Entrada
Interface
com
Memória
Microcontrolador
Memória
Interfaces
de
Saída
Osciloscópio
Beeper
O sinal analogico que entra num dos canais do osciloscopio deve ter os valores
compreendidos entre a faixa [0; 2:56V ].
permitido o reuso dos circuitos ja existentes na placa PDHC11-FEEC.
E
1
EA079/FEEC/3o Roteiro { 2o SEM/2002 (Profs. Ting, Lotufo, Eduardo e J.Raimundo)2
2
Material
Placa PDHC11-FEEC
Placa de montagem
wire-wrap
Componentes disponveis no almoxarifado da FEEC (p.ex.: soquetes, re-
sistores, rolo de o para wire-wrap , CI's)
Ferramentas de montagem:
kit
de
wire wrap
Ferramentas de depurac~
ao: osciloscopio e multmetro
3
Cronograma de Atividades
Na setima aula do curso cada grupo deve ter um esboco dos esquematicos do
projeto da interface e ter providenciado junto com o almoxarifado da FEEC os
componentes necessarios para a montagem.
7a aula: montagem/teste da interface com o osciloscopio e programac~ao
do temporizador.
8a aula: programac~ao do controle do osciloscopio de forma a gerar a par-
tir das amostras fornecidas pelo usuario uma forma de onda no perdo
especicado.
9a aula: nalizar testes e demos.
4
Projeto Conceitual
Para visualizar no osciloscopio um sinal equivalente a um eletrocardiograma, o
gerador deve processar as amostras de tal forma que elas sejam enviadas para o osciloscopio na mesma frequ^encia em que elas foram amostradas. Para
isso, podemos utilizar o temporizador (timer ) para gerar interrupc~oes nos instantes pre-estabelecidos. E se quisermos ainda obter um sinal xo na tela do
osciloscopio, devemos prover um sinal de sincronismo adicional (base de tempo).
Como existe um timer embutido no MC68HC11, o projeto de circuitaria se
reduziria ao projeto de interface com o osciloscopio [3, 4, 5].
4.1
Eletrocardiograma
Um padr~ao de um ciclo cardaco de um eletrocardiograma normal e composto
por uma onda P, um complexo QRS e uma onda T. Uma onda P representa a
despolarizac~ao (ativac~ao) atrial e o complexo QRS, a despolarizac~ao ventricular.
A onda T reete a fase da rapida repolarizac~ao dos ventrculos [1].
EA079/FEEC/3o Roteiro { 2o SEM/2002 (Profs. Ting, Lotufo, Eduardo e J.Raimundo)3
Qualquer disturbio cardaco altera a forma do complexo QRS. Pode-se classicar o tipo de disturbio atraves do padr~ao do complexo QRS [2].
Os geradores de padr~ao s~ao muito utilizados pelos tecnicos para aferir um
eletrocaridografo ou um monitor cardaco que foi consertado. Nos geradores de
padr~oes ha uma sinalizac~ao com um led quando ocorre a onda R (ou o complexo
QRS como um todo). Com isso os tecnicos podem vericar se o equipamento
consertado detecta a onda R, ja que este deve dar um beep sinalizando a detecc~ao
da onda.
No projeto do nosso gerador optamos por emiss~ao de sinais sonoros (beep )
quando e gerada uma onda R.
4.2
MC68HC11
Antes de iniciar o projeto devemos analisar/avaliar as funco~es relacionadas ao
tratamento de perifericos disponveis no MC68HC11.
4.2.1
Interface E/S
1. Existem basicamente tr^es formas para iniciar uma transfer^encia de dados
entre uma unidade processadora/microcontrolador e seus perifericos: E/S
controlada por programa, que por sua vez pode ser condicional (polling )
e incondicional (por amostragem), E/S por interrupc~ao, e E/S por acesso
direto a memoria. Quais s~ao as formas suportadas pelo MC68HC11?
2. A transfer^encia de dados pode ser em forma serial ou paralela, sncrona ou
assncrona. No MC68HC11 as transfer^encias paralelas s~ao feitas de forma
sncrona ou assncrona? E as transfer^encias seriais?
3. Os dados a serem transferidos podem ser em forma analogica ou em forma
digital. Esta embutida no MC68HC11 interface de entrada para sinais
analogicos. Em quais enderecos est~ao mapeados esta interface de entradas
analogicas? E para as sadas analogicas?
4. MC68HC11 prov^e no total 7 pinos de interrupca~o (X I RQ, I RQ, PA0/IC3,
PA1/IC2, PA2/IC1, PA7/PAI/OC1, e AS/STRA). Quais deles s~ao associados aos perifericos embutidos na MCU? Quais s~ao associados as fontes
externas?
EA079/FEEC/3o Roteiro { 2o SEM/2002 (Profs. Ting, Lotufo, Eduardo e J.Raimundo)4
5. O que voc^e entende por uma interrupca~o mascaravel? Como se pode
mascarar uma requisic~ao de interrupca~o no MC68HC11?
6. Existem duas formas para tratar as interrupc~oes: interrupc~ao auto-vetorizada
e interrupc~ao vetorizada. Qual e a forma suportada pelo MC68HC11? No
modo expandido quais s~ao os enderecos das rotinas de servico que tratam
os sinais de interrupc~ao externos?
7. MC68HC11 suporta multiplas fontes de requisic~ao de interrupc~oes? Caso
sim, qual e a ordem de atendimento e como se pode ligar varias fontes
num unico pino de entrada, como I RQ, sem causar contenc~ao na linha?
(Dica: circuito wired-or com resistores pull-up )
4.2.2
Interface de Temporizador
A logica do timer embutido no MC68HC11 e apresentada na Figura 10-1 da
refer^encia [5].
1. O que e o contador livre do MC68HC11, denominado free-running counter
ou timer counter (TCNT)? Quantos bits tem este contador? E em que
endereco esta mapeado este contador?
2. Como e quando se pode alterar a frequ^encia do timer ? Em que frequ^encia
opera o contador na placa PDHC11-FEEC?
3. Qual e a func~ao dos registradores TOCx? Quantos bits tem estes registradores? E em que enderecos est~ao mapeados estes registradores?
4. Qual e a func~ao dos registradores TICx? Quantos bits tem estes registradores? E em que enderecos est~ao mapeados estes registradores?
5. A cada registrador de captura, TOCx ou TICx, e associado um endereco de rotina de servico (vector address ). Onde est~ao armazenados estes
enderecos?
6. Quando um ag de interrupc~ao TFLGx e setado? Ele e resetado automaticamente quando a interrupc~ao correspondente for atendida? Como se
pode reseta-lo?
possvel mascarar seletivamente as interrupco~es originadas dos registra7. E
dores TOCx e TICx?
8. Por qu^e e necessario limpar o ag TFLGx na inicializac~ao?
9. Quais s~ao as condico~es necessarias para gerar um sinal de interrupca~o
correspondente a um registrador TOCx/TICx?
10. Como se pode programar interrupc~oes periodicas de 1ms por exemplo?
11. Quantas interrupc~oes diferentes o timer do MC68HC11 suporta? Cada
uma pode ser associada a um intervalo de tempo distinto?
EA079/FEEC/3o Roteiro { 2o SEM/2002 (Profs. Ting, Lotufo, Eduardo e J.Raimundo)5
4.3
Interface com o Osciloscopio
Um projeto adequado para a interface com o osciloscopio requer o conhecimento
das caractersticas funcionais, eletricas e temporais deste dispositivo.
1. Qual e o princpio de funcionamento de um osciloscopio?
2. Os sinais de entrada de um osciloscopio s~ao analogicos. Esta embutido
no MC68HC11 circuito de convers~ao de sinais digitais para analogicos, ou
seja, s~ao disponveis no MC68HC11 pinos de sada analogicos? Caso n~ao,
como seria um cirucito de convers~ao dos sinais de sada do MC68HC11 com
os de entrada do osciloscopio? (Observe que ha um circuito implementado
na placa PDHC11-FEEC)
3. Pelos dados digitais serem de natureza discreta, eles ser~ao visualizados
em forma de degrau. Uma soluc~ao para \alisar" esta onda seria utilizar
um ltro RC (passivo) passa-baixo, cuja constante de tempo tem que ser
proxima da taxa de amostragem. Determine os valores de capacitor e
resistor que voc^es utilizar~ao no seu circuito de interface?
4. Esboce o esquematico completo do circuito de interface entre MC68HC11
e o osciloscopio que voc^es utilizar~ao no projeto do seu gerador. Liste os
componenetes do circuito. Analise ainda no qual endereco esta mapeado
este circuito de convers~ao?
5. Para efeito de requisica~o de materiais no almoxarifado, liste somente os
componentes adicionais necessarios.
6. (Opcional) Um circuito de convers~ao D/A muito popular e simples de
implementar e a rede R/2R na qual somente dois tipos de resistores s~ao
utilizados. Explique o princpio de funcionamento deste circuito de convers~ao.
4.4
Interface com os Displays de 7 Segmentos (Opcional)
Pode-se incluir no projeto um circuito de interface com 4 displays de 7 segmentos, onde e mostrado o tipo de batimento correspondente ao padr~ao visualizado
no osciloscopio. Um conjunto de func~oes (em assembler ) para enviar caracteres em ASCII para os displays existentes na placa PDHC11-FEEC pode ser
encontrado em
www.dca.fee.unicamp.br/~ting/Courses/ea079/rotdisp.zip
4.5
Programac~ao em Linguagem C
Do circuito referente ao projeto deste experimento ha varias partes disponveis
ou on-chip ou na placa PDHC11-FEEC. Portanto, grande parte das atividades
e ligada a programac~ao do MC68HC11 para controlar o timer e o osciloscopio.
aconselhavel o uso da linguagem C para aumentar a produtividade da proE
gramac~ao.
EA079/FEEC/3o Roteiro { 2o SEM/2002 (Profs. Ting, Lotufo, Eduardo e J.Raimundo)6
1. Qual e o manual do compilador icc11? Onde ele se encontra?
2. Qual e a sintaxe da linha de comando do compilador icc11?
3. Quais s~ao os passos intermediarios que o compilador icc11 executa ate a
gerac~ao do arquivo hexadecimal de extens~ao .s19?
4. Qual e o formato deste arquivo s19? Qual e o comando do BUFFALLO
que carrega este arquivo?
5. Qual e o procedimento de carregamento do arquivo s19 usando o HiperTerminal do MS-Windows?
6. Para que serve o arquivo crt.s? Para que serve os dois ORGs que se
encontram no incio deste arquivo? Qual e a mensagem de erro que aparece
no icc11 se este arquivo n~ao existir?
7. Qual e a mensagem de erro do compilador, quando o seu programa fonte
n~ao possui a func~ao main? Em qual passo intermediario aparece este erro:
compilac~ao C ou montagem assembler?
8. O que e necessario para poder usar a func~ao printf?
9. Qual e a representaca~o de constantes hexadecimal em C?
10. Como se faz em C para ler ou escrever num endereco especco de memoria?
Por exemplo ler da posica~o 8000H ?
11. Como se faz para programar o vetor de interrupc~ao usando C? Como se
faz para ler o endereco de uma dada subrotina?
12. Qual e a diferenca de uma func~ao C para uma subrotina de interrupc~ao?
13. Quais s~ao as instruc~oes em assembler do HC11 que n~ao tem correspond^encia
em linguagem C \compilavel" por icc11 para se tratar com interrupc~ao?
O que elas fazem?
14. Como se insere instruco~es em assembler dentro do codigo C? Qual e o
cuidado que se deve ter nesta inserc~ao em relaca~o ao campo de rotulos do
assembler?
15. Por que se recomenda a codicac~ao da rotina de servico usando duas
func~oes como no esquema abaixo? Uma funca~o e a entrada da rotina de
servico (rotservico, que possui a instruca~o RTI no nal e a outra func~ao e
a que implementa de fato a rotina de servico.
void servico()
{
/* implementa a rotina de servi{\c c}o */
EA079/FEEC/3o Roteiro { 2o SEM/2002 (Profs. Ting, Lotufo, Eduardo e J.Raimundo)7
}
void rotservico()
{
servico();
asm{`` RTI''}
}
necessario desabilitar a interrupc~ao dentro de uma rotina de tratamento
16. E
de interrupc~ao? Por qu^e?
5
Programac~ao
O objetivo e programar o microcontrolador de forma que seja gerada uma onda
no osciloscopio a partir das amostras dos padr~oes de batimentos do arquivo
www.dca.fee.unicamp.br/~ting/Courses/ea079/batimentos.h
carregados pelos usuarios na memoria RAM adicional. A taxa de amostragem e 64 amostras/segundo.
Para facilitar a depurac~ao, recomendamos a seguinte metodologia:
1. (Opcional, recomendado para os alunos que t^em pouca experi^encia de
programac~ao com o HC-11) Escreva um programa que l^e os dados da
memoria e os envia para o osciloscopio. Verique a frequ^encia das ondas.
Caso necessario, adicione instruc~oes no laco para aumentar o perodo das
ondas.
2. Escreva um programa que leia e envia as amostras por interrupc~ao gerada
pelo temporizador do HC11.
3. Inclua no programa uma logica para detectar a onda R em func~ao das
amostras processadas.
4. (Opcional) Inclua no programa controle dos displays de forma que seja
visualizado o tipo de batimento que esta sendo gerado.
5. (Opcional) Verique a necessidade ou n~ao de gerar um sinal de sincronismo
para o osciloscopio de modo que o sinal gerado seja sempre mostrado na
mesma posic~ao. Se este sinal de sincronismo for necessario, como podemos
gera-lo?
Refer^encias
[1] [email protected]
ECG
Tutorial.
emergency-nurse.com/resource/ecg/conduction.htm.
http://www.
[2] Dean Jenkins e Stephen Gerred. ECG library. http://www.ecglibrary.
com/ecghome.html
EA079/FEEC/3o Roteiro { 2o SEM/2002 (Profs. Ting, Lotufo, Eduardo e J.Raimundo)8
[3] Alan Clements, Microprocessor Systems Design: 6800 Hardware, Software,
and Interfacing, 3rd edition, PWS Publishing Company, 1997 (ISBN: 0-53494822-7)
[4] -. HC11 M68HC11A8 Technical Data. Motorola.
[5] -. HC11 M68HC11 Reference Manual. Motorola.
Download

1 Objetivos do Laborat orio III - DCA