ExamenCompus2013 1 solucio
PART II
Entrada/Sortida i Aritmètics
Universitat de Girona
1a Convocatòria - 27 de Maig de 2013
Nom alumne/a …………………………………………………...... Núm estudiant:…..…….......
Temps: 2 hores. Notes: Divendres 31 Maig. Revisió: Dimarts 4 de Juny a les 10:00.
Cal entregar aquest full.
Volem desenvolupar un sistema de vigilància en una casa amb una sèrie de sensors depresència i càmeres. El sensor dóna una senyal quan detecta algun moviment, consta de 3 pins
i té dos modes de funcionament diferents. La següent informació s’ha extret del seu datasheet
Disposem de diverses càmeres per cobrir 2 zones (hi ha una càmera amb cada sensor). Quan
s’activa el sensor de presència cal activar la càmera que es troba a aquella zona mentre el sensor
detecta presència i finsa 10 segons després de l’última detecció. L’activació de la càmera es
realitzarà escrivint en un pin connectat a la càmera (no cal tenir en compte les imatges de la
càmera ja que van a un altre sistema).
Tenim un sistema microprocessat amb
una CPU variació d’un 8086 amb un clock de 8MHz, amb un bus de dades de 8 bits i
un d’adreces de 16 bits, amb l’esquema genèric que mostra la figura
CPU
@Dades
INTR
INTA
HLD
CLK
HLDA
una memòria RAM de 16K de paraules de 8 bits.
I podeu utilitzar els controladors de E/S que creieu convenients.
Part 1. Entrada/Sortida (5 punts). Justifiqueu en tot moment la resposta.
1. Dissenyeu un esquema de la interconnexió dels diversos dispositius del sistema (CPU,
memòria, controlador i sensors). (1.5 punts)
La memòria RAM és de 14 bits, per tant noméss’utilitzaran les adreces A13 a A0.
Hi posem un 8255 per accedir als sensors i càmeres a través d’entrades i sortides
digitals. No s’especifiquen altres senyals, per simplificar l’esquemàtic (aporten
informació al problema).
RAM
@
Dades
adreces
CPU
RD
@
dades
WR
Dades
CS
Sensor 1
INTR
INTA
CLK
A0
HLD
HLDA
A1
A0
A1
Dades
RD
WR
A15
PA 0
PA 1
PA 2
PA 3
PA PA 4
PA 5
PA 6
PA 7
Sensor 2PB0
PB1
PB2
PB PB3
PB4
PB5
PB6
PB7
Càmera 1
8255
PC
AND
CS
CS RAM
A14
Càmera 2
AND
CS 8255
2. Especifiqueu el mapa de memòria resultant i la lògica de selecció del dispositiu de la
RAM i el(s) controlador(s) de E/S, feu-ne el disseny en portes lògiques. (1.5 punts)
La memòria RAM és de 16K (2^14), 14 bits, de A13 a A0. L’hem mapejada desde
la posició 0000h fins a 3FFFh.
El 8255 elmapejaríem a continuació, de la posició 4000h a 4003h. Com que
quedaria molta memòria adreçable lliure i per no complicar el CS de la E/S (evitar
que sigui una lògica de selecció de moltes portes) podem mapejar-lo a més
posicions de memòria, de manera que accedir a la 4000h o a la 4004h sigui el
mateix dispositiu però tingui dues adreces per accedir-hi diferents. Si es planteja
utilitzar només 4000h a4003h caldria que el CS de la E/S tingués en compte els
bits de A15 a A2 (portes de 14 entrades). La resta del mapa de memòria adreçable
per el processador de 4004h a FFFFh queda buida. La següent figura mostra un
esquema del mapa de memoria (no proporcional per la E/S).
FFFFh
7FFFh
...
4007h
4004h
4003h
4000h
3FFFh
0000h
E/S
E/S
E/S
RAM
La selecció de dispositiu es pot observar enl’esquemàtic de la pregunta 1. Per la
RAM /A15 i /A14 i per 8255 /A15 i A14.
A15
AND
A14
CS RAM
AND
CS 8255
3. Realitzeu el programa en pseudocodi (o C) per inicialitzar el(s) controlador(s) i la
funció que comprova l’estat dels sensors i actua sobre les càmeres utilitzant pooling.
Comenteu les modificacions que caldria realitzar al programa per accedir-hi utilitzant
interrupcions. Compteu amb lesfuncions auxiliars que creieu oportunes. La mida
mínima d’una variable són 8 bits i no disposem d’instruccions d’accés bit a bit (2
punts).
Assumim que tenim funcions de rellotge per a comptar temps: temps() dóna el
temps del sistema en segons, i llegirTeclat retorna si hi s’ha premut alguna tecla
(sense espera activa). Com en C, les operacions | i & es refereixen a operacions
lògiques bit a bit....
Regístrate para leer el documento completo.