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
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 .
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
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
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
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
Init_tmr2:mov th2,#-high(ttakt)mov tl2,#-low(ttakt)mov rcap2h,#-high(ttakt)mov rcap2l,#-low(ttakt)mov t2con,#00000100bret
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