Uporaba logičnih vezij Mikroprocesorji Mikroračunalniki Mikrokontrolerji Namenska vezja DSP PLC
Logična vezja Logična vezja delimo na: Standardna integrirana vezja različnih nih integracij SSI, MSI, LSI Mikroprocesorji in mikrokontrolerji Programabilna logika FPLD (Field Programmable Logic Device) FPGA (Field Programmable Gate Array) CPLD (Complex Programmable Logic Device) ASIC (Application Specific Integrated Circuit) Gate Array Standardne celice (Standard Cells) Sl. 2
Sl. 3 Mikroračunalnik
Mikroračunalnik unalnik je zasnovan na von Neumanovem modelu računalnika in ga sestavljajo: CPE (CPU) procesor oz. centralna procesna enota Pomnilnik za ukaze (program) in podatke (data) Vhodno/izhodni vmesniki (Input/output) za povezovanje z okolico, iz katere dobiva vhodne podatke in vanjo pošilja obdelane podatke. Nanje se priključujejo ujejo V/I naprave. Sl. 4 Mikroračunalnik
Mikroprocesorji CPE (CPU) Mikroprocesor predstavlja možgane računalnika, to je CPU - centralno procesno enoto računalnika Izvaja aritmetične, logične in krmilne operacije Danes so mikroprocesorji 8, 12, 14, 16, 32, 64-bitni, pa tudi procesorji z več jedri Arhitekture procesorjev segajo od zelo preproste do zelo kompleksne in zmogljive Hitrost se meri v MHz, GHz številu milijonov, milijard ciklov v sekundi Sl. 5
Mikroprocesor CPE (CPU) Mikroprocesor je vezje visoke integracije (VLSI), ki je sestavljen iz: Krmilne enote (control unit) Aritmetične in logične enote ALE Registrov Vmesnika z vodili (bus) Sl. 6
Sl. 7 Mikroprocesor CPE (CPU) Mikroprocesor je vezje visoke integracije (VLSI), ki je sestavljen iz: Krmilne enote (control unit),, ki krmili in usklajuje delovanje vseh enot v procesorju in izven njega Aritmetične in logične enote ALE za izvajanje aritmetičnih operacij (operacij računanja) in logičnih operacij, ki delajo z logičnimi stanji (Boolova algebra) IN (AND), ALI (OR), NE (NOT), ekskluzivni ALI (XOR) Registrov za začasno asno shranjevanje podatkov pred in po operaciji Vmesnika z vodili (bus) za povezovanje z zunanjimi pomnilnimi in V/I vezji
Izvajanje ukazov v mikroračunalniku Ko teče e program, CPU stalno izvaja naslednje zaporedje korakov za vsak ukaz: Branje naslednjega ukaza iz pomnilnika/predpomnilnika (fetch cycle) Izvedba ukaza z zapisom rezultata (execute cycle) Ukazi za izvajanje in podatki se vedno nahajajo v delovnem pomnilniku računalnika. Cache CPU App OS RAM App Disk App Bus To o je vse, kar počne procesor- toda zelo velikokrat v sekundi, odvisno od takta (frekvence ure) Sl. 8
Izvajanje ukazov (Instruction( Cycle) Izvajanje programa oz. posameznega ukaza je sestavljeno iz neprestanega ponavljanja dveh korakov: Branje ukaza (Fetch( cycle) Izvršitev ukaza (Execute( cycle) Sl. 9
Princip delovanja mikroračunalnika Program in podatki se nahajajo v pomnilniku (memory) na zaporednih lokacijah. Krmilna enota s programskim števcem (program counter) skrbi, da se prevzema ukaz za ukazom iz pomnilnika in izvaja v izvršilni ilni oz. ALU enoti. Podatki se berejo iz pomnilnika ali V/I vmesnikov (I/O interface), rezultati pa se spet shranjujejo v pomnilnik ali prenašajo ajo preko V/I vmesnikov na izhodne naprave. Sl. 10
Sl. 11 Mikrokontroler (Microcontroller) Mikrokontroler (MCE, µc, MCU) je mikroračunalnik na enem samem integriranem vezju,, ki vsebuje tako CPU, pomnilnik in programirljive vhodno-izhodne vmesnike. Mikroračunalniki so načrtovani za uporabo v namenskih aplikacijah (v avtomobilih, v medicinskih napravah, telefonih, napravah v gospodinjstvu, industrijskih krmiljih, itd.), torej za krmiljenje fizičnih naprav,, za razliko od mikroprocesorjev v osebnih računalnikih, ki so namenjeni izvajanju splošnih aplikacij. Prednosti mikrokontrolerjev so predvsem: miniaturnost nizka cena majhna poraba energije
Mikrokontroler (Microcontroller) Mikrokontroler je mikroračunalnik, ki ne zahteva več veliko dodatnih vmesnikov za delovanje, tako kot Švicarski nož,, pri katerem imamo vse v enem. Tudi mikrokontroler je večnamenski in ga z dodatnimi vezji in programom prilagodimo določeni aplikaciji. Sl. 12
Mikrokontroler (Microcontroller) Na spodnji sliki je nekaj primerov mikroprocesorjev in mikrokontrolerjev, ki se razlikujejo po velikosti in zmogljivosti Sl. 13
Kje vse so vgrajeni (embedded) mikrokontrolerji? Sl. 14
Elektroni tronika v avtomobilu Več kot 30% cene avtomobila predstavlja elektronika 90% inovacij bo zasnovano na elektronskih sistemih Sodobni avtomobili imajo vgrajenih tudi po 100 mikrokontrolerjev Sl. 15
Primer mikrokontrolerja Mikrokontroler z dodatnimi vezji povežemo emo z napajalnikom, ciljno strojno opremo, ki jo krmili in osebnim računalnikom, ki omogoča a nadzor in programiranje mikrokontrolerja Sl. 16
Primer mikrokontrolerja Mikrokontroler na eni plošči tiskanega vezja potrebuje za delovanje poleg napajalnika še e dodatna vezja za povezovanje z drugimi napravami v obliki vmesnikov (RS-232, RS- 422/485). Mikrokontroler že e vsebuje vmesnik za povezavo z LCD, vzporedne vhodno/izhodne vmesnike I/O, zaporedne vmesnike SCI in SPI, časovnik in A/D pretvornik. Sl. 17
Sodobni vgrajeni procesorski sistem stemi (Embedded system processor) Kombinacija logičnih vrat Procesorsko jedro Analogni I/O Pomnilnik Sodobni vgrajeni sistemi (Embedded systems) so običajno ajno bolj zmogljivi od mikrokontrolerjev in služijo za krmiljenje zahtevnih elektronskih naprav. Delujejo v realnem času in vsebujejo kombinacijo: strojne opreme (hardware) odvisno od aplikacije v obliki plošč, mikrokontrolerjev, DSP procesorjev, ASIC vezij,, FPGA vezij, itd., ki zagotavlja dobre zmogljivosti, nizko ceno in majhno porabo programske opreme,, ki zagotavlja fleksibilnost mehanskih pretvornikov in aktuatorjev za povezavo z okoljem Sl. 18
Logična vezja Razvoj logičnih nih vezij teče e v dveh smereh: Standardna nenamenska logična vezja (standardne družine TTL, CMOS, pomnilna vezja, vmesniki, mikroprocesorji, mikrokontrolerji) Namenska logična vezja FPLD - PLA, PAL, CPLD FPGA ASIC Glavna prednost teh logičnih vezij je, da so veliko hitrejša a od mikrokontrolerjev Sl. 19
Standardna integrirana vezja IC Funkcija standardnih vezij je vnaprej določena in fiksna. Povezati moramo več različnih vezij, da sestavimo enostavno logično vezje. Vezje na sliki izvaja logično funkcijo f=ab+b c Sl. 20
Programabilna logična vezja Za programabilna logična vezja je značilno, da v procesu proizvodnje še e nimajo določene funkcije. Logično funkcijo, ki naj jo izvajajo, jim določimo v procesu programiranja. FPLD (Field Programmable Logic Device) je splošno namenski čip, ki vsebuje veliko število logičnih vrat in stikal, ki omogočajo različne povezave med vrati. Pri programiranju tako s stikali določimo funkcijo, ki naj jo vezje opravlja. Sl. 21
Programabilna logična vezja Najbolj znana programabilna vezja so PLA (Programmable Logic Array) in PAL (Programmable Array Logic). Obe vrsti vezij temeljita na kombinaciji ravnin z AND in OR logičnimi vrati. Sl. 22
Primer PLA namenskega vezja Pri PLA programabilnih logičnih vezjih izbiramo tako AND kot OR logična vrata Sl. 23
PAL namenska vezja Za PAL vezja je značilno, da so bolj enostavna od PLA, saj OR vrat ne izbiramo,, ker so fiksna Ta vezja so hitrejša in bolj enostavna za izdelavo Večina aplikacij v praksi uporablja PAL vezja Sl. 24
Sl. 25 Primer PAL namenskega vezja
CPLD programabilna logična vezja CPLD (Complex Programmable Logic Devices) Za bolj obsežna vezja v primerjavi s PLA se uporablja CPLD programabilna logika. CPLD vsebuje več blokov vezij (od 2 do več 100) podobnih PAL vezjem,, ki se povežejo ejo medsebojno in na nožice vezja s programom Vsak blok vsebuje 16 makrocelic s po približno 20 vrati S CPLD konstruiramo srednje velika logična vezja Sl. 26
Struktura CPLD programabilnih logičnih vezij Pri CPLD vezjih povezujemo s programom bloke vezij podobne PAL in vhodno/izhodne bloke Sl. 27
CPLD vezje Altera MAX 7128 ima 128 makrocelic, 3,3 V napajanje, JTAG (Joint Test Action Group) standardni priključek za testiranje in programiranje. Vezje je električno zbrisljivo in ga je možno reprogramirati. http://www.altera.com/ Primer CPLD vezja Sl. 28
Primer uporabe CPLD vezij CPLD vezje je uporabljeno na V/I kartici CPLD vezje izvaja funkcijo multipleksiranja signalov Sl. 29
FPGA (Field Programmable Gate Array) Sl. 30 Za zahtevnejša a in bolj obsežna vezja se uporabljajo zmogljivejša a vezja FPGA (Field Programmable Gate Array) Ne vsebujejo ravnin z AND in OR vrati. Namesto njih se v FPGA vezju nahaja polje logičnih elementov in programabilnih stikal za povezavo med njimi FPGA vezja so splošno namenska in so ekvivalentna več 10 milijonom logičnih vrat FPGA vezje lahko zelo hitro preprogramiramo,, da opravlja drugo funkcijo Prednosti FPGA vezij so zanesljivost, velikost, fleksibilnost in cenenost, saj niso dosti dražja od CPLD
Sl. 31 FPGA (Field Programmable Gate Array) FPGA je logično vezje za splošen namen, ki ga je potrebno sprogramirati za določeno funkcijo. Gradniki, ki sestavljajo FPGA, so: logični elementi,, ki jim programiramo npr. funkcijo množenja, pomnjenja, hitre oddajnike in sprejemnike, logične funkcije, itd. stikala v presečiščih ih za povezovanje med bloki vhodno-izhodni bloki
FPGA (Field Programmable Gate Array) FPGA lahko vsebujejo tudi fiksna (hard) ali mehka (soft-prilagodljiva) procesorska jedra FPGA danes lahko vsebuje praktično vse elemente tako kot ASIC, od hitrih sprejemnikov in oddajnikov, DSP procesorskih celic, veliko količino ino SRAM-a, itd. Povezave na proizvajalce mehkih procesorskih jeder Sl. 32 http://www.1-core.com/library/digital/soft core.com/library/digital/soft-cpu-cores/ cores/ http://en.wikipedia.org/wiki/soft_microprocessor http://www.altera.com/products/ip/processors/nios2/ni2-index.html index.html - najbolj razširjeno programirljivo procesorsko jedro
FPGA (Field Programmable Gate Array) Program FPGA vezja, ki povezuje logične celice, lahko temelji na: Statičnem RAM-u,, ki drži i vsebino, dokler je prisotno napajanje. Po izpadu napajanja je potrebno vezje ponovno sprogramirati iz serijskega pomnilnika ali procesorja Nekakšnih tranzistorskih varovalkah (fuse, antifuse),, ki jih sprogramiramo v posebnem vezju z visoko napetostjo EEPROM-u u oziroma Flash ROM-u,, ki se programira v samem ciljnem vezju in zadrži program tudi, ko ni napajanja Sl. 33
Proizvajalci FPGA vezij Glavni proizvajalci FPGA vezij so: Xilinx (SRAM) Altera (SRAM, Flash) Actel (Antifuse) Lattice (SRAM, Flash) Quicklogic (Antifuse) Atmel V oklepaju je navedena tehnologija, na osnovi katere deluje vezje. e. Sl. 34
Primerjava CPLD in FPGA vezij Sl. 35 CPLD Majhna do velika gostota Manj fleksibilna mrežno organizirana arhitektura Zgrajen iz večjih blokov Osnova EPROM, EEPROM, FLASH Manj zahtevno načrtovanje rtovanje Možnost reprogramiranja Možnost nost programiranja v sistemu Uporaba predvsem za krmilna vezja FPGA Srednja do velika gostota (bolj zmogljiva in obsežna vezja) Fleksibilna arhitektura z možnostjo različnih nih povezav in razširljiva na robovih Zgrajen iz veliko manjših blokov-celic, v zadnjem času tudi iz večjih Osnova SRAM, antifuse Zahtevnejše e načrtovanje rtovanje Možnost reprogramiranja pri SRAM izvedbi Ni možnosti programiranja v sistemu Uporaba za zahtevne zasnove z velikim pretokom podatkov
Programiranje CPLD in FPGA vezij Programiranje CPLD in FPGA vezij je zelo podobno in je možno z različnimi nimi programskimi pristopi: - z običajno bločno shemo - opisno s programskim jezikom,, podobnim C - z uporabo CAD načrtovalskih orodij (v industriji) in hardware- sko orientiranih standardnih jezikov (Hardware Description Language) VHDL v Evropi in Verilog v ZDA. Ta orodja podpirajo tudi funkcionalno in časovno simulacijo in testiranje vezij. Sl. 36
Programiranje CPLD in FPGA vezij z VHDL jezikom Primer opisa funkcije nekega logičnega modula s programskim jezikom VHDL. Bloke nato povežemo emo med seboj, izvedemo sintezo vezja in simulacijo. Povezave na VHDL: http://www.vhdl- online.de/ http://www.doulos.com/ knowhow/vhdl_designers _guide/ http://esd.cs.ucr.edu/lab s/tutorial/ Sl. 37
Programiranje CPLD vezij Razvojna plošča proizvajalca CPLD in FPGA vezij Altera, ki se uporablja za programiranje Altera MAX CPLD vezij. Sl. 38
Programator CPLD vezij povežemo emo z osebnim računalnikom in izvedemo prenos programa v vezje, kjer se vpiše e pri povišani napetosti. Programiranje CPLD vezij Veliko CPLD vezij omogoča a tako imenovano In Circuit Programming,, to je programiranje v obstoječem em vezju preko posebnih nožic, ki so namenjene prenosu programa in programiranju. Sl. 39
ASIC (Application Specific Integrated Circuit) ASIC vezje predstavlja čisto namensko integrirano vezje za določeno aplikacijo in je nespremenljivo (npr. za mobilni telefon, GPS, itd.) Sodobna ASIC vezja vključujejo ujejo tudi cele 32-bitne procesorje s pomnilniki in vhodno-izhodnimi vmesniki Postopek od načrtovanja do izdelave je drag, zamuden in ne dopušča a napak Programiranje je tudi podprto s HDL (Hardware Description Language) kot sta VHDL in Verilog V primerjavi s FPGA vezji, ki so primerna za prototipe in manjše e serije, so ASIC vezja namenjena zelo velikim serijam Sl. 40
FPGA vs. ASIC Prednosti FPGA: Hitra izdelava Možnost reprogramiranja Cenovno dostopno Velika kapaciteta Slabosti FPGA: Relativno počasno v primerjavi z ASIC Večja poraba moči Sl. 41
Primeri ASIC vezij ASIC vezje predstavlja tipičen sistem za vgradnjo (embedded) na enem vezju Sl. 42
Kaj je DSP? Analog Computer Digital Computer DSP ADC 1010 1001 DAC OUTPUT Sl. 43
DSP procesorji (Digital Signal Processor) DSP so specialni procesorji za zelo hitro obdelavo signalov v realnem času Njihova arhitektura je prilagojena za digitalno procesiranje signalov: Zajem signala z A/D pretvorbo Obdelava oziroma procesiranje signala D/A pretvorba in pošiljanje analognega signala Sl. 44
Uporaba DSP procesorjev Uporaba DSP procesorjev je zelo mnogostranska: Mobilni telefoni Hi-fi sistemi 3D grafika Trdi diski CD enote Modemi Tiskalniki Sonarji Brezžične bazne postaje Video procesiranje in prenos signalov Sl. 45
Sl. 46 Uporaba DSP
Tipičen DSP sistem stem Pomnilnik DSP procesor DSP ADC DAC Pomnilnik Pretvorniki (opcija) Analog to Digital Digital to Analog Komunikacijski vmesniki Serijski Paralelni V/I Sl. 47
Arhitektura DSP procesorjev Arhitektura DSP procesorjev je prilagojena hitremu zajemu in obdelavi signalov, zato ima ločena ena podatkovna in naslovna vodila za podatke in za ukaze (program) Harvardska arhitektura (primerjaj s von Neumanovo Arhitekturo standardnih procesorjev) Sl. 48
Primerjava klasične von Neumanove in Harvardske arhitekture von Neumanova arhitektura SHRANJEN PROGRAM IN PODATKI A D VHOD/ IZHOD CPU A = ADDRESS (NASLOV) D = DATA (PODATKI) Harvardska arhitektura A A SHRANJEN PROGRAM CPU VHOD/ IZHOD SHRANJENI PODATKI D D Sl. 49
Sl. 50 Posebnosti DSP procesorjev Ukazi so prilagojeni procesiranju podatkov Celoten ukaz se izvede v enem ciklu-urini urini periodi Več enot je združenih in delujejo vzporedno,, tako da se v enem ciklu v ALU enoti izvede več operacij istočasno (MAC Multiple ACcumulates) npr. množenje in seštevanje V enem ciklu se izvede več dostopov do pomnilnika zaradi vzporednih vodil Integrirana enota za računanje s plavajočo o vejico Programske zanke se izvajajo izredno hitro zaradi prilagojene strojne opreme Imajo posebne vhodno-izhodne ukaze
Sl. 51 Tipična DSP arhitektura
Primer arhitekture DSP procesorja TMS320C31 CACHE 64 x 32 RAM 0 1K x 32 RAM 1 1K x 32 A23-A0 D31-D0 7 SEPARATE BUSES ( P / D ) MULTIPLIER ADDER FLOATING POINT ARITHMETIC LOGIC UNIT DMA PERIPHERAL BUS (P\D) SERIAL PORT 0 TIMER 0 TIMER 1 MULTIPLEXER P = PROGRAM D = DATA Sl. 52
Sl. 53 Uporaba DSP v mobilnem telefonu
Proizvajalci DSP procesorjev Texas Instruments (TMSxxxxxx npr. TMS320F28x) Analog Devices (ADSP-xxxx npr. ADSP-218x) Motorola (DSP-xxxxx npr. DSP-560xx) Sl. 54
TMS320 družina DSP procesorjev C2000 C5000 C6000 Lowest Cost Control Systems Motor Control Storage Digital Ctrl Systems Efficiency Best MIPS Wireless phones Internet audio players Digital still cameras Modems Telephony VoIP Best Performance & Ease-of-Use Multi Channel and Multi Function App's Comm. Infrastructure Wireless Base-stations Audio and Speech Processing Imaging Multi-media Servers Video Sl. 55
C6000 Roadmap Performance 2nd Generation (Fixed Point) Multi-core C64x DSP General Purpose C6414 C6415 C64x DSP 1.1 GHz C6416 Floating Point C6201 1st Generation C6701 C6202 C6203 C6204 C6211 C6711 Highest Performance C6411 C62x C6713 C6205 C67x C6712 Media Gateway 3G Wireless Infrastructure Fixed-point Floating-point Sl. 56 Time
Sl. 57 Pomen oznak DSP vezja TMS320C6000
DSP procesorji Povezave na opise DSP procesorjev: http://www.bdti.com/products/reports_shdsp.html http://www.bores.com/courses/intro/chips/index.htm http://www.dsprelated.com/ Sl. 58
PLC (Programmable Logic Controller) PLK (Programirljiv logični krmilnik) PLK je mikroprocesorsko krmiljen sistem,, ki je programirljiv in ima program shranjen v nezbrisljivem pomnilniku PLK je krmilni element, ki sproži i delovanje stroja v tehnološkem procesu, ga nadzoruje,, nanj vpliva in ga na definiran način tudi zaključi Sl. 59
Principielna zgradba PLK PLK sprejema signale senzorjev, tipk, končnih nih stikal, svetlobnih zaves, inkrementalnih dajalnikov, itd. Na osnovi vrednosti signalov preklaplja določene ene aktuatorje (izvršilne ilne člene) in sporoča a o stanjih v procesu Sl. 60
Vhodi in izhodi (I/O Input/Output) Vse zunanje naprave priključujemo ujemo preko vhodov (tipke, stikala, senzorji,merilne naprave,...) in izhodov (luči, releji, kontaktorji, motorji, črpalke,...) Sl. 61
Izvajanje programa Uporabniški program se v PLK izvaja zaporedno ukaz za ukazom Program se ciklično izvaja- za zadnjim ukazom se ponovno izvede prvi ukaz Čas cikla (scan time) je čas, ki ga CPU porabi za izvedbo vseh ukazov. Odzivni čas PLK je odvisen od časa cikla! Sl. 62
Program prebere vhode in jih shrani v pomnilnik Izvajanje programa Na osnovi stanj vhodov program obdela podatke in jih shrani v pomnilnik kot izhodna stanja Scan time Iz pomnilnika se izhodna stanja preslikajo na izhode Sl. 63
Izvajanje programa PLK deluje s pomočjo programske in strojne opreme po principu: - Zajem - Obdelava - Izdaja Sl. 64
Izvedbe PLK krmilnikov- Kompaktni krmilnik Manjši i krmilniki združujejo ujejo vse komponente krmilnika v enem ohišju, zato jim pravimo kompaktni krmilniki. Združujejo: ujejo: Vhodne in izhodne priključke ke za analogne in digitalne signale Vmesnik za programiranje Napajalnik Sl. 65
Izvedbe PLK krmilnikov- Modularni krmilnik Pri modularnem krmilniku module montiramo na montažno no letev Module med seboj povezuje interno vodilo Obvezni moduli so: Napajalnik Ob napajalniku je centralna procesna enota CPE Ena ali več vhodno- izhodnih enot z digitalnimi vhodi/izhodi, analognimi vhodi/izhodi, časovniki, itd. Sl. 66
Izvedbe PLK krmilnikov- Industrijski PC Industrijski PC se uporablja v industrijskem okolju, kjer je prisoten prah in vibracije. Sestavljen je iz več modulov (slot), ki so med seboj povezani s PCI vodilom. Ima TFT prikazovalnik, sledno ploščico namesto miške ali zaslon občutljiv na dotik (touchscreen). Sl. 67
Hierarhija v proizvodnem procesu PLK-ji, ki krmilijo posamezne proizvodne procese, se morajo medsebojno sinhronizirati preko vodila (bus).. Vse informacije celotnega procesa se zbirajo v centralnem računalniku. Na najnižjem jem nivoju gre za krmiljenje v realnem času. V tem primeru je komunikacija med posameznimi nivoji izvedena preko Ethernet vodila. Sl. 68
Proizvajalci PLK Proizvajalci strojne opreme PLK so: Siemens Bosch Kloeckner-Moeller ABB Rockwell Mitsubishi itd. Sl. 69
Po IEC standardu 61131 obstaja 5 različnih nih načinov programiranja PLK: Programiranje PLK LD (Ladder Diagram) lestvični diagram - elemente povezujemo zaporedno in vzporedno FBD (Function Block Diagram) z uporabo funkcijskih blokov SFC (Sequential Function Chart) s koračnim nim diagramom - ko je pogoj izpolnjen, se zgodi prehod na naslednji korak ST (Structure Text) strukturiran text v višjem programskem jeziku kot je npr. C IL (Instruction List) z naborom ukazov Sl. 70