Sie sind auf Seite 1von 43

INF445 Architecture des ordinateurs et systmes embarqus

Cours 1 prsentation du PIC1 F!"#


1/43

P%an du cours
& C'(P')I*I'N +* F'NC*I'NN+(+N* ,+) PIC) & A-C.I*+C*/-+ IN*+-N+ & 0+) (',+) ,1A,-+))A2+ +* 0+ 3+/ ,1IN)*-/C*I'N & 0+) IN*+--/P*I'N) & 0+) P+-IP.+-I4/+)

$/43

Introduction
& PIC 5 6ami%%e de 7Contr8%eurs / (icroChip & 7Contr8%eurs
9 0a %o:ique c;b%e 9 0e microprocesseur 9 0e microcontr8%eur
& & & & /ne unit centra%e qui est %e c<ur du systme /ne mmoire contenant %e pro:ramme = e>cuter /ne mmoire ?i?e :a%ement appe%e -A( /n port d@ entres A sorties pour B dia%o:uer C a?ec %@e>trieur

& App%ications Dbon rapport pri>/comp%e>itE


3/43

(icroAcontr8%eur
& /n microcontrleur DCE est un circuit int:r rassemb%ant un microprocesseurF de %a mmoire de pro:rammeF mmoire de donnes et des priphriquesG & uti%iss dans %@%aboration des systmes embarqusF ncessitant des traitements spcia%iss Dt%phones portab%esF autoradiosF %ecteur (P3F 2P)F et robotique & 4ue%ques e>emp%es DAtme% A*H1F .itachi .!F Inte% !I51F (otoro%a !.C11F %es PIC de (icrochipF )*(icroe%ectronicF etcGE

4/43

Caractristiques des 7Contr8%eurs PIC


& 0es PIC 6orment une 6ami%%e de microAcontr8%eurs de %a socit (icrochip & 0e nom PIC n@est pas o66icie%%ement un acronymeF bien que %a traduction en B Periphera% Inter6ace Contro%%er C soit :nra%ement admiseG & Composants de type -I)C D35 instructionsE & 0es PICs stocJent chaque instruction dans un seu% mot de pro:ramme et e>cutent chaque instruction en un cyc%eF sau6 %es sauts qui sont e>cuts en deu> cyc%esG
5/43

0e PIC 1 F!""
& /nit centra%e 5 ! bits & (moire pro:ramme 5 14 bits / ! Ko & (moire donnes 5 -A( de ! bits / 3 ! o
9 -e:istres en mmoire

& (moire eeprom D$5 octetsE & P%usieurs ports d1entre/sortie


9 )rieF Para%%%esF NumriquesF Ana%o:iquesF GG
/43

Architecture interne du PIC 1 F!""


CP/

"/43

/nit centra%e DCentra% Processin: /nitE


& CP/ 5 e>cution des instructions D14 bitsE
9 Contr8%e %es bus Ddata/instructionsE 9 Pro:ram Counter DPC 5 13 bitE L %a pi%e DstacJ 5 !>13 bitE 9 Architecture pipeA%ine D%ecture Dre:istre I-E / e>cution DA0/E E

!/43

01A0/

H/43

A0/ M Arithmetic and 0o:ic /nitE


9 A0/M oprations arithmtiques/ %o:iques L bits d1tat 9 -e:istre de tra?ai% DN 9 Accumu%ateurE

1I/43

-e:istre d1tat D)*A*/)E


I-P -P1 -PI *I P, Z DC C & 0es opration arithmtiques positionnent 3 bits M DCarry DCEF Oero DOE et ,i:it Carry D,C pour code PC,E 9 C DCarryF reportE 5 %e Heme bit d1une opration 9 ,C D,i:it CarryF pour PC,E5 report du bit 3 ?ers %e bit 4 9 O DOeroE M si rsu%tat 5 IF a%ors O51E & *' D*ime 'utE et P, DPoQer ,oQnE M indications sur dernier arrRt du PIC et remises en route Dinstruction s%eepF Qatchdo:F etcGE & -PI et -P1 M s%ection d1une banque de -A( parmi 4 & I-P M choi> de %a banque pour adressa:e indirect
11/43

(moire pro:ramme
& !Jo > 14bits or:anise en 4 pa:es > $Jo D%imite d1adressa:e pour 11 bitsE & Prob%me M %es re:istres ne 6ont que ! bits or 13bits sont ncessaires pour adresser %a tota%it des ! JoF PC L $ bits status -PIA-P1E & PC0 DPC 0oQE M ! bits de poids 6aib%e & PC0A*. DPC 0A*chE M counter .i:hE & PC 5 S PC0A*. L PC0 & 0a pi%e est circu%aire T
4 banques

1$/43

(moire -A( DFi%e re:isterE


& 'r:anisation
9 4 pa:es > 1$! re:istres > !b 9 P%usieurs types d1adressa:e

& )pecia% Function -e:isters D)F-E


9 Contr8%e du 7contr8%eur

& 2enera% Purpose -e:isters D2P-E


9 Uariab%es %oca%es V
13/43

(moire -A( DFi%e re:isterE

14/43

4uatre types d1instructions


0es instructions sont codes sur 14 bits & Instructions orientes octet
9 Instruction D b pour 35 instGE L ,estination D1b N ou memoireE L 'perandeG D"bE

& Instruction orientes bits


9 Instruction D4bE L Numro bit D3bE L 'perG D"bE

& Instructions :nra%es


9 Instruction D bE L Ua%eur immdiate D!bE

& 0es sauts et appe%s de sousAroutine


9 Instruction D3bE L ,estination D11bE
15/43

0es sauts
& 0ors d1un sautF %e contenu du PC est char: a?ec %es 11 bits de destination contenus dans %1instructionG & 0es $ bits manquants sont e>traits du re:istre PC0PA*.G Ces bitsF positionns par %1uti%isateurF sont p%acs dans %es bits 11 et 1$ du PC a6in de comp%ter %1adresse de destination & 0e rsu%tatF adresse concatne sur 13 bitsF est char: dans %e PCG 0e pro:ramme se poursuit = partir de %a nou?e%%e adresseG
1 /43

0e Weu des 35 instructions


& & 0es instructions de branchement 9 Pranchement inconditionne% (goto, call, return, retfie, etc.) 9 Pranchement conditionne% M btfcs, btfss (Bit Test F, Skip if Set); decfsz f,d ; (d) = (f) - 1 ; saut si (d) =0 0es oprations arithmtiques incf maVariable,f ; maVariable += 1 decf maVariable,w ; W = maVariable - 1 addlw 4 ; (w) = (w) + 4 sublw 2 ; w= w - 2 0es oprations %o:iques andlw, xorlw, iorlw, bsf, bcf, rlff, rrf, 0es oprations de trans6ert movf maVariable,w movlw 0x54 movwf maVariable Autres instructions M sleep ; nop

&

&

; (MOVe to W) ; move literal to w (54 -> w) ; stockage de W en mmoire

&

1"/43

0es modes d1adressa:e


& Immdiat D%ittra%E
9 movlw 0x55; charger la valeur 0x55 dans le registre W

& ,irect
9 movf 0x55,W; charger le contenu de ladresse 0x55 dans W 9 /ti%ise %e re:istre )*A*/) D-PIF -P1E

& Indirect
9 /ti%ise %es re:istres F)- et )*A*/) DI-PE
1!/43

+>emp%e d1adressa:e indirect


movlw 0x10 X char:ement d1une ?a%eur que%conque dans N movwf maVariable X stocJa:e du re:istre N dans Y maUariab%e YI>+F I>1I I>1I N maUariab%e

movlw maVariable X on char:e %1A,-+))+ de maUariab%e dans NF

I>+F

N F)-5 I>+F

movwf FSR X on p%ace %1adresse de destination dans F)- X on dira que F)- P'IN*+ sur maUariab%e

I>I+F

I>1I

maUariab%e

movf INDF,w X adressa:e indirect M %ecture de %1adresse contenue dans %e re:istre F)- Dici I>+FE X puis %ecture du contenu de %1adresse DI>+FE F ici I>1I dans NG

I>1I

indf n1est pas un re:istre physique X toute r6rence = ind6 dans une instruction 6orce %e PIC = %ire %e contenu de %1emp%acement mmoire point par %e re:istre F)- Dici DNE 5 I>1I E

1H/43

0es modes d1adressa:e

$I/43

0+) IN*+--/P*I'N)
& ,6inition d1une interruption & (canisme :nra% d1une interruption sur %e PICs & )ources et type d1interruptions

$1/43

)crutation ou interruption
& )crutation
9 (aZtrise des temps 9 Conser?ation du caractre squentie%

& Interruption
9 Permet de prendre en compte un ?nement au p%us ?ite 9 [?ite scrutations inuti%es 9 -isque d@en:or:ement

$$/43

(canisme :nra% d1une interruption

3G 4G 5G G "G !G HG

0e pro:ramme se drou%e norma%ement 01?nement asynchone sur?ient 0e pro:ramme ach?e %1instruction en cours de traitement )au?e:arde du conte>te Pranchement = %1adresse de traitement de %1interruption 0e pro:ramme traite %1interruption -etour de %1I* M branchement = %1instruction qui suit %a dernire e>cute dans %e pro:ramme principa%G
$3/43

0es interruptions sur %e PICs

$4/43

Principe Interruptions
,bordement *imer I Chan:ement -PI

F%a: *'IF

V+ M ?a%idation VF M indicateur

*'I+ *mrI Interrupt +nab%e 2I+ 2%oba% Interrupt +nab%e

Pranchement adresse I4

$5/43

Ua%idation des interruptions


& -e:istre IN*C'N DIN*errupt C'Ntro% en I>IPE
9 F%a: 2I+ M ?a%ide ou pas toutes %es interruption 9 F%a: P+I+ M acti?e %es interruptions priphriques

$ /43

)au?e:arde / restauration conte>te


& PC sau?e:ard automatiquement mais V & -e:istre status doit Rtre sau?e:ard par pro:rammeur
swapf STATUS, w ; swap status avec w sans modif ; car les instructions de transfert .. modifient le status movwf sauve-status ; sauvegarde registre tat ; test de linterruption responsable ; traitement de linterruption puis effacement drapeau

& -estauration du conte>te


swapf STATUS, w movwf STATUS retfie ; ; ; ; rcupration ancien reg. tat restauration reg tat return from interrupt bit GIE remis 1 automatiquement

$"/43

0es interruptions V
& 13 sources d1interruption disponib%es sur %e PIC 1 F!""
9 9 9 9 9 9 9 9 9 9 9 9 9
,ec%encheur F%a: -e:istre Adr P+I+ +nab%e -e:istre Adr Timer 0 *IIF IN*C'N I>IP N'N *II+ IN*C'N I>IP Pin RB0 / INT IN*F IN*C'N I>IP N'N IN*+ IN*C'N I>IP Ch. RB4/RB7 -PIF IN*C'N I>IP N'N -PI+ IN*C'N I>IP

primaires

Convert. A/D A,IF PI-1 I>IC '/I A,I+ PI+1 I>!C Rx !ART -CIF PI-1 I>IC '/I -CI+ PI+1 I>!C Tx !ART *#IF PI-1 I>IC '/I *#I+ PI+1 I>!C Port "erie !!P ))PIF PI-1 I>IC '/I ))PI+ PI+1 I>!C #o$ule CCP CCP1IF PI-1 I>IC '/I CCP1I+ PI+1 I>!C Timer % *(-1IF PI-1 I>IC '/I *(-1I+ PI+1 I>!C Timer & *(-$IF PI-1 I>IC '/I *(-$I+ PI+1 I>!C ''PR(# ++IF PI-$ I>I, '/I ++I+ PI+$ I>!, !!P mo$e I&C PC0IF PI-$ I>I, '/I PC0I+ PI+$ I>!, Port )*r*llele P!PI+ PI-1 I>IC '/I P)PI+ PI+1 I>!C

priphriques

$!/43

,eu> types d1interruptions


& Primaires Dre:istre IN*C'NE
& *imer I M dbordement du timer I
9 Ua%iderM *'I+X F%a: M *'IF

& Pin -PI M si:na%e une transition sur %e pin -PI dans %e sens dtermin par IN*+,2
9 Ua%ider M IN*+X F%a: M IN*F

& Ch -P4/" M chan:ement de ni?eau sur une des entres -P4 = -P"
9 Ua%iderM -PI+X F%a: -PIF

9 /ti%isationM
& Ua%ider %e bit concernant %1interruption & Ua%ider %e bit 2I+ $H/43

*ypes d1interruptions
& Priphriques
9 Ua%ider M re:istres PI+1 et PI+$ 9 F%a:sM re:istres PI-1 et PI-$ 9 /ti%isation
& Ua%ider %e bit concernant %1interruption DPI+1/PI+$E & Ua%ider %e bit P+I+ D?a%idation priphrique dans IN*C'NE & Ua%ider %e bit 2I+ D?a%idation :nra%e dans IN*C'NE

3I/43

0e Natchdo:
& *imer interne spci6ique D\" msE
9 -:%ab%eF 9 ,sacti?ab%e au dmarra:e 9 -emis = I sur appe% de c%rQdt 9 -edmarre %e PIC p%ac en mode s%eep
& )i:na% par bit *I de statut

9 /ti%isation
& ,tection bouc%e dans pro:ramme Dpossib%e sur 6aute %ectrique ou du pro:rammeurE & -?ei% sur s%eep
31/43

(ode )0++P
& P%acement en sommei% D%imitation consommationE
9 -emise = ]ro du Qatchdo: 9 ArrRt de %@osci%%ateur Ddonc des instructionsE

& -?ei%
9 -eset 9 [chance du Qatchdo: 9 Interruption -PI/IN* -P ++P-'(
3$/43

0+ -+)+* Dredmarra:e I>IIE


& 0+) ,IFF+-+N*) *^P+) ,+ -+)+*
9 Apparition de %a tension d1a%imentation aprs une coupure 9 App%ication d1un ni?eau bas sur %a pin (C0- durant %e drou%ement du pro:ramme 9 App%ication d1un ni?eau bas sur %a pin (C0- durant %e mode sleep 9 ,bordement du Qatchdo: durant %e drou%ement du pro:ramme 9 ,bordement du Qatchdo: durant %e mode sleep 9 -emonte de %a tension d1a%imentation aprs une chute partie%%e

& -e:istres DPC'N et )*A*/)E


9 PC'N
& bI M P'- M ProQn 'ut -eset M -eset sur chute de tension & b1 M P'- M PoQer 'n -eset M -eset par mise sous tension

9 )*A*/)
& b3 M P, M PoQer ,oQn bit M passa:e en mode sleep & b4 M *' M *ime 'ut bit M reset par dbordement du Qatchdo:

33/43

,termination de %1?nement

PC'N DI>!+E

)*A*/)DI>!3E

34/43

0es *imers
& Ncessit de sou%a:er %e CP/ pour %es oprations de temporisation et de compta:e & 3 timers disponib%es dans %e PIC 1 F!"" & (ode compteur De> M compter des impu%sions re_uesE & (ode timer Dcompta:e des cyc%es d1hor%o:e du PICE & +> uti%isation timer I
clrf tmr0 xxxx ; tmr0 est localis ladresse 01 en banque 0 ; suite programme movf tmr0, w ; chargement valeur du compteur dans W movwf maDuree ; sauvegarde w

35/43

+>emp%e d1uti%isation du *imer 1 en mode interruption


& /ti%isation pri?i%:ie M :nration d1interruption = chaque dbordement du compteur en %iaison a?ec %e bit *'I+ positionn dans %e re: IN*C'N
bsf bsf bcf bsf bsf STATUS PIE1 , STATUS INTCON STATUS , RP0 ; passer en banque 1 TMR1IE ; autoriser interruptions timer 1 , RP0 ; repasser en banque 0 , PEIE ; validation des INT priphriques , GIE ; validation gnrale des INT

A partir de maintenant chaque dbordement du compteur ?a :nrer une interruption 3 /43

0+) P'-*) ,1+N*-++/)'-*I+ para%%%es & *ypes Dentre ou sortieE


9 P'-*A/P/C/,/
& Ima:e des pins -AIA-A5 X -PIA-P" X etcG

& Fonctionnement
9 0ecture / (odi6ication / +criture
bsf PORTA, 1 ; envoyer niveau 1 sur RA1 clrf PORTA ; sortie port A 0 btfss PORTB, 3 ; test RA3

& Con6i:uration
9 -e:istre *-I)A/P/C/, D15entreX I5sortieE
bcf TRISA, 2 ; bit 2 de TRISA = 0 (sortie)

3"/43

0+ (',/0+ /)A-* +N (',+ )+-I+ DAE)^NC.-'N+


& 0e modu%e :re uniquement $ broches -C & ,i66rents modes
9 (ode asynchrone 6u%% dup%e> M mission sur *# et rception simu%tanne sur -# 9 (ode synchrone maitre M mission hor% sur CK X mission/rception sur ,* 9 (ode synchrone esc%a?e M rception hor%G sur CK et mis/rcep sur ,*

/*#/CK et -C"/-#/,*

& Fonctionnement
9 (aZtre / esc%a?e 9 *oJenArin:
3!/43

+>emp%e de pro:rammation
& Con6i:uration
9 0e re:istre *#)*A Dre:istre de transmission ` contro% re:isterE 9 0e re:istre -C)*A Dre:istre de rception et d1tatE

9 Initia%isation modu%e en mode asynchrone


bsf STATUS , RP0 movlw B100100001 movwf TXSTA movlw BRGVAL movwf SPBRG bcf STATUS , RP0 movlw B10000000 movwf RCSTA ; ; ; ; ; ; ; ; passer en banque 1 mode matre synchrone, mission 8 bits dans registre TXSTA valeur calcule de SPBRG (fixe dbit) dans registre Baud Rate Generator repasser en banque 0 rception 8 bits dans registre RCSTA

3H/43

0+ C'NU+-*I))+/ANA0'2I4/+/N/(+-I4/+ & Principes / Fonctionnement


A par appro>imations successi?es A acquisition / con?ersion / %ecture rsu%tat

& *ensions de r6rence DUre6A et Ure6LE & [chanti%%onna:e sur 1I bits D1I$4 ?a%GE & (/# D! canau> d1entreE )e r6rer = %a doc pour %a con6i:urationVE

4I/43

App%ications a?ec %e PIC dans %e cadre du modu%e INF445


& Pro:rammer en C
9 *ester sur simu%ateur

& 0e robot .emisson


9 /n PicF 9 $ moteurs PN(F di66rents capteurs

& +>emp%e d1app%ication

41/43

*estin: and ,ebu::in:


,*,.-

& I))
Implementation Phase

Implementation Phase

Verification Phase

,e?e%opment processor

,ebu::er/ I))
+mu%ator

9 2i?es us contro% o?er time 9 set breaJpointsF %ooJ at re:ister ?a%uesF set ?a%uesF stepAbyAstep e>ecutionF GGG 9 PutF doesn1t interact Qith rea% en?ironment

& ,oQn%oad to board


9 /se de?ice pro:rammer 9 -uns in rea% en?ironmentF but not contro%%ab%e

+>terna% too%s

& CompromiseM emu%ator


Pro:rammer
Verification Phase

9 -uns in rea% en?ironmentF at speed or near 9 )upports some contro%%abi%ity 6rom the PC

4$/43

Pib%io:raphie
& (icrochip
9 ,ata )heet du PIC 1 F!"> 9 )imu%ateur (P0AP

9 QQQGmicrochipGcom & Cours de Pi:ono66


9 QQQGabce%ectroniqueGcom/bi:ono66
43/43