Schede PCI e acquisizione

Salve a tutti! Volevo sapere se qualcuno di voi ha mai avuto a che fare con l'implementazione di Schede su bus PCI (per PC). Mi spiego: supponiamo di voler acquisire un segnale analogico, posso pensare di utilizzare un convertitore A/D, e piazzarlo ad esempio sulla porta parallela, sull'USB, etc... a me interesserebbe interfacciarmi col bus PCI. Sicuramente la sincronizzazione dei segnali, così come da protocollo, è molto complessa. Ma immagino che esistano dei chip capaci di gestire il bus, con una interfaccia più o meno semplice alla quale collegare il convertitore A/D. Quindi le domande sono due:

1) Qualcuno di voi ha mai visto in rete o lavorato su qualcosa di simile? 2) Per il software, ad esempio Assembly per x86, mi chiedevo come si esegue l'accesso al bus PCI per leggere poi su QUELLA board e non su un'altra (tipo scheda sonora)?

Spero di essermi spiegato. So che l'argomento è molto complesso e chiaramente di documentazione in merito, ne esiste a iosa. Se qualcuno ha già avuto esperienza e può indirizzarmi sulle cose essenziali (o scoraggiarmi completamente ad avventurarmi in questa cosa...) gli sarei molto grato.

Un grazie anticipato a tutti.

-------------------------------- Inviato via

formatting link

Reply to
Gianni
Loading thread data ...

Non è eccessivamente difficile, dipende però da cosa devi fare di preciso... Il PCI può essere usato in modo relativamente semplice (tipo il vecchio ISA), o in modo molto più complesso e completo (se si desidera usare il DMA, il bus mastering, l'enumerazione P&P, il JTAG, etc.) Nella modalità "semplice" puoi usare una ristretta area di memoria su cui risulta mappata la tua scheda (bastano quindi delle semplici scritture e letture su alcune porte). Puoi usare però soltanto la modalità slave (quindi è sempre il processore che deve leggere i dati dalla scheda), ed il tutto risulta relativamente "lento". Se invece vuoi fare le cose per bene allora diventa tutto estremamente più complicato: hardware, scrittura dei drivers, rispetto delle specifiche... Credo che in questo caso si possano usare degli integrati appositi che fanno da bridge, ma le cose non sono comunque banali...

Morale della favola: se puoi fare a meno di utilizzare il PCI, fanne a meno senza pensarci due volte! :-) Esistono molte altre soluzioni altrettanto valide...

Buon lavoro. ;-) A.D.

P.S. Avrei anche dei link da darti, ma non ce li ho al momento sotto mano.

Reply to
Antonio Di Stefano
[....]

preciso... [....]

...Cose mooolto semplici: con una serie di scritture, impostare il canale analogico da acquisire e con una serie di letture leggere i valori convertiti su una RAM locale...

Per quanto riguarda la "lentezza", qualche centinaio di KHz sono più che sufficienti (e credo che ci si arrivi senza problemi anche utilizzandolo come ISA, senza DMA e complicazioni del genere) . Non ho bisogno di grosse prestazioni, il mio problema è proprio la sincronuizzazione del mio hardware col bus e come accedervi (indirizzi e cose del gel genere), utilizzandolo nel modo più semplice possibile! In realtà, a prescindere dal protocollo del bus e dal profondo della mia ignoranza, non riesco a spiegarmi, come il sistema distingua tra due schede piazzate fisicamente su due slot diversi: immagino che al boot venga fatta una sorta di mappa di tutte le schede riconosciute sul bus a cui vengono assegnati univocamente degli indirizzi, è così o no?

Magari qualche link a riguardo mi farebbe piacere.... Grazie comunque dell'interessamento. :-)

Gianni

-------------------------------- Inviato via

formatting link

Reply to
Gianni

Ok, diciamo che mi sono convinto, il bus PCI è forse troppo complesso. Ho pensato allora di usare quello ISA classico, per il quale ho travato anche del materiale e diverse applicazioni in rete. Adesso mi chiedevo, se qualcuno di voi sa dove reperire delle card coperte di rame sulle quale realizzare lo stampato che hanno il connettore a pettine ISA già pronto, senza che mi metta a farlo io.

Ringrazio in anticipo tutti per le info. Grazie.

Gianni :-)

-------------------------------- Inviato via

formatting link

Reply to
Gianni

Visto che non hai bisogno di alta veocità o grande throughput, come mai hai pensato di usare il bus PCI? Per applicazioni di questo tipo di solito basta la porta parallela! O più recentemnte l'USB (con componenti facili da usare tipo gli FTDI...)

Ci sono diverse possibilità, o si impostano dei valori fissi (dal BIOS), o si ricorre ad una specie di enumerazione...

Eccotene uno:

formatting link
Quì trovi alcune spiegazioni abbastanza sintetiche sul funzionamento del bus e anche su certi aspetti legati al software. Anche se il sito si riferisce all'utilizzo di dispositivi FPGA, quello che dice si può applicare anche in altri casi.

Figurati!

Ciao, A.D.

Reply to
Antonio Di Stefano

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.