|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Nov 2008
Messaggi: 3
|
PROGRAMMARE LA PORTA USB
Ciao, vorrei sapere se qualcuno sa indicarmi come posso realizzare un programma per pilotare la porta USB.
Mi spiego meglio, voglio realizzare dei circuiti elettronici comandabili via USB, senza però dover ricorrere alla trasformazione da USB a SERIALE o PARALLELA. Ho letto in molti forum che è complesso. Mi è sufficiente sapere anche soltanto il nome di qualche libro che possa spiegarmi come fare. Vi ringrazio anticipamente Luca |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
Quote:
Nel primo caso dovrai scrivere del firmware per gestire la parte usb. Dove lavoro ultimamente utilizziamo questi cavi: http://www.ftdichip.com/Documents/Da...ABLES_V201.pdf puoi poi comunicare utilizzando la porta com virtuale o con dei driver diretti (D2xx)
__________________
![]() |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Appunto non sono quello che voleva lui, cioè un adattatore USB-Seriale.
artintel, specifica almeno il sistema operativo ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Per quel poco che ne so, USB significa "Universal Serial Bus" che, come dice wikipedia (http://it.wikipedia.org/wiki/USB), e' uno standard di comunicazione seriale.
Non penso che sia quindi possibile evitare una conversione a seriale... Al limite puoi evitare di convertire i segnali ai livelli/timing TTL.
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
![]() In pratica vedi l'usb come uno stack di livelli, sia l'host che il client (non mi ricordo il termine preciso) dialogano tra loro avendo sia da un lato che dall'altro questo stack. Il servizio del livello i-esimo dialoga con il servizi del livello i-esimo dell'altra parte del cavo sfruttando i servizi del livello sottostante. Parte di questi livelli è realizzata in hardware, parte opzionalmente in software (checchessia messo in una rom e interpretato da un microcontrollore o elaborato dalla CPU). Quindi di fatto non esiste una periferica usb senza un driver. Quel cavo che converte in RS232 è già una periferica completa che implementa tutto lo stack USB e ha come interfaccia una RS232 da una parte e dall'altra i servizi messi a disposizione dal driver che emula una porta COM. Le possibilità di lavorare con USB sono due: sfruttare un controller già prodotto con relativo driver, oppure produrre il controller e il driver. Per i controller ci sono già chip pronti che permettono di interfacciare l'usb con un microcontroller, ovviamente bisogna scrivere il codice relativo agli ultimi livelli dello stack all'interno di una memoria Flash. Questo impone anche la realizzazione di un driver di periferica sul nostro sistema operativo che dialoghi con gli ultimi livelli prodotti dall'altra parte. |
|
![]() |
![]() |
![]() |
#6 | ||
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
![]() Quote:
Detto questo: cosa occorre fare, ora? Occorre tirare fuori quei segnali, i quali arriveranno inevitabilmente in maniera seriale. Tutti i sistemi finora elencati, quindi "decodificano" ("traducono") cio' che arriva dalla linea dati e te li mettono a disposizione. Non vedo quindi nessuna differenza, almeno a livello concettuale, no?
__________________
In God we trust; all others bring data |
||
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Nessuno mette in dubbio che l'usb sia seriale eh. Ripeto che per convertitore USB-seriale intendevo USB-RS232
![]() In ogni caso che l'USB sia seriale ad un programmatore non deve assolutamente interessare niente in quanto il canale viene completamente astratto da primi 3 (mi sembra) livelli dello stack che sono già implementati in hardware e software sia sull'host che sul device. |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Specifico meglio: non interessa nemmeno a chi programma o implementa il controller sul device, perché i primi tre livelli vengono forniti già preconfezionati. Quindi per entrambi quello che interessa è la lista ed il protocollo dei vari servizi che i layer di livello 3 offrono a chi li deve usare.
E' un po' la stessa cosa che succede con TCP: nessuno, vedendo il solo canale TCP, può dire che la connessione fra i due host in realtà è solo virtuale, ma il protocollo è a commutazione di pacchetto. |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
![]() ![]() Beh, allora scusa per aver allungato il brodo per nulla ![]()
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
#10 | |
Junior Member
Iscritto dal: Nov 2008
Messaggi: 3
|
Quote:
|
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
http://www.microsoft.com/whdc/DevTools/default.mspx |
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1350
|
Quote:
Scarica la guida in questa pagina: http://www.microsoft.com/whdc/device/wpd/wpd_dk.mspx C'è un infarinatura sulla programmazione dei driver Ultima modifica di das : 01-12-2008 alle 15:41. |
|
![]() |
![]() |
![]() |
#13 |
Junior Member
Iscritto dal: Nov 2008
Messaggi: 3
|
Grazie, cercherò di capirci qualcosa.
|
![]() |
![]() |
![]() |
#14 |
Member
Iscritto dal: Jan 2008
Messaggi: 103
|
Ciao a tutti.
Mi stavo chiedendo se i driver servono per forza o basta un'applicazione creata apposta per quell'hardware. Da quello che ho capito dentro l'hardware è memorizzato l'id con versione ecc... poi il pc "chiede" quando viene collegato, se non ha il driver ti chiede d'installarlo. Questo con tutte le periferiche (webcam, hd, ecc..) che possono essere usate da vari programmi, ma se quell'hardware viene gestito solamente da un programma, servono comunque i driver o basta quell'applicazione? |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Serve comunque un driver perché in user mode l'accesso alle API per interfacciarsi al dispositivo è interdetto. Almeno su Windows, sinceramente su Linux credo che si possa anche ovviare con un programma in user mode, ma non ne ho idea.
|
![]() |
![]() |
![]() |
#16 |
Member
Iscritto dal: Jan 2008
Messaggi: 103
|
Per creare una scheda con i/o analogici e digitali come si dovrebbe procedere ?
Sto leggendo quà e là ma non sapendo niente di elettronica sono alquanto confuso (l'unica cosa che ho fatto è stata comandare dei led sulla lpt1 anni fa, in dos con turbopascal). E` possibile collegare direttamente un "coso" che muxa/demuxa il segnale dall'usb o serve per forza un pic ? |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Puoi fare tutto e il contrario di tutto, dipende da cosa realizzi nell'USB Device.
Se metti un paio di registri con un covertitore D/A puoi anche pilotare segnali analogici, ma ripeto, non è quello il problema, il problema è realizzare l'interfacciamento con lo stack USB. L'alimentazione USB se non sbaglio può arrivare anche a 250mA, quindi un discreta quantità di corrente, in parte assorbita dal controller, ma nella maggiore parte disponibile per alimentare il resto. Sono convinto che esistano già PIC pronti per essere comandati tramite un cavo USB e con il driver già pronto, ma allora tanto vale utilizzare un convertitore USB/RS232. |
![]() |
![]() |
![]() |
#18 |
Member
Iscritto dal: Jan 2008
Messaggi: 103
|
Ma con un convertitore USB/RS232 quando lo colleghi al pc non lo vede come porta com ?
Mettiamo caso che sia una periferica da vendere, usando usb->rs232 l'utente dovrebbe selezionare poi dal programma la porta com corretta (se poi cambia usb non cambia anche la com? Quindi dovrebbe risettarlo nel programma). Con un pic il pc saprebbe che la periferica è quella anche se cambia porta usb e l'utente non dovrebbe settare nulla o sbaglio ? ![]() |
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
![]() |
![]() |
![]() |
#20 |
Member
Iscritto dal: Jan 2008
Messaggi: 103
|
Sono un pò fuso cmq, si può programmare un pic 18F2550 per sembrare un HID in modo da non dover creare un driver e usare le api di windows per comunicare con la periferica ?
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:08.