Uporaba logičnih vezij
Transcription
Uporaba logičnih vezij
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 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 Mikroračunalnik Sl. 3 Mikroračunalnik Mikrorač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 V/I naprave. Sl. 4 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 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 shranjevanje podatkov pred in po operaciji • Vmesnika z vodili (bus) za povezovanje z zunanjimi pomnilnimi in V/I vezji Sl. 7 Izvajanje ukazov v mikroračunalniku Ko teč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. App Disk RAM OS App Cache CPU App Bus To 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 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 preko V/I vmesnikov na izhodne naprave. Sl. 10 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 Sl. 11 – 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 Elektronika 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 z napajalnikom, ciljno strojno opremo, ki jo krmili in osebnim računalnikom, ki omogoča nadzor in programiranje mikrokontrolerja Sl. 16 Primer mikrokontrolerja Mikrokontroler na eni plošči tiskanega vezja potrebuje za delovanje poleg napajalnika še dodatna vezja za povezovanje z drugimi napravami v obliki vmesnikov (RS-232, RS422/485). Mikrokontroler ž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 sistemi (Embedded system processor) Kombinacija logičnih vrat Analogni I/O Procesorsko jedro Pomnilnik Sodobni vgrajeni sistemi (Embedded systems) so obič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 vezij teč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 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 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 Primer PAL namenskega vezja Sl. 25 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 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 Primer CPLD vezja 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/ 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) • Za zahtevnejša in bolj obsežna vezja se uporabljajo zmogljivejš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. 30 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 za povezovanje med bloki • vhodno-izhodni bloki Sl. 31 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 SRAM-a, itd. • Povezave na proizvajalce mehkih procesorskih jeder – http://www.1-core.com/library/digital/soft-cpu-cores/ – http://en.wikipedia.org/wiki/Soft_microprocessor – http://www.altera.com/products/ip/processors/nios2/ni2-index.html najbolj razširjeno programirljivo procesorsko jedro Sl. 32 FPGA (Field Programmable Gate Array) Program FPGA vezja, ki povezuje logične celice, lahko temelji na: –Statičnem RAM-u, ki drž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 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. Sl. 34 Primerjava CPLD in FPGA vezij CPLD FPGA Majhna do velika gostota Srednja do velika gostota (bolj zmogljiva in obsežna vezja) Manj fleksibilna mrežno organizirana arhitektura Fleksibilna arhitektura z možnostjo različnih povezav in razširljiva na robovih Zgrajen iz večjih blokov Zgrajen iz veliko manjših blokov-celic, v zadnjem času tudi iz večjih Osnova EPROM, EEPROM, FLASH Osnova SRAM, antifuse Manj zahtevno načrtovanje Zahtevnejše načrtovanje Možnost reprogramiranja Možnost reprogramiranja pri SRAM izvedbi Možnost programiranja v sistemu Ni možnosti programiranja v sistemu Sl. 35 Uporaba predvsem za krmilna vezja 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 programskimi pristopi: - z običajno bločno shemo - opisno s programskim jezikom, podobnim C - z uporabo CAD načrtovalskih orodij (v industriji) in hardwaresko 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 med seboj, izvedemo sintezo vezja in simulacijo. Povezave na VHDL: http://www.vhdlonline.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 Programiranje CPLD vezij Programator CPLD vezij povežemo z osebnim računalnikom in izvedemo prenos programa v vezje, kjer se vpiše pri povišani napetosti. Veliko CPLD vezij omogoča tako imenovano “In Circuit Programming”, to je programiranje v obstoječ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 tudi cele 32-bitne procesorje s pomnilniki in vhodno-izhodnimi vmesniki • Postopek od načrtovanja do izdelave je drag, zamuden in ne dopušč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 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 DAC ADC 1010 Sl. 43 1001 OUTPUT 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 Uporaba DSP Sl. 46 Tipičen DSP sistem Pomnilnik z DSP procesor z Pomnilnik z Pretvorniki (opcija) ADC DSP z Analog to Digital z Digital to Analog z Komunikacijski vmesniki DAC V/I Sl. 47 z Serijski z Paralelni Arhitektura DSP procesorjev • Arhitektura DSP procesorjev je prilagojena hitremu zajemu in obdelavi signalov, zato ima loč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 A SHRANJEN PROGRAM IN PODATKI VHOD/ IZHOD D CPU A = ADDRESS (NASLOV) D = DATA (PODATKI) Harvardska arhitektura A SHRANJEN PROGRAM CPU D Sl. 49 A VHOD/ IZHOD SHRANJENI PODATKI D Posebnosti DSP procesorjev • Ukazi so prilagojeni procesiranju podatkov • Celoten ukaz se izvede v enem ciklu-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 vejico • Programske zanke se izvajajo izredno hitro zaradi prilagojene strojne opreme • Imajo posebne vhodno-izhodne ukaze Sl. 50 Tipična DSP arhitektura Sl. 51 Primer arhitekture DSP procesorja TMS320C31 CACHE 64 x 32 RAM 0 1K x 32 RAM 1 1K x 32 A23-A0 7 SEPARATE BUSES ( P / D ) DMA MULTIPLIER ADDER FLOATING POINT ARITHMETIC LOGIC UNIT MULTIPLEXER Sl. 52 P = PROGRAM PERIPHERAL BUS (P\D) D31-D0 D = DATA SERIAL PORT 0 TIMER 0 TIMER 1 Uporaba DSP v mobilnem telefonu Sl. 53 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 Lowest Cost Efficiency Control Systems Motor Control Storage Digital Ctrl Systems Best MIPS Wireless phones Internet audio players Digital still cameras Modems Telephony VoIP C6000 Best Performance & Ease-of-Use Sl. 55 Multi Channel and Multi Function App's Comm. Infrastructure Wireless Base-stations Audio and Speech Processing Imaging Multi-media Servers Video C6000 Roadmap Floating Point Performance Multi-core C64x™ DSP 1.1 GHz 2nd Generation (Fixed Point) C64x™ DSP General Purpose e est anc h g Hi rform Pe 1st Generation C6203 C6204 C6202 C6201 C6701 Sl. 56 C6414 C6211 C6711 C6415 C6411 C62x™ C6713 C6205 C67x™ C6712 C6416 Media Gateway 3G Wireless Infrastructure Fixed-point Floating-point Time Pomen oznak DSP vezja TMS320C6000 Sl. 57 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 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 stikal, svetlobnih zaves, inkrementalnih dajalnikov, itd. Na osnovi vrednosti signalov preklaplja določene aktuatorje (izvršilne člene) in sporoča o stanjih v procesu Sl. 60 Vhodi in izhodi (I/O – Input/Output) • Vse zunanje naprave priključ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 Izvajanje programa • Program prebere vhode in jih shrani v pomnilnik • Na osnovi stanj vhodov program obdela podatke in jih shrani v pomnilnik kot izhodna stanja • Iz pomnilnika se izhodna stanja preslikajo na izhode Sl. 63 Scan time 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 krmilniki združujejo vse komponente krmilnika v enem ohišju, zato jim pravimo kompaktni krmilniki. Združujejo: • Vhodne in izhodne priključ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 letev Module med seboj povezuje interno vodilo Obvezni moduli so: •Napajalnik •Ob napajalniku je centralna procesna enota CPE •Ena ali več vhodnoizhodnih 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 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 Programiranje PLK Po IEC standardu 61131 obstaja 5 različnih načinov programiranja 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 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