• Non ci sono risultati.

I componenti principali che compongono lo stadio di controllo sono i due microcontrollori che lavorano in parallelo, come si vede dallo schema elet- trico dello stadio riportato in figura 5.5. Il microcontrollore PIC16F877A si comporta da master ed ha una frequenza di clock di 20 MHz. Il suo compito `e quello di fornire i segnali di controllo per la comunicazione con l’esterno effettuata per mezzo del tastierino, del display e dell’interfaccia seriale [43, 46]. Deve inoltre programmare il generatore di clock del mi- crocontrollore SX52BD che si comporta da slave e puntare agli indirizzi di memoria dello slave nei quali `e stata memorizzata una mappatura di tutte le forme d’onda necessarie a pilotare il pulsatore [47, 48, 49]. Il mi- crontrollore SX52BD prodotto dalla Parallax `e quindi in grado di leggere i dati ricevuti dall’altro microcontrollore, di generare un segnale di trigger per l’oscilloscopio e di inviare al pulsatore i segnali di controllo necessari alla selezione della forma d’onda dei segnali di trasmissione in uscita dallo strumento. Il microntrollore SX52BD lavora ad una frequenza di clock variabile tra 4 MHz e 120 MHz in funzione della frequenza dei treni di impulsi che si vuole produrre in uscita. Il clock al microcontrollore viene fornito dall’integrato DS1086Z della Maxim che `e un generatore di clock programmabile a frequenza variabile. Attraverso la scrittura dei suoi reg- istri da parte del microcontrollore PIC16F877A, per mezzo del protocollo di comunicazione I2C, il componente DS1086Z `e in grado di generare onde

quadre di diversa frequenza. Una routine di interrupt del microcontrollore master che agisce sul pin MCRL dello slave consente di tenere sempre in modalit`a sleep il microcontrollore SX52BD e di portarlo in modalit`a wake- up solo nel tempo necessario all’invio dei dati al pulsatore. Il fatto che lo slave venga messo in funzione sempre per tempi molto brevi ha consentito, in circostanze specifiche, di farlo lavorare con frequenze di overclock fino a 120 MHz.

Il microcontrollore PIC16F877A `e inserito in uno zoccolo saldato al- la scheda, il che consente di sfilarlo facilmente nel caso in cui si voglia riprogrammarlo per apportare modifiche al firmware. Il firmware del mi- crocontrollore PIC16F877A `e stato scritto in mikroBasic ed `e riportato nell’Appendice C di questa Tesi. Il microcontrollore SX52BD `e invece saldato direttamente sulla scheda, per questo motivo `e stato posizionato al suo fianco un connettore per l’inserimento di una chiavetta collegabile, per mezzo di un cavo, alla porta seriale del PC che ne consente la pro- grammazione. Il segnale di trigger e i segnali di controllo del pulsatore, generati dallo slave, vengono fatti transitare attraverso degli optoisolatori che assicurano un isolamento tra lo stadio di controllo e lo stadio pul- satore/ricevitore.

Attraverso il tastierino a quattro pulsanti presente sul pannello frontale dello strumento `e possibile selezionare le caratteristiche dei segnali di usci-

ta dal pulsatore regolando il numero di impulsi per ogni ciclo, la modalit`a

RZ/NRZ, la polarit`a degli impulsi, la frequenza dei segnali di uscita, la

sequenza di accensione e spegnimento dell’alimentazione del pulsatore, il parametro PRF e il tipo di controllo dello strumento (locale/remoto). Queste informazioni vengono elaborate dal microcontrollore PIC, visual- izzate sul display e inviate, in byte di dati, al microcontrollore SX52BD attraverso una porta dedicata alla comunicazione tra i due microcontrol- lori. Nei registri del microcontrollore SX52BD sono state memorizzate le sequenze di stati logici che consentono di ricostruire tutte le possibili forme

d’onde necessarie a pilotare il pulsatore. Il microcontrollore SX52BD legge i dati in ingresso trasmessi dal master, localizza all’interno dei registri le posizioni in cui sono state codificate le sequenze logiche e trasmette alla porta di uscita i dati necessari a pilotare il pulsatore. Per massimizzare la frequenza dei segnali di controllo inviati dal microcontrollore SX52BD, che `e direttamente proporzionale alla frequenza dei segnali di uscita dal pulsatore, si `e programmato il microcontrollore slave con il linguaggio di programmazione a basso livello Assembler. Il listato completo del firmware scritto per il microcontrollore SX52BD `e riportato nell’Appendice D di questa Tesi. L’uso di un linguaggio a basso livello ha consentito di utiliz-

(a) (b)

Figura 5.6: Segnali di controllo del pulsatore: (a) NRZ, (b) RZ. zare istruzioni nel firmware che richiedessero un solo ciclo macchina per essere eseguite. Per trasmettere i dati al registro della porta di uscita sono necessarie due istruzioni, di conseguenza la frequenza dei segnali di uscita

del microcontrollore sar`a pari a un quarto della frequenza di clock.

Siccome la frequenza di clock del microcontrollore `e stata programma-

ta per variare tra 4 MHz e 120 MHz con step di 400 kHz in modalit`a NRZ

e 800 kHz in modalit`a RZ, la frequenza dei segnali di uscita pu`o variare tra 1 MHz e 30 MHz con step da 100 kHz in modalit`a NRZ e tra 500 kHz e 15 MHz con step da 100 kHz in modalit`a RZ. I segnali in modalit`a RZ hanno

infatti, a parit`a di clock del microcontrollore, una frequenza pari alla met`a

di controllo PIN, NIN, DAM P e CLAM P generati dal microcontrollore

SX52BD per pilotare il pulsatore nelle due modalit`a di uscita. Come si

vede dal grafico di figura 5.6b l’uscita HVOU T del pulsatore in modalit`a

RZ risulta pari a zero per un quarto di periodo nel passare dalla polarit`a

positiva a quella negativa e viceversa. Il segnale di trigger viene portato nello stato logico alto all’inizio dell’invio di ogni treno di impulsi e viene riportato al livello logico basso dopo che l’ultimo impulso del ciclo `e stato trasmesso.