Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Spiegazione PIO

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utentecarloc, Foto Utenteg.schgor, Foto UtenteBrunoValente, Foto UtenteIsidoroKZ

0
voti

[1] Spiegazione PIO

Messaggioda Foto UtenteFab996 » 25 apr 2017, 11:08

Ci sarebbe qualcuno che possa spiegarmi come funziona una PIO(parallel input-output), in particolare non ho ben capito come si trovano gli indirizzi disponibili...
Avatar utente
Foto UtenteFab996
13 6
Frequentatore
Frequentatore
 
Messaggi: 100
Iscritto il: 8 giu 2016, 15:36

0
voti

[2] Re: Spiegazione PIO

Messaggioda Foto UtenteFedhman » 25 apr 2017, 11:20

Di cosa stiamo parlando? Microcontrollore, FPGA, altro? Quali modelli in particolare?
I don't fight weather - Woodrow W. Smith
Avatar utente
Foto UtenteFedhman
5.195 2 9 13
Master
Master
 
Messaggi: 483
Iscritto il: 4 giu 2013, 14:05
Località: Augusta Taurinorum

0
voti

[3] Re: Spiegazione PIO

Messaggioda Foto UtenteFab996 » 25 apr 2017, 11:24

Fedhman ha scritto:Di cosa stiamo parlando? Microcontrollore, FPGA, altro? Quali modelli in particolare?

Mi sembra la INTEL 8255A, per esempio in questo esercizio.
Si vuole realizzare un piccolo calcolatore embedded a 16 bit dotato di una ROM di 4KB, una RAM di 8KB e un dispositivo di I/O memory mapped a cui interfacciarsi tramite una PIO.Definire gli spazi di indirizzamento dei vari dispositivi a disposizione supponendo di poter utilizzare 16 bit per specificare gli indirizzi.
Non capisco come faccia a calcolare gli indirizzi in questo modo:

ROM: 4K (2^12) indirizzi

n da 0000 0000 0000 0000
n a 0000 1111 1111 1111

RAM: 8K (2^13) indirizzi

n da 1000 0000 0000 0000
n a 1001 1111 1111 1111

PIO: 4 indirizzi

n da 1111 1111 1111 1100
n a 1111 1111 1111 1111
Avatar utente
Foto UtenteFab996
13 6
Frequentatore
Frequentatore
 
Messaggi: 100
Iscritto il: 8 giu 2016, 15:36

0
voti

[4] Re: Spiegazione PIO

Messaggioda Foto Utentexyz » 25 apr 2017, 12:17

Gli indirizzi sono arbitrari l'importante è non sovrapporre gli spazi di indirizzamento, la ROM è messa all'inizio, la RAM al centro, il PIO alla fine.
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[5] Re: Spiegazione PIO

Messaggioda Foto UtenteFab996 » 25 apr 2017, 12:28

xyz ha scritto:Gli indirizzi sono arbitrari l'importante è non sovrapporre gli spazzi di indirizzamento, la ROM è messa all'inizio, la RAM al centro, il PIO alla fine.

Però per esempio per la ROM da 4K, so che ho 2^10*2^2=2^12 indirizzi che vanno da 0000 0000 0000 0000 a 0000 1111 1111 1111, ho capito che l'importante è non sovrapporre lo spazio di indirizzamento, però se per esempio avessi messo da 0000 0000 0000 0000 a 1111 1111 1111 1111, andava bene lo stesso? Poi non c'è il rischio che esco dal range di indirizzamento?
Avatar utente
Foto UtenteFab996
13 6
Frequentatore
Frequentatore
 
Messaggi: 100
Iscritto il: 8 giu 2016, 15:36

0
voti

[6] Re: Spiegazione PIO

Messaggioda Foto Utentedimaios » 25 apr 2017, 12:44

Se hai a disposizione 12 bit non puoi indirizzare uno spazio di memoria a 16 bit.
Ingegneria : alternativa intelligente alla droga.
Avatar utente
Foto Utentedimaios
30,2k 7 10 12
G.Master EY
G.Master EY
 
Messaggi: 3381
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes

0
voti

[7] Re: Spiegazione PIO

Messaggioda Foto UtenteFab996 » 25 apr 2017, 12:50

Vero grazie, però per la ROM, non rappresento in questo modo 2^11,invece che 2^12? E poi perché per la RAM, devo mettere un ulteriore bit in prima posizione? Non ho ben capito perché mettendo quel bit gli indirizzi non si sovrappongono
Avatar utente
Foto UtenteFab996
13 6
Frequentatore
Frequentatore
 
Messaggi: 100
Iscritto il: 8 giu 2016, 15:36

3
voti

[8] Re: Spiegazione PIO

Messaggioda Foto Utentexyz » 25 apr 2017, 13:46

Stai mappando la memoria di un calcolatore embedded a 16 bit, quindi il tuo spazio di memoria totale ha il seguente intervallo (io preferisco i numeri esadecimali):

0x0000 a 0xFFFF

I dispositivi da mappare hanno uno spazio di indirizzamento inferiore altrimenti o non sono utilizzabili o al massimo è possibile utilizzarne uno solo (se ha esattamente gli stessi bit del calcolatore embedded). Lo spazio occupato non si deve sovrapporre e non deve superare i confini di indirizzamento.


  • ROM
  • spazio da 4 ki (attento si usa ki minuscolo non K maiscolo)
    12 bit da 0x000 a 0xFFF
  • RAM
  • spazio 8 ki
    13 bit da 0x0000 a 0x1FFF
  • PIO
  • spazio 4
    2 bit da 0x0 a 0x3

Una possibile mappatura:

    0x0000 a 0x0FFF ROM (0x0FFF - 0x0000 = 0x0FFF)
    0x1000 a 0x2FFF RAM (0x2FFF - 0x1000 = 0x1FFF)
    0xFFFC a 0xFFFF PIO (0xFFFF - 0xFFFC = 0x0003)
Se vuoi va bene anche:

    0x1234 a 0x3233 RAM (0x3233 - 0x1234 = 0x1FFF)
    0x4321 a 0x4324 PIO (0x4324 - 0x4321 = 0x0003)
    0x4325 a 0x5324 ROM (0x5324 - 0x4325 = 0x0FFF)

Naturalmente la prima è più facile da mappare, basta imporre i bit che mancano, la seconda è più difficile ma è possibile lo stesso..
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin


Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 53 ospiti