Voi come fareste? I nuovi strumenti (era ma come fanno i ragazzi di oggi)

Apro questo post con motivazioni completamente diverse dal precedente, per capire cosa e come invece si potrebbe fare oggi in pratica con i mezzi attuali (pc spesso senza seriale/parallela, windows xp/vista o linux, web server, adattatori usb/ethernet ecc) mettendosi nei panni di uno studente o appassionato che per curiosita' (come e' accaduto a me circa 15 anni fa), decidesse di costruirsi un modulo con il vecchio Z80 e far dialogare il modulo con un programma di controllo sul PC. Ho scelto questo esempio perche' e' una applicazione "non banale" che tocca secondo me un ampio ventaglio di aspetti (interfacciamento, progettazione, programmazione).

A quel tempo ho fatto cosi':

1) costruito programmatore di EPROM con pochi integrati logici comandato attraverso bus ISA (ma sarebbe stato lo stesso con la parallela) tramite un semplice programma BASIC. 2) Programmata la prima EPROM e' stato montato il circuito Z80 e collegato alla seriale del PC. 3) Usando un secondo programma sempre in BASIC si potevano inviare dei bytes al modulo per fargli eseguire una o l'altra funzione, o addirittura "telecaricarlo" trasmettendogli un altro segmento di codice e dicendogli di eseguirlo.

Il codice macchina era ottenuto con un assemblatore a riga di comando.

Ora, per uno studente / hobbista fare tutti questi passaggi era una bella sfida/esperienza, il costo molto basso (i componenti del programmatore e del circuito Z80, e il tubo cancellatore ad ultravioletti). Praticamente tutto era gia' fornito dal sistema (a parte l'assemblatore da poche diecimilalire).

Veniamo ad oggi (e ancor piu' a domani), come PC un bellissimo portatile o uno di quei PC integrati poco piu' grandi di un dizionario, velocissimi, LAN, 8 USB, audio5.1, WiFi.

Al punto 1 gia'mi trovo fermo... il PC non e' un controllore di circuiti, per cui: o compro un programmatore di EPROM professionale gastibile da USB (sperando che non ci siano rogne di driver), o mi studio (se non lo conosco gia') un microcontroller per fargli pilotare a lui i circuiti del programmatore che mi costruiro'. Quindi mi procuro gli strumenti di sviluppo, il programmatore per il micro, ad esempio per PIC, lo posso anche autocostruire, ma se il PC non ha proprio piu' seriali e parallela mi tocca comunque comperare l'apposito programmatore USB della Microchip (sperando che non ci siano rogne di driver).

Bene, imparo ad usare il PIC per fargli controllare il programmatore di EPROM, riesco a programmarla? Ancora no! Adesso dobbiamo far comunicare il PC con il PIC. Se abbiamo la seriale ancora ancora riusciamo, altrimenti bisogna ricorrere da una seriale virtuale che esca su USB o addirittura su LAN (sperando che non ci siano rogne di driver). Quindi il nostro tool di programmazione su PC non puo' essere uno dei vecchi compilatori, ma deve essere molto recente, permettere l'uso di porte COM virtuali e non accedere direttamente alle porte fisiche, diciamo che dobbiamo partire da Delphi in su, quindi dobbiamo studiarci per bene anche l'ambiente di programmazione.

Se tutto va bene dopo immane fatica riesco a ottenere il risultato voluto, cioe' la EPROM con i dati caricati ;) Fatto tutto questo abbiamo pero'in pratica risolto anche il resto, il modulo Z80 dialoghera' col PC attraverso una seriale virtuale, magari virtualizzata attraverso pacchetti UDP su una rete LAN...

Le domande a questo punto sono:

-Quali sono attualmente i tools di sviluppo software piu' in voga per le applicazioni su PC?

-Visto che numerosi dispositivi industriali prevedono ancora il collegamento seriale, e' pensabile che la seriale (anche virtualizzata) rimanga ancora a lungo come periferica del sistema?

-A che punto e' attualmente la possibilita' di dialogo USB/ETH "nativo" sia lato PC (attraverso opportune classi) sia lato circuiti? Nel senso che non si tratti di seriali virtuali ma trasporto diretto da applicazione ad applicazione.

-E'ragionevole pensare che l'evoluzione saranno sempre piu' i moduli intelligenti collegati su LAN? Mi sfugge ancora in pratica come avviene il passaggio di dati per cosi' dire "raw", e anche l'uso dei soket TCP/IP... qualcosa mi dice che dovro' mettermi a studiare... :(

-Quali tool/linguaggi per sviluppare applicazioni di controllo basate sul WEB?

ciao Claudio_F

Reply to
Claudio_F
Loading thread data ...

"Claudio_F" ha scritto nel messaggio news:47b1d900$0$4798$ snipped-for-privacy@reader4.news.tin.it...

Sei un grande.

comunque ,se uno può avere PC o laptop figo(che tuttora non ho,ho un P4 usato di 5 anni fa) per cose multimediali come registrazione audio multitraccia o che so,editing di filmati ecc ecc, ,e lì si vede la potenza (sempre che non montino un SO pesante,tipo quello che fa rima con Paulista) può avere anche un bel P3 o P4 da 80-120 euro in fiera per gli smanettamenti con i dispositivi,Io con un laptop non sarei mai riuscito così facilmente a sostituire gli Ic delle seriali sulla motherboard le varie volte che li ho rotti ,inoltre nessun figliuolo adolescente o pre si permetterebbe di violare un PC su cui non gira FIFA2008-3D-THX-ecc,almeno immagino

a proposito di registrazione multitraccia...sentitevi il mio hit "M'hanno clonato il cognato" su

formatting link
fatta col mio P3 1GHZ ed una onesta soundblaster del 97,si ,davvero ,potete... ciao

Reply to
blisca

Claudio_F ha scritto:

Lo stesso programmatore lo puoi usare oggi. Io ne ho uno su parallela e lo uso sensa probelmi con Windows XP.

Se il PC non ha una parallela ( sinceramente di PC senza seriale ne ho visti, ma senza parallela no... ) puoi usare un programmatore seriale, se non ha la seriale esistono cavatti USB/Seriale che sono trasparenti sia per il PC che per l'apparecchio. Ci ho visto programmare un PLC con un cavo USB/Seriale. E credo che un PLC sia abbastanza "schizzinoso".

Qui dipende da come si voglia operare. Si puo' montare un chip Seriale/USB sulla scheda del Z80, il PC vederà la scheda come una periferca USB e tramite driver si comunica, oppure ( alternativa ) si usa il cavetto di prima. Il PC vede il cavetto come una seriale virtuale ( COM8 o giu di li ) e si usa essattamente come una qualsiasi seriale.

Ma proprio il basic che secondo me non è neache un linguaggio vuoi usare? Okay allora prendi il Visual Basic ( non andare a prendere il .NET basta un normalissimo 6 ) ci aggiungi la libreria del driver ( o per usare la seriale sotto NT o per usare il Chip USB, di solito i driver per C e Visual Basic ci sono già sul sito del produttore... se ami il Delphi spesso devi tradurteli a mano, ma è robba di 5 minuti ) e poi fai quello che vuoi come in Basic. Consiglio personale? Usa il Delphi.

Puoi usare lo stesso compilatore ancora oggi, magari "rivestendolo" con un IDE che ti faccia anche il debug se il Z80 lo permette. Il debug è una fase importante e spesso sottovalutata. Io potrei anche compilare a meno un sorgente ma per il debug servono mezzi non propriamente banali. Spesso per molti mirco viene usato l'ottimo GCC.

Anche se devo dire che sono abbastanza difficile con gli IDE. O funzionano come mi piacciono a me o li butto via. Preferisco usare quelli a riga di comando altrimenti uso quelli a righa di comandi

Io l'ho usato il programmatore della Mircochip e devo dire che i soldi che spendi li vele tutti :) Per il resto prima di comparlo ti consiglerei di volare basso con un cavo USB/Seriale o USB/Parallelo. Costerà a dir tanto 5 euro. ( "ladri" apparte, ovvio )

Se lo metti su LAN di che driver parli? Ma ti conviene implementare tutto lo stack TCP/IP per mandare avanti e indietro 2 byte?

E perché mai? Il compilatore genera il file HEX e quello puoi continuare ad usarlo.... se parli dei programmi che "programmano" il chip allora si, ne hai bisogno di un altro.

Ha parli del programma lato PC? Beh ovvio il turbopascal non lo puoi usare. Ma quanto ti ci vuole a convertire un programma turbo pascal in uno delphi a riga di comando? 5 minuti andado anche a prendere il caffé?

Dipende dalla serità del programmatore. C'è chi usa Java perché ha mille scatole nere e facilità ( ? ) all'utente finale l'utilizzo. Oppure c'è chi da bravo programmatore usa il C/C++. Io francamente ( forse si è capito ) preferisco il pascal. ( Il delphi è solo un compilatore ma il linguaggio è sempre pascal non è diverso. )

Dipende dal target. Il target industriale mantiene ( e manterrà ancora a lungo ) la vecchia e affidabile EIA RS-232 e la sua sorella magiore EIA RS-485 ( equivalente ma è un BUS ), quindi per questo genere di applicativi non ci sono molti problemi. I pc industriali li avranno ancora a lungo.

Per il target casalingo il discorso è diverso. La vecchia parallela e seriale è stata rimpiazzata dalla USB. Ormai tutto è usb perfino il ventilatore o la luce per leggere ( ... ) è comoda ed è rapida. Ha permesso di abbandonare anche altri standard ( tipo lo SCSI ) per il collegamento di periferiche esterne necessitavano di una banda molto alta. Prima c'erano 5 o 6 diversi tipi di porte ( COM, LPT, PS2, SCSI solo per citarne le principali ) ora è stato tutto superato con l'USB. Per la casalinga che non ha mai visto un PC è più comodo attaccare il tutto ad un unica presa. Per noi la vita si complica, ma non del tutto... basta usare un convertirore e il PC lo vede come una porta seriale virtuale. Ma attenzione: I programmi la vedono come una seriale normale, non bisogna riscrivere il codice in funzione che è una seriale virtuale. Cambia solo l'inderizzo base. Che poi non sono sicuro ma se tu non hai la COM1 credo che puoi "virtualizare" anche quella e usare il suo inderizzo.

Questa non l'ho capita.

Perché vuoi attaccare tutto su LAN? La lan ti serve se ( per esempio ) hai 2 utlizzatore per la stessa risosra. Ma nelle comunicazioni Punto-Punto... la lan ci fai poco e niente.

E' un casino unico :D

Apparte che non farei mai una cosa del genere, bisogna distinguere un po' le cose. Dev'è il "server" web? é su un PC che controlla ( magari attraverso la seriale ) il nostro apparecchio o è proprio l'apparecchio ad avere il server web ( come per esempio i router di oggi )?

Il secondo caso lo eviterei come la peste. Il primo caso potrebbe avere dei risfolti interessanti...

--
Il Razziatore,
The Only Good Windows is an uninstalled Windows
-----------------------------------------------
MSN   : IlRazziatore@netscape.net
ICQ   : 67552596
Yhaoo : Razziatore82
-----------------------------------------------
Founder of MediaPlayer Project
http://mpp.iwebland.com
Reply to
Il Razziatore

Il giorno Tue, 12 Feb 2008 21:35:56 +0100, Il Razziatore ha scritto:

Le motherboard più recenti non hanno la porta parallela, nemmeno un connettore interno, mentre alcune hanno ancora il connettore interno per la porta seriale.

Comunque esistono ancora le schede PCI con porta parallela + seriale, inoltre ci sono i convertitori usb-seriale.

In realtà sulle schede madri recenti si trovano, oltre a numerose porte usb, anche le porte firewire e le SATA esterne.

Reply to
Luigi C.

Vanno benissimo il Delphi, il Builder (che è la versione C/C++ del Delphi), il Visual Basic e il buon vecchio C/C++ "puro" (un GCC qualsiasi) in molti casi. Personalmente ho una certa repulsione verso ambienti nuovi tipo .net, C# etc... Ma non è detto che non facciano il loro dovere nonostante i 10 strati di astrazione che ti separano dall'hardware... :-)

virtualizzata)

Sicuramente. I meccanismi alla base della comunicazione seriale sono ben radicati nei vari sistemi operativi, almeno quanto lo stack di rete.

Dal lato PC è semplicissimo: apri un socket, e lo usi quasi come una porta COM, forse anche con più facilità. Dal lato circuiti la comunicazione "grezza" è molto semplice (ci sono integrati singoli che fanno da interfaccia), quella basata su un protocollo specifico può essere un tantino più seccante, ma niente di trascendentale. L'UDP/IP lo implementi abbastanza facilmente... Si trovano anche diverse librerie che fanno gia quasi tutto.

Non necessariamente. Le reti LAN hanno delle caratteristiche specifiche che non sempre interessano. Per molte applicazioni finchè puoi usare un collegamento "diretto" lo fai... Salvo in alcuni casi "patologici" (è noto che un collegamento tramite LAN è molto più robusto, affidabile ed efficiente di uno basato su USB2.0, che per farlo funzionare decentemente bisogna uscire pazzi... :-) Sto parlando di applicazioni non proprio da hobbista comunque...)

Le stesse di prima: invece di aprire una porta COM, apri un socket, poi è lo stack del sistema operativo che aggiunge e gestisce le parti relative ai diversi protocolli.

A.D.

Reply to
A.D.

e' vero che e' un applicazione "non banale", ma mal posta ;) Nel senso trovo piu' giusto dire costruirsi un modulo a microcontrollore/microprocessore che comunichi con un PC. Se non fosse che le EPROM sono state soppiantate da memorie flash. In base a cosa deve fare il sistema e come deve comunicare si capisce la fascia della CPU (per esempio micro a 8 bit, 32 bit ecc che ha per l'hobbista influenza soprattutto sulla possibilita' di realizzare il sistema. Per esempio dovuto a chip SMD, ecc)

se si fa l'esempio di un PIC, io consiglierei di prendere il pickit2 gia' pronto. Non costa molto e risparmia molti mal di testa soprattutto per uno alle prime armi (e' il programmatore che non funziona o il PIC ? e simili). Funziona su USB quindi nessun problema con PC recenti.

sempre seguendo l'esempio con un PIC: seriale, USB, ethernet. Ovviamente la complessita' delle 3 alternative e' crescente. Magari uno inizia con la seriale e pian piano passa oltre. Per la seriale, se si utilizzano solo TX e RX, un convertitore USB-RS232 comprato al supermercato va piu' che bene (per usarlo con PC recenti)

visto che la memoria del PIC e' flash si puo' fare la scrittura "da remoto" dal PC per esempio (c'e' un application note a riguardo se non ricordo male)

tools di Microchip gratuiti (compreso compilatore C per studenti)

anche qui la spesa e' minima, meno di un videogioco !

il vantaggio "dei tempi moderni" e' che puoi scrivere sul forum di microchip e/o scaricare una nuova versione del sw

ci sono molti compilatori free aggiornati, perche' farsi del male con versioni vecchie ? (bug e altro) Buona regola usare sempre le ultime versioni dei sw (inutile scontrarsi con bug che sono stati gia' risolti) e soprattutto se chiedi aiuto la prima cosa che ti verra' detta e' usa l'ultima versione.

se uno deve imparare da zero, tanto vale usare le API di win o di Linux per le seriali che non fanno differenza tra seriale "fisica" e USB. Per esempio con Delphi/CBuilder si possono fare programmi anche con interfaccia grafica molto facilmente e che dialoghino con la seriale.

c'e' l'imbarazzo della scelta ! per esempio java (si trova molta documentazione/esempi, librerie coerenti per fare dall'applicazione per telefonino al webservice, non e' il massimo per applicazioni a basso livello) oppure il sempreverde C con cui puoi fare tutto e il contrario di tutto.

si, solamente che adesso chi dialoga con il dispositivo industriale e' un sistema embedded con molte seriali che viene visto da pc tramite LAN o USB

facendo l'esempio del PIC ci sono molti sorgenti sia per USB che per LAN (Microchip fornisce gratuitamente lo stack TCP/IP)

la direzione e' quella, basta vedere i sistemi di domotica con interfaccia utente di tipo web

qui non ho capito cosa vuoi dire ...

anche qui non ho ben chiaro. Comunque sempre continuando con il PIC (non perche' pagato da Microchip, ma solo perche' l'interfacciamento via LAN l'ho provato !) puoi fare dei cgi, ovvero programmi il cui output e' una pagina html che viene passata al pc via ethernet. Ovviamente la potenza/memoria del PIC limita le cose che puoi fare. Con un micro a 32 bit su cui a gira Linux (tipo AVR32, neanche in questo caso prendo soldi da Atmel ;) ma semplicemente esiste una scheda completa sui 80 dollari) puoi anche installare PHP (e' un linguaggio di scripting server side per fare applicazioni web).

Matteo

Reply to
Teo

Luigi C. ha scritto:

Questo lo so bene :) l'ho detto anche nel mio post. Per quanto riguarda le schede PCI è una buona notizia, avevo paura che fossero scomparse.

La porta SATA Esterna? Questa mi è nuova O__o La porta firewire non c'è su tutti i PC ( io mi sono dovuto comprare il controller su scheda PCI :( )... e poi già USB è essagerata figurati firewire :D

--
Il Razziatore,
The Only Good Windows is an uninstalled Windows
-----------------------------------------------
MSN   : IlRazziatore@netscape.net
ICQ   : 67552596
Yhaoo : Razziatore82
-----------------------------------------------
Founder of MediaPlayer Project
http://mpp.iwebland.com
Reply to
Il Razziatore

Il Razziatore wrote in news:47b2032f$0$10618$ snipped-for-privacy@reader2.news.tin.it:

Non ci farei un cieco affidamento. Dipende anche dall'applicazione.

Ad esempio non credo che funzionino correttamente con questo modem:

formatting link
formatting link

vero che è un uso "improprio" della seriale (i dati viaggiano su DTR e RTS, invece che TXD e RXD,... sincrono invece che asincrono...)... ma questo per dire che non sempre le cose sono come sembrano ;-)

Ciao, AleX

Reply to
AleX

AleX ha scritto:

Se fai le cose fatte male ( non aderire agli standard, ihmo è fare le cose male... ) poi non lamentarti se le cose non funzionano :)

Comunque magari ti funziona pure, dipende tutto da quanto è distante dallo standard il funzionamento del modem e quanto è "fedele" l'emulazione USB/Seriale

--
Il Razziatore,
The Only Good Windows is an uninstalled Windows
-----------------------------------------------
MSN   : IlRazziatore@netscape.net
ICQ   : 67552596
Yhaoo : Razziatore82
-----------------------------------------------
Founder of MediaPlayer Project
http://mpp.iwebland.com
Reply to
Il Razziatore

Il Razziatore wrote in news:47b3679e$0$37194$ snipped-for-privacy@reader3.news.tin.it:

Standard? Mi sa che a parte il nome non hai guardato l'oggetto... si chiama modem, ma non è per il telefono ;-) Sai nulla di AX25?

All'epoca (metà anni '90), quello era noto come "poor man packet radio" Come spesso accade, ci si guarda intorno e...si fa con quel che c'è. (beh, come scheda audio sulla printer port, la covox ... ;-) )

In pratica la funzione PAD (packet assembler/disassebler) veniva implementata via software (sfruttando, appunto i segnali di handshaking della seriale), piuttosto che via hardware (soluzione tipica:scheda con z8530)

Era, soprattutto con le macchine dell'epoca, una soluzione di fortuna, visto il carico di cpu. Guarda un po' che proprio quando le macchine sono diventate potenti da non aver problemi di carico , ti vanno a togliere la porta seriale ;-)))))

Infatti. Difficile dire a priori se non si conosce il contenuto delle scatoline.

Ciao, AleX

Reply to
AleX

Pestando alacremente sulla tastiera Il Razziatore ebbe l'ardire di profferire:

No, sono le schede USB fatte male. Ho avuto problemi anche io a pilotare singolarmente i segnali della seriale su alcune schedine USB...

--
The moving cursor prints, and having printed, blinks on.
News 2002 [v 2.07] / StopDialer / PopDuster - http://www.socket2000.com
Akapulce portal: http://www.akapulce.net
Reply to
Due di Picche

AleX ha scritto:

No. pultroppo no, a dire il vero ho guardato un po' il link... quello che intendevo dire e che la seriale è stata pensata per una cosa mandare un byte avanti intentro. Secondo un certo protocollo. Se tu fai qualsiasi altra cosa che non rispetti questo "protocollo" poi non lamentarti se non funziona :P

Quello c'è l'avevo! con un corso di inglese (!) mi avevano dato una scatoletta ( chissa dove l'ho messa? ) da collegare al PC in caso non avesse la scheda audio. L'elettronica era molto semplice aveva mi pare un ingregato e qualche resistenza... comunque di "Poor man pocket radio" non ne ho mai sentito.

In pratica si usava la potenza di calcolo delle CPU dell'epoca per allegerire il carico della radio?

--
Il Razziatore,
The Only Good Windows is an uninstalled Windows
-----------------------------------------------
MSN   : IlRazziatore@netscape.net
ICQ   : 67552596
Yhaoo : Razziatore82
-----------------------------------------------
Founder of MediaPlayer Project
http://mpp.iwebland.com
Reply to
Il Razziatore

Il Razziatore wrote in news:47b37d12$0$37198$ snipped-for-privacy@reader3.news.tin.it:

Eh, no. Sei tu che ti accontenti ;-)

Se la tua "blackbox" dice che emula la seriale significa che se sia da un lato, che dall'altro, non mi accorgo a cosa sono collegato, l'oggetto è "trasparente"

Il fatto che i segnali di handshaking (questi sono sfruttati nello schema in questione) non siano "gestibili" a basso livello come nella seriale tradizionale, ti fa capire che la "scatolina" ci mette del suo.

Magari siamo tutti felici lo stesso, ma non si può dire che sia la stessa cosa.

No. Si faceva per risparmiare ;-)

La radio faceva...la radio: trasmettere/ricevere informazioni su un canale RF. Il compito di predisporre le informazioni era del dispositivo posto tra la radio e il computer, il TNC (Terminal Node Controller), che includeva il PAD (tipicamente uno Z80 o altra cpu con apposito fw) e modem. Tra computer e tnc il dialogo è in modalità asincrona (quindi con la seriale),mentre la trasmissione è a pacchetti (trasmissione sincrona HDLC).

Come sempre, un immagine vale 1000 parole:

formatting link

Se poi vuoi un po' di storia:

formatting link

BTW, era tanto per dire, visto che il modem baycom è stato comunque superato dal modem soundblaster ;-))) (ovvero emulazione software tramite scheda audio)

Ciao, AleX

Reply to
AleX

blisca ha scritto:

sei uno spammer !! ti ho segnalato all'abuse (alcolico) :))

-- ================================================================ Alberto Rubinelli - A2 SISTEMI news.aioe.org ThunderBird 2.0.0.4 Via Costantino Perazzi 22 - 28100 NOVARA - ITALY Tel 0321 640149 Fax 0321 391769 BBS 0321 392320 Mail: snipped-for-privacy@oldcomputers.de skype: albertorubinelli ICQ : 49872318 Visita il mio museo di computers:

formatting link
================================================================

Reply to
Alberto Rubinelli

Che bell'tempi quelli dello SPECTRUM ed il bus Z80 PIO!!!!!!!!!

"Claudio_F" escribió en el mensaje news:47b1d900$0$4798$ snipped-for-privacy@reader4.news.tin.it...

Reply to
Flavio Curatola

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.