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

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

Vestavné mikropočítačové systémy

Podobné prezentace


Prezentace na téma: "Vestavné mikropočítačové systémy"— 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 USD 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 32 general purpose registers
AVR – blokové schéma 32 general purpose registers Stack pointer SRAM Program counter Program FLASH Instruction register ALU Instruction decoder Status register I/O Interrupt unit Timers / counters Analog comparator ADC Watchdog timer USART SPI TWI E2PROM

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ů
1 2 5 6 7 3 4 V S 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 E2PROM neumožňuje přímý přístup, pracuje se s ní jako s periferií COM – jedničkový doplněk (FF-x) NEG – dvojkový doplněk (0-x)

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

9 Adresování – přesuny dat
Přesun dat mezi registry MOV Rd, Rr Rd  Rr MOVW Rd+1:Rd, Rr+1:Rr Rd+1:Rd  Rr+1:Rr, pro d,r sudé Nastavení registru konstantou LDI Rd, K Rd  K, 16d31 CLR Rd Rd  0 SER Rd Rd  $FF Přímé adresování LDS Rd, k Rd  (k) STS k, Rd (k)  Rd IN Rd, A Rd  I/O(A) OUT A, Rd I/O(A)  Rd Nepřímé adresování LD Rd, Rw Rd  (Rw), Rw{X,Y,Z} ST Rw, Rd (Rw)  Rd, Rw{X,Y,Z} LDD Rd, Rw+q Rd  (Rw+q), Rw{Y,Z}, 0q63 STD Rw+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 LPM R0  (Z) LPM Rd, Z Rd  (Z) LPM Rd, Z+ Rd  (Z), Z  Z + 1 SPM

10 ALU – aritmetické operace
Sčítání, odčítání ADD Rd, Rr Rd  Rd + Rr ADC Rd, Rr Rd  Rd + Rr + C ADIW Rd+1:Rd, K Rd+1:Rd  Rd+1:Rd + K, d{24,26,28,30}, 0 k63 SUB Rd, Rr Rd  Rd – Rr SUBI Rd, K Rd  Rd – K, 16d31 SBC Rd, Rr Rd  Rd – Rr – C SBCI Rd, K Rd  Rd – K – C, 16d31 SBIW Rd+1:Rd, K Rd+1:Rd  Rd+1:Rd – K, d{24,26,28,30}, 0 k63 INC Rd Rd  Rd + 1 DEC Rd Rd  Rd – 1 Násobení MUL Rd, Rr R1:R0  Rd  Rr (unsigned  unsigned  unsigned), 16d,r31 MULS Rd, Rr R1:R0  Rd  Rr (signed  signed  signed), 16d,r31 MULSU Rd, Rr R1:R0  Rd  Rr (signed  signed  unsigned), 16d,r23 FMUL Rd, Rr R1:R0  Rd  Rr (unsigned  unsigned  unsigned), 16d,r23 FMULS Rd, Rr R1:R0  Rd  Rr (signed  signed  signed), 16d,r23 FMULSU Rd, Rr R1:R0  Rd  Rr (signed  signed  unsigned), 16d,r23 Porovnávání CP Rd, Rr Rd – Rr CPC Rd, Rr Rd – Rr - C CPI Rd, K Ed – K, 16d31 CPSE Rd, Rr if Rd = Rr then PC  PC + 2 (or 3) ekse PC  PC + 1 Některé typu nemají násobičku Není obdoba djnz

11 ALU – logické operace Bitové operace Rotace, posuny Jiné operace
AND Rd, Rr Rd  Rd  Rr ANDI Rd, K Rd  Rd  K, 16d31 OR Rd, Rr Rd  Rd  Rr ORI Rd, K Rd  Rd  K, 16d31 EOR Rd, Rr Rd  Rd  Rr TST Rd Rd  Rd  Rd Rotace, posuny ROL Rd C  Rd7 … Rd0  C ROR Rd C  Rd7 … Rd0  C LSL Rd C  Rd7 … Rd0  0 LSR Rd 0  Rd7 … Rd0  C ASR Rd Rd7  Rd7 … Rd0  C Jiné operace COM Rd Rd  $FF – Rd NEG Rd Rd  $00 – Rd SWAP Rd Rd7:4  Rd3:0, Rd3:0  Rd7:4 CBR Rd, K Rd  Rd  ($FF – K) , 16d31 SBR Rd, K Rd  Rd  K, 16d31 CBI A, b I/O(A)b  0 SBI A, b I/O(A)b  1 SBRC / SBRS Rr, b if Rrb = 0/1 then PC  PC + 2 (or 3) else PC  PC + 1 SBIC / SBIS A, b if I/O(A),b = 0/1 then PC  PC + 2 (or 3) else PC  PC + 1

12 ALU – status register Bity Nastavení shození příznaku Podmíněné skoky
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 / BSET s SREG(s)  0/1 CLI / SEI I  0/1 CLT / SET T  0/1 CLH / SEH H  0/1 CLS / SES S  0/1 CLV / SEV V  0/1 CLN / SEN N  0/1 CLZ / SEZ Z  0/1 CLC / SEC C  0/1 Podmíněné skoky BRBC / BRBS s, k if SREG(s) = 0/1 then PC  PC + k + 1 else PC  PC + 1 BRID / BRIE k if I = 0/1 then PC  PC + k + 1 else PC  PC + 1 BRTC / BRTS k if T = 0/1 then PC  PC + k + 1 else PC  PC + 1 BRHC / BRHS k if H = 0/1 then PC  PC + k + 1 else PC  PC + 1 BRGE / BRLT k if S = 0/1 then PC  PC + k + 1 else PC  PC + 1 BRVC / BRVS k if V = 0/1 then PC  PC + k + 1 else PC  PC + 1 BRPL / BRMI k if N = 0/1 then PC  PC + k + 1 else PC  PC + 1 BRNE / BREQ k if Z = 0/1 then PC  PC + k + 1 else PC  PC + 1 BRCC / BRCS k if C = 0/1 then PC  PC + k + 1 else PC  PC + 1 BRSH / BRLO k if C = 0/1 then PC  PC + k + 1 else PC  PC + 1 COM – jedničkový doplněk (FF-x) NEG – dvojkový doplněk (0-x)

13 Adresování – skoky, zásobník
Skok na přímou adresu JMP k PC  k RJMP k PC  PC + k + 1, -2kd<2k IJMP PC  Z Volán podprogramu CALL k (SP)  PC + 2, SP  SP – 2, PC  k RCALL k (SP)  PC + 1, SP  SP – 2, PC  PC + k + 1, -2kd<2k ICALL (SP)  PC + 1, SP  SP – 2, PC  Z RET SP  SP + 2, PC  (SP) RETI SP  SP + 2, PC  (SP), I  1 Práce se zásobníkem PUSH Rr (SP)  Rr, SP  SP – 1 POP Rr Rr  (SP), SP  SP + 1


Stáhnout ppt "Vestavné mikropočítačové systémy"

Podobné prezentace


Reklamy Google