La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

GPA770: Microélectronique appliquée

Présentations similaires


Présentation au sujet: "GPA770: Microélectronique appliquée"— Transcription de la présentation:

1 GPA770: Microélectronique appliquée
CONTENU DU COURS GPA770: Microélectronique appliquée Éric Granger

2 Partie C − Concepts matériels
C.1 Configurations matérielles du 68HC12: architecture du système, mémoire, et ports d’e/s C.2 Gestion d’exceptions: réponses aux remises-à-zéro et aux interruptions avec le 68HC12 vecteur et priorité d’exceptions, et routines de service d’interruption C.3 Module de temporisation: module de temporisation standard du 68HC12 saisie des entrées et comparaison de sorties C.4 Convertisseurs analogique-numérique: processus de conversion système de conversion du 68HC12 C.5 Interfaces de communications sérielles: Communications sérielles avec un microcontrôleur interfaces multiples du 68HCS12: SCI et SPI GPA770: Microélectronique appliquée Éric Granger

3 Sommaire de la section C.5
C.5 Interfaces sériels de communication du 68HC12: Communications sérielles avec microcontrôleurs 2) Sous-systèmes multiples du 68HCS12 Interface sériel asynchrone – SCI: caractéristiques du sous-système SCI registres, programmation et applications Interface sériel synchrone – SPI: caractéristiques du sous-système SPI GPA770: Microélectronique appliquée Éric Granger

4 C.5(1) Communications sérielles
(a) Communications avec un microcontrôleur applications indépendantes à distance: pour échanger des informations avec un composant distant ex: communications entre deux robots mobiles applications locales spécialisées dans un système: pour interfacer directement avec un composant externes, et donc étendre les capacités ex: communications avec l’afficheur LCD du robot mobile GPA770: Microélectronique appliquée Éric Granger

5 C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle parallèle: mécanisme permettant le transfert de plusieurs bits à la fois entre 2 composants transfert plus rapide de données requiert 9-10 fils pour gérer un canal de 8 bits consomme plus de broches d’e/s et de matériel GPA770: Microélectronique appliquée Éric Granger

6 C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle sérielle: mécanisme permettant le transfert d’un bit à la fois entre 2 composants transfert moins rapide de données requiert 1-2 fils pour un canal de 1 bit consomme peu de broches d’e/s et de matériel GPA770: Microélectronique appliquée Éric Granger

7 C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle Transfert parallèle de données entre 68HC12: peut connecter le Port A du transmetteur (configuré en sortie) au Port A du récepteur (configuré en entrée) pour transférer 8 bits peut aussi connecter le Port B pour transférer 16 bits GPA770: Microélectronique appliquée Éric Granger

8 C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle Communication à 8 bits entre deux 68HC12: le 68HCS12 transmetteur écrit les données sur le port A, un octet à la fois le 68HCS12 récepteur lit les données sur le port A, un octet à la fois Exemple: transmission de 5 octets correspondant aux 5 caractères ASCII ‘hello’ GPA770: Microélectronique appliquée Éric Granger

9 C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle Synchronisation: permet d’indiquer au récepteur quand les données transmises sont valides Deux techniques de transfert: parallèle synchrone: exploite un fil supplémentaire pour transporter un signal d’horloge commun entre transmetteur et récepteur parallèle asynchrone: exploite deux fils supplémentaires pour réaliser du ‘handshaking’ entre transmetteur et récepteur GPA770: Microélectronique appliquée Éric Granger

10 C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle Approche 1 – transmission synchrone: utiliser 1 fil supplémentaire pour transporter un signal d’horloge GPA770: Microélectronique appliquée Éric Granger

11 C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle Communication à 8 bits entre deux 68HCS12: le 68HC12 récepteur lit les données au port A sur le front montant du signal d’horloge Exemple: transmission de 5 octets correspondant aux 5 caractères ASCII ‘hello’ GPA770: Microélectronique appliquée Éric Granger

12 C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle Approche 2 – transmission asynchrone: utiliser 2 fils supplémentaires pour réaliser du ‘handshaking’ GPA770: Microélectronique appliquée Éric Granger

13 C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle Communication à 8 bits entre deux 68HCS12: le 68HCS12 transmetteur utilise un fil ‘Data Valid’ (DV) pour indiquer que les données sont valides le 68HCS12 récepteur utilise un fil ‘Data Received’ (DR) pour indiquer qu’il a lu l’octet au port A GPA770: Microélectronique appliquée Éric Granger

14 C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle Étapes d’une transmission parallèle asynchrone: le transmetteur écrit les données sur son port A, et fixe DV = ‘L’ pour indiquer la disponibilité d’un nouvel octet quand le récepteur détecte la disponibilité d’un nouveau octet, il lit son port A, et fixe DR = ‘L’ pour confirmer quand le transmetteur détecte DR = ‘L’, il fixe DV = ‘H’ quand le récepteur détecte DV = ‘H’, il fixe DR = ‘H’ Les deux microcontrôleurs sont maintenant prêts pour la prochaine transmission de données... GPA770: Microélectronique appliquée Éric Granger

15 C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle Communication de données entre deux 68HCS12: une communication entre transmetteur et récepteur se fait un bit à la fois, à travers d’un seul fil GPA770: Microélectronique appliquée Éric Granger

16 C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle Synchronisation: le transmetteur doit indiquer au récepteur quand les bits sont valides Deux techniques de transfert: sériel synchrone: exploite un fil supplémentaire pour transporter un signal d’horloge commun entre transmetteur et récepteur sériel asynchrone: exploite des bits spéciaux pour indiquer le début et la fin d’une communication entre transmetteur et le récepteur GPA770: Microélectronique appliquée Éric Granger

17 C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle Approche 1 – transmission sériel synchrone: GPA770: Microélectronique appliquée Éric Granger

18 C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle Étapes d’une communication sériel synchrone: place un caractère à transmettre dans un registre à décalage interne décalages successifs de n bits selon l’horloge (clk): le transmetteur décale les bits d’un registre interne vers sa broche de sortie selon clk le récepteur décale les bits sur sa broche d’entrée vers un registre interne selon clk après n cycles d’horloge, n bits sont communiqués du transmetteur au récepteur GPA770: Microélectronique appliquée Éric Granger

19 C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle Approche 2 – transmission sériel asynchrone: GPA770: Microélectronique appliquée Éric Granger

20 C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle Étapes d’une communication sériel asynchrone: les deux 68HCS12 sont configurés avec les mêmes paramètres de transmission (fréquence clk, bits/caractère, parité, etc.) les données sont transmises sur un canal TxD → RxD: le transmetteur transmet un bit de départ (détecté par le récepteur) pour indiquer le début du transfert le transmetteur transmet un caractère, LSb en premier, (détecté par le récepteur) le transmetteur transmet un bit de terminaison (détecté par le récepteur) pour indiquer le fin du transfert GPA770: Microélectronique appliquée Éric Granger

21 C.5(1) Communications sérielles
(c) Concepts fondamentaux et terminologie Lien sériel de communications: canal simple de communication, avec les données transférées un bit à la fois Horloge: signal de synchronisation qui établit le taux de transfert des données (en synchrone) Taux de transfert (Baud): nombre de bits transmit par second en bps ≡ Baud ex: 1200, 2400, 4800, 9600 Baud < GPA770: Microélectronique appliquée Éric Granger

22 C.5(1) Communications sérielles
(c) Concepts fondamentaux et terminologie cellule binaire ou période de bit: période de temps réservé pour la transmission d’un bit dans une séquence binaire (1 ∕ taux de transfert) code NRZ (‘Non-Return-to-Zero’): format commun pour le transfert d’une séquence binaire règle: pour transmettre ‘0’ (‘1’), placer la tension L (H) sur le canal pour toute la cellule binaire. GPA770: Microélectronique appliquée Éric Granger

23 C.5(1) Communications sérielles
(c) Concepts fondamentaux et terminologie code ASCII: ‘American Standard Code for Information and Interchange’ GPA770: Microélectronique appliquée Éric Granger

24 C.5(1) Communications sérielles
(c) Concepts fondamentaux et terminologie bit de parité: mécanisme pour détecter une erreur simple de transmission réalisation: bit additionnel (e.g., MSb) qui indique la parité d’une séquence de bits parité paire: le bit de parité est fixé tel qu’il y a un nombre pair de bits = ‘1’ dans le code parité impaire: le bit de parité est fixé tel qu’il y a un nombre impair de bits = ‘1’ dans le code GPA770: Microélectronique appliquée Éric Granger

25 C.5(1) Communications sérielles
(c) Concepts fondamentaux et terminologie Types de communications sérielles: lien simplexe: transfert sur 1 fil dans une direction (e.g., radio, TV) lien mi-duplexe: transfert sur 1 fil dans les deux directions, mais pas simultanément (e.g., CB, BDM) lien duplexe: transfert sur 2 fils dans les deux direction simultanément GPA770: Microélectronique appliquée Éric Granger

26 Sommaire de la section C.5
C.5 Interfaces sériels de communication du 68HC12: Communications sérielles avec microcontrôleurs 2) Sous-systèmes multiples du 68HCS12 Interface sériel asynchrone – SCI: caractéristiques du sous-système SCI registres, programmation et applications Interface sériel synchrone – SPI: caractéristiques du sous-système SPI GPA770: Microélectronique appliquée Éric Granger

27 C.5(2) Sous-systèmes du 68HC12
Rôle des types de sous-systèmes dans le 68HCS12: CPU12: unité de traitement central gestion d’exceptions: interrompre l’exécution normal d’un programme Bus: module LIM combine DATA, ADDR et CTRL Mémoire: stocker des configurations (bloc), des variables (RAM) et des programmes (ROM) Périphériques d’entrée/sortie: ports d’entrée/sortie: échanger des données avec le monde externe temporisation: capter des entrées, générer des sorties, accumuler des impulsions, PWM conversion de données: convertir un signal analogique en codes binaires non-signés communication sérielle: échanger de données par communications asynchrones (SCI) et synchrones (SPI) GPA770: Microélectronique appliquée Éric Granger

28 C.5(2) Sous-systèmes du 68HC12
MC9S12C32 GPA770: Microélectronique appliquée Éric Granger

29 C.5(2) Sous-systèmes du 68HC12
TX/RX Port S GPA770: Microélectronique appliquée Éric Granger

30 C.5(2) Sous-systèmes du 68HC12
Module d’horloge: le 68HCS12 utilise XTAL (÷2) = Bus Clock 16MHz ÷ 2 = 8MHz Pour contrôler le SCI et le SPI GPA770: Microélectronique appliquée Éric Granger

31 C.5(2) Sous-systèmes du 68HC12
Module SCI (‘Serial Communications Interface’): interface sériel pour communications types de communications: sérielles asynchrones synchronisation: utilise un bit de début et un bit d’arrêt pour encadrer chaque caractère transmis utilisation typique: communiquer des caractères ASCII de façon asynchrone, à travers 1 fil GPA770: Microélectronique appliquée Éric Granger

32 C.5(2) Sous-systèmes du 68HC12
GPA770: Microélectronique appliquée Éric Granger

33 C.5(2) Sous-systèmes du 68HC12
Module SPI (‘Serial Peripheral Interface’): interface sériel pour périphériques types de communications: sérielles synchrones synchronisation: partage de l’horloge entre les composants qui sont désignés comme maître et esclave, à travers 1 fil supplémentaire utilisation typique: étendre les capacités du 68HCS12 en interfaçant avec des périphériques synchrones GPA770: Microélectronique appliquée Éric Granger

34 C.5(2) Sous-systèmes du 68HC12
GPA770: Microélectronique appliquée Éric Granger

35 Sommaire de la section C.5
C.5 Interfaces sériels de communication du 68HCS12: Communications sérielles avec microcontrôleurs 2) Sous-systèmes multiples du 68HCS12 Interface sériel asynchrone – SCI: caractéristiques du sous-système SCI registres, programmation et applications Interface sériel synchrone – SPI: caractéristiques du sous-système SPI GPA770: Microélectronique appliquée Éric Granger

36 C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCI Transfert de données: réalise un lien duplexe – permet d’effectuer une transmission et une réception simultanément transmission de données – en décalant hors d’un registre à décalage de transfert (via TxD) et en les recevant dans un registre à décalage à réception (via RxD) les registres de transfert et de réception sont indépendant, et distribués sur 2 registres à 8 bits: SCIDRL et SCIDRH, respectivement GPA770: Microélectronique appliquée Éric Granger

37 C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCI Transfert de données: GPA770: Microélectronique appliquée Éric Granger

38 C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCI Étapes d’un transfert de données TxD → RxD: (En mode IDLE, TxD = ‘H’) afin d’initier le transfert, fixer TxD = ‘L’ pour une période de 1 bit – le récepteur détecte alors qu’une transmission est sur le point de commencer durant la transmission d’un caractère sur TxD le codage du caractère est en format NRZ le nombre pré-déterminé de bits par caractère (8 ou 9 bits) est programmable tous les données sont transférées LSb premier pour mettre fin au transfert, fixer TxD = ‘H’ pour une période de 1 bit – le récepteur détecte alors a fin GPA770: Microélectronique appliquée Éric Granger

39 C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCI GPA770: Microélectronique appliquée Éric Granger

40 C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCI Transmetteur SCI: GPA770: Microélectronique appliquée Éric Granger

41 C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCI Récepteur SCI: GPA770: Microélectronique appliquée Éric Granger

42 C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCI Génération du taux de transfert (Baud): taux de transfert programmable – par configuration des registres SCIBDH et SCIBDL le transmetteur et le récepteur du SCI fonctionnent indépendamment, mais selon le même taux de transfert un compteur modulo à 13 bits dérive le taux ou l’horloge de transfert pour les deux cas GPA770: Microélectronique appliquée Éric Granger

43 C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCI Génération du taux de transfert (Baud): afin d’alimenter le transmetteur, la fréquence d’horloge de transfert est divisé par 16 le récepteur à un taux d’acquisition de 16 cycles d’horloge de transfert (échantillons) par temps de bit transmis 1 à 8192 GPA770: Microélectronique appliquée Éric Granger

44 C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCI Détection et vérification de bits: le récepteur à 16 cycles d’horloge transfert / temps de bit bit de départ: trois ‘1’ successifs, suivis par des ‘0’ à RT1, 3, 5, 7. Détecte le départ si 2 sur RT3, 5, 7 sont ‘0’, mais drapeau de bruit s’active s’il ne sont pas tous à ‘0’ bit de donnée (terminaison): vérifie à RT8, 9, Détecte la valeur majoritaire, mais le drapeau de bruit (d’encadrement) s’active s’ils ne sont pas tous identiques GPA770: Microélectronique appliquée Éric Granger

45 C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCI Détection d’erreurs liés à la transmission: bruit: le récepteur vérifie chaque donné transmise 3 fois pour chaque bit – si le vote majoritaire n’est pas unanime, il y a une erreur de bruit parité: le récepteur vérifie que le nombre de ‘1’s dans le code est bien paire ou impair – sinon il y a un erreur de parité GPA770: Microélectronique appliquée Éric Granger

46 C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCI Détection d’erreurs liés à la transmission: (suite) encadrement: si le récepteur détecte le bit de départ, mais pas le bit de terminaison généralement à cause des différents taux de transfert – probablement due au fait que les 2 horloges n’opèrent pas exactement à la même fréquences le communication va fonctionner si fclk(transmetteur) est différent de fclk(récepteur) par moins que 4.5% GPA770: Microélectronique appliquée Éric Granger

47 C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCI Capacité de générer des interruptions: une interruption par SCI, pour indiquer 4 types d’événements: TDRE, TC, RDRF, IDLE (lien inactif) Réalise 2 techniques de réveil du récepteur: (pour transmissions à 2+ récepteurs) par reconnaissance de lien inactif: le récepteur se réveil si son fil RxD devient inactif (IDLE) par démarcation d’adresses: le SCI utilise une adresse reçue dans son SCIDR pendant son sommeille. GPA770: Microélectronique appliquée Éric Granger

48 C.5(3) Interface sériel asynchrone
Registres pertinents du SCI Chaque sous-système SCI utilise 8 registres: [$00C8-C9] SCIBDH-L: registres de contrôle du taux de transfert H et L [$00CA-CB] SCICR1-2: registres de contrôle 1 et 2 [$00CC-CD] SCISR1-2: registres d’état 1 et 2 [$00CE-CF] SCIDRH-L: registres de données H et L GPA770: Microélectronique appliquée Éric Granger

49 C.5(3) Interface sériel asynchrone
Registres pertinents du SCI [$00C8-C9] SCIBDH-L – registres de contrôle du taux transfert H et L: GPA770: Microélectronique appliquée Éric Granger

50 C.5(3) Interface sériel asynchrone
Registres pertinents du SCI Fixe le taux de transfert selon les bits SBR[12:0]: GPA770: Microélectronique appliquée Éric Granger

51 C.5(3) Interface sériel asynchrone
Registres pertinents du SCI GPA770: Microélectronique appliquée Éric Granger

52 C.5(3) Interface sériel asynchrone
Registres pertinents du SCI [$00CA-CB] SCICR1-2 – registres de contrôle 1 et 2: GPA770: Microélectronique appliquée Éric Granger

53 C.5(3) Interface sériel asynchrone
[$00CA] SCICR1 – registre de contrôle 1: fixe des caractéristiques du système SCI M: indique le format du caractère 0: 1 start, 8 bits, 1 stop 1: 1 start, 9 bits, 1 stop WAKE: indique la méthode de réveil du récepteur SCI 0: utilise la méthode de lien inactif (IDLE) 1: utilise la méthode de démarcations d’adresses PE et PT: PE active le système de génération de parité, tandis que PT indique le type de parité PT = 0: parité paire PT = 1: parité impaire GPA770: Microélectronique appliquée Éric Granger

54 C.5(3) Interface sériel asynchrone
[$00CA] SCICR1 – registre de contrôle 1: fixe des caractéristiques du système SCI LOOPS: permet de configurer le SCI pour l’opération en rétroaction: le récepteur SCI est déconnecté de la broche RxD la sortie du transmetteur est routé vers l’entrée du récepteur de façon interne RSRC: détermine le chemin interne de rétroaction au récepteur si LOOPS = ‘1’ ‘1’: connexion de la broche TxD à l’entrée du récepteur ‘0’: l’entrée du récepteur est connecté au transmetteur de façon interne (pas à travers la broche TxD) GPA770: Microélectronique appliquée Éric Granger

55 C.5(3) Interface sériel asynchrone
[$00CB] SCICR2 – registre de contrôle 2: activation de 4 différentes interruptions masquables TIE: permet l’interruption de transmission quand le drapeau TDRE est actif TCIE: permet l’interruption du transmission complété quand le drapeau TC est actif RIE: permet l’interruption du récepteur quand le drapeau RDRF est actif ILIE: permet l’interruption pour un lien inactif (IDLE) TE et RE activent le transmetteur et le récepteur RWU place le récepteur en mode de sommeil SBK (send break) transmettre de 10 à 13 ‘0’ GPA770: Microélectronique appliquée Éric Granger

56 C.5(3) Interface sériel asynchrone
Registres pertinents du SCI [$00CC-CD] SCISR1-2 – registres d’état 1 et 2 GPA770: Microélectronique appliquée Éric Granger

57 C.5(3) Interface sériel asynchrone
[$00CC] SCISR1 – registres d’état 1 drapeaux d’erreur: OR (‘Over-run’): si le registre de résultat n’est pas lu avant la réception de nouvelles données NF, FE et PF: erreur de bruit, d’encadrement, et de parité, respectivement les drapeaux TDRE, TC, RDRF et IDLE indiquent l’état d’une communication: TDRE (Transmit Data Register Empty’): SCIDRL vide TC (‘Transmit Complete’): fin de transmission RDRF (‘Receive Data Register Full’): SCIDRL plein IDLE (‘Idle Line Detect’): si un caractère (10 ou 11 bits) consécutifs de ‘1’ apparait au récepteur GPA770: Microélectronique appliquée Éric Granger

58 C.5(3) Interface sériel asynchrone
[$00CD] SCISR2 – registres d’état 2 RAF (‘Receiver Active Flag’): indique que le caractère est en train d’être reçu par le récepteur TXDIR (‘Transmitter Pin Data Direction in Single-Wire Mode’) : direction de la broche TxD en mode simplexe 0 = entrée 1 = sortie BK13 (‘Break Transmit Character Length’) : indique le nombre de bits pour une pause 0 = 10 ou 11 bits de long 1 = 13 ou 14 bits de long GPA770: Microélectronique appliquée Éric Granger

59 C.5(3) Interface sériel asynchrone
[$00CE-CF] SCIDRH-L: registres de données H et L L: contient les bits [7:0] transmis/reçus H: contient le 8ème bit pour un transfert à 9 bits (M = ‘1’) GPA770: Microélectronique appliquée Éric Granger

60 C.5(3) Interface sériel asynchrone
Programmation du SCI GPA770: Microélectronique appliquée Éric Granger

61 C.5(3) Interface sériel asynchrone
Exemple: sous-routine pour initialiser et transmettre une séquence de caractères via le SCI configurer SCIBDH = $00, SCIBDL = $34 pour avoir un le taux de traitement est 9600 Baud, en supposant que la fréquence de BUSCLK = 8MHz configurer SCICR1: M = ‘0’, 1 bit de départ, 1 bit de terminaison, et 8 bits de données (parité incluse) configurer SCICR2: TE = ‘1’ pas de bit de parité remise à zéro du drapeau TDRE dans SCISR1: lire SCISR1 écrire le code ASCII dans le SCIDRL GPA770: Microélectronique appliquée Éric Granger

62 C.5(3) Interface sérielle asynchrone
; définir les registres des base et masques SCIBDH = $00C ; déclaration de registres déjà fait dans mc9s12c32.inc SCIBDL = $00C9 SCICR1 = $00CA SCICR2 = $00CB SCISR1 = $00CC SCIDRL = $00CF BAUD_HI = $ ; pour taux de transfert de 9600 BAUD_LOW = $34 SCI_CONT = $ ; pour 8 bits, pas de rétroaction et de parité SCI_MASK = $ ; pas d’interr., activer le transmetteur GPA770: Microélectronique appliquée

63 C.5(3) Interface sérielle asynchrone
;******************** ; Programme principal ORG $0800 DATA FCB ‘GPA770’ FCB $0D, $0A ; carriage return, line feed EOT FCB $00 ; end of data marker (code ASCII) ORG $4000 LDS #$1000 JSR INIT ; sr initialisation du SCI JSR TRANS ; sr pour transmission de caractères fin: bra fin GPA770: Microélectronique appliquée

64 C.5(3) Interface sérielle asynchrone
; INIT: SR qui initialise le système SCI INIT SEI ; désactiver les interruptions CLR SCIBDH LDAA #BAUD_LOW ; fixer le taux de transfert STAA SCIBDL LDAA #SCI_CONT ; fixer mode de transfert STAA SCICR1 LDAA #SCI_MASK ; activer le transmetteur STAA SCICR2 LDAA SCISR1 ; remise à zéro du bit TDRE LDAA SCIDRL ; (lire SC1SR1, SC1DRL) LDX #DATA ; pointer l’index IX vers DATA RTS ; retour de sous-routine GPA770: Microélectronique appliquée

65 C.5(3) Interface sérielle asynchrone
;************************************************ ;* TRANS: sr pour transmettre un caractère avec le SCI TRANS: BRCLR SCISR1, $80, TRANS ; attendre le drapeau TDRE LDAA , X+ ; charger le caractère dans A BEQ FINTRANS ; détecter le dernier caractère STAA SCIDRL ; charger A au registre de données BRA TRANS FINTRANS: RTS GPA770: Microélectronique appliquée

66 C.5(3) Interface sériel asynchrone
Application du SCI Standard RS-232 pour transfert sériel: GPA770: Microélectronique appliquée Éric Granger

67 C.5(3) Interface sériel asynchrone
standard du ‘Electronic Industry Association’ (EIA) qui a évolué du standard EIA-232-D (autour de 1960) spécifications pour 4 aspects: électriques: niveaux de tension, temps des transitions fonctionnement de chaque signal mécanique: nombre de broches, dimensions de connecteurs, etc. procédurale +12V 0V -12V idle start data stop parity GPA770: Microélectronique appliquée Éric Granger

68 C.5(3) Interface sériel asynchrone
Détails de la synchronisation: Si un ‘0’ suit 3 ‘1’ successifs → bit de départ la majorité des échantillon 3,5,7 détermine s’il y a bit de départ GPA770: Microélectronique appliquée Éric Granger

69 C.5(3) Interface sériel asynchrone
GPA770: Microélectronique appliquée Éric Granger

70 Sommaire de la section C.5
C.5 Interfaces sériels de communication du 68HC12: Communications sérielles avec microcontrôleurs 2) Sous-systèmes multiples du 68HC12 Interface sériel asynchrone – SCI: caractéristiques du sous-système SCI registres, programmation et applications Interface sériel synchrone – SPI: caractéristiques du sous-système SPI GPA770: Microélectronique appliquée Éric Granger

71 C.5(4) Interface sériel synchrone
Caractéristiques du sous-système SPI un 68HCS12 qui communique à travers son sous-système SPI doit être configuré soit en mode maître ou en mode esclave le transmetteur et récepteur partagent une horloge commune pour synchroniser la communication: le signal d’horloge (SCK) est généré par le composant configuré en mode maître SCK est transmis à un ou plusieurs composant(s) configuré(s) en mode esclave GPA770: Microélectronique appliquée Éric Granger

72 C.5(4) Interface sériel synchrone
Caractéristiques du sous-système SPI le SPI agit comme une registre à décalage de 16 bits qui est distribué géographiquement: transfert: après 8 décalages (impulsions SCK), l’octet au registre du composant maître est échangé avec celui au registre du composant esclave MOSI: canal qui connecte le sortie du registre à 8 bits du composant maître à l’entrée du registre à 8 bits du composant esclave MISO: canal qui connecte l’entrée du registre à 8 bits du composant maître à la sortie du registre à 8 bits du composant esclave GPA770: Microélectronique appliquée Éric Granger

73 C.5(4) Interface sériel synchrone
Caractéristiques du sous-système SPI GPA770: Microélectronique appliquée Éric Granger

74 C.5(4) Interface sériel synchrone
Caractéristiques du sous-système SPI GPA770: Microélectronique appliquée Éric Granger

75 C.5(4) Interface sériel synchrone
Caractéristiques du sous-système SPI GPA770: Microélectronique appliquée Éric Granger

76 C.5(4) Interface sériel synchrone
Caractéristiques du sous-système SPI GPA770: Microélectronique appliquée Éric Granger

77 C.5(4) Interface sériel synchrone
Caractéristiques du sous-système SPI GPA770: Microélectronique appliquée Éric Granger

78 C.5(4) Interface sériel synchrone
Caractéristiques du sous-système SPI le composant maître peut communiquer avec le plusieurs composants esclave selon les lignes de sélection d’esclaves (SS) GPA770: Microélectronique appliquée Éric Granger

79 C.5(4) Interface sériel synchrone
Registres pertinents du SPI Configurations importantes: le port M (bits du registre DDRM) opération en mode maître ou esclave si le données sont transférés MSb ou LSb en premier le nombre de bits par cycle de transfert si les données sont valides sur le front montant out le front descendant, etc. taux de transfert (Baud ou bps) GPA770: Microélectronique appliquée Éric Granger

80 C.5(4) Interface sériel synchrone
Registres pertinents du SPI SPI utilise 5 registres: GPA770: Microélectronique appliquée Éric Granger

81 C.5(4) Interface sériel synchrone
[$00D8] SPICR1: Registre de contrôle 1 SPE (‘SPI Enable’): pour activer le système SPI CPHA (‘SPI Clock Phase’): ‘0’: un front pair indique le début d’une transmission ‘1’: un front impair indique le début d’une transmission CPOL (‘SPI Clock Polarity’): ‘0’: SCK inactif (IDLE) au niveau bas ‘1’: SCK inactif (IDLE) au niveau haut GPA770: Microélectronique appliquée Éric Granger

82 C.5(4) Interface sériel synchrone
SSOE (‘SPI Slave Select Output Enable’): on doit s’organiser pour sélectionner les esclaves ‘0’: permet de contrôler la broche SS manuellement – on peut, e.g., envoyer plusieurs octets successifs avec ‘1’: l’option de sortie est actif si en mode maître, et si DDRS7 = ‘1’ (permet de contrôler la broche SS automatiquement) N.B. Contrôle d’esclaves: si un esclave: peut utiliser la ligne SS si multi-esclaves: utilise des GPIOs GPA770: Microélectronique appliquée Éric Granger

83 C.5(4) Interface sériel synchrone
MSTR (‘SPI Master/Slave Select’): ‘0’: mode esclave ‘1’: mode maître SPIE/SPTIE (‘SPI Interrupt Enable’): ‘0’: interruptions inactifs ‘1’: permet une séquence d’interruptions si SPIF ou MODF ou SPTEF sont actifs LSBFE (‘SPI LSb First Enable’): ‘0’: décale le MS bit en premier ‘1’: décale le LS bit en premier GPA770: Microélectronique appliquée Éric Granger

84 C.5(4) Interface sériel synchrone
[$00DA] SPIBR: registre de taux de transfert: sélectionne alors la fréquence de SCK (normalement au taux le plus rapide qui est compatible avec l’esclave) GPA770: Microélectronique appliquée Éric Granger

85 C.5(4) Interface sériel synchrone
[$00DB] SPISR: registre d’état SPIF (‘SPI Request Flag’): indique la fin d’une réception de 8 bits, après 8 cycles SCK quand SPIF = ‘1’ on peut ensuite lire un octet de données à partir de SPIDR une lecture au SPISR permet ensuite d’effectuer une remise à zéro automatique du SPIF MODF (‘Mode Error Interrupt Status Flag’): indique que MSTR = ‘1’ quand la broche SS est en entrée SPTEF (‘SPI Transmit Empty Flag’): comme le SPIF mais en transmission.. GPA770: Microélectronique appliquée Éric Granger

86 C.5(4) Interface sériel synchrone
Programmation du SPI M DDRM GPA770: Microélectronique appliquée Éric Granger

87 C.5(4) Interface sériel synchrone
Exemple: Initialiser le SPI d’un 68HCS12 comme maître pour transmettre un caractère l’esclave est un périphérique qu’on interroge d’après la ligne SS (CPHA = ‘0’) l’horloge SCK roule à 125 kHz avec un Bus Clock à 8 MHz transmettre 1 caractère à la fois GPA770: Microélectronique appliquée Éric Granger

88 C.5(4) Interface sérielle synchrone
;******************** ; Programme principal ORG $0800 DATA FCB ‘GPA770’ FCB $0D, $OA ; carriage return, line feed EOT FCB $00 ; end of data marker ORG $4000 LDS #$1000 JSR INIT ; sr initialisation du SPI JSR TRANS ; sr pour transmission fin: bra fin GPA770: Microélectronique appliquée

89 C.5(4) Interface sérielle synchrone
;************************************************ ;* INIT: sous-routine pour initialiser le SPI INIT MOVB #$38 , DDRM ; config l’e/s du PORTM: MISO en entrée et ; SS, MOSI et SCK en sortie BSET PTM, $08 ; SS= 1 désactive l’esclave lors des config MOVB #$05, SPIBR ; taux de transfert 125 kHz MOVB #$12, SPICR1 ; config SPICR1: MSRT=1, CPOL=0, ; CPHA=0, pas d’interruptions MOVB #$08, SPICR2 ; config SPICR2: mode normal pour port S LDX #DATA ; pointer vers le 1er caractère LDAA SPISR ; 2 étapes pour RAZ de SPIF LDAA SPIDR ; (lire SPISR et SPIDR) BSET SPICR1, $40 ; activer SPI (SPE= 1) RTS GPA770: Microélectronique appliquée

90 C.5(4) Interface sérielle synchrone
;************************************************ ;* TRANS: sous-routine pour transmettre avec le SPI TRANS LDAA 1, X+ ; charger le caractère dans A ; incrémente X BEQ DONE ; test pour dernier caractère BCLR PTM, $08 ; activer le SS (SS = ‘L’) STAA SPIDR ; charger un caractère au DR WAIT BRCLR SPISR, $20, WAIT ; attendre pour le drapeau SPTEF BSET PTM, $08 ; désactiver le SS (SS = ‘H’) BRA TRANS ; prochain caractère DONE RTS GPA770: Microélectronique appliquée

91 C.5(4) Interface sériel synchrone
Application du SPI 68HCS12 peut communiquer avec plusieurs autres composants avec le SPI pour étendre ses capacités: composants de mémoire additionnels ports additionnels horloge temps réel PLL (‘Phased-Lock Loop’) récepteur/transmetteur FM convertisseur numérique-analogique (N-A) afficheur LCD GPA770: Microélectronique appliquée Éric Granger

92 C.5(4) Interface sériel synchrone
Application du SPI horloge temps réel: le 68HCS12 initialise le temps, l’horloge conserve alors le temps (année, mois, jour, heure, minute et seconde) peut être programmé pour générer des alarmes (interruptions) à des temps précis, ou de façon périodique GPA770: Microélectronique appliquée Éric Granger

93 C.5(4) Interface sériel synchrone
Application du SPI conversion N-A: le 68HCS12 transmet une valeur numérique au convertisseur, qui le convertit en voltage GPA770: Microélectronique appliquée Éric Granger

94 C.5(4) Interface sériel synchrone
Application du SPI Conversion numérique-analogique (N-A) multi-canal R2R: GPA770: Microélectronique appliquée Éric Granger

95 C.5(4) Interface sériel synchrone
Application du SPI convertisseur N-A Motorola MC144111: GPA770: Microélectronique appliquée Éric Granger


Télécharger ppt "GPA770: Microélectronique appliquée"

Présentations similaires


Annonces Google