|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2012
Città: Venezia-Mestre
Messaggi: 783
|
[JAVA] Comunicazione USB con pic 18f4550
Ho realizzato con 2 miei compagni di classe un circuito integrato per controllare alcuni sensori, il tutto comandato appunto dal pic 18f4550.
Questo pic ha la possibilità di comunicare via usb e volevamo appunto usare questa possibilità per inviare ad un computer i dati dei sensori (sotto forma di stringhe o di qualsiasi altra cosa si possa trasferire), nel computer ci sarebbe un programma in esecuzione (fatto in java) che deve "leggere" questi dati ed elaborarli... Il problema è appunto quest'ultima parte il "leggere" dati che arrivano dall'usb non sembra così facile come pensavamo. In questi giorni stavamo provando ad utilizzare la libreria rx-tx che sembrerebbe la più funzionale e documentata ma purtroppo non siamo ancora riusciti a risolvere nulla, c'è qualcuno che ne sa di più e può chiarirci un po' le idee su cosa dovremo fare per questa "lettura"? Grazie mille in anticipo a tutti, Matteo. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 6190
|
Per problemi di questo tipo, la prima cosa è dare un occhiata tra le "application notes" del produttore della cpu/microcontroller.
Le "application notes" (grossolanamente traducibile come "note applicative" o "appunti applicativi") sono documentazione (spesso con codice di esempio) che spiega come implementare certe funzionalità e/o cose a cui fare attenzione quando si deve sviluppare una certa cosa. Nel vostro caso, cercando nella documentazione del sito della Microchip (il produttore dei PIC) c'è esattamente quello che cercate: http://www.microchip.com/stellent/id...pnote=en021631 "AN956 Migrating Applications to USB from RS-232 UART with Minimal Impact on PC Software" Il nome sembra fuorviante, ma è esattamente quello che vi serve. Il documento pdf scaricabile e l'esempio mostrano come implementare un "CDC device" USB (ovvero un dispositivo che comunica facendo finta di essere una porta seriale). Come bonus aggiuntivo usa un codice identificativo "già supportato" da Windows e quindi non richiede driver particolari o file .inf che dicano a Windows che il dispositivo che gli avete collegato va gestito come un CDC device. In questo modo potrete collegare il dispositivo a Windows via USB e questo creerà automaticamente una porta seriale "virtuale" (ma che dal lato di Windows si comporta come una vera porta seriale) con cui comunicare in modo relativamente semplice ed efficiente. Ovviamente dovete aggiungere del vosto codice (sul lato PIC) che utilizzi le funzioni "lato PIC" per leggere/scrivere i dati dal CDC device, mentre dal lato PC (usando al libreria rx-tx o equivalente) dovete realizzare un programma che scandisca le seriali collegate (provando ad aprire in successione "COM0" "COM1" ecc.) e riconosca il vostro dispositivo in qualche modo (es: se l'apertura della porta ha successo inviate un comando secondo il vostro protocollo ed attendere che dia una risposta corretta entro un certo tempo, se da la risposta corretta è il vostro dispositivo, se non risponde o risponde con codici strani chiudete la comunicazione e passate a tentare con la porta successiva, ecc. ecc.). |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:03.



















