14
Informatique embarqu´ ee 4/16 J.-M Friedt Informatique embarqu´ ee 4/16 J.-M Friedt FEMTO-ST/d´ epartement temps-fr´ equence [email protected] transparents ` a jmfriedt.free.fr 11 janvier 2018 1 / 14

Informatique embarqu ee 4/16jmfriedt.free.fr/master1i_3.pdf · Informatique embarqu ee 4/16 J.-M Friedt Les bus de communications Communication s erielle des donn ees : plus rapide

  • Upload
    others

  • View
    2

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Informatique embarqu ee 4/16jmfriedt.free.fr/master1i_3.pdf · Informatique embarqu ee 4/16 J.-M Friedt Les bus de communications Communication s erielle des donn ees : plus rapide

Informatiqueembarquee 4/16

J.-M Friedt

Informatique embarquee 4/16

J.-M Friedt

FEMTO-ST/departement temps-frequence

[email protected]

transparents a jmfriedt.free.fr

11 janvier 2018

1 / 14

Page 2: Informatique embarqu ee 4/16jmfriedt.free.fr/master1i_3.pdf · Informatique embarqu ee 4/16 J.-M Friedt Les bus de communications Communication s erielle des donn ees : plus rapide

Informatiqueembarquee 4/16

J.-M Friedt Les bus de communications

Communication serielle des donnees : plus rapide et moins couteux(SATA v.s PATA)

• Notions de bus synchrones (partage de l’horloge) et asynchrone(chaque interlocuteur a sa propre horloge).

• synchrone est generalement plus rapide mais necessite un signaladditionnel pour l’horloge (sauf codage Manchester – ethernet)

• asynchrone necessite l’accord prealable de tous les interlocuteurs surle debit de communication (baudrate)

• tres utilise comme bus local entre un microcontroleur et sesperipheriques (peu de fils = reduction des couts de cablage)

bus

C1 C2 C3 C4

C1 C2

2 / 14

Page 3: Informatique embarqu ee 4/16jmfriedt.free.fr/master1i_3.pdf · Informatique embarqu ee 4/16 J.-M Friedt Les bus de communications Communication s erielle des donn ees : plus rapide

Informatiqueembarquee 4/16

J.-M Friedt Les protocoles synchrones

SCK CPOL=0CPOL=1

SS

Cycle # 1 2 3 4 5 6 7 8

MISO 1 2 3 4 5 6 7 8 zz

1 2 3 4 5 6 7 8 zzMOSICPHA=0

Cycle # 2 3 4 5 6 7 81

MISO 2 3 4 5 6 7 8 zz 1

MOSI 2 3 4 5 6 7 8 zz 1

CPHA=1

Figure – Chronogramme SPI(http://en.wikipedia.org/wiki/Image:SPI_timing_diagram.svg).Protocole synchrone : l’horloge est explicitement distribuee sur le bus.

• bus asymetrique : maıtre 6= esclave, CS# designe le(s)destinataire(s)

• version 2 fils d’un protocole synchrone : I2C (bus de donnees estbidirectionnel).

3 / 14

Page 4: Informatique embarqu ee 4/16jmfriedt.free.fr/master1i_3.pdf · Informatique embarqu ee 4/16 J.-M Friedt Les bus de communications Communication s erielle des donn ees : plus rapide

Informatiqueembarquee 4/16

J.-M Friedt Protocole synchrone (I2C, SPI)Acces materiel : degres de liberte (etat au repos de l’horloge, frontd’echantillonnage, ordre des bitsImpose dans I2C, libre dans SPI (CPHA, CPOL)SPI selectionne par CS#, I2C par l’adresse du destinataire (imposee parle materiel). I2C : MSB first 6= SPI : LSB ou MSB first. I2C @ ?

4 / 14

Page 5: Informatique embarqu ee 4/16jmfriedt.free.fr/master1i_3.pdf · Informatique embarqu ee 4/16 J.-M Friedt Les bus de communications Communication s erielle des donn ees : plus rapide

Informatiqueembarquee 4/16

J.-M Friedt Protocole synchrone (I2C, SPI)Acces materiel : degres de liberte (etat au repos de l’horloge, frontd’echantillonnage, ordre des bitsImpose dans I2C, libre dans SPI (CPHA, CPOL)SPI selectionne par CS#, I2C par l’adresse du destinataire (imposee parle materiel). I2C : MSB first 6= SPI : LSB ou MSB first. I2C @ ?

S 1 0 1 0 0 0 1 0 0

A 2W#

DATA

CLOCK

5 / 14

Page 6: Informatique embarqu ee 4/16jmfriedt.free.fr/master1i_3.pdf · Informatique embarqu ee 4/16 J.-M Friedt Les bus de communications Communication s erielle des donn ees : plus rapide

Informatiqueembarquee 4/16

J.-M Friedt Attention aux bibliotheques

Exemple de code Arduino a [1]#i n c l u d e "Wire.h"

#d e f i n e PCF8563address 0 x51[ . . . ]

v o i d setPCF8563 ( )// t h i s s e t s the t ime and date to the →

↪→PCF8563{

Wire . b e g i n T r a n s m i s s i o n ( PCF8563address ) ;Wire . w r i t e (0 x02 ) ;

[ . . . ]

Datasheet : adresses 0xA2, 0xA3mais appel ai n t 8 t I 2 C w r i t e ( c o n s t u i n t 8 t a d d r e s s , →

↪→ u i n t 8 t ∗data , u i n t 8 t n ){ i n t 8 t d ;

i n t i ;d = I 2 C s t a r t ( ) ;i f ( ( d != 0 x08 ) && ( d != 0 x10 ) ){

I 2 C s t o p ( ) ; r e t u r n d ;}TWDR=a d d r e s s ; // send the s l a v e add r e s si f ( ( d=I 2 C a c t i o n ( 0 ) ) != 0 x18 ){

I 2 C s t o p ( ) ; r e t u r n d ;}f o r ( i =0; i<n ; i ++){

TWDR=(∗data++) ;i f ( ( d=I 2 C a c t i o n ( 0 ) ) != 0 x28 ){

I 2 C s t o p ( ) ; r e t u r n d ;}}I 2 C s t o p ( ) ;r e t u r n 0 ;

}

[ . . . ]#d e f i n e PCF8563 0xA2

I 2 C w r i t e ( PCF8563 , ( u i n t 8 t ∗) t ime , 8 ) ;

pour communiquer (0xA2 6=0x51 !)

[1] http://tronixstuff.com/2013/08/13/

tutorial-arduino-and-pcf8563-real-time-clock-ic/

6 / 14

Page 7: Informatique embarqu ee 4/16jmfriedt.free.fr/master1i_3.pdf · Informatique embarqu ee 4/16 J.-M Friedt Les bus de communications Communication s erielle des donn ees : plus rapide

Informatiqueembarquee 4/16

J.-M Friedt Attention aux bibliotheques

Datasheet : adresses 0xA2, 0xA3

1 0x51=0xA2 >>1

2 methode Wire de Arduino [1]appelle beginTransmission

qui appelletwi writeTo(txAddress

...)

3 twi writeTo se trouve (parexemple) a [2] :

t w i s l a r w = TW WRITE ;t w i s l a r w |= a d d r e s s << 1 ;

⇒ bibliotheque appelee parArduino fait un decallage etajoute 1 si lecture [3]

Opensource : capacite a suivre le cheminement des traitements

[1] github.com/esp8266/Arduino/blob/master/libraries/Wire/Wire.cpp

[2] www.libelium.com/v11-files/api/waspmote/d5/d8c/twi_8c_source.html

[3] robotika.yweb.sk/skola/!Diplomovka/avr498/avr498/doc/twi__lib_8h.html

dit que TWI READ vaut 1 et TWI WRITE vaut 0

7 / 14

Page 8: Informatique embarqu ee 4/16jmfriedt.free.fr/master1i_3.pdf · Informatique embarqu ee 4/16 J.-M Friedt Les bus de communications Communication s erielle des donn ees : plus rapide

Informatiqueembarquee 4/16

J.-M Friedt Emulation logicielle du protocolesynchrone (SPI)

Pourquoi ?• implementer un mode non-supporte par le materiel (e.g.

9 bits/message)• manque de ressource materielle

Exercice : implementerl’envoi d’une com-mande et d’une donneea un ecran LCD Nokia

8 / 14

Page 9: Informatique embarqu ee 4/16jmfriedt.free.fr/master1i_3.pdf · Informatique embarqu ee 4/16 J.-M Friedt Les bus de communications Communication s erielle des donn ees : plus rapide

Informatiqueembarquee 4/16

J.-M Friedt Emulation logicielle du protocolesynchrone (SPI)

Envoi de commande/donnee a un ecran LCD Nokia

#d e f i n e c s l o PORTB &= ˜(1 << PORTB5)#d e f i n e c s h i PORTB |= (1 << PORTB5)

#d e f i n e m o s i h i PORTB |= (1 << PORTB7)#d e f i n e m o s i l o PORTB &= ˜(1 << PORTB7)#d e f i n e c k h i PORTC |= (1 << PORTC7)#d e f i n e c k l o PORTC &= ˜(1 << PORTC7)

v o i d a t t e n d ( ) {} // temps d ’ a t t en t e , sck

v o i d sendByte ( b o o l cmd , u8 data ){ i n t k ;

ck up ;c s l o ;i f (cmd==0) m o s i l o ; e l s e m o s i h i ;ck down ; a t t e n d ( ) ;ck up ; a t t e n d ( ) ;f o r ( k=7;k>=0;k−−){ i f ( ( ( data>>k )&0x01 ) !=0) m o s i h i ;

e l s e m o s i l o ;ck down ; a t t e n d ( ) ;ck up ; a t t e n d ( ) ;}

c s h i ;}

9 / 14

Page 10: Informatique embarqu ee 4/16jmfriedt.free.fr/master1i_3.pdf · Informatique embarqu ee 4/16 J.-M Friedt Les bus de communications Communication s erielle des donn ees : plus rapide

Informatiqueembarquee 4/16

J.-M Friedt Les protocoles asynchrones

t0 1T

ST

AR

T

1 0 0 0

2T 3T 4T 5T 6T 7T 8T

lsb msb

9T

ST

OP

1 0 01

T=1000/baud ms

Figure – Chronogramme RS232. Pour 1200 bauds, T = 833 µs. En sortie duMAX232, les niveaux sont symetriques (±12 V) et inverses. Protocoleasynchrone : T doit etre connu par les deux interlocuteurs.

RS232 : liaison point a point (2 interlocuteurs) 1

1. RS232 reste le mode privilegie pour initier une connexion avec un systemeembarque : Hack All The Things : 20 Devices in 45 Minutes, DefCon 22 (2014), ahttps://www.youtube.com/watch?v=h5PRvBpLuJs

10 / 14

Page 11: Informatique embarqu ee 4/16jmfriedt.free.fr/master1i_3.pdf · Informatique embarqu ee 4/16 J.-M Friedt Les bus de communications Communication s erielle des donn ees : plus rapide

Informatiqueembarquee 4/16

J.-M Friedt Les protocoles asynchrones

0 5000 10000 15000 20000 25000 30000 35000-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

time (us)

sig

nal (a

.u.)

Figure – Chronogramme RS232. Pour 1200 bauds, T = 833 µs. En sortie duMAX232, les niveaux sont symetriques (±12 V) et inverses. Protocoleasynchrone : T doit etre connu par les deux interlocuteurs.

RS232 : liaison point a point (2 interlocuteurs)11 / 14

Page 12: Informatique embarqu ee 4/16jmfriedt.free.fr/master1i_3.pdf · Informatique embarqu ee 4/16 J.-M Friedt Les bus de communications Communication s erielle des donn ees : plus rapide

Informatiqueembarquee 4/16

J.-M Friedt Les protocoles asynchrones

3000 4000 5000 6000 7000 8000 9000 10000-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

time (us)

sig

nal (a

.u.)

Figure – Chronogramme RS232. Pour 1200 bauds, T = 833 µs. En sortie duMAX232, les niveaux sont symetriques (±12 V) et inverses. Protocoleasynchrone : T doit etre connu par les deux interlocuteurs.

RS232 : liaison point a point (2 interlocuteurs)12 / 14

Page 13: Informatique embarqu ee 4/16jmfriedt.free.fr/master1i_3.pdf · Informatique embarqu ee 4/16 J.-M Friedt Les bus de communications Communication s erielle des donn ees : plus rapide

Informatiqueembarquee 4/16

J.-M Friedt Les protocoles asynchrones

S11110110s S01010000sS00110110sS00110110sS10100110sS00010010s

stop

MS

B

LS

BS

tart

H e l l o \n

−1

−0.5

0

0.5

1

8000 9000 10000 11000 12000 13000 14000 15000 16000 17000

sig

nal

(a.

u.)

time (us)

Figure – Chronogramme RS232. Pour 1200 bauds, T = 833 µs. En sortie duMAX232, les niveaux sont symetriques (±12 V) et inverses. Protocoleasynchrone : T doit etre connu par les deux interlocuteurs.

RS232 : liaison point a point (2 interlocuteurs)13 / 14

Page 14: Informatique embarqu ee 4/16jmfriedt.free.fr/master1i_3.pdf · Informatique embarqu ee 4/16 J.-M Friedt Les bus de communications Communication s erielle des donn ees : plus rapide

Informatiqueembarquee 4/16

J.-M Friedt Bus locaux sous GNU/Linux

lm-sensors donne acces aux informations du processeur et de la cartemere

$ sensors

acpitz-virtual-0

Adapter: Virtual device

temp1: +50.4C (crit = +110.0C)

temp2: +50.4C (crit = +130.0C)

coretemp-isa-0000

Adapter: ISA adapter

Physical id 0: +52.0C (high = +87.0C, crit = +105.0C)

Core 0: +49.0C (high = +87.0C, crit = +105.0C)

Core 1: +49.0C (high = +87.0C, crit = +105.0C)

Demonstration avec le mise en œuvre du LM74 sur Atmega32U4.

14 / 14