Il perché della scelta PSOC PDF Stampa E-mail

Il perché della scelta PSOC.

PSOC è una sigla che sta per “Programmable System On a Chip”, e che, come spesso accade nel mondo dell’elettronica,presenta differenze sostanziali rispetto alla apparentemente analoga sigle SOC “System On a Chip”, che indica componenti digitali fortemente integrati,ma solitamente privi di moduli analogici.

I PSOC sono, a differenza della sigla generica SOC,  prodotti solo dall’azienda americana Cypress Semiconductors, ed integrano moduli sia analogici che digitali. Spesso i  PSOC vengono definiti “mixed signal matrix” perché sono delle matrici programmabili in cui i segnali elaborati sono sia analogici che digitali.

Fin qui, la noiosa tassonomia della nomenclatura di un particolare sottotipo di componenti elettronici non ci dice molto. Invece i PSOC sono importanti, ed in un certo senso anche rivoluzionari, in quanto cambiano il modo di fare elettronica, in modi importanti per la piccola azienda, dato che le offrono la possibilità di competere meglio.

All’ interno di un PSOC troviamo una serie di moduli, configurabili mediante scrittura in registri, che possono venire interconnessi tra di loro, mediante dei bus interni, questi moduli, a seconda di come vengono programmati, “diventano” delle periferiche, per esempio, a seconda di come viene connesso un modulo può diventare un amplificatore programmabile oppure un filtro, altre periferiche complesse vengono poi ricavate unendo tra di loro più moduli, per esempio un convertitore analogico digitale può venire ottenuto programmando un modulo analogico come comparatore analogico, un altro come generatore di tensione programmabile (DAC) ed un modulo digitale come contatore. Una semplificazione sul funzionamento di un convertitore digitale può essere la seguente: Il contatore “spazzola” i possibili valori binari, il generatore di tensione programmabile li converte in una tensione, ed il comparatore indica quale dei valori generati corrisponda alla tensione da misurare. Ovviamente, sono possibili molti tipi di convertitori analogici-digitali, che usano tecniche diverse, a seconda della precisione e velocità richieste, e che “consumano” un numero maggiore o minore dei moduli disponibili, connessi e configurati in modo diverso. Quindi è possibile implementare sia risoluzioni che tecniche di campionamento diverse, e, se abbiamo bisogno di un amplificatore di misura o di un filtro per condizionare il segnale, abbiamo anche quello. Questo modo di lavorare è in contrasto con quello che accade con praticamente tutti gli altri microcontroller tradizionali: con questi ultimi, se ad un certo punto del progetto ci accorgiamo che non ci bastano i bit di risoluzione di un convertitore analogico digitale, o che la frequenza di campionamento è sbagliata, quasi sempre è necessario passare ad un altro componente, magari della stessa famiglia, ma le cui periferiche si programmano in modo diverso, ed in cui spesso anche i pin dedicati all’acquisizione di segnali analogici possono essere mappati diversamente. Se abbiamo fatto realizzare i circuiti stampati, significa che li dobbiamo rifare, e dobbiamo riscrivere il firmware quasi completamente. Con i PSOC, invece possiamo decidere se abbiamo bisogno di convertitori  tra i 6 ed i 14 bit,  basati su principi di funzionamento diversi, e li possiamo implementare su uno stesso componente.

Allo stesso modo, è possibile disporre di PWM e di timer: ne bastano quattro da 8 bit oppure uno da 32 bit? Dipende da quanti moduli digitali elementari verranno occupati sul PSOC, ma sul come configurarli decide il singolo progettista: è una vera rivoluzione di libertà.

I PSOC possono persino venire riconfigurati da programma “a caldo”: se venissero usati in una ricetrasmittente, è per esempio possibile implementare le funzioni di una radio ricevente quando viene rilasciato un pulsante “push to talk”, mentre quando si preme il push-to-talk, è possibile riconfigurarli al volo come radio trasmittente.  Il marketing di Cypress scherzosamente indica questa caratteristica con lo slogan “usate il 400% delle vostre risorse”. Come sempre, il marketing è esagerato, dato che questa funzionalità è praticamente limitata da tempi di reazione, potenza di calcolo, memoria a bordo, il che rende già il “200%” delle risorse un obiettivo non sempre facile da raggiungere.

Sembra tutto molto complicato… In effetti lo è, ma Il bello è che questa attività di configurazione viene svolta non inserendo “a mano” dei codici binari dentro a dei registri, ma connettendo e posizionando, mediante uno strumento visuale, dei “pseudocomponenti”, che implementano delle funzioni, scegliendoli da una “tavolozza”, in modo grafico, mentre è possibile consultare le loro caratteristiche da dei datasheet. Il  sistema di sviluppo genera automaticamente il programma di configurazione e di inizializzazione, del quale il progettista normalmente non ha bisogno di preoccuparsi. E’ poi per esempio possibile convertire automaticamente progetti basati su un componente PSOC in quelli di un altro, e l’aggiornamento dei driver delle periferiche è automatico.

Esistono due ambienti di sviluppo, PSOC Express che viene utilizzato per la realizzazione rapida di prototipi e che non richiede la conoscenza di linguaggi di programmazione, ed uno per la realizzazione di prodotti “rifiniti”, PSOC Designer, che permette un “controllo fine” con uso di C ed Assembler. Su PSOC Express, devo ammettere di essere stato all’inizio molto scettico, da progettista: non mi convinceva un “generatore di applicazioni”. In realtà PSOC Express, pur non essendo molto intuitivo è veramente facile da usare ed implementa quasi tutto quello che serve per coprire i casi più semplici, grazie ad una “sintassi visuale” che consente di esprimere concetti come “priority encoders”, tabelle di decodifica, macchine a stati finiti, ritardi. Si lavora ad un livello più astratto della scrittura del codice, con PSOC Express ci si muove a livello di entità applicative, in un modo orientato agli oggetti e visuale. Per esempio, un accelerometro in PSOC express, inclusa l’acquisizione dati ed il condizionamento del segnale è un “componente” visuale, così come è un componente una interfaccia USB. Ho personalmente potuto constatare che è realmente possibile costruire un software di test, per verificare un sistema hardware in poche decine di minuti.  Un mio carissimo amico è rimasto impegolato per delle settimane in un problema equivalente a quello che io ho affrontato e risolto in pochi giorni. La differenza tra me e lui? Io avevo a disposizione un insieme di API ad alto livello e la possibilità di poter fare degli esperimenti in pochi minuti, lui era costretto a modificare dei registri programmando delle bit mask in C ed assembler. L’ultima volta che l’ho sentito non sapeva ancora se il suo  problema era hardware o un problema di programmazione.

Dopo aver rapidamente costruito un prototipo concettuale con PSOC Express, una volta certi che non ci sono errori macroscopici, è possibile affinare il progetto con PSOC Designer, con il quale è possibile andare a lavorare a livello di Assembler o C, con un controllo completo sul dispositivo, a livello di emulazione circuitale, peraltro molto economica.

In ognuno dei due sistemi di sviluppo la maggior parte della complessità del progetto viene gestita in automatico da uno strumento visuale;  se lo vuole, il progettista può comunque intervenire a basso livello, anche modificando in C progetti Express, con PSOC Designer. Questa è una enorme innovazione in un campo in cui è cambiato pochissimo in poco meno di trent’anni, possiamo affermare con buona confidenza che non esistono prodotti concorrenti con le stesse caratteristiche, in particolare, chiunque abbia provato a convertire un progetto sviluppato per la stessa famiglia (per esempio 8051) su un altro core, può ben capire che una conversione automatica del codice di controllo delle periferiche è un desiderio “fantascientifico” per la maggior parte dei progettisti tradizionali. Questo pio desiderio, di poter cambiare scelta senza rifare tutto, per chi è ormai abituato a lavorare con i PSOC è una realtà quotidiana, che normalmente si risolve in automatico, spesso in pochi minuti, ogni volta che che si vuole.

Sembra di essere tornati ai tempi delle scatole di montaggio elettroniche, in cui avevamo a disposizione un certo numero di componenti, che potevamo interconnettere liberamente, dando sfogo alla nostra fantasia. Ma un PSOC è una “scatola di montaggio” molto più potente di quelle con cui eravamo abituati a costruire le nostre prime creazioni, occupa solo pochi millimetri quadrati di spazio, e può contenere un gran numero di componenti complessi, programmabili e controllabili digitalmente da un microcontroller.

Quanto a MIPS, la velocità e la potenza di calcolo non è il forte degli attuali PSOC: diciamo che le prestazioni sono comparabili ad un buon microcontroller ad 8 bit, ma non ad uno eccezionale:  fino a 24 MHz di clock, ma con istruzioni che spesso durano molti cicli di clock e poverissimo di registri. Cypress ha annunciato ormai da un anno che l’evoluzione degli attuali PSOC sarà basata su due nuove famiglie, una con un core 8051 e su un core ARM.

Per il momento, in attesa di versioni più potenti, il business dei PSOC non è l’elaborazione dati ad alta velocità quanto la “densità” e l’economicità delle soluzioni.

I PSOC non hanno un costo unitario bassissimo, quanto a singolo chip di silicio, rispetto ad altre soluzioni apparentemente “più economiche”; ma il costo di un progetto basato su PSOC costa spesso comunque molto meno: Il loro vantaggio in termini di logistica è la enorme riduzione di scorte di pezzi diversi, così come la necessità di minori connessioni esterne, di un numero minore di componenti e di conseguenza anche una maggiore affidabilità, dato che, potenzialmente, ogni singolo punto di saldatura può introdurre un guasto. Un componente che consente di avere un intero sottosistema integrato si rompe, statisticamente parlando, di meno. Inoltre, non è raro riuscire a ridurre del 50 o 60% il numero di componenti, così come le dimensioni fisiche dei sistemi. Con un PSOC è assai raro il dover essere costretti a collegare all’esterno un componente come un quarzo, una resistenza o un condensatore. Anche i soli componenti passivi, sono spesso solo un optional, da usare solo in rari casi.

I PSOC vengono utilizzati correntemente in moltissimi prodotti di successo innovativi, in particolare, la tecnologia CAPSENSE, che sostituisce pulsanti e potenziometri con sensori sensibili al tatto, ha trovato grande diffusione su apparecchi di grande consumo, come alcuni cellulari privi di tastiera e su alcuni dei prodotti Apple per la riproduzione personale audio. La tecnologia Capsense  di Cypress, è basata su una sofisticata modulazione delta, pilotata da un oscillatore pseudorandom, il che consente una elevata sensibilità, immunità ai disturbi, capacità di adattarsi alla temperatura d’ambiente, o di operare in condizioni avverse come per esempio all’esterno, in condizioni di immunità alla pioggia.

Per una piccola o media azienda i PSOC significano poter affrontare progetti tecnologici, con la certezza di arrivare ad un risultato, grazie ad un ambiente di sviluppo potente, facile ed affidabile, con la possibilità di modificare e riconfigurare quasi tutto il progetto a costi bassi: non si è più limitati a periferiche mappate in posizioni fisse, collegate a dei piedini specifici. In caso di errore, è quasi sempre possibile riconfigurare e correggere, senza dover rifare circuiti stampati e progetto partendo ogni volta da zero.

Quindi il rischio di progetto, e l’investimento iniziale diminuisce notevolmente, così come il “time to market”, sempre critico in quanto da esso dipende la nostra capacità di sfuggire (o di inseguire) la concorrenza, e almeno potenzialmente, è possibile aggiornare il prodotto anche dopo che è stato consegnato al cliente.

 
Pros. >
Web Design by FwLab