Utilizzo di GPIO in PC


9

Ho un semplice progetto sul dispositivo host che dovrebbe pilotare 2 pin con livello logico elevato (tensione 3,3 V, 5 V o 12 V - non importa) e attendere che altri 2 pin vengano pilotati ad alto livello dal dispositivo periferico.

Posso implementare tale dispositivo host con un PC standard e quale hardware (integrato o extra) dovrei usare?


2
Stai cercando di acquistare qualcosa come mccdaq.com ?
Kenny,

1
Sono interessato, forse il PC ha già alcune funzionalità integrate (controller, pin) per i miei scopi? E se no - trova qualche soluzione da acquistare (a proposito, grazie per il link!)
Andrey Pesoshin,

1
Una potenziale soluzione, semplice ed economica, sarebbe utilizzare qualcosa come un Launchpad MSP430, collegato al PC tramite USB, programmato in un ambiente software simile ad Arduino, chiamato Energia, il tutto per $ 4,30 incluso S / H (Fedex 2 day, in tutto il mondo) o persino una scheda fai-da-te più economica utilizzando un AVR (come attiny85 con USB bitbanged) programmato sul lato PC in Arduino (se ti piace o preferisci).
Icarus74,

Risposte:


7

Non è chiaro cosa desideri che faccia il PC e cosa dovrebbe fare il dispositivo ("dispositivo host" non ha senso), ma sembra che tu voglia l'I / O digitale di base da un PC.

I PC non sono realmente progettati per l'I / O digitale diretto su dispositivi esterni. Tuttavia, è possibile acquistare moduli I / O digitali che si collegano al PC tramite USB, che quindi consentono di leggere e scrivere singoli segnali digitali. Puoi farlo tu stesso più facilmente facendo comunicare un microcontrollore con il PC tramite una porta COM.

Tuttavia, se questo è davvero solo un semplice problema di controllo, perché hai bisogno di un PC? Chiedi a un piccolo microcontrollore di eseguire l'intero compito da solo. Questo è esattamente ciò a cui servono i micronctroller. Sono piccoli computer con linee digitali e altre linee di I / O che intendono collegarsi direttamente all'hardware esterno.


1
Non abbiamo una descrizione completa della funzionalità desiderata, ma la mia ipotesi è che abbia bisogno di un doppio flip-flop SR. Che puoi emulare con una CPU da 1 miliardo di transistor :-).
Stevenvh,

1
grazie per la tua risposta. Capisco che ci sono moltissime soluzioni da eseguire, ma volevo sicuramente chiedere informazioni sulla connessione diretta del dispositivo esterno al PC. Ora vedo che non posso farlo direttamente ma con un controller aggiuntivo o una scheda I / O.
Andrey Pesoshin,

@stevenvh Ho semplificato la descrizione di un progetto per una migliore comprensione;) Devo chiarire solo l'interfacciamento della parte
Andrey Pesoshin,

13

Se riesci ancora a trovarne uno, vale la pena ricordare che una vera porta parallela è vicina a un GPIO come lo troverai in un PC standard. Le implementazioni classiche mancano di una certa flessibilità in quanto molti dei pin hanno una direzione fissa e alcuni sono invertiti, ma le persone hanno lavorato su questo per anni.

Il limite maggiore è che tali porte si stanno estinguendo. Le sostituzioni più astratte come i convertitori paralleli USB sono in genere utilizzabili solo per controllare le stampanti effettive e mancano i registri che è possibile leggere / scrivere direttamente per impostare o monitorare lo stato dei pin. Si vocifera che alcuni abbiano questa capacità, ma possono essere difficili da trovare e richiedono un'attenzione dettagliata ai conducenti.

A quel punto tende a diventare più pratico utilizzare un dispositivo I / O collegato tramite USB. Spesso si tratta di un microcontrollore che esegue un semplice firmware, dal produttore o personalizzato.

Uno dei principali vantaggi di un'implementazione personalizzata è la possibilità di scaricare le parti critiche di manipolazione I / O di livello più basso, più ripetitive e / o temporizzate sul processore sul dispositivo, invece di provare a farlo dal PC dove la latenza di La pacchettizzazione USB, l'attraversamento di più bus e i sistemi operativi multitasking tendono a rallentare dolorosamente le operazioni bit per bit.

Se non hai ancora capito esattamente quale forma prenderà la tua soluzione, una possibilità è quella di afferrare qualcosa come un Arduino che è confezionato in senso hardware e toolchain per facilità d'uso e potrebbe funzionare come soluzione stand-alone o come assistente I / O per eseguire attività di basso livello sotto il comando di un PC collegato.


2
Se OP scegliesse il percorso della porta parallela, vale la pena notare che il sistema operativo basato su NT (ovvero qualsiasi sistema operativo Windows rilasciato nell'ultimo decennio) richiederà un driver in modalità kernel speciale per accedere alla porta parallela. Se si utilizza una versione di Windows con criteri di firma del codice in modalità kernel (ad es. Vista / W7 x64, forse anche W7 x86), anche questo driver dovrà essere firmato digitalmente.
ajs410,

1
ottima risposta,
voterei

1
@ ajs410 - tali requisiti per la firma del codice si applicano probabilmente ai driver per qualsiasi altra interfaccia, come USB. L'unica possibile esecuzione potrebbe essere quella di utilizzare qualcosa per cui il sistema operativo fornisce già il codice del driver e tutto ciò che serve è un file di configurazione / informazione, ad esempio una porta COM virtuale. Questo non è GPIO, ma può essere utilizzato come canale di comando / stato per parlare con un micro helper che ha GPIO.
Chris Stratton,

8

Consiglio di utilizzare un FTDI FT232RL usando un driver speciale che abiliti la sua modalità bitbang . Questo metodo funziona praticamente su tutti i PC e consente un discreto accesso alla latenza a un semplice GPIO.
Ci sono molte schede di chip breakout FTDI là fuori, ma io personalmente uso questo .


grazie per il consiglio, sembra più un trucco ma dovrebbe funzionare. Ho trovato una soluzione simile MODULO GPIO USB A 8 CANALI
Andrey Pesoshin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.