UIE Meeting

giovedì 4 settembre ore 21,00 - Osteria Retrogusto

Home Guide Hardware Usare la porta seriale

Sab

05

Dic

2009

Usare la porta seriale
Guide e Tutorial - Hardware
Scritto da Christian Galeffi   
Capita a volte di dover comunicare o programmare dispositivi utilizzando la porta seriale del nostro computer.

Capita a volte di dover usare la porta seriale del nostro PC per comunicare/programmare dispositivi di vario genere.
Si, esattamente, proprio quella porta a trapezio che spesso confondete con la VGA della scheda madre ;-).



Questa operazione può risultare più o meno difficile da affrontare utilizzando un sistema operativo basato su GNU/Linux a seconda del programma che, nella maggior parte dei casi, ci viene fornito col dispositivo in questione.

 

Nel caso in cui il nostro computer fosse provvisto di una porta seriale, di solito nelle MB dei desktop è ancora presente mentre è molto più difficile trovarene su di un notebook o netbook, il nostro sistema operativo dovrebbe riconoscerla senza molti problemi ed assegnarli il file di dispositivo relativo (/dev/ttyS0).
Nel caso avessimo bisogno di utilizzare una porta seriale su un notebook che ne sia sprovvisto si può tranquillamente usare un adattatore da USB a seriale RS232, io utilizzo da alcuni anni questo.
L'adattatore è perfettamente supportato e per installarlo, su openSUSE ad esempio, basta... inserirlo :-)).

Dec  5 11:02:16 mediacenter kernel: [ 8601.096020] usb 5-1: new full speed USB device using uhci_hcd and address 4
Dec  5 11:02:16 mediacenter kernel: [ 8601.241037] usb 5-1: New USB device found, idVendor=067b, idProduct=2303
Dec  5 11:02:16 mediacenter kernel: [ 8601.241049] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Dec  5 11:02:16 mediacenter kernel: [ 8601.241058] usb 5-1: Product: USB-Serial Controller D
Dec  5 11:02:16 mediacenter kernel: [ 8601.241065] usb 5-1: Manufacturer: Prolific Technology Inc.
Dec  5 11:02:16 mediacenter kernel: [ 8601.241199] usb 5-1: configuration #1 chosen from 1 choice
Dec  5 11:02:16 mediacenter kernel: [ 8601.244140] pl2303 5-1:1.0: pl2303 converter detected
Dec  5 11:02:16 mediacenter kernel: [ 8601.257158] usb 5-1: pl2303 converter now attached to ttyUSB0

Come si può vedere dall'output di tail -f /var/log/messages il tempo per riconoscere il dipositivo e creare il relativo file (/dev/ttyUSB0) è inferiore ad un secondo.
Ora che abbiamo individuato i file che il sistema operativo utilizza per comunicare con le porte seriali possiamo segliere in che modo operare a seconda di quello che ci viene fornito.

Caso 1 - Emulatore di terminale su porta seriale

Nel caso in cui abbiamo bisogno di comunicare con il nostro modem/router oppure un dispositivo che ci permetta l'accesso tramite terminale basterà utilizzare sulla nostra macchina un emulatore di terminale.
Per GNU/Linux ne esistono molti, io di solito uso minicom, per installarlo su openSUSE basta dare:

gallochri@mediacenter:~> sudo zypper install minicom

Una volta installato il programma è necessario lanciarlo da root con l'opzione -s per configurarlo.





 








Salvata la configurazione e premuto nel menu il tasto Exit ci troviamo di fronte all'emultaore di terminale pronto a ricevere e trasmettere i nostri comandi al dispositivo.

Caso 2 - Software di programmazione

Nel caso in cui ci venga fornito assieme al dispositivo un software di programmazione specifico le cose iniziano a complicarsi.
Difficilmente troveremo un programma di configurazione che giri nativamente su GNU/Linux per cui il primo tentativo da fare nel caso ci venga fornito un software che funziona solamente su Microsoft Windows è tendare di far funzionare tale programma con Wine.

gallochri@mediacenter:~> sudo zypper install wine
gallochri@mediacenter:~> winecfg
gallochri@mediacenter:~> wine nome_del_programma_setup.exe

Configurato wine e installato il software di configurazione testaiamo il suo funzionamento con wine.
Ora non ci rimane che creare il file dispositivo nell'installazione di wine per fare in modo che il nostro programma comunichi con la porta seriale.

gallochri@mediacenter:~> ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1

Basterà configurare il nostro software per farlo comunicare sulla COM1 (o sulla porta che abbiamo creato in wine) per far funzionare il tutto anche sotto GNU/Linux.

Nel caso in cui il non riuscissimo a far funzionare il software in dotazione sotto wine sarà necessario procurarsi un software di virtualizzazione (virtualbox,vmware, etc) e creare una macchina virtuale con windows dove installeremo il driver nel caso utilizzassimo l'adattatore con opportuni filtri sulle porte USB in modo da utilizzarlo esclusivamente sulla macchina virtuale quando questa è in funzione.

Saluti :-)


Commenti (2)add comment

danielee said:

...
ciao, io dovrei installare linux su una macchina embedded che ha solo 3 schede di rete 3 usb e una seriale. non posso installare linux su un altra macchina e sostituire l'hd perche le schede di rete sarebbero differenti e quindi la webgui non andrebbe...
Hai una soluzione ? ps il software e' ipcop o ipfire
31 marzo 2011

Christian Galeffi said:

...
se la macchina non ha la VGA e quindi l'unico modo per accedervi è la seriale, ho visto che ipfire ha delle immagini già pronte, ma non ho mai usato ne ipfire ne ipcop.
Se quello che ti serve è un firewall ti consiglio http://www.pfsense.org/ oppure http://m0n0.ch/wall/, nessun problema, con quelli che ti ho indicato, se hai solo la seriale smilies/wink.gif.
31 marzo 2011

Lascia la tua opinione
Accorcia box | Allunga box
I filtri ti rompono? Iscriviti


busy
 

Commenti

Utenti On-Line

 53 visitatori online
Utenti : 135
Contenuti : 79
Link web : 58
Tot. visite contenuti : 214518

UIELinux, oltre il Rubicone (anche oltre i soliti luoghi comuni)
Joomla! è un software libero rilasciato sotto licenza GNU/GPL
UIElinux All UIELinux Blog UIELinux Guide UIELinux Progetti