Decodifica Codici Telecomandi (Radiocomandi) Rolling Code Microchip Keeloq, Motorola e National

Ricevitore RX per Radiocomandi Rolling Code Microchip, National e Motorola

IperCODE è un progetto realizzato per uso didattico, con il quale è possibile realizzare un sistema di acquisizione di codici di telecomandi (radiocomandi) basati sulle codifiche Keeloq Rolling Code Microchip, MM53200 National, UM86409 UM3750 UMC e MC145026 MC145027 Motorola ed avere la possibilità di trasmettere il codice ricevuto sulla seriale RS232, visualizzarlo sul display 16X2 oppure riprodurlo, trasmettendolo via radio. Si potranno quindi sperimentare le periferiche del PIC16F876 quali la UART, il Capture Compare, Il PWM e la gestione della EEPROM interna per il salvataggio del codice telecomando ricevuto. Il progetto è da considerarsi una base per sviluppare, e può facilmente adattarsi alle Vs. esigenze, ad esempio, se la memoria interna non basta per memorizzare tutti i codici del telecomando, si può collegare una memoria I2C o SPI sui pin del micro appositamente tenuti liberi. L'acquisizione del codice avviene tramite il tasto LEARN premuto per più di 5 secondi oppure tenendolo premuto all'accensione, mentre per la trasmissione del codice basta premerlo normalmente (se volete potete aggiungere un tasto supplementare).

Il progetto IperCODE è disponibile GRATIS per gli abbonati. Potete realizzarlo da soli (fai-da-te) scaricando tutti i codici sorgenti.Download Ipercode
Se non sei abbonato, ABBONATI ORA!

Schema elettrico ricevitore codici telecomando

codifica telecomandi keeloq

Lo schema considera una VCC stabilizzata a 5V il cui assorbimento dipende maggiormente dalla retroilluminazione del display, se la usate, altrimenti la corrente richiesta non dovrebbe superare i 100mA. La ricezione radio avviene tramite il modulo CCP1 del PIC, mentre la trasmissione del codice allo stadio RF è gestita dalla periferica CCP2 che in questo caso sarà settata come PWM. Per la trasmissione radio consiglio, per i principianti, l'utilizzo di un modulo trasmettitore radio già fatto, tipo Aurel o Mipot. Inoltre potete notare il collegamento con un driver RS232 per l'interfacciamento con un PC (Hyperterminal sotto Windows oppure Minicom sotto Linux - cliccate sui link se volete approfondire-) e le connessioni al display 16x2 per vedere subito il codice ricevuto dal telecomando. La scelta del display la lascio a Voi, ne esistono molti tipi e sicuramente ne avete qualcuno in laboratorio, quindi datasheet alla mano, verificate se il pinout corrisponde.

Lista parti decodifica codici radiocomandi

Item Qty Reference Part
1 2 ANT1,ANT2 ANTENNA 433.92 (cavo lunghezza 16.5cm)
2 10 C1,C2,C3,C4,C6,C9,C10,C11,C12,C13 100nF
3 1 C5 2.2pF
4 1 C7 100pF
5 1 C8 10pF
6 2 DL1,DL2 LED
7 1 J1 CON5 In Circuit Serial Programming
8 1 P1 CONNECTOR DB9 RS232
9 1 Q1 BFR92
10 1 RX1 RICEVITORE-433.92MHz Aurel-Mipot
11 1 R1 1K TRIMMER
12 2 R2,R4 10K
13 1 R3 100R* Verificare specifiche display
14 1 R5 47
15 1 R6 47K
16 2 R7,R8 680
17 1 R9 220
18 1 R10 10R
19 1 SAW1 R2632 saw filter
20 1 S1 SWITCH
21 1 U1 LCD 2X16 **verificare pinout in base al modello scelto
22 1 U2 PIC16F876
23 1 U3 HIN202CBN
24 1 Y1 4MHz Crystal Resonator (built in capacitor)

Decodifiche RADIOCOMANDI

Le decodifiche radio piu comuni usate dai telecomandi (auto,apricancello etc.) sono la cosiddetta NATIONAL con integrato MM53200 o UM3750, poi la MOTOROLA con integrato MC145026-7-8 ed infine il Microchip Rolling Code generato in genere dagli integrati HCS200 o meglio HCSxxx.

Codice National (MM53200 - UM3750)

Codifica a 12 BIT (on-off) per un totale di 4096 combinazioni anche se gli ultimi 2 BIT in genere sono di segnalazione canale. Il segnale ricevuto presenta 0X1 per ogni BIT trasmesso, dove X è il BIT che ci interessa. I tempi di trasmissione sono 11.52mS per la durata di tutto il pacchetto di 12BIT (WORD) e 0.32 mS per ogni singolo BIT inteso come 0 X 1 ) quindi abbiamo un totale di 0.96 mS a BIT decodificato. Tenete presente che la costante di tempo RC può essere modificata. Essendo una codifica ormai "vecchiotta", non è facile trovare in rete i datasheet, che allego.

MM53200 DATASHEET

UM3750 DATASHEET

Motorola (MC145026 - MC145027 -MC145028)

Codifica a 9 BIT (on-off-open) ogni bit ha 3 stati per un totale di 19683 possibili codici. Il segnale ricevuto può essere semplificato come 11 per ogni BIT '1' ricevuto 00 per ogni BIT '0' e 10 se 'Open', ogni DATA PERIOD avviene in 8 clock (tempo per decodificare un singolo BIT). Il timing potete vederlo dal datasheet a pag.10. Anche in questo integrato, la scelta dei componenti RC è fondamentale per il timing del circuito. Ovviamente RC del trasmettitore = RC del ricevitore!

MC145026 page

Rolling Code Microchip

PREMESSA
Per chi non conoscesse il significato del Rolling Code, faccio un esempio semplice semplice. Ipotizziamo di trasmettere un codice fisso da un trasmettitore ad una ricevente, chiunque sia nei paraggi, può ricevere anche lui il codice, salvarlo e poi riprodurlo! Per ovviare a questo, si trasmette un codice variabile, che varia in base ad un algoritmo noto ovviamente anche al ricevitore. Quindi, per semplificare, se trasmetto il codice 25 e l'algoritmo rolling è +10 , quando ri-premo il telecomando, trasmetterà il nuovo codice 35 e poi 45 e cosi via. Il ricevitore, dopo aver riconosciuto 25 come codice valido, lo elimina dalla memoria e salva 25+10=35 quindi si aspetterà in futuro 35 e cosi via.... A questo punto la domanda nasce spontanea: E se per qualsiasi motivo ho premuto il telecomando lontano dalla ricevente (che non se ne è accorta) quando ri-premo il codice sarà 45 invece del 35 aspettato! La soluzione sta nel creare una finestra entro la quale TX e RX si sincronizzano, nel nostro caso la ricevente si aspetterà 35 ma anche 45,55,65.... (possiamo farlo, abbiamo milioni di combinazioni). Nella codifica Keeloq tutto questo è un tantino (si fa per dire) più complicato!!
La decodifica Rolling Code della Microchip è molto più complessa delle altre, è composta da 66 BIT con la trasmissione 1/3 2/3 (ricevo 110 per il BIT '0' e 100 per il BIT '1').

Di seguito il valore dei BIT:
1 BIT di Batteria scarica trasmettitore
1 BIT Codice ripetuto
4 BIT TASTI
28 BIT Serial Number (in pratica la parte fissa del rolling code)
32 BIT di Codice Rolling (Comprendente discriminante e sincronismo)

Per ulteriori informazioni Vi consiglio il Design Center della Microchip con relativi DataSheet e routine.

KEELOQ DesignCenter

Firmware decodifica codici

Routine di ricezione codice Rolling (Manchester decoder), gestita sotto Interrupt sfrutta la periferica CCP1 (Captrure Compare). Ottimo esempio anche di primitivo Real Time con esecuzione a stati. In pratica durante la ricezione del codice il PIC può eseguire anche altri comandi/routines. La routine deve essere chiamata dall'ISR e può essere facilmente modificata ed adattata alle esigenze del sistema che state progettando. Nel MAIN controllate in polling la flag Flag_RX per sapere se è stato ricevuto un codice valido.

Routine di ricezione UM86409 compatibile con MM53200 e UM3750.
Questa routine è stata realizzata per PIC16C54, a 4MHz (quindi 1uS a ciclo) senza periferica Capture,
il segnale radio è monitorato in polling su PB,0 (RB0) quindi durante la ricezione il PIC è fermo!
Inoltre viene gestito anche il Watchdog.
Sono graditi tutti i commenti che volete, ma tenete conto che:
E'STATO UNO DEI MIEI PRIMI PROGETTI CON IL PIC, 13 ANNI FA'.......ANNO 1995!!

Routine di gestione UART. Trasmette e riceve sotto interrupt sfruttando la periferica. (ricordatevi si settare i PIN TX e RX della UART come INGRESSI!)

Routine di gestione LCD standard 16x2

NOTA: Le routine, benché funzionanti, sono solo a scopo di esempio e DEVONO essere adattate al vostro circuito o allo schema proposto, verificando anche i PIN del PICMICRO usato!

E' disponibile anche il progetto completo:

IPERCODE_FULL

Ricevitore Rolling Code con visualizzazione del codice su display LCD e trasmissione seriale RS232.
Il progetto software viene fornito in ambiente MLAB completo di sorgente.

decodifiche codici telecomandi

Potete editare il firmware secondo le Vs. esigenze e "debuggare" tramite MPLAB ICD2 oppure programmare direttamente il Vs. microcontroller. Per la realizzazione hardware potete prendere come esempio lo schema precedentemente presentato. Eventuali modifiche allo schema devono essere riportate nel firmware.

Potete utilizzare i microcontroller Microchip PIC che hanno a bordo la periferica seriale UART ed il modulo Capture Compare CCP1.

Il progetto riceve il segnale Rolling Code dal telecomando, lo DECRIPTA tramite algoritmo di decrypt (dovete necessariamente prima, inserire nell'header del programma la MANUFACTURE KEY, fornita dal produttore del telecomando) e ne permette la visualizzazione su display LCD. Allo stesso tempo il codice completo, e poi la parte decodificata, vengono inviati alla seriale UART per poter essere visualizzati anche su PC, tramite il programma Hyperterminal o Minicom sotto Linux.

In quest'ultimo caso potrete avere (ad esempio) un Controllo Accessi ad alta sicurezza, gestito dal Vs. PC!
radiocomandi keeloq

Repost Aprile 2011

Il progetto IperCODE in formato MPLAB completamente testato e funzionante, completo di sorgente comprensivo delle routines di ricezione Rolling Code, decrypt e trasmissione UART/LCD, facilmente adattabile alle Vs. esigenze è disponibile GRATIS per gli abbonati. Potete realizzarlo da soli (fai-da-te) scaricando tutti i codici sorgenti.Download Ipercode
Se non sei abbonato, ABBONATI ORA!
Scarica subito una copia gratis

51 Commenti

  1. Avatar photo ppboc1 3 Maggio 2011
  2. Avatar photo giuseppe.agosta 28 Aprile 2011
  3. Avatar photo BiGAlex 28 Aprile 2011
  4. Avatar photo giuseppe.agosta 28 Aprile 2011
  5. Avatar photo ntt 29 Aprile 2011
  6. Avatar photo coronet24 28 Aprile 2011
  7. Avatar photo Giovanni Giomini Figliozzi 28 Aprile 2011
  8. Avatar photo Emanuele 28 Aprile 2011
  9. Avatar photo Emanuele 28 Aprile 2011
  10. Avatar photo fra83 28 Aprile 2011
  11. Avatar photo linus 28 Aprile 2011
  12. Avatar photo Emanuele 28 Aprile 2011
  13. Avatar photo Giovanni Giomini Figliozzi 28 Aprile 2011
  14. Avatar photo Emanuele 28 Aprile 2011
  15. Avatar photo FlyTeo 28 Aprile 2011
  16. Avatar photo Emanuele 28 Aprile 2011
  17. Avatar photo Antonio Mangiardi 29 Aprile 2011
  18. Avatar photo Emanuele 29 Aprile 2011
  19. Avatar photo Giovanni Giomini Figliozzi 29 Aprile 2011
  20. Avatar photo Emanuele 30 Aprile 2011
  21. Avatar photo Emanuele 30 Aprile 2011
  22. Avatar photo Emanuele 30 Aprile 2011
    • Avatar photo lanza0897 27 Dicembre 2017
  23. Avatar photo Emanuele 30 Aprile 2011
  24. Avatar photo [email protected] 2 Maggio 2011
  25. Avatar photo Emanuele 3 Maggio 2011
  26. Avatar photo Emanuele 3 Maggio 2011
  27. Avatar photo giorgiosotto2 30 Maggio 2011
  28. Avatar photo Emanuele 30 Maggio 2011
  29. Avatar photo jonnyno 7 Giugno 2011
  30. Avatar photo Emanuele 9 Giugno 2011
  31. Avatar photo jonnyno 9 Giugno 2011
  32. Avatar photo megaiver 2 Luglio 2011
  33. Avatar photo romolo.fedeli 29 Luglio 2011
  34. Avatar photo Emanuele 1 Agosto 2011
  35. Avatar photo Emanuele 28 Agosto 2011
  36. Avatar photo VENOX 17 Settembre 2011
  37. Avatar photo Emanuele 18 Settembre 2011
  38. Avatar photo Vittorio Crapella 26 Dicembre 2011
  39. Avatar photo Emanuele 30 Gennaio 2012
  40. Avatar photo Emanuele 6 Febbraio 2012
  41. Avatar photo Emanuele 14 Marzo 2012
  42. Avatar photo Russo Luigi 21 Agosto 2013
  43. Avatar photo SPILLO76 23 Dicembre 2013
  44. Avatar photo Emanuele 24 Dicembre 2013
  45. Avatar photo Dario.Sciortino 3 Febbraio 2014
  46. Avatar photo skisim 31 Luglio 2015
  47. Avatar photo skisim 29 Settembre 2015
  48. Avatar photo Doc77 29 Dicembre 2017

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend