Corso ET

titolo:

Centralina meteo 2003/04

data.:

16 novenbre 2001

file.:
/
corso/labsitel/provelab/
sw_ct_meteo_2003_04/
index.htm
descr.:

Definizione funzionalità software  gestione centralina

 

Obiettivo del progetto:

  1. Realizzazione di un programma in linguaggio assembler 8051 per la scheda a microcontrollore 8051 della centralina che svolga  le seguenti funzioni:
    1. Inizializzazione e ciclo principale del programma
      1. Inizializzazione hardware a bordo della centralina.
      2. Ciclo principale di funzionamento.
    2. Acquisizione e memorizzazione della temperatura esterna ad intervalli di tempo determinati.
      1. Lettura ADC seriale
      2. Generazione base dei tempi per produrre l'intervallo di acquisizione
      3. Memorizzazione delle temperature nella RAM da 32K a bordo della scheda a microcontrollore.
    3. Possibilità di trasferimento dei dati acquisiti in memoria tramite porta seriale RS232 della scheda verso PC per archiviazione ed eventuale pubblicazione su Internet.
      1. Modulo software in grado interpretare comandi con eventuali parametri provenienti da seriale
      2. Modulo software che in base al comando interpretato invii su seriale i dati richiesti

     

  2. Realizzazione di un programma in linguaggio C per PC DOS che svolga le seguenti funzioni:
    1. Monitoraggio funzionamento centralina
    2. Trasferimento dati acquisiti dalla centralina

1.1.1 Inizializzazione hardware a bordo della centralina

Tale modulo software assolve il compito di preparazione all'avvio dei dispositivi periferici a bordo del microcontrollore e dell'hardware interfacciato:

  1. ADC seriale in condizioni di riposo:
    CS=1, CLK=0, DATA=1
  2. Inizializzazione timer base dei tempi
  3. Inizializzazione porta seriale

 


1.1.2 Ciclo principale di funzionamento.

Ciclo senza fine che richiama continuamente le subroutines dei moduli software sviluppati.


1.2.1 Lettura ADC seriale

Subroutine per lettura ultimo valore convertito dall'ADC seriale.


1.2.2 Generazione base dei tempi per produrre l'intervallo di acquisizione

L'intervallo di acquisizione può essere effettuato in due modi: tramite cicli di conteggio nidificati, o preferibilmente sfruttando l' interruzione generata da un  timer del controllore opportunatamente programmato .

Conteggio a cicli nidificati

Conteggio con timer

 


1.2.3 Memorizzazione delle temperature nella RAM della scheda a microcontrollore.

La memorizzazione dei dati acquisiti dall' ADC deve essere effettuata nella RAM esterna della scheda a microcontrollore secondo le seguenti indicazioni:

  1. La dimensione il buffer di acquisizione si potrebbe allocare a partire dall'indirizzo 9000h fino all'indirizzo 0FFFFh
  2. Deve esistere un puntatore che contiene l'indirizzo della prossima cella che dovrà incamerare il dato letto dall'ADC e che viene incrementato dopo quest'ultima operazione. Una volta raggiunta la fine buffer tale puntatore dovrà essere reinizializzato con l'indirizzo di partenza del buffer (questa è la tecnica di memorizzazione a buffer circolare, una volta riempito il buffer inizia a cancellare le acquisizioni più vecchie).