contenu du cours
DESCRIPTION
CONTENU DU COURS. Partie C − Concepts matériels. C.1 Con figurations 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 - PowerPoint PPT PresentationTRANSCRIPT
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-1
CONTENU DU COURS
A. MISE EN CONTEXTE
B. CONCEPTS LOGICIELS
(PROGRAMMATION EN ASSEMBLEUR ET
EN C)
C. CONCEPTS MATÉRIELS
(COMPOSANTS D’UN MICROCONTRÔLEUR)
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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 68HC12vecteur et priorité d’exceptions, et routines de service d’interruption
C.3 Module de temporisation: module de temporisation standard du 68HC12saisie des entrées et comparaison de sorties
C.4 Convertisseurs analogique-numérique:processus de conversionsystème de conversion du 68HC12
C.5 Interfaces de communications sérielles:Communications sérielles avec un microcontrôleurinterfaces multiples du 68HCS12: SCI et SPI
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-3
Sommaire de la section C.5
C.5 Interfaces sériels de communication du 68HC12: 1) Communications sérielles avec
microcontrôleurs
2) Sous-systèmes multiples du 68HCS12
3) Interface sériel asynchrone – SCI: caractéristiques du sous-système SCI registres, programmation et applications
4) Interface sériel synchrone – SPI: caractéristiques du sous-système SPI registres, programmation et applications
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-4
C.5(1) Communications sérielles
(a) Communications avec un microcontrôleur
1. applications indépendantes à distance: pour échanger des informations avec un composant distant
ex: communications entre deux robots mobiles
2. 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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-7
C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielleTransfert 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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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’
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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’
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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’
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-14
C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle
Étapes d’une transmission parallèle asynchrone:1. le transmetteur écrit les données sur son port A, et fixe DV = ‘L’ pour indiquer la disponibilité d’un nouvel octet
2. quand le récepteur détecte la disponibilité d’un nouveau octet, il lit son port A, et fixe DR = ‘L’ pour confirmer
3. quand le transmetteur détecte DR = ‘L’, il fixe DV = ‘H’
4. 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...
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-17
C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle
Approche 1 – transmission sériel synchrone:
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-18
C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle
Étapes d’une communication sériel synchrone:1. place un caractère à transmettre dans un registre à décalage
interne
2. décalages successifs de n bits selon l’horloge (clk):
a) le transmetteur décale les bits d’un registre interne vers sa broche de sortie selon clk
b) le récepteur décale les bits sur sa broche d’entrée vers un registre interne selon clk
3. après n cycles d’horloge, n bits sont communiqués du transmetteur au récepteur
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-19
C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle
Approche 2 – transmission sériel asynchrone:
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-20
C.5(1) Communications sérielles
(b) Transmission parallèle vs sérielle
Étapes d’une communication sériel asynchrone:1. les deux 68HCS12 sont configurés avec les mêmes paramètres de
transmission (fréquence clk, bits/caractère, parité, etc.)
2. les données sont transmises sur un canal TxD → RxD:
a) le transmetteur transmet un bit de départ (détecté par le récepteur) pour indiquer le début du transfert
b) le transmetteur transmet un caractère, LSb en premier, (détecté par le récepteur)
c) le transmetteur transmet un bit de terminaison (détecté par le récepteur) pour indiquer le fin du transfert
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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 qui établit le taux de transfert des données.
Taux de transfert (Baud): nombre de bits transmit par second en bps ≡ Baud
ex: 1200, 2400, 4800, 9600 Baud<
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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.
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-23
C.5(1) Communications sérielles
(c) Concepts fondamentaux et terminologiecode ASCII: ‘American Standard Code for Information and Interchange’
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-25
C.5(1) Communications sérielles
(c) Concepts fondamentaux et terminologie
Types de communications sérielles:1. lien simplexe: transfert sur 1 fil dans une direction (e.g.,
radio, TV)
2. lien mi-duplexe: transfert sur 1 fil dans les deux directions, mais pas simultanément (e.g., CB, BDM)
1. lien duplexe: transfert sur 2 fils dans les deux direction simultanément
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-26
Sommaire de la section C.5
C.5 Interfaces sériels de communication du 68HC12: 1) Communications sérielles avec
microcontrôleurs
2) Sous-systèmes multiples du 68HCS12
3) Interface sériel asynchrone – SCI: caractéristiques du sous-système SCI registres, programmation et applications
4) Interface sériel synchrone – SPI: caractéristiques du sous-système SPI registres, programmation et applications
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-27
C.5(2) Sous-systèmes du 68HC12Rôle des types de sous-systèmes dans le 68HCS12: a) CPU12: unité de traitement central
gestion d’exceptions: interrompre l’exécution normal d’un programme
b) Bus: module LIM combine DATA, ADDR et CTRL
c) Mémoire: stocker des configurations (bloc), des variables (RAM) et des programmes (ROM)
d) Périphériques d’entrée/sortie: ports d’entrée/sortie: échanger des données avec le monde externetemporisation: 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)
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.4-28
C.5(2) Sous-systèmes du 68HC12
MC9S12C32
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.4-29
C.5(2) Sous-systèmes du 68HC12
TX/RXPort S
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-30
C.5(2) Sous-systèmes du 68HC12
Module d’horloge:
le 68HCS12 utilise XTAL (÷2) = Bus Clock16MHz ÷ 2 = 8MHz
Pour contrôler le SCI et le SPI
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-32
C.5(2) Sous-systèmes du 68HC12
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-34
C.5(2) Sous-systèmes du 68HC12
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-35
Sommaire de la section C.5
C.5 Interfaces sériels de communication du 68HCS12: 1) Communications sérielles avec microcontrôleurs
2) Sous-systèmes multiples du 68HCS12
3) Interface sériel asynchrone – SCI: caractéristiques du sous-système SCI registres, programmation et applications
4) Interface sériel synchrone – SPI: caractéristiques du sous-système SPI registres, programmation et applications
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-37
C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCI
Transfert de données:
SCIDRL
SCIDRLSCIDRL
SCIDRL
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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’)1. 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
2. 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
3. pour mettre fin au transfert, fixer TxD = ‘H’ pour une période de 1 bit – le récepteur détecte alors a fin
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-39
C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCI
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-40
C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCITransmetteur SCI:
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-41
C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCIRécepteur SCI:
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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 à 8191
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-44
C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCIDé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, 10. Détecte la valeur majoritaire, mais le drapeau de bruit (d’encadrement) s’active s’ils ne sont pas tous identiques
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-45
C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCI
Détection d’erreurs liés à la transmission:
1. 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
2. parité: le récepteur vérifie que le nombre de ‘1’s dans le code est bien pair ou impair – sinon il y a un erreur de parité
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-46
C.5(3) Interface sériel asynchrone
Caractéristiques du sous-système SCI
Détection d’erreurs liés à la transmission: (suite)3. 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%
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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)1. par reconnaissance de lien inactif: le récepteur se réveil
si son fil RxD devient inactif (IDLE)
2. par démarcation d’adresses: le SCI utilise une adresse reçue dans son SCIDR pendant son sommeille.
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-48
C.5(3) Interface sériel asynchrone
Registres pertinents du SCI
Chaque sous-système SCI utilise 6 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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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:
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-50
C.5(3) Interface sériel asynchrone
Registres pertinents du SCI
Fixe le taux de transfert selon les bits SBR[12:0]:
1016 ( [12 : 0])MCLKf
SCI Baud rateSBR
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-51
C.5(3) Interface sériel asynchrone
Registres pertinents du SCI
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-52
C.5(3) Interface sériel asynchrone
Registres pertinents du SCI
[$00CA-CB] SCICR1-2 – registres de contrôle 1 et 2:
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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ère0: 1 start, 8 bits, 1 stop1: 1 start, 9 bits, 1 stop
WAKE: indique la méthode de réveil du récepteur SCI0: 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é pairePT = 1: parité impaire
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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)
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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’
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-56
C.5(3) Interface sériel asynchrone
Registres pertinents du SCI
[$00CC-CD] SCISR1-2 – registres d’état 1 et 2
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-57
C.5(3) Interface sériel asynchrone
[$00CC] SCISR1 – registres d’état 1drapeaux 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 videTC (‘Transmit Complete’): fin de transmissionRDRF (‘Receive Data Register Full’): SCIDRL pleinIDLE (‘Idle Line Detect’): si un caractère (10 ou 11 bits) consécutifs de ‘1’ apparait au récepteur
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-58
C.5(3) Interface sériel asynchrone
[$00CD] SCISR2 – registres d’état 2RAF (‘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ée1 = sortie
BK13 (‘Break Transmit Character Length’) : indique le nombre de bits pour une pause
0 = 10 ou 11 bits de long1 = 13 ou 14 bits de long
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-59
C.5(3) Interface sériel asynchrone
[$00CE-CF] SCIDRH-L: registres de données H et LL: contient les bits [7:0] transmis/reçusH: contient le 8ème bit pour un transfert à 9 bits (M = ‘1’)
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-60
C.5(3) Interface sériel asynchrone
Programmation du SCI
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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:1. lire SCISR12. écrire le code ASCII dans le SCIDRL
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.5-62
C.5(3) Interface sérielle asynchrone
; définir les registres des base et masquesSCIBDH = $00C8 ; déclaration de registres déjà fait dans mc9s12c32.inc SCIBDL = $00C9 SCICR1 = $00CA SCICR2 = $00CB SCISR1 = $00CC SCIDRL = $00CF
BAUD_HI = $00 ; pour taux de transfert de 9600BAUD_LOW = $34 SCI_CONT = $00 ; pour 8 bits, pas de rétroaction et de
paritéSCI_MASK = $08 ; pas d’interr., activer le transmetteur
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.5-63
C.5(3) Interface sérielle asynchrone;********************; Programme principal
ORG $0800DATA FCB ‘GPA770’
FCB $0D, $0A ; carriage return, line feedEOT FCB $00 ; end of data marker (code ASCII)
ORG $4000 LDS #$1000 JSR INIT ; sr initialisation du SCIJSR TRANS ; sr pour transmission de caractères
fin: bra fin
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.5-64
C.5(3) Interface sérielle asynchrone
; INIT: SR qui initialise le système SCI
INIT SEI ; désactiver les interruptionsCLR SCIBDHLDAA #BAUD_LOW ; fixer le taux de transfertSTAA SCIBDLLDAA #SCI_CONT ; fixer mode de transfertSTAA SCICR1LDAA SCISR1 ; remise à zéro du bit TDRELDAA SCIDRL ; (lire SC1SR1, SC1DRL)LDAA #SCI_MASK ; activer le transmetteurSTAA SCICR2LDX #DATA ; pointer l’index IX vers DATARTS ; retour de sous-routine
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.5-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 1, 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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-66
C.5(3) Interface sériel asynchrone
Application du SCI
Standard RS-232 pour transfert sériel:
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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:1. électriques: niveaux de tension, temps des transitions
2. fonctionnement de chaque signal
3. mécanique: nombre de broches, dimensions de connecteurs, etc.
4. procédurale
+12V
0V
-12V
idle idlestart data stopparity
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-69
C.5(3) Interface sériel asynchrone
MAXIMMAX232
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-70
Sommaire de la section C.5
C.5 Interfaces sériels de communication du 68HC12: 1) Communications sérielles avec
microcontrôleurs
2) Sous-systèmes multiples du 68HC12
3) Interface sériel asynchrone – SCI: caractéristiques du sous-système SCI registres, programmation et applications
4) Interface sériel synchrone – SPI: caractéristiques du sous-système SPI registres, programmation et applications
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-73
C.5(4) Interface sériel synchrone
Caractéristiques du sous-système SPI
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-74
C.5(4) Interface sériel synchrone
Caractéristiques du sous-système SPI
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-75
C.5(4) Interface sériel synchrone
Caractéristiques du sous-système SPI
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-76
C.5(4) Interface sériel synchrone
Caractéristiques du sous-système SPI
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-77
C.5(4) Interface sériel synchrone
Caractéristiques du sous-système SPI
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-78
C.5(4) Interface sériel synchrone
Caractéristiques du sous-système SPIle composant maître peut communiquer avec le plusieurs composants esclave selon les lignes de sélection d’esclaves (SS)
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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 esclavesi le données sont transférés MSb ou LSb en premierle nombre de bits par cycle de transfertsi les données sont valides sur le front montant out le front descendant, etc.taux de transfert (Baud ou bps)
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-80
C.5(4) Interface sériel synchrone
Registres pertinents du SPI
SPI utilise 5 registres:
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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’ (permet de contrôler la broche SS automatiquement)
N.B. Contrôle d’esclaves: si un esclave: peut utiliser la ligne SSsi multi-esclaves: utilise des GPIOs
SS
0SS
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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)
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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..
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-86
C.5(4) Interface sériel synchrone
Programmation du SPI
DDRMM
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.5-88
C.5(4) Interface sérielle synchrone;********************; Programme principal
ORG $0800DATA FCB ‘GPA770’
FCB $0D, $OA ; carriage return, line feedEOT FCB $00 ; end of data marker
ORG $4000 LDS #$1000 JSR INIT ; sr initialisation du SPIJSR TRANS ; sr pour transmission
fin: bra fin
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.5-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 configMOVB #$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èreLDAA SPISR ; 2 étapes pour RAZ de SPIF
LDAA SPIDR ; (lire SPISR et SPIDR)
BSET SPICR1, $40 ; activer SPI (SPE= 1)
RTS
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.5-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 BRCLRSPISR, $20, WAIT ; attendre pour le drapeau SPTEF
BSET PTM, $08 ; désactiver le SS (SS = ‘H’)
BRA TRANS ; prochain caractère
DONE RTS
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-92
C.5(4) Interface sériel synchrone
Application du SPIhorloge 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
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-93
C.5(4) Interface sériel synchrone
Application du SPIconversion N-A:
le 68HCS12 transmet une valeur numérique au convertisseur, qui le convertit en voltage
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-94
C.5(4) Interface sériel synchrone
Application du SPI
Conversion numérique-analogique (N-A) multi-canal R2R:
Université du Québec
École de technologie supérieureGPA770: Microélectronique appliquée
Éric GrangerC.5-95
C.5(4) Interface sériel synchrone
Application du SPIConvertisseur N-A Motorola MC144111: