Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

10
voti

EraserHead III

« Non ho particolari talenti, sono solo appassionatamente curioso. » Albert Einstein

Relatività. E' un concetto che si impara presto a farlo proprio. Le cose cambiano profondamente, anche se solo ti sposti un attimo e le guardi da un’altra angolazione. Questo invece lo si impara nella prima lezione di un corso di fotografia, per idioti. La relatività Galileiana, avrebbe potuto spiegare il grande quesito, che un compagno delle superiori si poneva. A che velocità vanno le mosche sul treno ? Forse bastava Archimede per l’altro quesito. Perché le mosche quando parte il treno non si spiaccicano sulle pareti ?
La relatività di Einstein, ebbe invece ripercussioni pesanti sul pensiero filosofico del tempo. Arrivarono gli eccessi, da una parte c’era chi rimase stordito, vedendo svanire il concetto del vero e dall’altra chi invece si arrese completamente, passando dalla ragione al pensiero magico. Forse il problema è che ci sentiamo intrappolati, dal tempo che passa, immaginando continuamente di essere sopra l’ultimo granello di una fatale clessidra. Un po’ come fecero Adamo ed Eva, che si stancarano del bel giardino, dove beati passavano il tempo cogliendo frutta e giocando a nascondino.

Secondo il teorema di Cipolla esistono 4 tipi d’uomo.

  • Disgraziato
  • Virtuoso
  • Bandito
  • Stupido

Il disgraziato fa il male di se stesso ma il bene di qualcun altro
Il virtuoso fa il bene di se stesso e il bene di qualcun altro
Il bandito fa il bene di se stesso e il male di qualcun altro
Lo stupido fa il male di se stesso e il male di qualcun altro

Se guardiamo il peccato originale, attraverso il diagramma di Cipolla, arriviamo a concludere che l’umanità è figlia di due cretini ....

Quella mattina, ero arrivato con una decina di minuti in anticipo. Pensavo che la nuova scoperta della sequenza ascii mi aprisse un varco da percorrere e in un primo momento ebbi come una scarica di adrenalina per la novità. Poi riflettendoci meglio, mentre cercavo una simmetria nel mio codice, la crescente difficoltà nel trovare delle parti significative rallentarono l’entusiasmo. Piano piano mi accorsi che, nuovamente, non approdavo a nulla. Non riuscivo proprio a vedere niente che potesse in qualche modo creare quei caratteri ascii in quel modo e in quel momento.
Quello che accadeva, era un vero pasticcio logico.
Ripresi in considerazione tutto il codice, i moduli, le procedure, le funzioni e i parametri di ritorno di tutti i puntatori.. Adesso ero proprio in mare aperto, di notte, senza bussola, col cielo nuvoloso e una luna nera che ghignava....
Ripercorrevo il codice forsennatamente, cercando tutti i punti dove ci fossero conversioni ascii. Ne trovai uno ed era appunto nella generazione del messaggio. La fantasia non mi manca davvero, ma per quanto mi sforzassi nel cercare una tesi plausibile, non trovai nessuna chiave logica in grado di aprire l'arcano problema.

Mi fermai un attimo. Dovevo riflettere. Guardai un post su Twitter, all’inizio di quest’anno la Microchip ha messo in produzione la nuova linea di microcontrollori , 8051 compliant. Sembra che la NXP si sia un po’ rotta le scatole di questo micro che è diventato fuori dai loro target ( sempre più ARM 32 dipendente). L’8051 è uno dei micri degli albori dei sistemi embedded, con i fortissimi concorrenti dello Z80 di Faggin e il 6805 della Motorola. Questi erano diciamo quelli popolari... Poi in realtà il panorama industriale era molto più variegato. SGS, Nec, Hitachi, Mitsubishi erano tutte multinazionali che si facevano il microcontrollore casereccio, per i loro sistemi embedded e che poi rivendevano al giovane pubblico, a quel tempo, di progettisti embedded..

Io ero evidentemente sfinito, il codice lo conoscevo a memoria, tutte le macchine a stati i salti condizionali. Tutto il flusso del programma lo avevo, monitorato, verificato, analizzato in ogni singolo opcode, con il pulsante della vista codice, in formato assembly sempre attivo. Allora inserisco su tutti gli interrupt, un pezzettino di codice per lanciare un TraceError sulla seriale, nel caso di un overlay di indirizzo dello stack pointer...
Ricompilo e ripeto le prove funzionali... nulla
Tolgo tutta la parte low power, con il controllo del DCO... come prima
Spensi la luce e anche l’ulitmo giorno della settimana finì. Tornai a casa in macchina con i Chemical Brothers a palla per liquefare il cervello...

Il weekend lo passai in famiglia, assieme agli zii. La famiglia era quella vecchia un po’ allargata di una volta, quelle sapete perennemente in rissa tutto l’anno. In certe occasioni però la guerra fratricida doveva lasciar posto alle attività di sopravvivenza del clan, come ad esempio durante la semina delle patate. Zio Flubbert aveva appena finito gli scalzi e stava tornando col trattore assieme a zio Obert. Zio Obert aveva una piccola azienda agricola ed era il supporto per tutto il clan visto che solo lui era riuscito a portare avanti la fattoria ereditata dal nonno.

Gli zii stavano mettendo il pattume ( il resto delle stalle ) all’interno degli scalzi.
“il fien....” così si lamentava nel frattempo il nonno perché stavano mettendo il pattume di fieno anziché quello di paglia.
“... nonno... hai mica visto il fil di ferro ?”
“ ntl trov...” pausa interminabile“...se tl cerc ntl post sbaiat...”
“... scusa che hai detto ?”
spazientito alzò la testa e ripetè traducendo “nel posto sbagliato non trovi nulla...”
riflettei un attimo fissando la tenaglia e poi guardai la rimessa.
“ grazie nonno...davvero grazie...” e sorridendo l’abbandono. Raggiungo la stalla e la stanza officina dove ripariamo i macchinari; il filo di ferro era li appeso su un chiodo.
Intanto il nonno diceva “...l’e propi stran...” scuotendo il capo perplesso per avere un nipote così...

Certe applicazioni non si possono implementare con un PLC o una RTU in particolar modo quelle low power. I progettisti di PLC utilizzano un protocollo dati chiamato modbus. I PLC adesso sono molto essenziali ed efficienti e sostanzialmente ne esistono di due tipi

  • Ethernet
  • 485

Con la porta ethernet hai bisongo di un software che ti crea sul pc locale una porta virtuale COM da associare a quell’indirizzo IP della periferica.

Con la 485 invece hai bisgno di un convertitore 485/USB. Uno dei problemi della 485 è il direction bit. I canali infatti sono monodirezionali e c’è un pin che deve essere pilotato per dire all’integratino la direzione della trasmissione ( chi scrive e chi legge ). Considerando che tipicamente si arriva sempre ad interfacciarci con una seriale tradizionale, alcuni hanno pensato di utilizzare uno dei segnali dell’handshake con la funzione di direction bit.
L'handshake era una “applicazione” che ai miei tempi si studiava tutti. Tutti sapevamo bene cosa era, ma appena uno si è accorto che per trasmettere i dati bastavano 3 fili nessuno poi si è mai azzardato di implementare nel suo sistema seriale l’handshake con il controllo di flusso hardware.
In alcuni software seriali ci sono funzioni tipo “DTR on TX” che hanno proprio questo scopo quando la 485 è collegata ad una porta seriale RS2232. Più o meno funziona così: la linea seriale viene sempre tenuta in ricezione, se devo trasmettere cambio lo stato pilotando il segnale DTR ( Data Terminal Ready ) e quando ho finito la rimetto in ricezione. Devo fare un po’ di attenzione con i tempi perché non posso rispondere prima che dall’altra parte non sia stata girata la porta, però in genere se le velocità non sono molto alte funziona egregiamente..

Il firmware era il posto sbagliato.
Non si trova nulla nel posto sbagliato così diceva il vegliardo. Allora spensi l’emulatore e lo staccai dal probe. Presi l’assieme e lo guardai smontandolo dall’involucro di plastica. Era un sandwich di due schede. La prima era la scheda di interfaccia con i perni dove si doveva collegare il cablaggio per le misura analogiche.
Subito sotto c’era il piggyback del gsm che usciva fuori con il connettore dell’antenna. L’antenna poi era un semplice cavetto di una decina di centimetri con un circuito stampato foderato di plastica moribida ed una doppia etichetta autoadesiva.

Sulla scheda di interfaccia il solito DB9 per la connessione seriale. Collegai il cavo e poi lanciai il software di configurazione della periferica Walog. In una delle tab del programma visualiizzo lo stato delle misure istantaneo. Sposto l’antenna e la posiziono di lato.

In quel momento i dati letti di continuo hanno un piccolo sobbalzo. Squilla il telefono; è Mangusta ma non vuole me e gli passo il collega. Loro parlano di scatole ip65 e di normative Atex da rispettare io... invece guardavo quel … quel.. sobbalzo.

Ancora uno. Spostavo l’antenna e le misure lette variavano. Che strano...

Allora leggo la configurazione e non accade nulla, ancora un movimento e cerco di sincornizzare la lettura della configurazione con lo spostamento dell’antenna.

Una delle difficoltà maggiori in questi casi è che, in fase di analisi, degli eventi, bisogna avere la sensibilità di capire quali sono significativi e quali no. Il problema è che si rischia di prendere cantonate paurose, come quella dei neutrini che superavano la velocità della luce, per poi scoprire che gli strumenti di misura, avevano ingannato tutti quanti...(link di Repubblica astenendomi da qualsiasi ulteriore commento perché la figura barbina mi sembra già di per sé sufficiente; leggendo questo articolo, Ereditato sembra essere uscito fuori da uno dei miei racconti e mi assomiglia tantissimo quando appunto cerco di giustificare le cose al Mangusta, quando gli dico che prima funzionava e dopo no... )
Anche nelle nostre modestissime ricerche dernoialtri, dobbiamo filtrare gli eventi. La legge poi del se lo misuri lo modifichi vale anche nei laboratori che frequentiamo e non solo nel campo della fisica quantistica.

Guardo lo schermo e vedo quello che non avrei mai voluto vedere. I dati della configurazione sono tutti sputtanati. Potrebbe essere un problema nella trasmissione dati fra la periferica e il mio pc ? No. Non lo è; tutta la trasmissione viene fatta correttamente semplicemente perché il pesante controllo con crc ridondate impedirebbe che nella trasmissione ci fosse l’errore anche di un singolo bit.

Maledizione la radio del gsm mi sta mandando a quel paese i dati di configurazione della macchina...

Ma dove sono contenuti i dati. Nella flash. Sì, ma la flash cosa c’entra con le misure istantanee? Io ho visto i problemi anche con le misure istantanee..

Guardo la scheda da sopra e mi metto in asse sul connettore in metallo dell’antenna, guardo in basso e sono proprio sopra la Ferroram. Merd....

Ci posiziono delicatamente l’antenna sopra e..
e quello che vedevo era un vero pandemonio.

Quello che prima era un semplice sobbalzo nel leggere le misure istantanee, ora diventa un vero caos; un insieme di bit spaggiugati invadono la finestra dei dati. Ebbene si ti ho trovato !

Le misure analogiche si suddividono in due tipi

  • Misure assolute
  • Misure differenziali

Le misure assolute hanno il riferimento di massa del circuito. Sovente nei circuiti di misura si differenzia la massa della sezione digitale da quella della sezione analogica.

Le misure differenziali sono misure invece fra sezioni del circuito ( es la misura della caduta di tensione in una resistenza )

In entrambi i casi la misura deve tenere conto delle imperfezioni del sistema che si traducono essenzialmente in un unico concetto: il rumore.

Il rumore ha un andamento caotico e rende tipicamente instabile la nostra misura. Il caos entra sempre nel nostro sistema, molte volte in modo intollerabile. Il rumore sulle misure e’ uno dei principali nemici del firmwareista e deve essere tenuto in conto. E’ difficile creare un modello del rumore, però se lo conosci puoi controllarlo. Una delle caratteristiche prevedibili del rumore è che ha sempre un andamento gaussiano a media nulla.

De Gauss aveva descritto un'efficace rappresentazione probabilistica di eventi che si concentravano attorno ad un punto. Questa rappresentazione chiamata curva normale o curva di De Gauss che pare sia nata da uno studio cartografico che il poliedrico De Gauss stava facendo su Hannover.

La curva ha questo tipico andamento detto a campana come da figura

gaussiana.gif

gaussiana.gif

Dire che ha un andamento a media nulla significa che, una volta determinato l’ampiezza dell'errore, questo può essere annullato efficacemente, da un filtro matematico che sostanzialmente proviene dalla modelizzazione del sistema di un circuto RC. I filtri, nascono hardware, ma possiamo implementarli efficacemente anche software.

Torniamo a noi. Con l’antenna in cima alla Ferroram guardai il monitor e nella mente tutto arrivò a valanga. Il cervello rilassandosi unisce i pezzi scorrelati fra di loro con un unico filo logico. La causa prima era che la ferroram fosse maledettamente sensibile ai disturbi radio.

Così prendo la lista parti e scopro che era stata aggiornata, a seguito dei consueti problemi di approvigionamento.
Corro in magazzino, per cercare febbrilmente una stecca con le vecchie ferroram. Sono un debugger e dovevo provare l’ipotesi. C’era una sezione con i tubi pieni di miriadi di stecche e variopinte etichette con sigle tipicamente di significato vicino a quello che ci dovrebbe essere dentro. Poi mi girai verso le cassettiere.
No qua no.
Forse nel mobile del materiale Atex.
La scheda è un Atex e la normativa stabilisce indicazioni anche sulla gestione dei componenti.
Cerco fra le varie scatole dei progetti, una dopo l’altra fino a che non trovo la mia, la apro e trovo un po' di materiale sparso e poi in fondo un piccolo quarto di stecca.
La Ferroram.
Guardo la sigla, è proprio il modello della produzione precedente.
La sostituisco e in 30 secondi mi accorgo che la vecchia Ferroram funziona perfettamente così ritorno in ufficio. La Ferroram è un componente importante perchè il micro ha poca memoria così viene utilizzata praticamente come buffer in tutte le funzioni e in particolar modo nelle connessioni dati e in particolar modo nell’invio dell SMS....
Guardo la cartina d’Italia fissata proprio all’entrata del magazzino e le periferiche vendute sono quasi 10000 e sono sparse su tutto il territorio nazionale.

Quella simmetria che avevo scoperto nel messaggio con sezioni di messaggio convertite ascii, incredibilmente non provenivano da un problema firmware, ma per un folle miscuglio di fattori, scatenati dall’induzione elettromagnetica della radio gsm, che influenzava layer di silicio in un componente piuttosto debole. Pensavo che fosse il firmware a causare quel casino ma avevo sbagliato ancora una volta.

Tentare di risolvere questi problemi inserendo normative sulla sicurezza del software nello sviluppo del software stesso per me significa sostanzialmente spendere risorse e perdere tempo. Sì certo, la qualità in realtà obbligherebbe al cambio di ogni componente la riverifica del progetto. Ma un progetto embedded, come abbiamo più volte descritto, è un sistema complesso a stati, con centinaia di variabili mischiate dall’hardware e dal firmware e il controllo di tutti gli stati richiede tempi superiori a quelli di ingegnerizzazione. Di fatto non può essere implementato e alla fine si deve solo sperare di avere un minimo d’esperienza che ci permetta di capire dove potrebbero esserci punti deboli e provare quelli...

Una azienda dalle nostre parti molto nota, negli anni ottanta aveva redatto un protocollo interno con le indicazioni di sviluppo del codice che includevano la formattazione del codice, dei commenti, le intestazioni dei file e delle procedure tutto per tentare di minimizzare gli effetti devastanti dei bachi.
I disastri, ovviamente, aumentarono esponenzialemente così come i licenziamenti e fu un continuo turnover fra le mansioni. Bastava che, il Mangusta di turno, gli aumentasse leggermente lo stipendio e vi dico, ci sarebbero stati molti meno problemi nel software..

Ma chi se ne frega... io adesso ti ho trovato.
Sapete cosa accade quando si trovano questo tipo di bachi ? Ve lo spiego.
Si parlotta beanti fra progettisti in uno stato di pacata rilassatezza generalizzata.. In aria frasi del tipo “Hai visto te lo dicevo che era l’hardware...” “bene lo sapevo che il firmware era a posto...” e così via in un giubilio di complimenti rigorosamente gratuiti e generalizzati. Dopo un po’ però cala il silenzio, ma lentamente senza fretta. Ci si guarda così un po’ con imbarazzo perché sappiamo che quel silenzio sarà interrotto da una sconvolgente domanda. Tanto sconvolgente quanto spiazzante nella sua semplicità
“E ora ?”
Ebbene si, ora che facciamo con le 10000 periferiche piazzate in giro per il bel paese ? Non penserai mica che adesso qualcuno, con una malsana idea nella testa, pensi di avviare una procedura di disintallazione nazionale delle periferiche per spedirle, farsi sostituire la Ferroram, per poi rispendirle e reinstallarle là dove erano state prese ?
Tu prima ridi e poi piano piano ti accorgi che adesso l’unico modo per riuscire a venire fuori da questa situazione è trovare una soluzione col firmware. L’unica soluzione possibile è che semplicemente devi riuscire a bypassare l’uso della ferroram durante la gestione del gsm.

Ma tu sai bene che quel “semplicemente” è solo un eufemismo che nasce dalla tua fervida immaginazione perché speri che le cose siano sempre semplici. Purtroppo, perfettamente coerente con la legge del caos, di semplice c’è solo la descrizione del problema come il battito di una farfalla, mentre di difficile c’è invece la soluzione del problema che è la tempesta creata agli antipodi.

Niente da fare, rimango imbrigiato all'interno di Avalon fra i suoi mortali livelli senza possibilità di scappare. Così mi arrendo e mi lascio andare continuando a viaggiare all'interno della mia realtà virtuale trasportato dalle note di Kenji Kaway in questo viaggio lunghissimo e senza ritorno.

L’unico modo ?... dai non scherziamo… Forse non è l’unico ….datemi una trottola magari sto sognando. Dopo una interminabile discesa avevo finalmente raggiunto il fondo di questo profondo tunnel e ora qualcuno da sopra lanciò una vanga perché semplicemente dovevo iniziare a scavare....

9

Commenti e note

Inserisci un commento

di ,

grazie per il passaggio Dimaios.. ;-)

Rispondi

di ,

Il teorema di Cipolla merita una nota particolare. Grazie.

Rispondi

di ,

grandegiove ciao fratello..;-)
paolino e si... molto magra anche perchè le responsabilità non finalizzano il prodotto e il mio "codice" non prevede ipotesi di fallimento ... ( ognuno ha i suoi problemi... ma credo che mi capirai ) ;-)
tuxology ...al momento non sono stanco anche se scavo da diversi anni :-( ... un libro ? dubito.. però sai la vita è strana... ;-)
carlomaria sentito grazie per il passaggio :-)

Rispondi

di ,

yeah! Kirk rulez! ^_^

Rispondi

di ,

Magra consolazione, sapere che "la colpa è di altri", quando poi tocca a te rimettere tutto a posto. Ma questo lo scopriremo dopo che avrai finito con la vanga... :-)

Rispondi

di ,

Quando ti stancherai di scavare troverò in libreria qualche libro scritto da te, e stai pur certo che non me lo farò scappare :-D. Grazie per i racconti che pubblichi Kirkegaard e grazie anche per non costringermi ad andare in libreria :-D.

Rispondi

di ,

Bellissimo Kirkegaard. Grazie, -carlo.

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.