330 likes | 487 Views
Informatica Industriala. Cursul 7 Componente utilizate in sistemele digitale de control: Microcontroloare si procesoare digitale de semnal. Microcontroloare. procesoare specializate pentru aplicatii de control
E N D
Informatica Industriala Cursul 7 Componente utilizate in sistemele digitale de control: Microcontroloare si procesoare digitale de semnal
Microcontroloare • procesoare specializate pentru aplicatii de control • circuite VLSI care incorporeaza aproape toate componentele unui micro-sistem de calcul: • UCP • memorie de program • memorie de date • sistem de intreruperi • porturi de intrare/iesire digitale • convertoare analog-numerice si numeric analogice • interfete de comunicatie si de retea • 55% din procesoarele vandute in lume au fost microcontroloare de 8 biti (wikipedia) – 4 miliarde
dimensiuni reduse (număr redus de pini) consum mic timp predefinit de execuţie a instrucţiunilor arhitectură tip Harvard: separarea memoriei de program de memoria de date sistem de întreruperi simplu, adaptat componentelor periferice (contoare, interfeţe, etc.) conţinute în circuit cost redus frecvenţe de lucru relativ mici (10-30 MHz) performanţe de calcul modeste set limitat de instrucţiuni în limbaj maşină limitări în ceea ce priveşte capacitatea de memorare restricţii privind posibilităţile de extindere a sistemului Microcontroloare (µC) - caracteristici:
Familii de µC • Exemple: • PIC12Fxx, PIC16Fxx, PIC18FXX, PIC 32Fxx • ARM • AVR • MIPS • Intel 8051/31, Intel 8748 • O familie este caracterizata prin: • aceeasi arhitectura de baza • acelasi set de instructiuni • Aceleasi instrumente de dezvoltare a programelor • Diferente intre variante ale aceleiasi familii: • Capacitate de memorie (pentru date si pentru program) • Tipuri de interfete incluse • Numar de porturi, contoare,
întreruperi Sistem de întreruperi Timer 2 ROM RAM Timer 1 WD 4k-32 ko 128-512 o Timer 0 UCP PWM Canal serial CNA CAN Generator de ceas Port I/E *4 Reset Ieşire PWM Intrări analogice Ieşire analogică 32 linii de I/E RS 232 Schema bloc a familiei de microcontroloare I 80C31
Principalele componente ale microcontrolorului • UCP – unitatea centrală de prelucrare – asigură execuţia instrucţiunilor unui program • ROM – memoria nevolatilă – conţine programul de aplicaţie şi eventualele constante de program; memoria poate fi de tip PROM (se înscrie o singură dată), EPROM (cu posibilitate de înscriere multiplă, off-line) sau EEPROM (cu posibilitate de scriere în timpul funcţionării programului); dimensiunea memoriei variază funcţie de varianta constructivă de la 0 la 32ko; ea se poate extinde prin adăugarea unei memorii externe • RAM – memoria de date – păstrează variabilele programului şi stiva; în prima parte a memoriei locaţiile pot fi adresate ca registre interne (4 seturi a câte 8 registre); o anumită zonă de memorie poate fi adresată la nivel de bit; capacitatea memoriei depinde de varianta constructivă (128-512 octeţi); memoria RAM internă poate fi extinsă cu o memorie RAM externă • sistemul de întreruperi – gestionează cererile interne şi externe de întrerupere; sursele de întrerupere sunt: 2 linii externe de întrerupere, canal serial (recepţie sau transmisie de caractere) şi contoare (timer 0,1,2) • generatorul de ceas – generează semnalul de ceas necesar pentru funcţionarea UCP şi furnizează o frecvenţă de referinţă pentru contoarele interne şi canalul serial • porturile de intrare/ieşire – permit achiziţia sau generarea de semnale digitale; sunt 4 sau 6 porturi a câte 8 semnale; un semnal se configurează ca intrare, ieşire sau semnal bidirecţional
Principalele componente ale microcontrolorului • canalul serial – implementează protocolul de comunicaţie RS 232 (canal serial asincron, bidirecţional pe caracter); la unele variante există un canal serial suplimentar care implementează protocolul I2C; acest protocol permite construirea unei magistrale seriale în locul celei paralele clasice • timer 0, 1, 2 – set de 2 sau 3 contoare utilizabile pentru generarea periodică a unor întreruperi (ex.: pentru ceas de timp-real), pentru numărarea unor evenimente externe sau pentru generarea frecvenţei de transmisie serială • CNA – convertor numeric/analogic – folosit pentru generarea unui semnal analogic; această componentă este prezentă numai la variantele mai complexe • CAN – convertor analog/numeric – folosit pentru achiziţia unor semnale analogice; pot fi citite prin multiplexare până la 8 intrări analogice • WD – contor Watch-Dog – utilizat pentru detectarea funcţionării anormale a UCP; dacă contorul nu este reiniţializat periodic, se consideră o anomalie şi ieşirea contorului va provoca o reiniţializare a procesorului • PWM – ieşire cu modulaţie în lăţime de impuls (Puls Width Modulation) – permite generarea unei comenzi asemănătoare unui semnal analogic, folosindu-se o ieşire digitală; prin aplicarea unui filtru trece jos se obţine un semnal analogic proporţional cu factorul de umplere al impulsului generat
externă internă FFh 7Fh 0 SFR 128o R0 R1 ... R7 FFFFh Blocul 3 Blocul 2 Blocul 1 Blocul 0 128o 0 64ko Memoria date (RAM) FFFFh externă (max 64ko) Memoria de program PROM, EPROM, EEPROM internă (0-8ko) Harta memoriei interne şi externe 0 Accesarea memoriei si a porturilor • Registrele interne fac parte din spatiul de memorie destinat datelor • Porturile de intrare/iesire, inclusiv cele de control si stare ocupa un loc predefinit din spatiul de memorie (SFR – Special Function Register)
Moduri de functionare • funcţionare normală (eng. normal mode) – toate componentele sunt funcţionale, consumul este maxim • aşteptare (eng. idle mode) – generatorul de ceas, contoarele şi memoria RAM sunt alimentate, restul componentelor sunt decuplate; consumul este mediu; procesorul este scos din această stare printr-un semnal de reset sau un semnal de întrerupere • deconectare (eng. power-down mode) – memoria RAM este singura componentă alimentată, restul fiind decuplate; tensiunea minimă admisibilă este de 3V, iar consumul este extrem de mic (comparabil cu curentul de descărcare naturală a unei baterii)
Setul de instructiuni – structura UCP • UCP are arhitectura pe 8 biti de tip Harvard (memorie de date si de program separate) • Set simplu de instructiuni • Instructiuni relativ simple • Instructiunile nu fac distinctie intre locatii de memorie si porturi – spatiu comun de adresare • Adresarea memoriei RAM externe si a memoriei de program se face indirect prin registru poantor DPTR (Data Pointer) • La 12MHz o instructiune se executa in 1 sau 2 µs • Timpul de executie a unui program se poate calcula prin numararea instructiunilor
Microcontroloare Microchip:PIC12xx, PIC16xx, PIC18xx, PIC32Fxx www.microchip.com Alegerea unei variante de microcontrolor http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1002&mid=10&lang=en&pageId=74
Exemplu: PIC16F87x (876,877, 873) • Caracteristici: • Structura pe 8 biti (date de 8 biti) • Instructiuni de 14 biti • Arhitectura Harvard, de tip RISC • Are numai 35 de instructiuni • Capacitate de stocare: • 8k x 14 Flash EPROM (memorie de program) • 256x8 EEPROM • 368x8 SRAM (memorie de date) • Interfata seriala UART si SPI • Convertor analog-digital de 10 biti cu 8 canale multiplexate • 3 timere din care 2 de 8 biti si unul de 16 biti • PSP – parallel Slave Port • WDT – watch-dog Timer • CCM (Capture Compare Module) si PWM • Programabil si depanabil prin doua fire (serial); ICD – in circuit debuger • Incapsulare: 28,40 sau 44 pini
Controlul unui port de intrare/iesire • Porturi digitale: • PORTA • PORTB • PORTC • PORTD • PORTE • PORTA – port de date • TRISA – registrul de validare a iesirii • TRISAi =1 => PORTAi – intrare • Tranzistoarele de iesire sunt in inalta impedanta • TRISAi =0 => PORTAi – iesire • Pinul de iesire va avea starea bistabilului de iesire al portului A
Caracteristici comune pentru diferitele variante de microcontroloare: • integrarea într-un singur circuit a componentelor necesare pentru o aplicaţie simplă de control • arhitectură Harvard, care presupune separarea memoriei de program de memoria de date; scopul urmărit este protejarea zonei de program şi creşterea vitezei de transfer • mai multe variante constructive, care se adaptează mai bine la necesităţile unei aplicaţii concrete • set de instrucţiuni simplu, cu instrucţiuni executate într-un timp bine definit; scopul urmărit este creşterea gradului de determinism şi posibilitatea evaluării timpului de procesare a datelor, încă din faza de proiectare • seturi multiple de registre interne, utile pentru transferul rapid de date şi pentru comutarea rapidă de context • adresarea porturilor de intrare/ieşire ca locaţii de memorie pentru a permite un acces direct şi rapid la semnalele de intrare şi de ieşire • mai multe moduri speciale de lucru pentru un consum minim • conţin componente tipice pentru aplicaţiile de control: convertoare de semnal, generator PWM, numărătoare de impulsuri, detector de funcţionare anormală (watch-dog), etc.
Procesoare digitale de semnal (DSP – Digital Signal Processors) • Procesoare specializate pentru aplicatii in care domina operatiile de prelucrare a semnalelor • Necesitatea: • procesoarele uzuale nu satisfac cerintele de viteza pentru semnale de frecventa mai mare • schemele analogice au limitari de performanta, de complexitate • Avantaje ale procesarii digitale a semnalelor: • imunitate mai mare la zgomot (datorită diferenţei relativ mari între cele două stări logice, zero şi unu) • precizie mai mare • rezultatul prelucrării nu depinde de variaţiile de mediu (temperatură, umiditate) sau de variaţii ale tensiunilor de alimentare • pot fi implementate procedee complexe de prelucrare (exemplu: filtre cu un număr mare de poli), a căror implementare analogică este dificilă sau chiar imposibilă datorită preciziei limitate a componentelor • repetabilitatea în timp a procedeelor de prelucrare • modificarea procedeului de prelucrare nu implică modificarea schemei hardware (modificarea se face prin rescrierea programului de prelucrare)
Operatii specifice de prelucrare a semnalelor • Tipuri de operatii: • filtrare, amplificare, atenuare • convolutie • transformate: Fourier, Laplaze, Z • Din punct de vedere matematic: • integrala de convolutie intre semnalul de prelucrat si functia de prelucrare + y(t)= f()x(t-)d - Unde: -x(t) – functia de intrare -y(t) – functia de iesire -f(t) – functia de transformare (prelucrare)
In domeniul digital + y(nT)=f(kT)* x(nT-kT) k=- unde: - y(nT) – semnalul discret de ieşire (eşantionul n) - x(nT) – semnalul discret de intrare - f(kT) – funcţia discretă de transformare - T – perioada de esantionare • interpretare: iesirea y la momentul nT este o suma ponderata a intrarii x la momente in jurul momentului nT • functia de transformare f are valori diferite de 0 in jurul originii (k=0) • practic, suma de convolutie are un numar finit de termeni • daca T se considera unitatea de timp atunci se poate omite
Exemple: • Filtru “trece jos” – mediere, eliminare zgomote y(n) =(1/3)*[x(n-1)+x(n) +x(n+1)] – media aritmetica a intrarilor din jurul momentului n 1/3 pt. k=-1, 0, 1 f(k) = 0 in rest • Filtru “trece sus” – gradient y(n) =x(n)-x(n-1) – diferenta intre doua valori consecutive ale intrarii 1 pt. k=0 f(k) = -1 pt. k=-1 0 in rest
Magistrala de program Magistrala de date 16 biţi Deplasare MUX Multiplicator paralel 32 biţi Deplasare MUX UAL Acumulator Deplasare Caracteristici arhitecturale ale procesoarelor de semnal • asigura executia in timpul cel mai scurt a sumei de convolutie • Caracteristici arhitecturale: • existenta unei Unitatea de multiplicare şi acumulare repetitivă (eng. MAC – Multiply and Accumulate)
Caracteristici arhitecturale: • Instrucţiuni complexe de multiplicare şi acumulare • mai multe variante posibile • Magistrale interne multiple • magistrala de date • magistrala de cod • Memorie internă pentru date şi pentru program • arhitectura Harvard • Seturi multiple de registre interne • timp de acces mai bun • instructiuni mai scurte • Moduri de adresare orientate pe şiruri • adresare indexata (cu incremetarea automata a indecsilor) • adresare circulara – buffer circular
Structura interna a unui procesor de semnal (exemplu TMS320C25) Magistrala de program Controlor de magistrală PC Comenzi Mem. de program ROM Stiva Adrese Date Reg. spec Magistrala de date AR0-7 DP ARP MAC B1 B0 RAM RAM B2 RAM
Componentele procesorului TMS320C25 • RAM – blocuri de memorie RAM: • B0 - 256x16 biţi – memorie pentru date şi program; • B1 - 256x16 biţi – memorie pentru date • B2 - 32x16 biţi – memorie pentru date • ROM – memoria internă pentru program (memorie nevolatilă) • MAC – modul de multiplicare şi adunare • AR0-7- registre auxiliare (registre generale) • ARP – indicator către registru auxiliar • DP – indicator de domeniu • PC – numărător de instrucţiuni (Program Counter)
Familii de procesoare de semnal: • procesoare pe 16 biţi în virgulă fixă: TMS320C10, TMS320C20 şi TMS320C50 • procesoare pe 32 de biţi în virgulă flotantă: TMS320C30 şi TMS320C40 • arhitectură multiprocesor orientată către aplicaţii multimedia: TMS320C80
Aplicatii ale procesoarelor de semnal • in domeniul industrial: • acţionări electrice şi controlul motoarelor • instrumente de măsură şi analiză • spectrometre • analizoare de vibratii • aparate de masura complexe • Telecomunicatii • centrale telefonice • filtrare, codare/decodare on-line • telefonie mobila • modemuri Divertisment • instrumente muzicale, • jucării electronice • sintetizatoare de sunet, efecte speciale • Aplicatii grafice • acceleratoare grafice 3D, • prelucrarea primară şi recunoaşterea imaginilor,
Calculatoare de proces • sisteme de calcul cu caracteristici adecvate mediului industrial: • dimensiuni si forme specifice • fiabilitate ridicata, toleranta la defecte • rezistente la socuri mecanice, vibratii • tolerante la variatii de temperatura, umiditate • tolerant la personal necalificat • tolerant la influente electromagnetice • Touch-screen, butoane functionale
Caracteristici – calculatoare de proces • structură compactă, modularizată, de dimensiuni minime • robusteţe şi fiabilitate ridicată obţinute prin componente mecanice solide, conectori rezistenţi la vibraţii, praf şi coroziune, componente electronice testate în condiţii de mediu extreme • interfaţă utilizator adaptată funcţiei pe care o îndeplineşte şi care rezistă în mediile industriale (taste funcţionale, tastatură protejată la praf şi umiditate, touch-screen, afişaj LCD, dispozitive de navigare fără componente mecanice, ecran protector rezistent la şocuri, etc.) • memorii externe pe suport semiconductor (EEPROM, FLASH, CMOS) în locul celor magnetice şi optice care au anduranţă mică în prezenţa prafului industrial şi a vibraţiilor • prezenţa unor interfeţe pentru adaptarea semnalelor digitale şi analogice provenite de la procesul controlat; în multe cazuri se impune izolarea galvanică a acestor semnale de partea de calculator propriu-zis • se înlocuieşte structura “placă de bază şi plăci de extensie” tipică pentru calculatoarele de birou, cu o structură alcătuită dintr-un set de conectori (“fund de sertar”) şi plăci funcţionale, inclusiv placă procesor; o astfel de structură permite înlocuirea şi reactualizarea (up-grade-ul) diferitelor componente, chiar şi a plăcii de procesor
sisteme modulare PC/104 PLC (Programable Logic Controller)– Programatoare logice programabile Alte sisteme de calcul industriale • regulatoare PID
PLC • control secvential • logica binara – inlocuitor pentru schemele de interconditionare cu relee • programare (standard IEC 61131 ): • Ladder diagram (LD), graphical • Function block diagram (FBD), graphical • Structured text (ST), textual – limbaj de nivel inalt • Instruction list (IL), textual – tip asamblare • Sequential function chart (SFC ) – programare concurenta
Lader Diagram (LD) Function Block Diagram (FBD) S = X AND ( Y OR Z ) ----[ ]---------|--[ ]--|------( ) X | Y | S | | |--[ ]--| Z --+----[ ]--+----[\]----( ) | start | stop run | | +----[ ]-- + run -------[ ]--------------( ) run motor FTJ Amp. FTS Logica Start/Stop
Sisteme de stocare a datelor (memorii) • Obiective: • stocarea programului de aplicatie • stocarea datelor de proces: • parametri de proces • starea procesului • Limitari si restrictii: • dimensiuni reduse: • pentru program 1k-64k • pentru date: 128-512 octeti • se evita folosirea memoriilor externe pe suport magnetic sau optic (cele care au componete mecanice in miscare) • se evita utilizarea memoriilor cache sau a memoriilor virtuale deoarece introduc nedeterminism
Memorii – limitari si restrictii (cont.) • utilizarea memoriilor nevolatile – pentru evitarea pierderii datelor si a programelor • PROM, EPROM – pentru program • EEPROM, Flash – pentru date nevolatile (scrieri repetate) • memorii CMOS cu baterie - pastrarea datelor la tensiuni mici (1,5V) si consum infim • utilizarea memoriilor RAM statice pt. simplitate si pt. viteza • circuite specializate pentru detectarea caderii de tensiune si comutarea memoriei in regim de stocare (ex: MAX 6340, MAX 6381 ) • pentru microcontroloare, extensii de memorie pe canal serial (I2C) • memorii seriale • memorii externe pe suport semiconductor (ex. memory stick)