47

RealiRealizacija zacija RTRT sistemaes.elfak.ni.ac.rs/rts/Materijal/NASTAVA_2012/PDF_PPT/6-Jednostavni... · Tabela sa podacima Jedno (brutalno) rešenje – zabrana prekida kada

  • Upload
    trannhi

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

RealiRealizacijazacija RTRT sistemasistemaJednostavni sistemiJednostavni sistemi

Metoda realizacije jednostavnog embedded RT sistmaKooperativno raspore đivanje „ round robin“Izbegavanje overhead -a u preklapanju zadataka (istiskivanje)Uvođenje prekidnih servisnih rutina

Deljenje resursa

Kriti čni podaci

Višezadačnost – Multi-taskingProces - Zadatak ( Process - Task ):

Apstrakcija programa koji izvršava jednu (ili više) logi čkihcelina.

Jedan CPU – više zadataka (vreme velikih mainfraim rač.)

Primer Windows OS – task menakžer

Konkurentno procesiranje – kako ostvariti multitaski ng

Višeprocesorski sistemi – paralelno programiranje

Najjednostavniji sistemi.Princip kružnog izvršavanja aktivnosti.Nema overhead -a koji za preklapanje zadataka.Najveći deo vremena - testiranje status-markera ( skip-polling ).Najveći problem – tajming periodi čnih aktivnosti

Primer:DO

Zahtevaj merenje od ulaznog uređajaČekaj na rezultat

Beskona čna petlja

Čekaj na rezultatOčitaj merenu VrednostProcesiranje merene Vrednost-iIF Vrednost prihvatljiva

THEN Pripremi novi Rezultat na osnovu VrednostELSE Prijavi Greska

ENDIFZahtevaj slanje ka Izlaz-nom uređajuČekaj na isporuku Rezultat-aPotvrdi da je Izlaz ispravan

END DO

Osnovna petlja zadataka

Organizacija delova programa u zasebne programske module - zadaci ( task ).

„round-robin“ raspore đivanje.

Nema prekida. U/I ure đaji se moraju Očitavati u okviru zadatka.Očitavati u okviru zadatka.

Razmena informacija izme đu zadataka -upisom i čitanjem deljivih podataka

Nedostaci:Srednje vreme odziva na neki doga đajNepouzdan tajming

Primer progrmaskog koda

// Program_1 (C)

#define konst_1, konst_2

int prom_1, prom_2

main {init_sys while (1)

// Program_1 (ASM)

Konst_1 equ 123Konst_2 equ 456

dseg ; (bseg)Prom_1: ds 2Prom_2: ds 2

while (1){task_1task_2task_3task_4

}}

csegcall init_sys

labela:call task_1call task_2call task_3call task_4

jmp labela

endPRIMER

Vremenski kontrolisana petlja zadataka

Za aplikacije gde je vremenska preciznost od ve će važnosti

Hardverski tajmer

Implementacija: putem prekidaputem prekidaputem petlje čekanja

PRIMER

Višestruko kružno izvršavanje

Multi rate

Brzina izvršavanja zadatakarazli čita

“Major” i “Minor” ciklusi

Definisanje preciznog tajminga

Brojanje mašinskih ciklusa

Podelom zadatka na dva dela

Problemi:

Vremenska preciznost

100 ms

Problemi:Nekonzistentnost podataka!Izmena programa!

Podložno greškama

Izuzetno mu čna metoda izrade softvera

25 ms

Problemi sa tajmingom

Nedovoljno ta čan tajming, jitter.

Višestruko izvršavanje periodi čnih zadatakamulti-rate (non-cyclic)

Primer:Ako je brzina izvravanja tri zadatak 50, 60 i 100 Hz, k akav je tajming?

Uvodjenje prekidaNedostaci polling metode.

Uvođenje prekida – uzrok problemima:Kada prekidna rutina prosle đuje podatke zadatku koji je prekinulaTabela sa podacima

Jedno (brutalno) rešenje – zabrana prekida kada Task koristi podatke

Višestruko izvršavanje sa prekidima

Poseban bafer za ISR

Na svaki takt, kopiranje

Manje štetna zabrana prekida

Prenos podataka izPrenos podataka izprekida tek u slede ćemtaktu ( !)

PRIMER

Prakti čno izvo đenje

Mali sistemi – uslovne petlje, prekidni programi i p rogrami za čekanje.

Kružni planer – predefinisane sekvence, kooperativni raspored.Zadatak odlu čuje o svom završetku i prelasku na novi zadatak.Nema promene redosleda izvršavanja u toku rada. Specijalni idle ili burn zadatak .

Task_1

Task_1

Task_2

Task_2

Smesti u red čekanja

Izvrši zadatkeIz reda čekanja

20ms

Produženi zadaci

Zadaci čije je vreme izvršavanja duže od vremenskog slota

Podela zadatka na delove – faze

Glavni problem u multi-tasking -u (code re-entry )

Primena kružnog izvršavanja

Svi zadaci vide istu globalnu strukturu podataka – gl obalne promenljive

Tri nivoa prioritetaPrekidni zadaciTaktni zadaciOsnovni nivo

Hibridna struktura – delom kooperativna, delom zahtev za istiskivanje

Frejm i slotovi, prioritet taktnih zadataka – izvršava nje u više slotova

PRIMER

Prekidi sa istiskivanjem ( preemptive)

Non-preemptive tip svih do sada opisanih metoda

Istikivanje - Brži odziv;zaustavljanje zadatka u bilo kojoj ta čki.

Kompleksnija metoda (za red veli čine).

Troši memoriju (RAM)

Početak razmišljanja o RTOSAko sistem koje se razvija nije ograni čen na:

Samo periodi čne zadatke,Mali broj korelisanih frekvencija izvršavanjaMali džiter izvršavanja zadatakaU/I funkcije sa malim vremenom odziva

Foreground / Backgroundsistemi

Glavni program (beskonačna petlja)

vremeIzvršavanje bez prekida

Glavni

ISR

Glavni

ISR

Glavni

ISR

Glavni

Izvršavanje sa prekidima

background

foreground

RETI RETI RETIevent event event

n n+1Instrukcija:

ISR2Background 1

P(Ev2) > P(Ev1) P(Ev2) <= P(Ev1)

Foreground / Backgroundsistemi

Glavni

ISR1

Glavni

Background 0

Foreground

ISR1

Ev1

Ev2

Glavni

ISR1

Glavni

ISR2

Ev1 Ev2

Jedna instrukcija

Prekidi sa istiskivanjem ( preemptive)

Koji zadatak sme bit prekinut od strane prekidnog – p rioriteti

Prekinuti i prekidni zadatak ne mogu razmenjivati pod atke preko deljivih oblasti

Posebni mehanizmi razmene podataka

ISR(asinhroni događaj)

Važniji zadatak

Manje važan zadatak

1

2

3

4

5

6

Izvršavanje programa

Vreme

7

Razmena podataka preko redova poruka ( message queue )

krajnji rok ( deadline)

Task_BKrajnji rokZa Task_B

Da li zadatak sme biti prekinut,

Task_B Krajnji rokZa Task_A

Primer mikrora čunarski upravljanog UHFlinka za prenos video signala

PDRFINAT89C2051

RfbCf

Rfa

UHF Osc

Rv

Varicap dioda

Cosc

Losc

Cm

RF PowAmp

Rb

P1

Video IN

Ra

P2

TX Antena

C3

Cs

P1.0PD

Down

UD

Up

TSA5511/PLLRefOsc

ProgDel

I2CP1.1

SDASCL

gnd

P1.4P1.5P1.6P1.7

R8

R1

R9

R2

R6

C10

C11

C1

D1BB134

L130nH

R5

gnd

gnd

Vcc

C6

C7

R10VCC1

T1BFR92

U1

RFAMP

R3

L2RFC

C12

GND

GND

C3

P2Antena

GNDC5

W1COAX-50ohm

P1Video IN

GND

R15

GND

GND

Detaljna elektri čna šema UHF TV predajnika

C9

Vcc

GNDQ2

4 MHz

C1718p

C18

C19R7

R13 330

C8

GND

gnd

PD1

Q12

Q23

SDA4

SCL5

P76

P67

P58

P49 P3 10

P2 11

P112

P013

VCC14

RFIN216

RFIN115

UD18

VEE17

U3

TSA5511

C2

R14 330

GND 10

T19 T08 INT17 INTO6

X1

5

X2

4

TXD3 RXD2

RST1

P1.113

P1.214

P1.315

P1.416

P1.517

P1.618

P1.719

VC

C20

P1.012

P3.711

U2AT89C2051

Q1

C14 22p

C13 22p

C4 10u

gnd

R4VCC

T2

R11 R12

Vcc Vcc

C15 C16

gnd gnd

A01

A12

A23

Vss4

Vdd 8

RC 7

SCL 6

SDA 5

U15 AT24C04Vcc

gnd

SDASCL

Arhitektura sintezatora TSA5511

0

Razvojni sistem na bazi MCS51 ( small )

P0/A0-IN OUT D0-

80C51 6264HC573

RAM

D7AD0-AD7 A7

J1

P1

Latch

12345678

J3

PORT1

P2

ALE

STB

A8-

P2.7/A15

CS1

P2.0-P2.6

8K x 8RAM

A14

8000-9FFF*P3.0/RxP3.1/TxRS2321

2

J1

DIN3P3.2-P3.7

GND

EA Vcc

PSEN

WR/P3.6

CS

OE WE

123456

J2

PORT3

Memorijska mapa “ small” sistema

Program XRAM

!!!!!!!!!!!!! !!!!!!!!!!!!!

Int. ROM0

0FFF

7FFF

9FFF

8000

0

7FFF

9FFF

8000

ERAM(8K) Wr

ERAM(8K)Rd(PSEN)

Razvojni sistem na bazi MCS51 ( large )

P0/A0-IN OUT D0-

80C51 6264HC573

ERAM

D7AD0-AD7 A7

J1

12345678

J3

PORT1 P1

Latch

A0- D0-

62256

RAM

D7A7

P2

ALE

STB

A8-

CS1

P2.0-P2.6

8K x 8ERAM

A13

8000-9FFF*P3.0/RxP3.1/TxRS2321

2

J1

DIN3

123456

J2

PORT3

P3.2-P3.7

GND

A8-

32K x 8RAM

A14

0000-7FFF

RD/P3.7

A15/P2.7

Za ERAM kapaciteta 32K x 8 ?

CS

OE WE CSOE WE

EA

PSEN

WR/P3.6

Vcc

Memorijska mapa “ large” sistema

Program

ERAM(8K)

XRAM

9FFFERAM(8K)

!!!!!!!!!!!!! !!!!!!!!!!!!!

9FFF

0

0FFFInt. ROM

ERAM(8K)

0

7FFF

ERAM(8K)

RAM(32K)Rd/Wr

Rd(PSEN) Wr8000

7FFF8000

Mode 05-bits(8192 us)

Init_tmr2:mov th2,#-high(ttakt)mov tl2,#-low(ttakt)mov rcap2h,#-high(ttakt)mov rcap2l,#-low(ttakt)mov t2con,#00000100bret

Prekidi

IE: EA X ET2 ES ET1 EX1 ET0 EX0IP: X X PT2 PS PT1 PX1 PT0 PX0

Mikrokontrolerska konzola: Tastatura i displej

P0

P2.7

AT89S52

P3.0/RxP3.1/Tx

P1

P3.2/INT01 2 3

4 5 6P3.3/INT1P3.4/T0

P2.3

P2.4

P2.5P2.6

P3.7/RD P2.1 #* 0

7 8 9P3.4/T0P3.5/T1P3.6/WR

P2.2

A 1

f2

g3

e4 d5

A 6

c8

DP7

b9 a10L1

CIFRA_1

10K 10K 10K 10K

A 1

f2

g3

e4 d5

A 6

c8

DP7

b9 a10L2

CIFRA_2

A 1

f2

g3

e4 d5

A 6

c8

DP7

b9 a10L3

CIFRA_3

A 1

f2

g3

e4 d5

A 6

c8

DP7

b9 a10L4

CIFRA_4

123456

ISP-Prog

Q1BC856

Q2BC856

Q3BC856

Q4BC856

P21 P22 P23 P24

Mikrokontrolerska konzola: Elektri čna šema

10K 10K 10K

P1.0

/T2

1P1

.1/T

2EX

2P1

.2/E

CI

3P1

.3/C

EX

04

P1.4

/CE

X1

5P1

.5/C

EX

26

P1.6

/CE

X3

7P1

.7/C

EX

48

RST

9

P3.0

/RxD

10P3

.1/T

xD11

P3.2

/IN

T0

12P3

.3/I

NT

113

P3.4

/T0

14P3

.5/T

115

P3.6

/WR

16P3

.7/R

D17

XT

AL

218

XT

AL

119

VSS

20

P2.0

/A8

21P2

.1/A

922

P2.2

/A10

23P2

.3/A

1124

P2.4

/A12

25P2

.5/A

1326

P2.6

/A14

27P2

.7/A

1528

PSE

N29

AL

E/P

RO

G30

EA

/VPP

31

P0.7

/AD

732

P0.6

/AD

633

P0.5

/AD

534

P0.4

/AD

435

P0.3

/AD

336

P0.2

/AD

237

P0.1

/AD

138

P0.0

/AD

039

VC

C40

U18051

10K

1 2

X114.7456 MHz

C15.6p

C25.6p

10K1234

RS232

C810uF

VCC

VCC

VCC

VCC

VCC

C3100nF

Vin Vout

GND

VR1 7805

C5100nF

C4100nF

C710uF

C6100uF

VCC

D1

1N4001

res

res

VCC

S11"1"

S8"4"

S5"7"

S2"*"

S10"2"

S7"5"

S4"8"

S1"0"

S9"3"

S6"6"

S3"9"

S0"#"

12345678 J1ACON8

1 2 3 4 5 6 7 8

J1BCON8

P21

P22

P23

P24

P25P26P27

12

K1

NAPAJANJE