Presentation du numero de telephone (CID) sur LCD

De MicElectroLinGenMet.

Sommaire

Afficheur Présentation du numéro de téléphone (CID) et Messagerie Top-Message sur LCD

Ce montage a pour but d'afficher le numéro de téléphone de l'appelant et d'indiquer les messages reçus de Top-Message sur un LCD.
(Il faut pour cela être abonner aux services "Présentation du numéro" et "Top-Message" de France Télécom)
Je me suis inspiré pour cela du site de Mathieu Benoit concernant son montage Détecteur de l'appelant compatible France Télécom à base du MC68HC11A1P où de nombreuses informations concernent ce sujet.

L'interface avec la ligne téléphonique utilisera un circuit spécialisé le MC145447P de Motorola permettant de récupérer les données CID sous forme série à 1200bps, 8bit, sans parité et 1 stop.
Cette interface sera relié au port série d'un uC 89C2051 pour le décodage des trames CID et et l'affichage sur un LCD de type HD44780 des numéros reçus. Une horloge I2C PCF8583 dont la remise à l'heure se fera avec les trames CID reçus, une eprom I2c 24C65 de 8Ko qui servira d'annuaire pour afficher le nom à la place du n° reçu et 4 boutons permettront la gestion de l'ensemble.

Description du fonctionnement

Les taches du micro-controleur se décomposent en 4 parties principales:
(la Flash Rom du 89C2051 de 2ko étant remplie, il faudra supprimer les fonctions débug (dump de la Ram Interne) pour rajouter des fonctions supplémentaires.

  1. Scrute l'horloge, Réaffiche la date, l'heure et le nombre d'appels et de messages reçus si heures passée (Cela permet de voir le montage tourné).
    • Le circuit RTC PCF8583 contient 256 octets de Ram dont 240 sont disponibles pour sauvegarder les appels reçus.
    • L'horloge RTC étant remise à l'heure à chaque appel "normal", il n'est pas prévu d'autre réglage.
    • Un condo. d'1mF sauvegarde l'horloge ainsi que le contenu de sa mémoire de 256 octets.


  1. Scrute le port série: Recoit et décode la trame CID reçu et affiche le numéro ou nom de l'appelant si le numéro est dans l'annuaire.
    • L'annuaire est contenu dans l'eeprom I2C de 8ko.Chaque champs contient le n° de téléphone codé en BCD sur 5 octets, suivi du nom sous forme ASCII de 12 caractères.Les 6 1ier champs contiennent les cas particuliers (voir ci-dessous).La fin de l'annuaire est indiqué par le code FFh.Il n'est pas prévu de gérer le contenu de l'annuaire par ce montage (à voir), prévoir à programmer cette eeprom.
      Exemple de contenu:
      db 'M', "Message(s) "
      db 'F', "Fin message "
      db 'P', "Appel secret "
      db 'O', "Non renvoye "
      db 'I', "Erreur trame "
      db 'G', "Err. top-mes "
      db 'T', "Time Out "
      db 01h,23h,45h,67h,89h, "Prenom Nom " ;(1ier n° enregistré.)
      db 0FFh
    • Si il manque des octets dans la trame un texte "Erreur Trame" est affiché.Voir avec le Dump de la Ram Interne à l'adresse 2Ch pour relever la trame qui pose problème.
    • Les appels Top-Message sont affichés sous la forme "Message(s)" si un message a été déposé et "Fin message" s'il il a été lu.Si le code envoyé n'est pas reconnu, "Err. top-mes" sera affiché.
    • La Led clignote aprés une trame reçue.


  1. Scrute le clavier 4 touches: Permet la consultation, l'effacement des n° reçus.
    • Touche 1: Passage en mode consultation des appels reçus, une page s'affiche avec les appels reçus.
      - Un autre appuie sur une des touches renvoi en mode attente appel.
    • Touche 2: Affiche la date/heure et le nombre des appels et messages reçus.
    • Touche 3: Sert au debugage, Affiche sur une page le "Dump" de la Ram interne (contient trame cid reçue en 2Ch).
    • Touche 4: Efface les appels et messages reçus.


Détail des trames CID:

Une trame Cid ou Top-Message est une succession d'octets disponibles sur la broche DOC du MC145447P dés la 1ière sonnerie d'un appel.Le micro-controleur devra interpréter ces octets pour y retrouver la date et le numéro de l'appelant si présent.

Cas d'un appel normal:

  • Trame pour un n° renvoyé
80 19 01 08 30 32 32 37 31 31 33 35 02 0A 30 31 32 33 34 35 36 37 38 39 16 01 0A xx

- 80: Indique message d'appel.
- 19: Nombre d'octets qui suivent sans le checksum.

- 01: Type date et heure.
- 08: Nombre d'octets de la date/heure.
- 30 32 32 37 31 31 33 35: Le 27/02 à 11:35

- 02: Identité de l'appelant (n°).
- 0A: Nombre d'octets de l'identité (n°) de l'appelant.
- 30 31 32 33 34 35 36 37 38 39: 0123456789 N° de l'appelant.

- 16: Origine du l'appelant.
- 01: Nb octets de l'origine du l'appelant.
- 0A: Appel provenant d'un abonné ordinaire, si 0F: Appel d'un publiphone ...

- xx: Somme de contrôle.


  • Trame pour un n° non renvoyé (Secret ou Indisponible)
80 10 01 08 30 32 32 37 31 31 33 35 04 01 50 16 01 0A xx
- 80: Indique message d'appel. - 10: Nombre d'octets qui suivent sans le checksum. - 01: Type date et heure. - 08: Nombre d'octets de la date/heure. - 30 32 32 37 31 31 33 35: Le 27/02 à 11:35 - 04: Raison de l'absence d'identité de l'appelant. - 01: Nombre d'octets de la raison. - 50 = "P", Private (Secret) ou 4F = "O", Out of range, (Insdisponible) - 16: Origine du l'appelant. - 01: Nb octets de l'origine du l'appelant. - 0A: Appel provenant d'un abonné ordinaire, si 0F: Appel d'un publiphone ... - xx: Somme de controle.


Cas d'un appel de la messagerie Top-Message

  • Trame pour un appel top-message aprés dépose message(s)
82 13 01 08 30 32 32 37 31 31 33 35 02 04 33 31 32 35 0B 01 FF xx

- 82: Indique message de notification.
- 13: Nombre d'octets qui suivent sans le checksum.

- 01: Type date et heure.
- 08: Nombre d'octets de la date/heure.
- 30 32 32 37 31 31 33 35: Le 27/02 à 11:35

- 02: Identité de l'appelant (n°)
- 04: Nombre d'octets de la raison.
- 33 31 32 35: 3135 N° de la messagerie.

- 0B: Type de paramétre commande.
- 01: Nb octets paramétre.
- FF: Activation ON (Indique message(s) déposés).

- xx: Somme de controle.
  • Trame pour un appel top-message aprés écoute message(s)
82 13 01 08 30 32 32 37 31 31 33 35 02 04 33 31 32 35 0B 01 00 xx

- 82: Indique message de notification. 
- 13: Nombre d'octets qui suivent sans le checksum.

- 01: Type date et heure. 
- 08: Nombre d'octets de la date/heure. 
- 30 32 32 37 31 31 33 35: Le 27/02 à 11:35 

- 02: Identité de l'appelant (n°)
- 04: Nombre d'octets de la raison.
- 33 31 32 35: 3135 N° de la messagerie.

- 0B: Type de paramétre commande.
- 01: Nb octets paramétre.
- 00: Désactivation OFF (Indique message(s) écoutés).

- xx: Somme de controle.


Module CID (Caller Id)

Ce module est sur une carte séparée, voir sur photo la carte avec les gros condo.
Il est possible de le tester séparemment sur un PC avec un adaptateur de niveaux et capturer la réception dans un fichier binaire.


Image:Cid3.gif


Circuit principal: Processeur, Horloge, Eeprom et clavier

Pour tester le montage, il est possible d'envoyer les trames avec un PC (+ Max232) à la place du module CID.

Image:LcdCid6.gif


Photos du montage:

Montage fonctionnel.
La partie processeur est monté sur plaquette d'essais.

Test avec un modem pour la réception CID
Montage en fonctionnement


Affichage en mode d'attente appel
Affichage d'une autre consultation
Affichage de la consultation d'un message reçu
Affiche d'un appel reçu, le compteur d'appels = 1, celui des messages = 0


Sources assembleur 8051 pour le montage.

(Ecrit pour le Cross-Assembleur Tasm31)

Toutes les routines des fichiers LIB, ne sont pas forcément utilisées, seules celles déclarées dans le programme principal sous la forme
"#define NOM_ROUTINE" sont assemblées (Assemblage conditionnel).

Source disponible dans l'archive LcdCid6.zip

- LcdCid6.asm Programme principal pour 89C2051.
- I2c.lib (Librairie routines pour gérer le bus I2C.)
- PCF8583.lib (Librairie routines pour le RTC I2C PCF8583.)
- 24c65.lib (Librairie routines pour gérer l'eeprom I2C 24c65.)
- Lcd4Bits.lib (Librairie routines pour gérer le LCD en mode 4 bits.)
- Term.lib (Librairie routines pour le port série.)
- Utils.lib (Librairie routines diverses.)

Remarques:

Le montage a d'abord été testé sur le Scalp d'Elektor avec un modem pour la réception des trames Cid avant l'acquisition du circuit MC145447P chez Farnell.

Voir la page Presentation du numero de telephone (CID) sur TV, fonctionnement identique à ce montage sauf les n° de l'appelant s'affiche sur la TV.




5 août 2002