Documente Academic
Documente Profesional
Documente Cultură
Medierea simpla se efectueaza mai multe masuratori iar media acestora este luata
in considerare pentru prelucrarile ulterioare
Medierea simpla
Medierea simpla este cea mai simpla metoda pentru prelucrarea rezultatelor
masuratorilor: N reesantioane sint insumate iar rezultatul este impartit la N sau, uneori,
este utilizat asa cum este.In cazul in care se utilizeaza corectii de tip Slope si Offset se
poate utiliza urmatoarea formula:
R4
SUMHI EQU
R5
N_ADC EQU
R6
OVSLOP
MOV
#32,N_ADC
CLR
SUMLO
CLR
SUMHI
CALL
ADD
&ADC12MEMO,SUMLO
ADC
SUMHI
DEC
N_ADC
JNZ
OVSLOP
ADC12MEMO
....
Dezavantajele metodei sint consumul relativ ridicat datorita numarului mult mai mare de
achizitii ADC si viteza maxima teoretica de esantionare mai mica (de N ori) iar
avantajele sint programarea mai simpla, rezolutie imbunatatita prin sumarea a N rezultate
ale masuratorilor si reducerea influentei valorilor extreme.
Medierea continua
O metoda foarte rapida si simpla in acelasi timp de mediere a semnalelor digitale
este medierea continua (Continuous Averaging): intr-un buffer circular se scrie cea mai
noua masuratoare iar cea mai veche achizitie este eliminata din buffer(practic, bufferul
fiind circular, cele doua masuratori au aceeasi adresa RAM astfel ca valoarea noua
suprascrie valoarea cea mai veche). Pentru minimizarea timpului de calcul, valoarea
veche este scazuta din suma iar valoarea noua este adaugata. Suma, stocata in variabila
CFSUM, este o valoare pe 32 de biti si contine practic N rezultate ale masuratorilor.
Variabila CFSUM va fi utilizata in programul principal la procesari ulterioare. Trebuie
avut in vedere ca aceasta valoare nu este media aritmetica a masuratorilor, ci suma lor,
deci de N ori mai mare decit media. Raspunsul in frecventa al medierii continue este
similar unui filtru pieptene, deci se obtine o atenuare puternica a anumitor frecvente de
anumite valori raportate la frecventa de esantionare (de exemplu in figura urmatoare, de
4, 8, 16 ori mai mici decit frecventa achizitiilor).
Figura 5.1
EQU
16
CFSTRT
DS
N*2
CFSUM
DS
CFPOI
DS
PUSH
R5
MOV
CFPOI, R5
CMP
#CFSTRT+(N*2),R5
JLO
CF00
MOV
#CFSTRT,R5
...
CFHND
; valoarea cea mai veche e scazuta din CFSUM, valoarea noua o suprascrie si e adaugata
la CFSUM
CF00
SUB
@R5,CFSUM
SBC
CFSUM+2
MOV
&ADC12MEMO,0(R5)
ADD
@R5+,CFSUM
ADC
CFSUM+2
MOV
R5,CFPOI
POP
R5
RETI
Sumarea ponderata
Sumarea ponderata a masuratorilor anterioare si valoarea actuala sint mediate aritmetic
iar rezultatul este stocat. Aceasta metoda acorda fiecarei masuratori o anumita pondere
(fie T perioada esantionarii)
Moment de timp
Pondere
t0
0.5
t0-T
0.25
t0-2T
0.125
t0-3T
0.0625
....
...
DS
ADD
&ADC12MEMO, WSSUM
RRA
WSSUM
...
WSHND
; divizare cu 2
....
; mai departe
cu suma
A doua varianta este rotunjirea noii valori obtinute prin adunarea unui termen 0.5 (2^1)aflat in fanionul Carry.
WSHND
ADD
&ADC12MEMO, WSSUM
RRA
WSSUM
ADC
WSSUM
; bitul LSB in
Carry
Prin utilizarea pachetului de calcule in virgula mobila se pot face sumari ponderate si cu
alti coeficienti pondere in afara de cei puteri ale lui 2. Dezavantajul este consumul mai
mare de resurse si viteza mult mai scazuta de calcul.
Figura 5.2
Numarul necesar de masuratori, N=10 in cazul de fata, se imparte in doua parti
egale, iar a doua serie va avea loc exact dupa o jumatate de perioada a frecventei retelei
Tmain/2 fata de masuratorile din prima serie. Datorita faptului ca sin(pi+x)=-sin(x)
rezulta ca insumind rezultatele masuratorilor se vor forma perechi Asinx, Asin(pi+x)
reprezentind zgomotul de la retea care se vor anula, deci se minimizeaza influenta
zgomotului de 50Hz(brumului).
In cazul in care este necesara o masurare diferentiala (trebuie efectuata diferenta intre
doua valori masurate) se poate aplica aceeasi tehnica de utilizare a proprietatilor functiei
sinus, dar nu cea indicata mai sus pentru ca amplifica zgomotul. In cazul diferential
diferenta intre masuratori trebuie sa fie o perioada completa a frecventei retelei pentru ca
sinx=sin(2pi+x).
Figura 5.3
4.1. Accesul
Protocolul PPP Point to point Protocol este un mecanism pentru crearea si rularea
protocolului internet IP sau a altor protocoale de retea peste o conexiune seriala (utilizind
un cablu serial null modem), peste o conexiune telnet sau peste o conexiune realizata
utilizind modemuri si linii telefoice. Cu ajutorul PPP se poate realiza conectarea unui
sistem client Linux (si a altor sisteme) la un server PPP si accesa resursele retelei in care
este plasat serverul PPP ca si cum sistemul client a fi fost conectat direct in retea. De
asemenea se poate configura usor sistemul Linux pentru rolul de server PPP, caz in care
alte calculatoare se pot conecta la acesta si accesa resursele locale sau din reteaua sa.
Protocolul PPP este de tip peer-to-peer si permite interconectarea a doua retele (sau a
unei retele locale la Internet) prin realizarea unei legaturi PPP intre 2 calculatoare plasate
fiecare in una din cele 2 retele.
O deosebire majora intre protocolul PPP bazat pe conexiune seriala si protocolul Ethernet
este viteza o conexiune Ethernet standard opereaza la 10MBs sau 100MBs viteza
teoretica maxima, in timp ce un modem analog lucreaza la viteze de maxim 56kbps.
Tehnic vorbind, PPP este un protocol peer-to-peer, ceea ce inseamna ca nu exista nici o
diferenta intre masina care initiaza conexiunea si masina care ii raspunde. Din motive de
claritate insa, este util sa se gindeasca in termeni de client si server: masina care incearca
sa initieze conexiunea cu o alta masina este client, masina la care se conecteaza este
server.
Orice sistem Linux poate fi client si server PPP, uneori in acelasi timp daca sint
disponibile mai multe porturi seriale(eventual si modemuri). Din punct de vedere al
protocolului PPP, odata ce conexiunea a fost stabilita, nu exista nici o diferenta reala intre
client si server.
Forma cea mai des intilnita de utilizare a protocolului PPP este cea de client, si anume
pentru a conecta un sistem la Internet; orice sistem de operare modern (Windows
9x,Me,2000,XP, Linux, Mac OS etc.) dispune de o implementare de client PPP, absolut
necesara conectarii prin dial-up la Internet.
Informatii necesare pentru configurarea clientului PPP in vederea conectarii la un server
PPP
-
numarul de telefon al serverului; in multe situatii apelul se face dintr-o firma ale carei
legaturi telefonice trec printr-o centrala locala PABX, ceea ce inseamna ca nu trebuie
uitat numarul care da tonul de exterior de obicei 0 sau 9 - , ceea ce inseamna ca
trebuie format 0,123456 pentru a apela numarul 123456
serverul poate utiliza adrese IP statice sau dinamice. In cazul utilizarii adreselor statice
este necesara cunoasterea numarului IP al serverului, adresele IP; in general se utilizeaza
adrese IP dinamice, ceea ce poate afecta
4.2. Aspecte
industriale
4.2.1.
O conexiune dialup tipica poate fi descrisa conform procesului din figura alaturata
Mecanismul este foarte simplu: clientul PPP formeaza numarul serverului, acesta
raspunde, are loc autentificarea partilor, apoise stabileste conexiunea PPP si, peste ea,
protocolul TCP/IP.
Apare o problema in acest caz, oricine poate (teoretic) apela serverul PPP si intra in
sistem. Mecanismele de autentificare a conexiunii PPP , respectiv protocoalele de genul
PAP sau CHAP, nu ofera o protectie suficienta contra incercarilor neautorizate de intrare
in sistem.
Pentru securizarea suplimentara a unei conexiuni dialup se pot folosi diverse metode.
O prima metoda ar fi recunoasterea numarului apelant si acceptarea sau rejectarea in
functie de acesta a apelului. Procedura functioneaza in cazul in care modemul suporta
protocolul CLIP (Caller Line Identification) iar softul (sistemul de operare ) este capabil
sa utilizeze acest protocol. Sistemul de operare Linux poate implementa acest mecanism,
deoarece programul responsabil cu gestionarea modemului mgetty poate fi instruit sa
utilizeze o lista de numere de telefon carora li se permite sau interzice accesul in sistem.
Aceasta lista este stocata in fisierul dialin.config din directorul /etc/mgetty+sendfax si are
structura urmatoare:
Nr_de_telefon_permis
Nr_de_telefon_permis
Nr_de_telefon_permis
...
!Nr_de_telefon_respins
!Nr_de_telefon_respins
!Nr_de_telefon_respins
...
Semnul exclamarii in fata unui numar de telefon semnifica faptul ca apelul de la acel
numar va fi rejectat. Se poate folosi la sfirsitul listei indicatorul global all, atit cu sensul
de acceptare cit si pentru rejectare. De exemplu, daca dorim acceptarea apelurilor de la
numerele +40722123456 si
+40214116675 si rejectarea apelurilor de la orice alt numar trebuie folosit urmatorul
fisier dialin.config
+40722123456
+40214116675
!all
In aceste conditii s-ar parea ca nu se pot folosi cartele GSM prepaid pentru serverul PPP,
cu toate ca acestea prezinta avantaje evidente (costuri mult mai reduse, in cazul
pierderii/furtului cartelei se poate pierde cel mult creditul de pe aceasta). Exista totusi o
solutie pentru a utiliza cardurile prepaid, mai complicata, dar care ofera un plus de
securitate sistemului procedeul Callback.
4.2.2.
Performanta (viteza) este cel mai important aspect al sistemului, dau se poate accepta
o performanta ceva mai scazuta in schimbul unui cod mai redus sau al utilizarii mai
eficiente a dispozitivului de memorare ?
ext2 este sistemul de fisiere traditional in sistemele desktop si server Linux. Este
rapid, prezinta multe facilitati si utilizeaza eficient spatiul pe disc, dar necesita o
cantitate destul de mare de cod. Prezinta insa un mare dezavantaj pentru un sistem
embedded daca are loc o cadere de tensiune inainte ca sistemul de fisiere ext2 sa
fi fost demontat integritatea datelor de pe disc poate fi afectata (disk corruption)
astfel ca la repornirea sistemului trebuie neaparat efectuata verificarea sitemului
de fisiere, operatie mare consumatoare de timp in general.
In sistemele embedded este obisnuita accesarea unei zone de memorie print intefata unui
sistem de fisiere. Sistemul de operare Linux ofera mai multe cai de realizare a acestui
lucru. Cel mai des intilnit este reprezentat de transformarea unei zone de memorie intr-un
dipozitiv bloc si apoi montarea peste acesta a unui sistem normal de fisiere (de examplu
ext2). Acest lucru se realizeaza activind optiunea `RAM disk support'
(CONFIG_BLK_DEV_RAM), si specificind marimea implicita a fiecarui disc RAM.
Acest lucru ofera si facilitatea initializarii continutului discului RAM pe baza unei
imagini a sistemului comprimat de fisiere la punerea in functiune a sistemului.(trebuie
activata optiunea `Initial RAM disk (initrd) support' (CONFIG_BLK_DEV_INITRD) si
furnizati nucleului citiva parametri pentru a sti in ce loc din memorie este plasata
imaginea)
Desi este un lucru obisnuit utilizarea sistemelor de fisiere ext2 sau minix peste un disc
RAM, daca nu este necesara scrierea in fisiere poate fi folosit mai eficient sistemul
`Compressed ROM file system' (CONFIG_CRAMFS). Fiind read-only si avind citeva
restrictii legate de marimea fisierelor si a sistemului de fisiere in general, sistemul
CRAMFS utilizeaza foarte putina memorie pentru metadatele fisierelor, ba mai mult, este
capabil de compresie a datelor economisind si mai mult spatiu.
Alt mod de a pastra un sistem de fisiere in intregime in memorie este utilizarea tmpfs
(trebuie activata optiunea `Virtual memory file system support' (CONFIG_TMPFS)).
Acest mod de lucru are avantajul ca sistemul de fisiere se va extinde sau restringe in
functie de continut, in timp ce un disc RAM are dimensiune fixa ce trebuie precizata la
crearea acestuia.
Flash File SystemsSisteme de fisiere pentru memoria Flash
fisiere este read-only (prima varianta) sau read/write dar volatila (in cazul versiunii cu
disc RAM ). In multe situatii acest aspect este un avantaj daca apar date corupte in
sistemul de fisiere prin resetarea sistemului se revine la starea corecta. Tehnica de mai
sus nu mai poate fi folosita insa daca sistemul de fisiere trebuie sa fie actualizat pe teren.
Cel mai bun mod de a avea in memoria Flash un sistem de fisiere cu capabilitati de
scriere intr-un sistem embedded Linux este de a utiliza Journaling Flash File System
JFFS2. Acest sistem de fisiere utilizeaza tehnici de jurnalizare similare celor folosite de
sisteme de fisiere de inalta performanta ca ext3. Intrucit jurnalizarea adauga toate
modificarile la log-ul sistemului de fisiere, nu este necesara actualizarea datelor in locul
in care sint plasate, ceea ce este ideal pentru Flash. JFFS2 este de asemenea capabil sa
comprime datele, utilizind astfel foarte eficient spatiul disponibil.
JFFS2 utilizeaza interfata MTD Flash in loc sa se plaseze peste interfata standard a
dipozitivelor cu acces bloc. Acest lucru da vizibilitate caracteristicilor Flash si permite o
operare mai eficienta a memoriilor Flash, de exemplu prin abilitatea de a scrie la o
granularitate mai fina decit un bloc intreg de memorie si prin efectuarea procesului de
`wear leveling' incercarea de a scrie in zone de memorie care au mai putine cicluri de
stergere-scriere, uniformizind astfel numarul de scrieri in celulele de memorie - , ce
imbunatateste performantele la scriere si prelungeste viata memoriei Flash.
Principalele dezavantaje ale utilizari sistemului de fisiere sint legate de timp. La pornire
sistemul trebuie sa scaneze memoria Flash si sa-si cosntruiasca tabelele de stari, proces ce
poate lua timp. De asemenea, sistemul trebuie sa stearga periodic sectoare Flash, ceea ce
poate lua citeva secunde, iar in timpul acestui proces accesul la sistemul de fisiere este
blocat. Acesta problema poate fi rezolvata totusi prin utilizarea unui proces sau fir de
executie buffer, decuplat de partea de timp real a sistemului.
Tehnologia Flash ofera de asemenea interfata Flash Translation Layer (FTL). Aceasta
este o tehnica de mapare a unui sistem de fisiere orientat bloc intr-un dispozitiv Flash.
Desi pare foarte utila la prima vedere, interfata FTL nu ofera wear leveling si efectueaza
mai multe cicluri de stergere incercind sa emuleze comportamentul unui disc magnetic.
In plus, pot exista probleme cu patentele in anumite tari. Din aceste motive nu se
recomanda in practica FTL ci numai JFFS2.
Dupa cum s-a remarcat anterior, exista un numar mare de optiuni pentru sistemul de
fisiere, fiecare cu avantajele si dezavantajele proprii. Oricum, tinind cont ca este posibil
sa se monteze mai multe sisteme de fisiere aproape oriunde in ierarhia directoarelor, se
poate obtine o structura utilizator ce corespunde tuturor cerintelor.
Un exemplu tipic ar fi un sistem ce nu are nevoie de acces in scriere la fisiere exceptind
citeva fisiere de configurare ce trebuie sa fie scrise si salvate(nevolatile) si citeva fisiere
temporare ce pot fi regenerate la pornirea sistemului. In acest caz sistemul de fisiere root
poate fi CramFs (comprimat si acces doar in citire), la care se adauga o partitie JFFS2 de
dimensiuni reduse pentru directorul /etc/config ce contine fisierele de configurare a
sistemului si o partitie TmpFs montata in punctul /tmp pentru fisierele temporare.