Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Vestavné mikropočítačové systémy 2. Týden – jednočipové 8-mi bitové mikropočítače Atmel AVR.

Podobné prezentace


Prezentace na téma: "Vestavné mikropočítačové systémy 2. Týden – jednočipové 8-mi bitové mikropočítače Atmel AVR."— Transkript prezentace:

1 Vestavné mikropočítačové systémy 2. Týden – jednočipové 8-mi bitové mikropočítače Atmel AVR

2 Rodiny procesorů Atmel AVR ATtiny –malá pouzdra, chudá výbava, nízká spotřeba, cena od 20Kč ATmega –univerzální jednočipové mikropočítače s pestrou škálou periferií, nabízí se v řadě variant lišících se navzájem velikostí pamětí a počtem pinů, cena cca 70  150 Kč XMEGA –nadstandardně vybavené jednočipové mikropočítač (DMA, event-systém, AWEX, RTC, IrCOM, crypto-engine, ADC/DAC, …), nemají je v každé samoobsluze, cena na 70  150 USDwww.digikey.com AVR32UC3 –32-dvou bitové jednočipové mikropočítače, cena cca 170  280 Kč AVR32AP –32-bitové procesory bez integrované paměti, cena cca 300  500 Kč

3 8-mi bitové procesory Atmel pro speciální aplikace USB AVR –víceméně ATmega s integrovaným řadičem sběrnice USB, cena >300 Kč CAN AVR –víceméně ATmega s integrovaným řadičem sběrnice CAN, cena >180 Kč LCD AVR –víceméně ATmega s integrovaným řadičem LCD displejů Lighting AVR (AT90PWM) –jednočipové mikropočítače s vícekanálovým programovatelným generátorem PWM, řízení světelných zdrojů, motorů apod, cena cca 90 Kč Battery Management AVR –jednočipové mikropočítače do aplikací napájených z akumulátorů s možností dobíjení, speciální periferie pro řízení nabíjení Automotive AVR –výběr z předchozích rodin pro použití v automobilovém průmyslu AVR Z-Link –marketingový trik, Boundle ATmega + AT86RF230 (ZigBee)

4 AVR – blokové schéma Interrupt unit SPI Watchdog timer Analog comparator I/OI/O TWIUSART Timers / counters ADC E 2 PROM ALU 32 general purpose registers Status register Program counter Stack pointer Program FLASH SRAM Instruction register Instruction decoder

5 CPU 32 univerzálních 8-mi bitových registrů r0 – r31 –pro nepřímé adresování se hodnoty vybraných registrů interpretují jako 16-ti bitová adresa. Tyto páry se označují X, Y a Z (r26:r27 = X, r28:r29 = Y, r30:r31 = Z) PC (program counter) – adresa vykonávané instrukce SP (stack pointer) – ukazatel vrcholu zásobníku –zásobník roste směrem k nižším adresám (rozdíl proti 8051) –16-ti bitový, implementován jako dvojice registrů (SPL a SPH) v I/O prostoru (rozdíl proti 8051, kde je 8-mi bitový) –po resetu se musí inicializovat – obvykle na konec SRAM SREG (status register) – registr stavových příznaků –výsledek aritmeticko logických operací – přenos, znaménko, nula, … –zakázání / povolení přerušení

6 SREG – registr stavových příznaků CZNHTI VS C – přenos (carry); Z – indikuje, že výsledek operace je 0 (zero); N – indikuje záporný (negative) výsledek; V – přenos v aritmetice dvojkového doplňku; S – znaménkový příznak, S = N  V; H – příznak přetečení mezi nibbly (BCD aritmetika); T – bit, který je adresovatelný bitovými operacemi BLD a BST; I – globální příznak povolení přerušení.

7 Rozdělení paměti Architektura harvardského typu – oddělený paměťový prostor pro kód a pro data Obě typy pamětí jsou integrovány na čipu Programová paměť –FLASH, zaručeno nejméně cyklů mazání/zápis –organizována po slovech (16 bitů) –je přístupná z programu pro čtení i zápis pomocí speciálních instrukcí –volitelně lze rozdělit na aplikační sekci a bootovací sekci –po resetu se PC nastaví na adresu 0 resp. na začátek bootovací sekce Datová paměť je typu SRAM –register file –I/O space –prostor pro aplikační data E 2 PROM –neumožňuje přímý přístup, pracuje se s ní jako s periferií

8 Rozdělení paměti (ATmega8) Boot section Application section $000 $FFF FLASH $0000 $0001 $001E $001F $0020 $0021 $005E $005F $0060 $0061 $045F $045E R0 R1 R30 R31 SRAMRegister file $00 $01 $3E $3F I/O registers Application data

9 Adresování – přesuny dat Přesun dat mezi registry –MOVRd, RrRd  Rr –MOVWRd+1:Rd, Rr+1:RrRd+1:Rd  Rr+1:Rr, pro d,r sudé Nastavení registru konstantou –LDIRd, KRd  K, 16  d  31 –CLRRdRd  0 –SERRdRd  $FF Přímé adresování –LDSRd, kRd  (k) –STSk, Rd(k)  Rd –INRd, A Rd  I/O(A) –OUTA, Rd I/O(A)  Rd Nepřímé adresování –LDRd, RwRd  (Rw), Rw  {X,Y,Z} –STRw, Rd(Rw)  Rd, Rw  {X,Y,Z} –LDDRd, Rw+qRd  (Rw+q), Rw  {Y,Z}, 0  q  63 –STDRw+q, Rd(Rw+q)  Rd, Rw  {Y,Z}, 0  q  63 –instrukce LD a ST mohou vykonávat postinkrement nebo predekrement dvojregistru s adresou (Rw) Přístup do programové paměti –LPMR0  (Z) –LPMRd, ZRd  (Z) –LPMRd, Z+Rd  (Z), Z  Z + 1 –SPM

10 ALU – aritmetické operace Sčítání, odčítání –ADDRd, RrRd  Rd + Rr –ADCRd, Rr Rd  Rd + Rr + C –ADIWRd+1:Rd, KRd+1:Rd  Rd+1:Rd + K, d  {24,26,28,30}, 0  k  63 –SUBRd, RrRd  Rd – Rr –SUBIRd, KRd  Rd – K, 16  d  31 –SBC Rd, RrRd  Rd – Rr – C –SBCIRd, KRd  Rd – K – C, 16  d  31 –SBIWRd+1:Rd, KRd+1:Rd  Rd+1:Rd – K, d  {24,26,28,30}, 0  k  63 –INCRdRd  Rd + 1 –DEC RdRd  Rd – 1 Násobení –MULRd, RrR1:R0  Rd  Rr (unsigned  unsigned  unsigned), 16  d,r  31 –MULSRd, RrR1:R0  Rd  Rr (signed  signed  signed), 16  d,r  31 –MULSURd, RrR1:R0  Rd  Rr (signed  signed  unsigned), 16  d,r  23 –FMULRd, RrR1:R0  Rd  Rr (unsigned  unsigned  unsigned), 16  d,r  23 –FMULSRd, RrR1:R0  Rd  Rr (signed  signed  signed), 16  d,r  23 –FMULSU Rd, RrR1:R0  Rd  Rr (signed  signed  unsigned), 16  d,r  23 Porovnávání –CPRd, RrRd – Rr –CPCRd, RrRd – Rr - C –CPIRd, KEd – K, 16  d  31 –CPSERd, Rrif Rd = Rr then PC  PC + 2 (or 3) ekse PC  PC + 1

11 ALU – logické operace Bitové operace –ANDRd, RrRd  Rd  Rr –ANDIRd, KRd  Rd  K, 16  d  31 –ORRd, RrRd  Rd  Rr –ORIRd, KRd  Rd  K, 16  d  31 –EORRd, RrRd  Rd  Rr –TSTRd Rd  Rd  Rd Rotace, posuny –ROLRdC  Rd 7 … Rd 0  C –RORRdC  Rd 7 … Rd 0  C –LSLRdC  Rd 7 … Rd 0  0 –LSRRd0  Rd 7 … Rd 0  C –ASRRdRd 7  Rd 7 … Rd 0  C Jiné operace –COMRdRd  $FF – Rd –NEGRdRd  $00 – Rd –SWAPRdRd 7:4  Rd 3:0, Rd 3:0  Rd 7:4 –CBRRd, KRd  Rd  ($FF – K), 16  d  31 –SBRRd, KRd  Rd  K, 16  d  31 –CBIA, bI/O(A) b  0 –SBIA, bI/O(A) b  1 –SBRC / SBRSRr, bif Rr b = 0/1 then PC  PC + 2 (or 3) else PC  PC + 1 –SBIC / SBISA, bif I/O(A),b = 0/1 then PC  PC + 2 (or 3) else PC  PC + 1

12 ALU – status register Bity –I (7) – globální zákaz / povolení přerušení –T (6) – místo pro kopírování bitu instrukcemi BLD a BST –H (5) – half-carry – signalizuje, že došlo k přetečení mezi 3. a 4. bitem (BCD aritmetika) –S (4) – znaménko výsledku (S = N  V) –V (3) – přetečení v aritmetice dvojkového doplňku –N (2) – indikuje záporný výsledek (kopíruje nejvýznamnější bit výsledku) –Z (1) – indikuje nulový výsledek –C (0) – signalizuje, že došlo k přetečení ze 7. bitu Nastavení shození příznaku –BCLR / BSETsSREG(s)  0/1 –CLI / SEII  0/1 –CLT / SETT  0/1 –CLH / SEHH  0/1 –CLS / SESS  0/1 –CLV / SEVV  0/1 –CLN / SENN  0/1 –CLZ / SEZZ  0/1 –CLC / SECC  0/1 Podmíněné skoky –BRBC / BRBSs, kif SREG(s) = 0/1 then PC  PC + k + 1 else PC  PC + 1 –BRID / BRIEkif I = 0/1 then PC  PC + k + 1 else PC  PC + 1 –BRTC / BRTSkif T = 0/1 then PC  PC + k + 1 else PC  PC + 1 –BRHC / BRHSkif H = 0/1 then PC  PC + k + 1 else PC  PC + 1 –BRGE / BRLTkif S = 0/1 then PC  PC + k + 1 else PC  PC + 1 –BRVC / BRVSkif V = 0/1 then PC  PC + k + 1 else PC  PC + 1 –BRPL / BRMIkif N = 0/1 then PC  PC + k + 1 else PC  PC + 1 –BRNE / BREQkif Z = 0/1 then PC  PC + k + 1 else PC  PC + 1 –BRCC / BRCSkif C = 0/1 then PC  PC + k + 1 else PC  PC + 1 –BRSH / BRLOkif C = 0/1 then PC  PC + k + 1 else PC  PC + 1

13 Adresování – skoky, zásobník Skok na přímou adresu –JMPkPC  k –RJMPkPC  PC + k + 1, -2k  d<2k –IJMPPC  Z Volán podprogramu –CALLk(SP)  PC + 2, SP  SP – 2, PC  k –RCALLk(SP)  PC + 1, SP  SP – 2, PC  PC + k + 1, -2k  d<2k –ICALL(SP)  PC + 1, SP  SP – 2, PC  Z –RETSP  SP + 2, PC  (SP) –RETISP  SP + 2, PC  (SP), I  1 Práce se zásobníkem –PUSHRr(SP)  Rr, SP  SP – 1 –POPRr Rr  (SP), SP  SP + 1


Stáhnout ppt "Vestavné mikropočítačové systémy 2. Týden – jednočipové 8-mi bitové mikropočítače Atmel AVR."

Podobné prezentace


Reklamy Google