Come posso controllare l'ingresso di USB?


8

Ho il seguente filo come mostrato di seguito, un'estremità ha un connettore USB maschio e l'altra estremità ha quattro fili. So che, quando collegato al laptop, quello ROSSO funge da sorgente di tensione e NERO come massa. Se do 2 bit di input di dati a VERDE e GIALLO, c'è qualche software o API per (Python, C o qualsiasi altra lingua) conoscere lo stato di quei due fili? Voglio dire se VERDE o GIALLO hanno una tensione oppure no.

inserisci qui la descrizione dell'immagine

Per favore guidami se sto facendo la domanda sbagliata.

Risposte:


12

No, non è possibile rilevare direttamente lo stato del cavo USB. L'USB è un'interfaccia molto più complessa di così, non è un confronto con le porte seriali e parallele vecchio stile che potrebbero essere utilizzate per l'I / O diretto con un semplice programma driver. Una stretta di mano complessa viene scambiata con il PC anche prima dell'invio del primo byte di dati / carico utile "reali".

Forse il tuo PC ha una porta parallela che può essere utilizzata? Oppure dovresti usare un convertitore da USB a GPIO che sono ampiamente disponibili a prezzi variabili (sia estremamente alti che estremamente bassi).


1
Esempio: sparkfun.com/products/718 Non ho alcuna esperienza con questo modulo, ma sembra all'altezza del lavoro. Ci sono molte alternative simili disponibili se ti guardi un po 'in giro.
jippie,

1
Solo una piccola aggiunta: non puoi abusare di una porta USB come questa perché l'handshake avviene a un livello molto più basso di quello a cui puoi accedere con normali linguaggi di programmazione. Parti dell'handshake avvengono nell'hardware.
Alexander,

1

Qual è il tuo obiettivo finale? Se è necessario osservare il protocollo USB, è possibile utilizzare un analizzatore logico relativamente poco costoso o relativamente costoso .

Se il tuo obiettivo è acquisire byte sul tuo computer, puoi ottenere un debugger USB per il tuo sistema operativo (ad esempio, OS X ha un kit di debug USB gratuito).

Se il tuo obiettivo è quello di avere un modo semplice per determinare se inserisci una tensione su un ingresso, sarebbe meglio usare un USB -> GPIO, come suggerito jippie, oppure potresti percorrere la (più costosa) via arduino e hai un sacco di spazio per crescere se vuoi fare più cose con gli input prima dell'analisi sul computer.

Se vuoi davvero un modo semplicissimo per ottenere un valore di tensione nel tuo computer senza acquistare nuovo hardware, il suggerimento di jippie di utilizzare la porta parallela è buono e potresti anche investigare usando l'ingresso del microfono come soluzione jerry.

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.