CanAlarm

E' una delle centraline di allarme che ho progettato.

Il cuore ovviamente è sempre un microprocessore PIC.

E' un dispositivo apparentemente semplice ma la cui progettazione porta con se una serie non indifferente di problematiche sia hardware che software:

- E' utile avere un alto numero di ingressi perchè ciò consente un dettaglio molto fine sul verificarsi dell'evento di allarme.

- Gli ingressi devono essere protetti ad evitare che scariche elettriche in rete possano danneggiare i dispositivi di input

- Vanno ignorati gli "spike" di input (rapide variazioni dei segnali dovuti ad interferenze).

- Deve prevedere un pre-allarme locale di qualche secondo prima di attivare la sirena esterna

- Deve prevedere dei sistemi di accensione e spegnimento sicuri (non va bene un banale interruttore) anche lontani dalla centraline.

- Deve prevedere un sistema elastico di configurazione che consenta di "dare un nome" ad ogni ingresso e di indicarne le caratteristiche.

- Deve consentire di parametrizzare ed attuare più modalità di intervento (normale, serale, notturna)

- In caso di allarme deve poter attivare dispositivi locali e/o remoti

Hardware

Alimentatore switching da 12V a 5V con MAX5033 o MAX5035.

Transceiver can MCP2551 per la comunicazione su rete CAN.

Processore Microchip PIC18F26K80.

Relè a 12 volt pilotato dal chip driver ULN2003, che prevede altre 6 uscite libere in grado di pilotare relè esterni

Espansioni di i/o realizzate con 5 chip MCP23008 che implementano 32 linee di input.

Porte di input protette da 4 chip MAX6818 che garantiscono sia la protezione dalle scariche elettrostatiche che l'immunità dai disturbi di rete.

Buzzer su scheda.

Pcb monofaccia (un solo ponticello di connessione).

Componenti SMD, tranne relè, connettori, fusibili, elettrolitici, induttanza.

Visione top.

In questa versione ho eliminato il display LCD facendo conto della connessione con CAN132 che permette di interagire da PC.

Ecco lo schema elettrico

Software

Scritto in C18 (ad eccezione delle routines di auto-programmazione) quindi adattabile in modo relativamente semplice (molto più che se fosse scritto in asm).

Attraverso la rete CAN invia la situazione del dispositivo che quindi può essere utilizzata per qualunque dispositivo in rete, attraverso la rete CAN  riceve i comandi di accensione e spegnimento - in presenza di CAN132 TUTTO ciò può essere fatto transitare anche in internet (io in caso di allarme mi faccio inviare una email).

Prevede configurabilità dei tempi di uscita, di entrata, di pre-allarme locale, di allarme.

Prevede un sistema elastico di configurazione che consente di "dare un nome" ad ogni ingresso e di indicarne le caratteristiche.

Consente di parametrizzare ed attuare più modalità di intervento (normale, serale, notturna)

Le parametrizzazioni vengono tutte salvate nella eeprom interna.

La configurazione da PC può avvenire:

- Da porta USB utilizzando l'interfaccina MCP2200 presentata sul progetto EIBscout (basta un programmino di comunicazione seriale tipo "putty")

- Da rete CAN disponendo del server CAN132 e del mio software PC che consente il bridge pc-UDP-CAN-USB (praticamente il dispositivo transita l'i/o usb su di una porta CAN che viene dirottata su di una porta UDP che viene poi intercettata dal mio software di comunicazione.

Questo sistema di interfacciamento è disponibile su TUTTI i miei dispositivi CAN unitamente alla possibilità di aggiornamento del firmware dei dispositivi, sempre attraverso il medesimo software.

Ecco il MAIN  con il relativo HEADER  

Il modulo di lettura e scrittura a MCP23008 con il relativo HEADER