138
UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO DIPLOMSKO DELO Maribor, Januar 2011 Darjan Leskovar

Diplomsko delo - COnnecting REpositoriesV okolju LabVIEW so bile razvite funkcije, ki okolju omogočajo komunikacijo z mikrokrmilnikom. LabVIEW in mikrokrmilnik kot sistem za zajem

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

  • UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO

    DIPLOMSKO DELO

    Maribor, Januar 2011 Darjan Leskovar

  • Darjan Leskovar

    MIKROKRMILNIŠKI SISTEM ZA TESTIRANJE

    MALIH GOSPODINJSKIH APARATOV V PROIZVODNJI

    Diplomsko delo

    Maribor, Januar 2011

  • Darjan Leskovar: Diplomsko delo

    I

    Diplomsko delo visokošolskega strokovnega študijskega programa

    MIKROKRMILNIŠKI SISTEM ZA TESTIRANJE MALIH GOSPODINJSKIH APARATOV V PROIZVODNJI

    Študent: Darjan LESKOVAR Študijski program: VS ŠP Elektrotehnika Smer: Avtomatika Mentor(ica): mag. Janez Pogorelc

    Maribor, Januar 2011

  • Darjan Leskovar: Diplomsko delo

    III

    ZAHVALA Zahvaljujem se podjetju EUREL d.o.o., ki mi je dalo strokovni izziv in hvala predvsem g. Branku Benciku, ki mi je v podjetju zaupal izvedbo projekta. Hvala tudi mentorju prof. mag. Janezu Pogorelcu za pomoč in vodenje pri opravljanju diplomskega dela. Posebna zahvala velja staršem, ki so mi omogočili študij in punci Tini za razumevanje in moralno podporo.

  • Darjan Leskovar: Diplomsko delo

    IV

    MIKROKRMILNIŠKI SISTEM ZA TESTIRANJE MALIH GOSPODINJSKIH APARATOV V PROIZVODNJI

    Ključne besede: Mikrokrmilnik, MSP430, krmilje, LabVIEW, komunikacija, UART, SPI, I2C, programiranje, TUSB3410, Code Composer Studio UDK1: Povzetek V projektu je predstavljena uporaba mikrokrmilnikov družine MSP430 kot alternativnega sistema za zajem podatkov. Opisan je način povezave mikrokrmilnika z osebnim računalnikom in razvita je potrebna programska oprema. Programska oprema zajema tudi komunikacijo po I2C in SPI vodilu, s katerima mikrokrmilnik komunicira z drugimi napravami. V okolju LabVIEW so bile razvite funkcije, ki okolju omogočajo komunikacijo z mikrokrmilnikom. LabVIEW in mikrokrmilnik kot sistem za zajem podatkov je uporabljen kot osnova za krmilje testirne naprave za testiranje toasterjev.

    1 Vrstilec UDK (univerzalna decimalna klasifikacija) dobite na osnovi ključnih besed v knjižnici fakultete.

  • Darjan Leskovar: Diplomsko delo

    V

    MICROCONTROLLER SYSTEM FOR INDUSTRIAL TESTING OF HOME APPLIANCES

    Key words: Microcontroller, MSP430, control system, LabVIEW, communication, UART, SPI, I2C, programming, TUSB3410, Code Composer Studio UDK: Abstract The thesis presents the use of MSP430 microcontroller family as the alternative data acquisition system. Connectivity between microcontroller and personal computer using USB bus along with necessary software is developed. Software contains bit-banging functions for I2C and SPI communication protocols, which are used for communication with other devices. For LabVIEW development environment, functions for communication with microcontroller have been developed. LabVIEW and microcontroller based data acquisition system are the basis for toaster testing device’s controlling system.

  • Darjan Leskovar: Diplomsko delo

    VI

    KAZALO: 1. UVOD .......................................................................................................................1 2. NAMEN IN CILJI DIPLOMSKE NALOGE .........................................................3 3. NAPRAVA ZA TRAJNOSTNO PREIZKUŠANJE TOASTERJEV.....................5

    3.1. Opis toasterja in njegove funkcionalnosti ................................................................5 3.2. Razlogi za trajnostno testiranje toasterjev................................................................6 3.3. Mehanski del testirne naprave .................................................................................7 3.4. Zahteve za krmilje testirne naprave .........................................................................8

    4. GLAVNI SESTAVNI DELI KRMILNEGA SISTEMA.........................................9

    4.1. Programsko okolje NI LabVIEW ............................................................................9 4.2. UART/USB pretvornik TUSB3410 .........................................................................9 4.3. Družina mikrokrmilnikov MSP430 .......................................................................10

    4.3.1. Splošen opis in namen uporabe: ................................................................10 4.3.2. Glavne značilnosti: ...................................................................................12

    4.3.2.1. Centralna procesna enota .........................................................................12 4.3.2.2. Pomnilniška struktura ..............................................................................12 4.3.2.3. Urni sistem ..............................................................................................14 4.3.2.4. Ostale periferne enote ..............................................................................16

    4.3.3. Razvojno okolje Code Composer Studio...................................................17 4.3.4. Generacija MSP430F1xx ..........................................................................19

    4.4. Analogno-digitalni pretvornik TLC3578 ...............................................................20 4.5. P/U pretvornik Iskra MIS MI413...........................................................................21

    5. KRMILJE TESTIRNE NAPRAVE ......................................................................24

    5.1. Blok shema krmilja ...............................................................................................24 5.2. Nadzorna programska oprema v okolju LabVIEW ................................................25

    5.2.1. Namen in funkcije nadzornega programa ..................................................25 5.2.2. Blok diagram uporabniškega dela programa..............................................27 5.2.3. Komunikacijski sistem VISA....................................................................28

    5.3. Komunikacijski protokoli......................................................................................30 5.3.1. Protokol UART ........................................................................................30 5.3.2. Protokol I2C..............................................................................................33 5.3.3. Protokol SPI .............................................................................................40

    5.4. Krmilniški podsistem na osnovi mikrokrmilnika MSP430.....................................44 5.4.1. Izbira ustreznega mikrokrmilnika..............................................................44

    5.4.1.1. Izbira za glavno enoto – Master ...............................................................44 5.4.1.2. Izbira za podrejeno enoto – Slave ............................................................45

    5.4.2. Komunikacija med komponentami krmilnega sistema...............................46 5.4.2.1. Zagotavljanje prenosa brez napak ............................................................46 5.4.2.2. Komunikacija LabVIEW – Master...........................................................49 5.4.2.3. Komunikacija Master – I/O vmesnik........................................................61 5.4.2.4. Komunikacija Master – A/D pretvornik ...................................................70

    5.4.3. Nadzor mikrokrmilnika iz okolja LabVIEW .............................................77 5.5. Končna oblika krmilja ...........................................................................................79

  • Darjan Leskovar: Diplomsko delo

    VII

    5.5.1. Uporabniški vmesnik ................................................................................79 5.5.2. Električna vezja ........................................................................................82 5.5.3. Povezave med komponentami...................................................................85 5.5.4. Pomožna programska oprema ...................................................................87

    6. REZULTATI..........................................................................................................88

    6.1. Izkušnje iz polletne uporabe testirne naprave.........................................................88 6.2. Možnosti za nadaljni razvoj krmilja.......................................................................90

    7. SKLEP....................................................................................................................91

    KAZALO SLIK: Slika 3-1: Toaster TAT8SL1B3 .........................................................................................5 Slika 3-2: Toaster TT911P2...............................................................................................6 Slika 3-3: Testirna naprava za testiranje toasterjev .............................................................7 Slika 4-1: Blok shema krmilnika MSP430 .......................................................................11 Slika 4-2: Pomnilniška struktura krmilnikov MSP430......................................................13 Slika 4-3: Urni sistem krmilnikov MSP430......................................................................15 Slika 4-4: Osnovno okno okolja Code Composer Studio ..................................................17 Slika 4-5: Priključki A/D pretvornika TLC3578...............................................................20 Slika 4-6: P/U pretvornik MI413......................................................................................21 Slika 4-7: Tokovni merilni transformator ISKRA WSK30 ...............................................23 Slika 4-8: Shema priklopa MI413 in WSK30 ...................................................................23 Slika 5-1: Blok shema krmilja testirne naprave ................................................................24 Slika 5-2: Shema nastavljivosti intervalov vklopa toasterja ..............................................25 Slika 5-3: Blok diagram uporabniškega dela programa.....................................................27 Slika 5-4: Povezave programskega sloja VISA [3] ...........................................................29 Slika 5-5: VISA struktura [3] ...........................................................................................29 Slika 5-6: Primer VISA programa ....................................................................................30 Slika 5-7: Striktura UART podatkovnega okvirja [2] .......................................................31 Slika 5-8: Potek signalov pri protokolu UART.................................................................32 Slika 5-9: Potek signalov in trenutki odtipanja pri protokolu UART.................................33 Slika 5-10: Priključitev naprav na vodilo I2C ...................................................................34 Slika 5-11: Diagram poteka komunikacije I2C .................................................................36 Slika 5-12: Časovni potek signalov protokola I2C ............................................................37 Slika 5-13: Sprejem signal ACK [6].................................................................................38 Slika 5-14: Dajanje signala ACK [6]................................................................................39 Slika 5-15: Shema priključitve naprav na vodilo SPI........................................................41 Slika 5-16: Potek signalov pri protokolu SPI....................................................................42 Slika 5-17: Možne konfiguracije vodila SPI .....................................................................43 Slika 5-18: Blok diagram DJB2 hash funkcije ..................................................................47 Slika 5-19: LabVIEW program za DJB2 hash funkcijo ....................................................48 Slika 5-20: C koda programa za DJB2 hash funkcijo........................................................48 Slika 5-21: UART povezava TUSB3410 in MSP430F169 ...............................................49 Slika 5-22: Struktura podatkovnega paketa za Master ......................................................49 Slika 5-23: Master - sprejetje bajta...................................................................................51 Slika 5-24: Nastavitev krmilnikovega DMA modula........................................................51

  • Darjan Leskovar: Diplomsko delo

    VIII

    Slika 5-25: Proženje prenosa in shranitev v polje .............................................................51 Slika 5-26: Blok diagram prekinitvenega podprograma....................................................53 Slika 5-27: Blok diagram komunikacijske funkcije v LabVIEW-u ...................................54 Slika 5-28: Funkcija za prenos po vodilu SPI ...................................................................56 Slika 5-29: Funkcija za pisanje na vodilo I2C...................................................................56 Slika 5-30: Funkcija za branje vodila I2C .........................................................................57 Slika 5-31: Funkcija za generiranje STOP signala............................................................58 Slika 5-32: Funkcija za nastavitev hitrosti I2C komunikacije ............................................58 Slika 5-33: Funkcija za nastavitev hitrosti SPI komunikacije ...........................................58 Slika 5-34: Funkcija za resetiranje Master krmilnika........................................................59 Slika 5-35: Programska koda, ki resetira krmilnik ............................................................59 Slika 5-36: Uporaba LabVIEW funkcije UART_Setup ....................................................60 Slika 5-37: Nastavitev krmilnikovega UART modula ......................................................61 Slika 5-38: Master in trije podrejeni krmilniki na vodilu I2C ............................................62 Slika 5-39: LabVIEW funkcija I2C_Speed.......................................................................63 Slika 5-40: Nastavitev časovnika Timer_A ......................................................................63 Slika 5-41: Prekinitveni podprogram za tipanje linij SDA in SCL ....................................64 Slika 5-42: Blok diagram Masterjevega programa za pisanje na I2C vodilo ......................65 Slika 5-43: Masterjeva koda funkcije za pisanje na I2C vodilo .........................................66 Slika 5-44: Blok diagram Masterjevega programa za branje I2C vodila ............................66 Slika 5-45: Masterjeva koda funkcije za branje I2C vodila ...............................................67 Slika 5-46: Potek komunikacije pri pisanju v digitalne izhode..........................................68 Slika 5-47: Potek komunikacije pri branju digitalnih vhodov ...........................................69 Slika 5-48: LabVIEW program za pisanje in branje digitalnih linij...................................69 Slika 5-49: Shema povezave Masterja in dveh A/D pretvornikov.....................................70 Slika 5-50: LabVIEW funkcija SPI_Speed.......................................................................70 Slika 5-51: Blok diagram funkcije za SPI komunikacijo...................................................72 Slika 5-52: Masterjeva koda funkcije za SPI komunikacijo ..............................................72 Slika 5-53: Komunikacija z pretvornikom TLC3578........................................................73 Slika 5-54: Ukazi, ki jih TLC3578 sprejme ......................................................................74 Slika 5-55: Koda rezultata A/D pretvorbe v odvisnosti od formata in napetosti ................74 Slika 5-56: Nastavitev obeh A/D pretvornikov.................................................................76 Slika 5-57: Branje vseh kanalov iz obeh A/D pretvornikov ..............................................76 Slika 5-58: LabVIEW funkcija DMA...............................................................................78 Slika 5-59: Koda LabVIEW funkcije DMA .....................................................................78 Slika 5-60: Masterjeva koda funkcije DMA .....................................................................78 Slika 5-61: Primer uporabe funkcije DMA.......................................................................78 Slika 5-62: Uporabniški vmesnik LabVIEW nadzornega programa..................................79 Slika 5-63: Nastavitev časovnih intervalov vklopa ...........................................................80 Slika 5-64: Programiranje digitalnih izhodov ...................................................................81 Slika 5-65: Glavna enota (Master) s krmilnikom F169 .....................................................82 Slika 5-66: Podrejena enota (Slave) s krmilnikom F155 ...................................................83 Slika 5-67: Vhodno/izhodni vmesnik ...............................................................................83 Slika 5-68: Shema 24V digitalnega vhoda in izhoda.........................................................84 Slika 5-69: Vgrajeno vezje A/D pretvornika ....................................................................85 Slika 5-70: Ploščica z prispajkanim mikrokrmilnikom .....................................................85 Slika 5-71: Povezovalni del IDE konektorja.....................................................................86 Slika 5-72: Dodajanje manjkajoče luknje v IDE konektor ................................................86 Slika 6-1: Primer uspešno opravljenega Run-in testa........................................................88

  • Darjan Leskovar: Diplomsko delo

    IX

    Slika 6-2: Primer neuspešno opravljenega življenjskega testa...........................................88 PRILOGE: Priloga A: Izvorna koda programske opreme za mikrokrmilnik Priloga B: Izvorna koda LabVIEW funkcij Priloga C: Načrti vezij in maske za jedkanje

    UPORABLJENE KRATICE IN SIMBOLI: ADC Analog to Digital Converter

    DAC Digital to Analog Converter USB Universal Serial Bus UART Universal Asynchronous Receiver/Transmitter USART Universal Synchronous/Asynchronous Receiver/Transmitter LCD Liquid Crystal Display RISC Reduced Instruction Set Computer CPE Centralna Procesna Enota RAM Random Access Memory ROM Read Only Memory SVS Supply Voltage Supervisor MSB Most Significant Bit LSB Least Significant Bit I2C Inter Integrated Cirtuit ali Inter IC SPI Serial Periphal Interface CCS Code Composer Studio JTAG Joint Test Action Group FIFO First-In First-Out I/O Input/Output VISA Virtual Instrument Software Architecture SDA Serial Data SCL Serial Clock ACK Signal Acknowledge MOSI Master-Out Slave-In MISO Master-in Slave Out SCLK Serial Clock SS Slave Select CPHA Clock Phase CPOL Clock Polarity DMA Direct Memory Access PUC Power-Up Reset

  • 1. UVOD Dandanes živimo v zanimivem tehnološkem času. Na eni strani imamo svet elektronike,

    kjer smo prehodili dolgo pot od elektronk do čedalje bolj zapletenih integriranih vezij, na

    drugi pa stroje in aparate, ki uporabo vse te elektronike omogočajo. Pri integriranih vezjih

    se srečamo z zanimivim paradoksom. Čeprav so vse bolj zapletena in gostota njihovih

    sestavnih delov narašča, so kljub temu zelo zanesljiva. Razlog je v odsotnosti gibljivih

    delov, zaradi česar ne more priti do obrabe. Za njihovo odpoved so v večini primerov krivi

    le trije dejavniki: previsoka napetost, previsoka temperatura ali fizična poškodba. Povsem

    drugače pa je pri strojih in napravah, kjer se srečujemo z obrabo, napakami v materialu in

    neoptimalno konstukcijo. V večini primerov je življenjska doba mehanskega dela naprave

    mnogo krajša od življenjske dobe elektronike v njej, kar še posebej velja za gospodinjske

    aparate. Medtem ko pri elektronskih vezjih velja, da ob pravilni rabi stopnja odpovedi s

    časom uporabe strmo pade, pa je pri aparatu kot celoti ravno nasprotno, verjetnost za

    odpoved začne po nekem obdobju naraščati. Razlog so obraba ter skrite napake v materialu

    ali konstrukciji, ki se kažejo od nadležnih zvokov, spremembe barve, tresljajev ali

    temperaturnih deformacij do popolne odpovedi aparata. Ni redkost, da proizvajalci v želji

    po večji kvaliteti izdelka aparat optimirajo in izboljšujejo še več let po začetku serijske

    proizvodnje. Da pa se oceni kvaliteta in da razvojni inženirji dobijo povratne informacije o

    izdelku, pa je potrebno sprotno testiranje. V grobem obstaja hitro testiranje, t.i. Run-in, pri

    katerem se prestrežejo napake ki povzročijo takojšnjo odpoved, ter test življenjske dobe,

    pri katerem se oceni, ali je izdelek zmožen delovati brez napak skozi vso načrtovano

    življenjsko dobo.

    Testiranje izdelkov v proizvodnji je osnovna podlaga za pričujoče diplomsko delo.

    Predmet diplomskega dela je izdelava krmilnega dela testirne naprave za testiranje

    kuhinjskih opekačev kruha oziroma toasterjev, katerega jedro bo predstavljal

    mikrokrmilnik MSP430 proizvajalca Texas Instruments. Od krmilja za testirno napravo

    se zahteva avtomatizirano vklapljanje toasterja, merjenje časa vklopa in električne moči.

    Potrebno je tudi beleženje vseh rezultatov za kasnejšo statistično obdelavo. Mikrokrmilnik

    bo služil kot vmesni člen med mehanskim delom testirne naprave in osebnim

    računalnikom, na katerem bo tekla programska oprema za upravljanje testirne naprave.

    Uporabili bomo primerne komunikacijske protokole za komunikacijo krmilnika z osebnim

    računalnikom, A/D pretvornikom in podrejenimi krmilniki. Programska oprema na

  • osebnem računalniku bo tekla v okolju LabVIEW, v katerem bomo tudi spisali potrebne

    knjižice za komunikacijo s krmilnikom. Razvili bomo tudi vsa potrebna tiskana vezja za

    delovanje krmilnika in vhodno/izhodnih enot.

    Diplomsko delo je razdeljeno na šest glavnih poglavij. Po uvodu in predstavitvi ciljev

    bomo na kratko opisali toaster in razloge, zakaj ga je potrebno testirati. Spoznali bomo

    testirno napravo kot celoto in definirali zahteve za njeno krmilje. V četrtem poglavju bomo

    podrobno spoznali glavne komponente krmilja testirne naprave. V petem poglavju bomo te

    komponente s pomočjo komunikacijskih protokolov in programske opreme povezali v

    delujočo celoto. V zadnjem poglavju pa bodo predstavljeni neposredni rezultati, kot so

    izvorne kode programske opreme ter električne sheme s pripadajočimi tiskanimi vezji.

  • 2. NAMEN IN CILJI DIPLOMSKE NALOGE

    Na trgu imamo številne obstoječe rešitve za izvedbo avtomatizacije in krmiljenja, kot so

    krmilniški sistemi podjetij Siemens, Mitsubishi ali Omron. Te rešitve so zelo primerne za

    procese, kjer je vloga krmilnika natančno določena in niso predvidene pogoste

    spremembe, na primer vodenje robotske roke za prijemanje nekega velikoserijskega kosa.

    V praksi pa se mnogokrat srečamo z sistemom, kjer je potrebna tako čim večja

    preglednost nad procesom kot tudi možnost hitrega preprogramiranja in nastavljanja tudi

    najbolj podrobnih parametrov. Slabost prej omenjenih krmilniških sistemov je omejena

    povezljivost z osebnim računalnikom, ki je pri cenejših izvedbah omejena zgolj na

    nalaganje programa, predvsem pa je težavno programiranje zapletenejših algoritmov. V

    praksi oziroma industrijskem okolju je pogost primer elektromagnetnih motenj, ki

    vplivajo na signale iz senzorjev in razvijalec si mora sam sprogramirati svoj lastni

    digitalni filter s točno določenimi parametri. Ali pa potrebno napisati unikaten regulacijski

    algoritem, ker so splošni algoritmi premalo prilagodljivi. V razvojni praksi so

    nepredvidene težave stalnica in v takšnem primeru je za inženirja zelo koristno, da ima

    popoln nadzor nad celotnim sistemom. To pomeni, da ima možnost hitrega prilagajanja

    programa dejanskim lastnostim procesa, in da pred sabo nima »črnih škatel«, torej da

    natančno pozna lastnosti vseh gradnikov sistema.

    Programsko okolje LabVIEW podjetja National Instruments je eno najbolj fleksibilnih

    orodij za programiranje krmiljenja procesov in zajema podatkov. Isto podjetje proizvaja

    tudi kartice za zajem podatkov, ki vsebujejo analogne in digitalne vmesnike, števce,

    generatorje signalov.... Skupaj z okoljem LabVIEW tvorijo odličen sistem za krmiljenje

    procesov, katerega največja prednost je velika svoboda pri programiranju in oblikovanje

    lastnega uporabniškega vmesnika. Te kartice pa nosijo, podobno kot namenski krmilniki

    razmeroma visoko ceno. V primeru, ko potrebujemo veliko število analognih ali digitalnih

    vhodov oziroma izhodov, lahko njihova cena naraste v več tisoč EUR. Vendar pa ima

    okolje LabVIEW tudi knjižice za komunikacijo po vseh najpogostejših komunikacijskih

    protokolih, kot so TCP/IP, Bluetooth in RS-232, če naštejemo le nekatere. Poraja se

    vprašanje, ali se pri krmiljenju enostavnejših procesov, ki ne potrebujejo velike hitrosti

    delovanja, teh kartic ne bi dalo zamenjati s kakšno cenejšo komponento, s katero pa bi še

  • vedno lahko zajemali in prožili analogne in digitalne signale. Odgovor je pritrdilen.

    Namen tega diplomskega dela je pokazati, kako povezati programsko okolje LabVIEW in

    mikrokrmilnik MSP430 ter takšen sistem uporabiti kot krmilje in uporabniški vmesnik

    naprave za testiranje toasterjev.

  • 3. NAPRAVA ZA TRAJNOSTNO PREIZKUŠANJE TOASTERJEV

    3.1. Opis toasterja in njegove funkcionalnosti

    V podjetju Eurel d.o.o. sta bila za družbo Bosch und Siemens Hausgeräte GmbH

    razvita dva različna tipa toasterja, BOSCH TAT8SL1B3 in Siemens TT911P2.

    Toasterja TT911P2 in TAT8SL1B3 sta mala gospodinjska aparata, namenjena pripravi

    opečenih kruhkov. Oba sta na voljo v dveh različicah, EU in GB. Razlikujeta se po

    različnih vtikačih na priključnem kablu, in sicer ima različica EU vtikač tipa E in je

    primerna za uporabo v večini držav evropske unije, medtem ko ima verzija GB vtikač

    tipa G in je namenjena za prodajo na območju Velike Britanije. Oba toasterja sta v

    podjetju Eurel d.o.o. tudi proizvajana.

    TAT8SL1B3 je toaster srednjega razreda z dvema režama za vstavitev kruha.

    Upravljanje poteka z dvema gumboma za nižanje in višanje časa pečenja, katerega

    vidimo na LED lestvičnem prikazu. Izbiramo lahko med devetimi različnimi časi

    pečenja, pri čemer si aparat zapomni zadnji nastavljeni čas. Na zgornjem delu ima

    izvlečljive žične nosilce, kamor lahko postavimo kruh in ga ogrejemo. Kot grelna

    telesa so uporabljeni štirje cevni infrardeči grelci iz kvarčnega stekla. Deklarirana

    priključna moč aparata je 860 W.

    Slika 3-1: Toaster TAT8SL1B3

  • TT911P2 je aparat višjega cenovnega razreda, kar se odraža tako po zunanji stilizirani

    obliki kot po naprednih funkcijah, med katere sodi digitalni številčni prikaz časa

    pečenja in preostalega časa, zaščitni pokrov proti prahu in avtomatski odklop napajanja

    v primeru prevrnitve. Uporabnik lahko izbira med enajstimi različnimi časi pečenja,

    pri čemer izbiranje poteka z vrtljivim koleščkom. Podobno kot pri TAT8SL1 si tudi ta

    aparat zapomni zadnji nastavljen čas in ima dva žična nosilca, ki služita kot držalo

    kruha. Kot grelni element sta tudi tu uporabljena dva cevna infrardeča kvarčna grelca.

    Deklarirana priključna moč toasterja je 900 W.

    Slika 3-2: Toaster TT911P2

    3.2. Razlogi za trajnostno testiranje toasterjev

    Za proizvodno podjetje je ključnega pomena, da proizveden izdelek ne samo da mora

    biti funkcionalen in brez napak, temveč mora tako funkcionalnim kot estetskim

    specifikacijam ustrezati skozi vso načrtovano življenjsko dobo. Trajnostno testiranje

    izdelkov podjetju omogoči sprotno spremljanje kakovosti lastne proizvodnje in

    sestavnih delov izdelka. Slednje je še posebej pomembno v našem primeru, ko sestavne

    dele izdelka proizvajajo zunanji dobavitelji, pri katerih pa podjetje nima neposrednega

    nadzora nad kakovostjo proizvodnje. V primeru toasterjev govorimo o 84 oziroma 33

    sestavnih delih, od katerih v podjetju brizgamo le plastične sestavne dele, ostale pa

  • prispevajo zunanji dobavitelji. Z rezultati trajnostnega testa je mogoče pri dnevnem

    preverjanju hitro zaznati padec kakovosti sestavnih delov, dolgoročno pa omogoča

    izboljševanje samega aparata oziroma odpravljanje konstrukcijskih pomanjkljivosti.

    Tako je bil npr. toaster P2 izboljšan z dodatnimi hladilnimi režami, ker je zaradi

    zastajanja toplote prihajalo do zvijanja plastičnih delov.

    3.3. Mehanski del testirne naprave

    Naloga mehanskega dela testirne naprave je avtomatizirano vklapljanje toasterjev v

    vnaprej določenih časovnih intervalih. V ta namen ima naprava zgrajenih dvanajst

    testirnih gnezd, v katera toaster položimo in ga privijačimo, da se med testom ne more

    premikati. Vklapljanje je izvedeno z linearnimi in rotacijskimi pnevmatskimi

    aktuatorji, ki so krmiljeni z elektromagnetnimi ventili. Naprava zato potrebuje tudi

    dovod stisnjenega zraka. Na napravi so na vsak toaster dve vtičnici za priklop toasterja,

    kjer lahko izbiramo med napetostma 230 in 250 V. Standard namreč zahteva testiranje

    pri 10% višji napetosti od omrežne. Vsako testirno mesto ima tudi tipkali za začetek in

    ustavitev testa.

    Slika 3-3: Testirna naprava za testiranje toasterjev

  • Testirna mesta na napravi niso popolnoma enaka. Šest gnezd je namenjenih testiranju

    toasterja B3, ostalih šest pa za toaster P2. Štiri testirna mesta za toaster B3 omogočajo

    le vklop toasterja, ostala dva pa tudi spreminjanje časa vklopa. Podobno imamo pri

    toasterju P2, kjer tri mesta omogočajo zgolj vklop, ostale tri pa vse, kar lahko s

    toasterjem počne uporabnik. To pomeni spreminjanje časa vklopa, premikanje žičnih

    nosilcev kruha in predčasen izklop aparata.

    3.4. Zahteve za krmilje testirne naprave

    Krmilje mora omogočati hkratno med sabo neodvisno testiranje dvanajstih toasterjev.

    Pravilno delovanje toasterja se sklepa na podlagi njegove električne moči, katero mora

    krmilje meriti. Vsakemu testirnemu mestu mora biti možno določiti lastne parametre

    testa, kot so število vklopov, časovni intervali vklapljanja in meje rumenega ter rdečega

    alarma za izmerjeno moč. Krmilje preko tipkal sprejema uporabniške ukaze za začetek

    oziroma ustavitev testa in proži elektromagnetne ventile, ki krmilijo pnevmatske

    aktuatorje.

    Glavni del krmilnega sistema predstavlja osebni računalnik s nadzornim programom v

    programskem okolju LabVIEW. Uporabnik preko nadzornega programa zaganja in

    končuje teste, pregleduje rezultate in ima popoln nadzor in pregled nad stanjem testirne

    naprave ter njenega krmilja.

  • 4. GLAVNI SESTAVNI DELI KRMILNEGA SISTEMA

    4.1. Programsko okolje NI LabVIEW

    LabVIEW podjetja National Instruments je okrajšava za Laboratory Virtual

    Instrumentation Engineering Workbench in je razvojno okolje za grafični programski

    jezik G. Je široko uporabljano orodje za izvedbo računalniško podprtega zajemanja in

    obdelave podatkov ter razvoja industrijskih aplikacij na področju komunikacije z

    zunanjimi sistemi, analize podatkov, krmiljenja, regulacij in grafičnega prikaza.

    V okolju LabVIEW je program sestavljen iz dveh delov – prednje plošče in blok

    diagrama. Okno blok diagrama predstavlja dejanski program, prednja plošča pa

    predstavlja uporabniški vmesnik programa, ki ga s pomočjo različnih gumbov,

    prikazovalnikov in indikatorjev oblikujemo po svojih željah.

    Glavna značilnost programskega jezika G je grafično programiranje. Program je

    sestavljen iz posameznih funkcij, ki jih povežemo med sabo in na ta način določimo

    smer pretoka podatkov. Ta način programiranja je znan kot »dataflow« in predstavlja

    tudi glavno razliko med jezikom G in tekstovnimi programskimi jeziki, kjer se v večini

    primerov programira imperativno. Za razliko od imperativnega programiranja, kjer je

    potek programa natanko določen z zaporedjem ukazov, se v jeziku G neka funkcija

    lahko izvede šele takrat, ko do nje prispejo vsi vhodni podatki. Ta način skupaj z

    grafičnim prikazom programa omogoča zelo enostavno paralelno programiranje, pri

    katerem se več operacij izvaja navidezno hkrati.

    4.2. UART/USB pretvornik TUSB3410

    Integrirano vezje TUSB3410 proizvajalca Texas Instruments je dvosmerni pretvornik

    med USB in UART komunikacijskim protokolom. Po priklopu in instalaciji gonilnikov

    se operacijskemu sistemu predstavi kot Virtual COM port oziroma virtualna serijska

    vrata, nakar iz perspektive računalniških programov ni nobene razlike med virtualnimi

    in pravimi serijskimi vrati. Podpira vse funkcije fizičnih serijskih vrat, kot so 5 do 8

    bitna dolžina znaka, zaznavanje sode in lihe paritete ter 1, 1.5 in 2 bitna dolžina STOP

  • bita. To pomeni, da lahko katerokoli serijsko napravo priključimo na računalnik preko

    USB vrat.

    S TUSB3410 ustvarjena virtualna serijska vrata omogočajo hitrosti od 50 to 921600

    bitov na sekundo in so lahko konfigurirana v tri različne podatkovne načine:

    • RS-232

    • RS-485

    • IrDA

    Privzeti način je RS-232, ki omogoča »full duplex« način komunikacije, kar pomeni da

    lahko podatke na podatkovnih priključkih SOUT in SIN oddajamo in sprejemamo

    hkrati. Protokol predvideva tudi uporabo kontrolnih priključkov, za katere pa, kot

    bomo videli pri našem primeru, ni nujno da jih uporabimo. Način RS-485 je zelo

    podoben RS-232, vendar gre za »half duplex« komunikacijo, tako da v nekem trenutku

    podatke lahko ali sprejemamo ali oddajamo. Način IrDA pa je namenjen brezžični

    komunikaciji s pomočjo infrardeče svetlobe. Podatkovna signala SOUT in SIN sta

    preoblikovana v predpisan IrDA standard. Največja hitrost tega načina je 112500 bitov

    na sekundo, potreben pa je tudi zunanji IrDA pretvornik, ki pretvarja med električnimi

    in svetlobnimi signali. [8]

    Za nas pomemben podatkovni način je RS-232, ker bomo z njim TUSB3410 povezali z

    mikrokrmilnikom MSP430.

    4.3. Družina mikrokrmilnikov MSP430

    4.3.1. Splošen opis in namen uporabe:

    MSP430 proizvajalca Texas Instruments je družina mikrokrmilnikov, katerih

    glavna lastnost je prilagojenost za čim nižjo porabo energije. Dobavljiv je v

    številnih družinah in izvedenkah, ki se razlikujejo po največji hitrosti ure in

    dodatnih perifernih enotah, med katerimi so najpogostejši časovniki, A/D in D/A

    pretvorniki, modul za direkten dostop do pomnilnika in komunikacijske enote.

  • Nekatere izvedenke imajo še dodatne enote, kot so komparatorji, operacijski

    ojačevalniki, strojni množilniki ali LCD gonilnik.

    Nizka poraba energije je dosežena z možnostjo izklopa vseh enot, ki jih tisti

    trenutek ne potrebujemo, vključno s centralno procesno enoto. Zaradi nizke porabe,

    tok v stanju mirovanja lahko znaša manj kot 1 mikroamper, je zelo primeren za

    uporabo v baterijsko napajanih napravah.

    Na naslednji sliki vidimo blok shemo, ki prikazuje glavne komponente krmilnikov

    MSP430: [5]

    Slika 4-1: Blok shema krmilnika MSP430

    Do danes obstaja pet generacij MSP430 mikrokrmilnikov. Po nastanku je bila prva

    generacija 3xx, kateri je sledila generacija 1xx, potem sta prišli generaciji 4xx in

    2xx, najnovejša pa je 5xx.

  • Vsak mikrokrmilnik MSP430 ima svojo oznako, ki pomeni naslednje:

    Primer oznake mikrokrmilnika: MSP430F1612IPMR:

    • MSP - Mixed Signal Processor

    • 430 – Pripadnik družine mikrokrmilnikov 430

    • F – Tip pomnilnika; F – Flash, C – ROM.

    • 1 – Generacija (1xx, 2xx, 3xx, 4xx, 5xx)

    • 6 – Serija podobne funkcionalnosti

    • 12 – Družina (Ista količina pomnilnika in enake periferne enote)

    • I – Temperaturno območje (I = od -40 do +85°C, T = od -40 do +105°C)

    • PM – Oblika ohišja

    • R – Če obstaja; oblika pakiranja, R = Tape&Reel

    4.3.2. Glavne značilnosti:

    4.3.2.1. Centralna procesna enota

    Jedro mikrokrmilnika predstavlja 16-bitna RISC centralna procesna enota

    (CPE) z Von-Neumannovo arhitekturo, kar pomeni isti pomnilniški prostor za

    program in podatke. CPE prepozna 27 strojnih ukazov in 7 načinov

    naslavljanja. Zaradi ortogonalne arhitekture je vsak strojni ukaz uporaben z

    vsemi načini naslavljanja. CPE vsebuje 16 16-bitnih registrov, ki služijo kot

    pomnilniško mesto z dostopnim časom enega urinega cikla. 16-bitno je tudi

    interno podatkovno vodilo in omogoča direktno obdelavo 16-bitnih podatkov.

    4.3.2.2. Pomnilniška struktura

    MSP430 ima zaradi Von-Neumannove arhitekture en sam naslovni prostor, v

    katerem se nahajajo registri, pomnilniška mesta perifernih enot ter delovni in

    flash pomnilnik. Do podatkov v pomnilniku lahko dostopamo v 8 ali 16 bitni

  • obliki, torej v obliki byta ali besede (word). Pomnilniško mesto bajta ima lahko

    sodo ali liho vrednost, mesto besede pa le sodo vrednost. Beseda je kot 16-bitna

    vrednost sestavljena iz dveh bytov in pri dostopanju do nje je prva polovica

    (spodnji bajt) vedno na sodem naslovu.

    Naslovni prostor sega od 0x0 do 0xFFFF. Tako lahko MSP430 naslovi največ

    64 KB pomnilnika. Izjema je novejša serija MSP430X, katera ima 20 bitni

    naslovni prostor in največjo količino naslovljivega pomnilnika 1 MB.

    Pomnilniško strukturo MSP430 krmilnikov prikazuje naslednja slika: [5]

    Slika 4-2: Pomnilniška struktura krmilnikov MSP430

    Na pomnilniških naslovih od 0x00 do 0x0F se nahajajo 8-bitni registri za

    posebne namene. Namenjeni so nastavitvi in spremljanju prekinitev. Višje, od

    pomnilniškega naslova 0x10 do 0xFF se nahajajo 8 bitni registri za

    konfiguracijo in spremljanje 8-bitnih perifernih enot. Podobno je na

    pomnilniških mestih od 0x100 do 0x1FF, kjer pa se nahajajo 16-bitna

    pomnilniška mesta za 16 bitne periferne enote. Višje, na pomnilniškem mestu

    0x200, se začne območje delovnega pomnilnika (RAM). Količina RAM-a ni

  • določena in je odvisna od izvedenke mikrokrmilnika. Preostanek naslovnega

    prostora lahko zavzema pomnilnik FLASH oziroma ROM, katerega prostor se

    konča z naslovom 0xFFFF, pri čemer zadnjih 16 besed oziroma 32 bytov

    zavzema tabela prekinitvenih vektorjev. Tudi količina Flash pomnilnika je

    odvisna od izvedenke mikrokrmilnika. [1][5]

    4.3.2.3. Urni sistem

    CPE in periferne enote za delovanje potrebujejo signal določene frekvence, s

    čimer je določena tudi hitrost delovanja in poraba energije. Ker je MSP430

    zasnovan tako za visoko zmogljivost kot tudi za čim nižjo porabo energije, je

    temu prilagojen tudi sistem za generiranje urinega takta, na izhodu katerega

    lahko dobimo tri različne takte, ki so na voljo CPE in perifernim enotam. Za

    CPE in vsako od perifernih enot je mogoče izbrati enega izmed taktov

    delovanja in s tem z izbiro nižjega takta enoto prilagoditi za manjšo porabo

    energije. Lahko pa izberemo višji takt in s tem povečamo hitrost delovanja.

  • Slika 4-3: Urni sistem krmilnikov MSP430

    Kot vidimo na sliki 4-3 [5], nam urni sistem daje tri različne takte, ki jih dobiva

    iz treh različnih virov. Viri takta so dva zunanja kvarčna oscilatorja

    (LFXT1CLK in XT2CLK) in notranji elektronski oscilator DCOCLK z

    možnostjo programskega spreminjanja frekvence. Privzeta frekvenca DCOCLK

    znaša približno 800 kHz in jo lahko spreminjamo v območju od 86 kHz do

    približno 5 MHz. Frekvenca kvarčnega oscilatorja lahko po specifikacijah znaša

    od 32,768 kHz do 8 MHz, vendar glede na izkušnje pri projektu mikrokrmilnik

    brez težav deluje tudi pri frekvenci 12 MHz. Polni frekvenčni razpon je na voljo

    le na vhodu LFXT1CLK, medtem ko je vhod XT2CLK namenjen oscilatorjem

    višjih frekvenc, spodnja frekvenčna meja znaša 450 kHz.

    Iz teh treh virov urni sistem ustvari tri urine takte: MCLK, SMCLK in ACLK.

  • MCLK oziroma Master Clock je takt, namenjen izključno CPE. SMCLK oz.

    Sub-main Clock ter ACLK oz Auxiliary Clock pa sta takta, namenjena

    perifernim enotam. Medtem ko je lahko vir taktov MCLK in SMCLK katerikoli

    izmed treh izvorov, je lahko vir signala ACLK le izvor LFXT1CLK. Takt vseh

    treh signalov pa lahko še znižamo z delitvijo s frekvenčnim delilnikom, ki

    sprejme vrednosti 2, 4 ali 8. [1]

    4.3.2.4. Ostale periferne enote

    Mikrokrmilniki MSP430 se razlikujejo po številu in vrsti dodatnih perifernih

    enot, najpogostejše med njimi pa so:

    • Analogno-digitalni pretvornik je glede na izvedenko mikrokrmilnika na

    voljo v dveh različicah; 10 ali 12 bitni sukcesivno-aproksimacijski in

    16 bitni delta-sigma pretvornik.

    • Digitalno analogni pretvornik je na voljo pri zmogljivejših izvedenkah

    mikrokrmilnika in ponuja 10 ali 12 bitno ločljivost izhodnega signala.

    • Modul za direkten dostop do pomnilnika omogoča direkten prenos

    podatkov med pomnilniškimi naslovi brez obremenjevanje CPE.

    • Strojni množilnik omogoča množenje dveh 16-bitnih števil brez

    obremenjevanje CPE. Množenje zahteva mnogo več računskih korakov

    kot seštevanje in odštevanje, zato lahko z strojnim množenjem CPE zelo

    razbremenimo.

    • Časovniki v osnovi delujejo kot števci urinih ciklov in nam služijo za

    merjenje časa ali natančno določanje časovnih intervalov, s katerimi

    sprožamo prekinitve ali generiramo signale.

    • Časovnik »Kuža pazi« oziroma Watchdog Timer skrbi za pravilno

    delovanje programa, če bi se ta nekje ujel v neskončno zanko. Ob izteku

    se lahko sproži prekinitev ali pa izvede reset mikrokrmilnika.

    • Nadzornik napajalne napetosti (SVS – Supply voltage supervisor)

    spremlja napajalno napetost in signalizira, če ta pade pod določeno

    mejo.

  • • LCD gonilnik nam služi za prikaz podatkov na tekočekristalnih

    prikazovalnikih, ki imajo lahko do 196 segmentov.

    • USART komunikacijski modul nam omogoča dvosmerno komunikacijo

    med mikrokrmilnikom in zunanjimi sistemi. Glede ne izvedenko

    mikrokrmilnika so na voljo trije različni protokoli, UART, I2C in SPI.

    Najpogostejši protokol je UART, sledita mu SPI in I2C, ki sta na voljo

    le v zmogljivejših izvedenkah.

    4.3.3. Razvojno okolje Code Composer Studio

    Code Composer Studio (CCS) proizvajalca Texas Instruments je programsko

    okolje za razvoj programov za Texas Instruments-ove mikrokrmilnike in digitalne

    signalne procesorje.

    Slika 4-4: Osnovno okno okolja Code Composer Studio

  • Vsebuje vrsto orodij za olajšan in uspešen razvoj aplikacij, kot so razhroščevalnik,

    simulator in C prevajalnik. Obstajata dve glavni različici CCS-ja, Microcontroller

    in Platinum. Razlikujeta se v podprtih procesorjih, pri čemer različica Platinum

    podpira vse TI procesorje, Microcontroller pa podpira le procesorje

    TMS320C2800, MSP430, Stellaris in Cortex R4.. Obe različici sta plačljivi, obstaja

    pa tudi brezplačna verzija CCS, kjer je glavna omejitev v velikosti programa.

    Podpira le mikrokrmilnike MSP430 in C28x, največja velikost programa pa znaša

    16 oziroma 32 kB. Ker to za potrebe našega projekta povsem zadošča in ker nima

    omejitev pri uporabi programatorjev, smo pri projektu uporabili brezplačno

    različico.

    C predvajalnik programiranje še posebej olajša, ker MSP430 tako kot vsi ostali

    procesorji razume le strojni jezik, v katerem pa je programiranje kompleksnejših

    programov zelo težavno. C prevajalnik za MSP430 mikrokrmilnike proizvajajo tudi

    druga podjetja, kot sta Rowley in IAR, sta pa njuna prevajalnika razmeroma draga.

    Simulator omogoča razvoj programov brez povezave z mikrokrmilnikom, njegova

    slabost pa je, da simulira le CPE, ne pa tudi perifernih enot, zaradi česar je njegova

    uporabnost omejena na razvoj logičnih delov programa. Zelo uporaben pa je

    razhroščevalnik (debugger), s katerim imamo skoraj popoln nadzor nad izvajanjem

    programa. Med razhroščevanjem lahko program na katerikoli točki ustavimo in

    preberemo vrednosti kateregakoli pomnilniškega mesta. Možno je koračno

    izvajanje programa, kjer imamo na voljo korake po vrsticah v C jeziku in korake po

    ukazih v strojnem jeziku. Poljubno lahko nastavimo tudi programski števec, kar

    pomeni da lahko nadaljujemo izvajanje programa iz katerekoli točke.

    Pomemben del sistema je tudi strojni emulator MSP-FET430UIF. To je

    komponenta, ki CCS oz. katerokoli razvojno okolje na osebnem računalniku preko

    USB vrat poveže z mikrokrmilnikom in omogoči vpis programa. MSP ponuja dva

    načina vpisa programa, preko Bootstrap nalagalnika in preko JTAG vmesnika.

    Bootstrap nalagalnik potrebuje le dva priključka na mikrokrmilniku in serijsko

    povezavo, omogoča pa le vpis programa, ne pa tudi naprednih funkcij CCS, kot je

    razhroščevanje in koračno izvajanje programa. MSP-FET430UIF se z

    mikrokrmilnikom poveže preko vmesnika JTAG, ki pa vse to omogoča.

  • 4.3.4. Generacija MSP430F1xx

    MSP430F1xx je za generacijo 3xx druga po času nastanka in se od nje razlikuje po

    nižji napajalni napetosti in s tem nižji porabi, večji možni količini pomnilnika in

    večji izbiri perifernih enot. Za razliko od 3xx pa generacija 1xx nima LCD

    gonilnika.

    Glavne značilnosti generacije 1xx so: [5]

    • Nizka poraba energije, ki naredi mikrokrmilnik primeren za baterijsko

    napajanje:

    o Napajalna napetost 1,8 – 3,6 V o Tok za ohranjanje delovnega pomnilnika: ~100 nA o Stanje pripravljenosti: ~1,1 μA o Aktivna CPE: ~330 μA pri 1 MHz/2,2V

    • Zmogljivi AD in DA pretvornik:

    o 10 ali 12 bitni SAR ADC, hitrost vzorčenja 200 ksps, temperaturni senzor

    o Dvokanalni 12-bitni DAC • Število GPIO priključkov: 14, 22 ali 48

    • Možne količine pomnilnika:

    o Flash: 1 KB – 60 KB o ROM: 1 KB – 16 KB o RAM: 512 B – 10 KB o CPE lahko piše v lastni Flash pomnilnik

    • Dodatne periferne enote:

    o Analogni komparator o DMA o Strojni množilnik o Nadzornik napajalne napetosti (SVS)

  • 4.4. Analogno-digitalni pretvornik TLC3578

    Integrirano vezje TLC3578 proizvajalca Texas Instruments je 14-bitni 8-kanalni

    analogno-digitalni pretvornik. Je član družine TLCx57x, v kateri so štirje člani:

    TLC3574, TLC3578, TLC2574 in TLC2578. Pretvornika TLC3574/78 sta 14 bitna,

    medtem ko sta TLC2574/78 12-bitna. Zadnja številka v nazivu pomeni število kanalov,

    tako da imamo pretvornik v 4 in 8 kanalni izvedbi.

    Slika 4-5: Priključki A/D pretvornika TLC3578

    Glavne značilnosti pretvornika so naslednje: [9]

    • Napajalna napetost 5 V / 3-5 V (analogni / komunikacijski del)

    • Nizka poraba energije:

    o 5,8 mA v delovanju o 20 μA v stanju pripravljenosti

    • SPI komunikacijski vmesnik s hitrostjo urinega takta do 25 MHz

    • Hitrost pretvorbe do 200.000 vzorcev na sekundo

    • Napetostno območje vhodnih kanalov: ±10 V

    • Možen zajem kanal proti REFM (single-ended) ali kanal proti kanalu

    (pseudodifferential)

    • Vgrajena ura za pretvorbo in FIFO pomnilnik

    • Nastavljiva hitrost vzorčenja

  • Pri projektu smo se za TLC3578 odločili zaradi vhodnega napetostnega območja in

    komunikacijskega vmesnika SPI. Vhodno napetostno območje ±10 V se nam pokriva z

    izhodnim območjem P/U pretvornika MI413, zato ni potrebe po napetostnem delilniku,

    ampak lahko pretvornik priključimo neposredno na integrirano vezje. Komunikacijski

    protokol SPI ima večjo prepustnost kot I2C, kar pride do izraza pri uporabi večjega

    števila pretvornikov: Pri našem projektu merimo 12 delovnih moči in bomo torej

    potrebovali dvoje vezij TLC3578. Višjo hitrost potrebujemo tudi zaradi višjega števila

    odtipkov, iz katerih izračunamo povprečno vrednost in s tem zmanjšujemo vpliv šuma.

    4.5. P/U pretvornik Iskra MIS MI413

    Pretvornik MI413 podjetja Iskra MIS je namenjen merjenju delovne moči porabnikov

    na izmenični napetosti. Pretvornik na vhodu meri izmenično napetost in tok, izračuna

    delovno moč in jo pretvori v izhodni enosmerni napetostni ali tokovni signal.

    Slika 4-6: P/U pretvornik MI413

  • Glavne lastnosti pretvornika:

    • Merjenje delovne moči

    • Največja vhodna napetost: 500 V

    • Največji vhodni tok: 5 A

    • Razred točnosti 0.5

    • Merilna metoda: merjenje kvadratične srednje vrednosti, mikroprocesorsko

    vzorčenje

    • Univerzalno napajanje – izmenična ali enosmerna napetost 24-276V

    • Serijski komunikacijski vmesnik RS232 ali RS485, hitrost prenosa podatkov do

    115200 bitov/s, protokol MODBUS

    • Nizka poraba energije

    • Montaža na DIN vodilo

    Pretvornik je s komunikacijskim vmesnikom RS232 ali RS485 dobavljiv po naročilu,

    preko njega pa lahko beremo rezultate meritev ali nastavljamo parametre. V ta namen

    je za okolje Windows na voljo program MiQen, ki ga lahko brezplačno prenesemo iz

    spletnih strani proizvajalca.

    Pretvornik ima napetostni in tokovni vhod. Napetostni vhod sprejme izmenično

    omrežno napetost 230V, frekvence od 40 do 70 Hz. Lahko ga priključimo neposredno

    na omrežje ali pa preko napetostnega merilnega transformatorja. V našem primeru smo

    uporabili neposreden priklop. Tok skozi tokovni vhod lahko znaša največ 5 A in ga

    moramo na omrežje priključiti preko tokovnega merilnega transformatorja. Pri projektu

    smo uporabili tokovnik WSK30 istega proizvajalca, s prestavnim razmerjem 10/5A.

  • Slika 4-7: Tokovni merilni transformator ISKRA WSK30

    Slika 4-8: Shema priklopa MI413 in WSK30

    Izhodni signal je lahko napetostni ali tokovni. Območje izhodnih signalov je

    programsko nastavljivo in pri napetostnem izhodu znaša od 0-1V do 0-10V, pri

    tokovnem pa od 0-1 do 0-20 mA. Napetostni ali tokovni izhodni signal izberemo s

    položajem mostička v samem pretvorniku.

    S programom MiQen lahko nastavljamo parametre, kot so P/U karakteristika, merilno

    območje in prestavno razmerje uporabljenega tokovnika. P/U karakteristika je lahko

    linearna ali lomljena z največ petimi lomnimi točkami. Merilno območje je odvisno od

    uporabljenega tokovnika in pri WSK30 lahko znaša največ 2,3 kW.

    Porabnik

    LN

    2 11 1 3

    15 (+) 16 (-)

    A/D pretvornik Ax AGND MI413

    WSK30

    K L

    k l

    13(+/~) 14(-/~)

    Napajanje 24-300V=

    ali 40-276V~

    GND

  • 5. KRMILJE TESTIRNE NAPRAVE

    5.1. Blok shema krmilja

    Slika 5-1: Blok shema krmilja testirne naprave

    Kot vidimo na blok shemi, je krmilje testirne naprave hierarhični sistem, kjer je na

    vrhu nadzorni program v okolju LabVIEW in neposredno komunicira le z enim

    krmilnikom MSP430, ki mu je povsem podrejen. Ta krmilnik nosi naziv Master.

    12x

    LabVIEW

    TUSB3410

    USB

    MSP430 Master

    UART

    MSP430 Slave Št.1

    MSP430 Slave Št.2

    MSP430 Slave Št.3

    I2C

    I/O vmesnik št.1

    I/O vmesnik št.2

    I/O vmesnik št.3

    Aktuatorji Indikatorji

    Tipkala Senzorji

    TLC3578 SPI MI413

    TOASTER

    Napajanje 250 V AC

    Tokovnik WSK30

    Napetost

    Tok

    Testirna naprava

  • Njegova naloga je komunikacija s tremi podrejenimi krmilniki in A/D

    pretvornikom.

    5.2. Nadzorna programska oprema v okolju LabVIEW

    5.2.1. Namen in funkcije nadzornega programa

    Namen nadzorne programske opreme je grafični in številčni prikaz poteka testa,

    nastavljanje vseh za test potrebnih parametrov, omogočiti popoln nadzor nad

    krmiljem in vse to ponuditi preko operaterju razumljivega uporabniškega vmesnika.

    Uporabniške funkcije nadzorne programske opreme, s katerimi prihaja v stik

    operater, so naslednje:

    • Tristopenjska nastavljivost intervala vklopov. Program vklopov je za

    vsakega izmed 12 toasterjev nastavljiv po sledeči shemi:

    Slika 5-2: Shema nastavljivosti intervalov vklopa toasterja

    1. Čas vklopa A sekund, Čas izklopa B sekund 2. Čas vklopa C sekund, Čas izklopa D sekund 3. ... . .

    Ponovi U krat, pavza V sekund

    Ponovi X krat, pavza Y sekund

  • • Proženje začetka in predčasnega konca testa je možno tako preko

    uporabniškega vmesnika kot preko tipkal na napravi,

    • Grafični in številčni prikaz trenutne delovne moči,

    • Po koncu vsakega vklopnega intervala izračun povprečne moči,

    • Določitev rumene in rdeče meje, znotraj katerih se mora delovna moč

    nahajati; vrednosti izven teh meja kažejo na slab toaster. Pri prehodu

    rumene meje se izpiše ustrezno opozorilo, prehod rdeče meje pa kaže na

    resnejšo napako in test na tistem testirnem mestu se samodejno prekine.

    • Izračun in prikaz posrednih informacij, kot so čas začetka testa, čas trajanja

    in predviden čas konca testa, procentualno opravljenost testa in opravljeno

    število vklopov. Skozi test tudi prikazujemo graf povprečne moči, vsak

    konec vklopnega intervala je nova točka na grafu.

    • Shranjevanje vseh rezultatov v zgodovino, da je možna kasnejša analiza.

  • 5.2.2. Blok diagram uporabniškega dela programa

    Slika 5-3: Blok diagram uporabniškega dela programa

    START PARAMETRI

    Ukaz za začetek

    testa?

    Branje parametrov

    Izračun časov vklopa

    Branje trenutnega časa

    MSP430 komunikacija – branje delovne moči

    Moč znotraj rumene meje?

    Izpiši opozorilo

    Moč znotraj rdeče meje?

    STOP tipka/Konec programa?

    Ustavi program

    Čas za vklop/izklop

    ?

    MSP430 komunikacija – Vklop/izklop toasterja

    DA NE

    DA

    DA

    DA

    DA NE

    NE

    NE

    NE

  • Programiranje programa v takšnem obsegu in vseh podpornih algoritmov je

    zapleten proces, katerega najlažje obvladamo z uporabo visokonivojskega

    programskega jezika, kot je jezik G v okolju LabVIEW. Programski del testirne

    naprave je tako razdeljen na dva dela. Del v okolju LabVIEW je namenjen strojno

    zahtevnemu procesiranju podatkov in zaradi operacijskega sistema Windows teče v

    mehkem realnem času. Sem sodi filtriranje in obdelava signalov ter prikaz

    podatkov na uporabniškem vmesniku. Del na krmilnikih MSP pa opravlja

    enostavne, a časovno kritične funkcije, kamor sodi proženje izhodnih signalov in

    predvsem komunikacija z ostalimi krmilniki in A/D pretvornikom. Cilj te razdelitve

    je, da z primerno dodelitvijo funkcij izkoristimo prednosti, ki jih posamezen del

    ponuja.

    Nižjenivojska funkcija nadzornega programa, na kateri je v tem diplomskem delu

    tudi večji poudarek, pa je nadzor in komunikacija s komponentami testirne naprave,

    kamor sodijo mikrokrmilniki MSP430 in A/D pretvornik. Strojni del povezave

    osebnega računalnika in krmilnika MSP430 je USB/UART pretvornik TUSB3410,

    katerega računalnik prepozna kot virtualna serijska vrata. Programski del pa je

    komunikacijski sistem VISA v okolju LabVIEW.

    5.2.3. Komunikacijski sistem VISA

    VISA je kratica za Virtual Instrument Software Architecture in predstavlja

    standardizirani jezik za računalniško podprto komunikacijo z instrumenti. Je

    industrijski standard, ki ga za komunikacijo s svojimi instrumenti uporabljajo

    vodilna podjetja s tega področja, ki so združena v združenje VXIplug&play

    Systems Alliance. VISA je visokonivojski API, ki komunicira z sistemskimi

    gonilniki ustreznega vodila glede na tip priključenega instrumenta in uporablja

    enake ukaze ne glede na vodilo. Jezik je intuitiven in enostaven za uporabo.

    Podprte so platforme Macintosh, Windows 3.1/NT, Solaris in Unix, kjer tečejo

    okolja LabVIEW, CVI, VisualBasic, C ali Borland C++. Ker VISA uporablja

    standardizirani jezik ne glede na platformo, okolje ali vodilo, je možna popolna

    prenosljivost napisanih programov.

  • V okolju LabVIEW predstavlja VISA skupino knjižic za komunikacijo z napravami

    na serijskem, GPIB ali VXI vodilu in kliče ustrezne sistemske gonilnike glede na

    vodilo priključene naprave.

    Slika 5-4: Povezave programskega sloja VISA [3]

    Slika 5-5: VISA struktura [3]

    VISA je objektno orientiran jezik, v katerem je najpomembnejši objekt Vir

    (Resource) oziroma ime naprave, s katero komuniciramo. Da lahko z napravo

    začnemo komunicirati, pa potrebujemo odprto povezavo do nje oziroma sejo

    (Session). Glavna skupina VISA funkcij je tako upravljalnik virov oziroma

    Resource Manager, s katero poiščemo določeno napravo in odpremo sejo do nje.

    Upravljalnik virov

    Komunikacija na osnovi sporočil (Message based)

    Komunikacija na osnovi registrov (Register based)

    - Iskanje naprave - Odpiranje seje

    - Vstavi (In) - Odstrani (Out)

    - Beri (Read) - Piši (Write)

    Lasnosti (Attributes) Dogodki (Events)

    - Get - Set

    - Wait (Synchronous) - Install Handler (Asynchronous)

    LabVIEW

    VISA

    Serijsko vodilo GPIB (IEEE-488) VXI

  • Sledijo še funkcije za konfiguracijo posameznega vodila, na katerem je naprava in

    funkcije za komunikacijo, kamor sodijo funkcije za pisanje in branje. V našem

    programu uporabljamo komunikacijo na osnovi sporočil. Naslednja slika prikazuje

    primer programa VISA v okolju LabVIEW:

    Slika 5-6: Primer VISA programa

    Program prikazuje konfiguracijo virtualnih serijskih vrat COM3 in odprtje seje do

    nje. Preko virtualnih serijskih vrat nato s VISA funkcijo WRITE pošljemo ukaz

    BERI. Naprava, v našem primeru krmilnik MSP430 ta ukaz interpretira kot zahtevo

    po določenih podatkih in nam jih pošlje v obliki štirih bajtov. Te bajte preberemo z

    funkcijo READ in jih prikažemo. Funkcija CLOSE nato zapre sejo do vrat COM3.

    5.3. Komunikacijski protokoli

    Za komunikacijo med komponentami testirne naprave so uporabljeni trije različni

    komunikacijski protokoli. Za povezavo TUSB3410 in glavnega krmilnika MSP430

    je uporabljen protokol UART. Med glavnim krmilnikom in A/D pretvornikom je

    uporabljen protokol SPI, do treh MSP430 Slave pa komunikacija teče po protokolu

    I2C.

    5.3.1. Protokol UART

    UART je kratica za Universal asynchronous receiver/transmitter. Je osnovni

    način serijskega prenosa podatkov in UART modul je eden najpogostejših

    komunikacijskih perifernih enot na mikrokrmilnikih. UART določa samo način

  • prenosa podatkov, ne pa tudi oblike signalov, zato je pogosto uporabljen v

    kombinaciji z različnimi standardi prenosa podatkov, kot so RS-232 ali RS-485.

    Prenos ja lahko tudi brezžični, na primer po standardu IrDA ali Bluetooth.

    Podatki se prenašajo serijsko, bit za bitom. Izraz »univerzalni« pomeni, da sta

    pri prenosu podatkov nastavljiva tako oblika podatkov kot hitrost prenosa.

    Komunikacija je lahko t.i. Half duplex (v nekem trenutku naprava samo oddaja

    ali samo sprejema) ali Full duplex (naprava hkrati oddaja in sprejema).

    Osnovni podatkovni okvir, ki se pri komunikaciji prenese, je 1 baud, ki je

    sestavljen iz poljubnega števila bitov. Najpogostejša oblika okvirja je naslednja:

    Prenos znaka se začne z bitom START, ki signalizira začetek pošiljanja in je

    vedno izražen z logično 0. Sledijo mu podatkovni biti, katerih število je

    standardizirano in znaša 5, 6, 7 ali 8 bitov. Podatkovnim bitom lahko sledi

    paritetni bit, s katerim se poveča možnost odkritja napake pri prenosu. Možna je

    uporaba sode ali lihe paritete, kar pomeni logično stanje paritetnega bita, če je

    število logičnih enic v znaku liho ali sodo. Uporaba paritetnega bita ni nujna in

    je lahko odsoten.. Konec prenosa enega znaka označimo z bitom STOP,

    katerega dolžina je prav tako standardizirana in znaša 1x, 1.5x ali 2x časovne

    dolžine podatkovnega bita. STOP bit je vedno izražen z logično 1. Obliko

    signala prikazuje naslednja slika:

    START

    Bit

    Bit 0 (LSB)

    Bit 1

    Bit 2

    Bit 3

    Bit 4

    Bit 5

    Bit 6

    Bit 7

    (MSB)

    Pariteta

    STOP

    Bit

    Slika 5-7: Struktura UART podatkovnega okvirja [2]

  • Slika 5-8: Potek signalov pri protokolu UART

    Za uspešno komunikacijo morata biti tako oddajnik kot sprejemnik vnaprej

    nastavljena na enake parametre, kot so hitrost prenosa, število podatkovnih

    bitov, pariteta in dolžina STOP bita. Najpogostejša nastavitev je 8 podatkovnih

    bitov, brez paritete in dolžino STOP bita 1, kar nam skupaj z START bitom da

    10-bitno dolžino enega bauda.

    Proženje in zaznavanje komunikacijskega signala je na obeh straneh

    nadzorovano z urinim signalom, katerega frekvenca je nek večkratnik dolžine

    enega podatkovnega bita. Komunikacija se začne z START bitom, katerega

    sprejemnik išče tako, da vsak urin pulz odtipa signal. Za veljaven START bit

    velja, ko je signal na logični 0 najmanj polovico časa enega podatkovnega bita.

    Če traja manj časa, je signal ignoriran. Po uspešno zaznanem START bitu

    sprejemnik v določenih časovnih intervalih, katerega meri s pomočjo urinega

    takta, tipa podatkovne, paritetne in STOP bite. Koliko bitov je potrebno odtipati

    za en znak in kolikšen je interval tipanja, je določeno z vnaprej dogovorjeno

    obliko okvirja in hitrostjo prenosa.

    Hitrost prenosa se meri z številom bitov na sekundo. Hitrost je lahko poljubna,

    najpogostejše pa so standardizirane hitrosti 9600, 19200, 57600 ali 115200

    bitov na sekundo.

    Bit

    1

    Bit

    2

    Bit

    3

    Bit

    4

    Bit

    5

    Bit

    6

    Bit

    7 (M

    SB)

    Parit

    eta

    STO

    P bi

    t 1

    STO

    P bi

    t 2

    Bit

    0 (L

    SB)

    Ned

    ejav

    no

    STA

    RT

    STA

    RT/

    N

    edej

    avno

  • Slika 5-9: Potek signalov in trenutki odtipanja pri protokolu UART

    Na sliki vidimo shemo prenosa enega bauda, pri čemer je frekvenca urinega

    signala 16 krat višja od frekvence podatkovnega signala. Čas T izračunamo po

    enačbi T=1/hitrost prenosa.

    5.3.2. Protokol I2C

    Protokol I2C (tudi Inter IC oziroma IIC) je serijska oblika prenosa podatkov in

    kot nakazuje ime, je v osnovi namenjen povezovanju integriranih vezij v

    elektronskih napravah. Razvilo ga je podjetje Philips, kjer so zaradi vse večjega

    števila integriranih vezij in količine proizvedenih elektronskih naprav iskali

    način, kako posamezne komponente komunikacijsko povezati, pri tem pa

    obdržati minimalno število potrebnih komunikacijskih linij in s tem poceniti

    proizvodnjo. Prva uporaba protokola je bila v Philipsovem TV sprejemniku,

    kjer je povezoval procesor z ostalimi vezji, danes pa je I2C industrijski standard,

    ki ga v svojih izdelkih uporablja večina glavnih proizvajalcev integriranih vezij.

    Protokol oziroma vodilo I2C fizično sestoji iz dveh dvosmernih linij: Serial

    Data (SDA) in Serial Clock (SCL). Kot pove že ime, je linija SDA namenjena

    prenosu podatkov, linija SCL pa nosi urin signal za komunikacijo. Izraz

    Start D0 D1 D2 D3 D4 D5 D6 D7 P Stop

    Izračunani trenutki tipanja, tipamo na sredini bita

    Ts=T/16 T

    1.5xT

    Zaznavanje START bita

  • »dvosmerni« pomeni, da lahko logično stanje na priključku nadzirajo tako

    druge naprave kot tudi naprava sama. Priključki na napravah so tipa aktivno

    breme (Open drain), zato morata biti na obeh linijah dvižna (Pull-up) upora,

    katerega vrednost je običajno 10kohm. Napetosti signala standard ne določa in

    je lahko kakršnakoli, dokler so priključene naprave združljive z njo, običajno pa

    znaša 3,3 ali 5 V.

    Slika 5-10: Priključitev naprav na vodilo I2C

    Vodilo I2C je zasnovano tako, da lahko katerakoli naprava komunicira s

    katerokoli drugo napravo, ki je priključena na vodilo. V ta namen se naprave na

    vodilu delijo v dve skupini. Naprava, ki na nedejavnem vodilu sproži zahtevo

    po branju ali pisanju oziroma začne komunikacijo, je od tistega trenutka naprej

    označena kot Master (Gospodar). Od začetka in vse do trenutka, ko Master

    označi konec komunikacije, pa so vse ostale naprave označene kot Slave

    (Suženj). Najpogosteje Master tudi generira urin signal, čeprav je lahko izvor

    urinega signala tudi zunanji.

    SD

    AS

    CL

    SD

    AS

    CL

    SD

    AS

    CL

    SD

    AS

    CL

    Vcc

    Master Slave 1 Slave 2 Slave n

    SDA

    SCL

    Rp Rp

  • Hitrost prenosa je lahko kakršnakoli, dokler so naprave združljive z njo.

    Najpogostejše hitrosti so 10 ali 100 kbit/s, novejše revizije pa poznata t.i. »Fast

    mode« s hitrostjo 400 kbit/s in »High speed mode« s hitrostjo 3.4 Mbit/s. [5]

    Vsaka naprava na I2C vodilu ima parameter, po katerem jo druge naprave

    najdejo, to je njen naslov (Address). V izvirni specifikaciji I2C vodila je naslov

    dolg 7 bitov in tako teoretično omogoča do 128 naprav na enem vodilu. Vendar

    so nekateri naslovi rezervirani za posebne funkcije in največje število naprav je

    omejeno na 112. Več naprav omogočajo novejše revizije protokola, ki imajo 10

    ali 16-bitni naslovni prostor.

    Za nadzor komunikacije so na vodilu definirani trije signali:

    • START - signal za začetek komunikacije

    • STOP - signal za konec komunikacije

    • ACK - oziroma ACKNOWLEDGE – signal prisotnosti naprave oziroma

    uspešnega sprejetja podatkov

    Osnovna komunikacijska enota je 1 bajt. Komunikacija se začne, ko Master na

    vodilo pošlje signal START. Od tega trenutka dalje je vodilo zasedeno in

    naprave ne morejo več začeti komunikacije, pač pa morajo vodilo poslušati in

    čakati na nadaljnje podatke, ki jih bo poslal Master. START signalu takoj sledi

    naslovni bajt (ADDRESS byte), ki je sestavljen iz osmih bitov. Prvih sedem

    bitov predstavlja naslov naprave, s katero želi Master komunicirati. Osmi bit je

    bralno/pisalni (R/W), s katerim Master pove, ali želi v naslovljeno napravo

    pisati (logična 0) ali iz nje brati (logična 1). Naprava z podanim naslovom, če je

    na vodilu prisotna, se odzove z signalom ACK. Po uspešno sprejetem ACK

    signalu Master glede na R/W bit. nadaljuje z pisanjem na vodilo ali branjem iz

    njega, izbrani Slave pa z branjem ali pisanjem. Konec komunikacije označi

    Master s proženjem STOP signala. Po signalu STOP je vodilo prosto.

    Vsaka naprava, pa naj bo Master ali Slave, mora vsak sprejeti bajt potrditi s

    signalom ACK. Izjema velja v primeru, ko Master od Slave bere več bajtov in

    zadnjega prebranega ne sme potrditi. Ta dogodek na vodilu je poznan kot

  • NACK oziroma Not ACKONWLEDGE. Razlog bomo pojasnili kasneje pri

    fizičnem opisu I2C signalov.

    Če želi master z isto Slave napravo spremeniti smer komunikacije, lahko sproži

    ponoven START signal brez predhodnega STOP signala. Ta dogodek na vodilu

    je poznan kot Repeated START (Ponovljeni START).

    Protokol tako definira tri osnovne vrste komunikacije na vodilu:

    • Master piše v Slave napravo

    • Master bere iz Slave naprave

    • Kombinirano sporočilo, kjer Master iz Slave naprave bere in piše

    Naslednja slika prikazuje blok diagram poteka komunikacije: [5]

    Slika 5-11: Diagram poteka komunikacije I2C

    S Naslov Slave R/W A A P Podatki(8 bitov)

    N krat

    - Master piše v Slave napravo:

    A Podatki(8 bitov)

    S Naslov Slave R/W A A P Podatki(8 bitov) A Podatki(8 bitov)

    - Master bere iz Slave naprave:

    S Naslov Slave R/W A Podatki(8 bitov)

    - Kombinirano:

    A Sr Naslov Slave R/W A Podatki(8 bitov) A P

    A

    N krat

    N krat N krat

    Logična 0 (Pisanje)

    Logična 1 (Branje)

    Branje ali pisanje - Legenda:

    - Smer komunikacije Master -> Slave - Smer komunikacije Slave -> Master - Smer je odvisna od predhodnega R/W bita

    S - Signal START Sr - Signal Repeated START P - Signal STOP A - Signal ACKNOWLEDGE A - Signal Not ACKNOWLEDGE

    N - Poljubno število bajtov R/W - Bralno/pisalni bit

  • Signali in prenos podatkov so v protokolu I2C izvedeni z naslednjimi

    kombinacijami in potekom logičnih stanj SDA in SCL linije:

    • Signal START: Sprememba logičnega stanja linije SDA it 1 na 0,

    medtem ko je linija SCL na logičnem stanju 1.

    • Signal STOP: Sprememba logičnega stanja linije SDA it 0 na 1, medtem

    ko je linija SCL na logičnem stanju 1.

    • Branje bita: Bit preberemo z odtipanjem stanja linije SDA. Odtipamo

    lahko na prehodu SCL iz 0 na 1 oziroma kadarkoli potem, dokler je SCL

    na stanju 1. Stanje linije SDA se sme spremeniti samo, ko je SCL na 0,

    v nasprotnem primeru imamo START ali STOP signal.

    Osnovni časovni potek signalov prikazuje naslednja slika: [6]

    Slika 5-12: Časovni potek signalov protokola I2C

    - START oz. STOP signal - Dovoljena sprememba stanja SDA - Tipanje stanja SDA

    STA

    RT

    Bit

    1

    Bit

    2

    Bit

    3

    Bit

    n

    STO

    P

    SDA

    SCL

    '1'

    '0'

    '1'

    '0'

  • • Signal ACK:

    ACK signal je namenjen preverjanju prisotnosti naprave in signaliziranju

    uspešnega sprejema bajta. ACK signal ločimo glede na smer komunikacije.

    o Master sprejema ACK od Slave naprave:

    Slika 5-13: Sprejem signal ACK [6]

    (1) - Ko master pošlje osmi bit , kateri je s padajočo fronto na liniji

    SCL zaključen, sprosti SDA linijo. Nadzor nad SDA prevzame

    Slave, ki jo postavi na logično 0.

    (2) - Master odtipa SDA linijo, odtipek mora biti enak 0. Če ni 0,

    pomeni da naprave ni ali pa ni sprejela podatka.

    (3) - Po odtipanju Master na SCL pošlje pulz.

    (4) – Ob padajoči fronti pulza na SCL Slave sprosti SDA linijo, ki se

    zaradi dvižnih uporov postavi na logično 1. Nadzor nad SDA znova

    prevzame Master in vodilo je pripravljeno na nadaljnjo

    komunikacijo.

    SDA

    SCL

    '1'

    '0'

    '1'

    '0'

    (1) (2) (3) (4)

  • o Master daje ACK Slave napravi:

    Slika 5-14: Dajanje signala ACK [6]

    (1) – Ko Slave odda osmi bit, kateri je zaključen s padajočo fronto

    urinega signala na SCL, sprosti SDA linijo. SDA linija se zaradi

    dvižnih uporov postavi na logično 1.

    (2) – Ko Master na SDA zazna logično 1, prevzame nadzor nad njo

    in jo postavi na 0. Slave odtipa linijo SDA, rezultat mora biti logična

    0.

    (3) – Master na linijo SCL pošlje pulz.

    (4) – Ob padajoči fronti pulza na liniji SCL Master sprosti linijo

    SDA.

    (5) - Slave linijo odtipa, rezultat mora biti logična 1.

    (6) – Nadzor nad linijo SDA ponovno prevzame Slave.

    Ko Master bere podatke od Slave, mu, če želi prenehati brati, po

    zadnjem sprejetem bajtu ne sme poslati signala ACK. Konec

    komunikacije Master označi s signalom STOP, za kar pa mora imeti

    nadzor nad SDA linijo. Ker po prejetem ACK signalu nadzor nad

    SDA linijo prevzame Slave, in v primeru, da je prvi bit naslednjega

    za pošiljanje pripravljenega bajta logična 0, Master linije SDA ne

    SDA

    SCL

    '1'

    '0'

    '1'

    '0'

    (1) (4) (2) (3) (5) (6)

  • more postaviti na 1, kar je za STOP signal potrebno. Namerna

    odsotnost ACK signala je poznana kot Not ACK.

    5.3.3. Protokol SPI

    SPI oziroma Serial Peripheral Interface je razvilo podjetje Motorola in je danes eno

    najbolj razširjenih vodil za komunikacijo na krajše razdalje, kjer potrebno čim

    manjše število linij in visoka hitrost. SPI je sinhrono serijsko vodilo, ki deluje v

    načinu »full duplex«, kar pomeni, da naprava piše in bere hkrati, pri čemer je

    število prejetih in prebranih bitov enako. Podobno kot pri I2C imamo tudi pri vodilu

    SPI naprave Master in Slave, dosežemo pa mnogo večjo prepustnost. Zaradi tega je

    vodilo zelo primerno za komunikacijo z visoko hitrostnimi vezji, kot so A/D

    pretvorniki ali pomnilniška vezja. Velika prednost je tudi popolna fleksibilnost pri

    prenosu podatkov, pri čemer je lahko znak dolg poljubno število bitov in nismo

    omejeni na 8-bitne znake. Višja prepustnost je dosežena tudi s tem, da naprave

    nimajo svojih naslovov in jih ni treba prenašati.

    Vodilo SPI sestavlja ena Master naprava in ena ali več Slave naprav. Povezava med

    njimi je sestavljena iz štirih linij:

    - MOSI (Master Out Slave In): Podatkovna linija, na katero Master piše, Slave

    pa iz nje bere;

    - MISO (Master In Slave Out): Podatkovna linija, iz katere Master bere, Slave pa

    nanjo piše;

    - SCLK (Serial Clock): Urin signal, generira ga Master. Naraščajoče in padajoče

    fronte urinega signala določajo trenutke, kdaj so biti na podatkovnik linijah

    postavljeni oziroma odtipani.

    - SS (Slave Select): Signal, s katerim Master določen Slave izbere za

    komunikacijo. Slave je izbran, ko je njegova linija SS na logični 0.

  • Vsak Slave ima svoj SS linijo in je edina unikatna povezava med njim in

    Masterjem. Na linije MOSI, MISO in SCLK so vse naprave priključene paralelno

    in si jih delijo.

    Slika 5-15: Shema priključitve naprav na vodilo SPI

    Komunikacijo na vodilu začne Master, ki generira urin takt in linijo SS od izbrane

    Slave naprave postavi na logično 0. Nato naraščajoča oziroma padajoča fronta

    urinega signala proži postavitev bitov na podatkovnih linijah. Master postavi bit na

    linijo MOSI, Slave pa na MISO. Ob nasprotni smeri fronte urinega signala pa

    Master in Slave iz svojih priključkov MISO in MOSI bit prebereta. V vsakem

    urinem ciklu se tako zgodi dvosmerna komunikacija s prenosom enega bita. Ponovi

    se tolikokrat, kolikor bitov želimo prenesti. Konec prenosa označi master, ki SS

    linijo postavi nazaj na logično 1. Na naslednji sliki vidimo osnovni časovni diagram

    komunikacije: [10]

    MISO MOSISCLK

    SS1SS2SS3

    MISO MOSI SCLK SS

    Slave 1

    MISO MOSI SCLK SS

    MISO MOSI SCLK SS

    Slave 2

    Slave 3

    Master

  • Slika 5-16: Potek signalov pri protokolu SPI

    Pri pošiljanju tako podatke vedno tudi beremo, pri čemer pa ni nujno, da so

    prebrani podatki tudi koristni. Naprava jih lahko uporabi ali pa zavrže.

    Komunikacija ima dva parametra z dvema možnima stanjema, ki določata fazo in

    polariteto urinega signala in s tem fronto, na kateri se bit postavlja oziroma bere. Ta

    dva parametra sta CPHA in CPOL.

    Parameter CPOL določa polariteto urinega signala:

    - Če je CPOL enak 0, je osnovno stanje urinega signala logična 0. Prva fronta po

    začetku komunikacije je iz '0' na '1'.

    - Če je CPOL enak 1, je osnovno stanje urinega signala logična 1. Prva fronta po

    začetku komunikacije je iz '1' na '1'.

    '1'

    '0'

    '1'

    '0'

    '1'

    '0'

    SS

    CLK

    SOMI/SIMO

    Bit

    1

    Bit

    2

    Bit

    3

    Bit

    4

    Bit

    n

    - Postavljanje bita - Branje bita

  • Parameter CPHA določa fazo tipanja bitov:

    - če je CPHA enak 0, se tipanje bita izvrši ob prvi fronti po začetku

    komunikacije;

    - Če je CPHA enak 1, se tipanje bita izvrši ob drugi fronti po začetku

    komunikacije.

    Vrednosti teh dveh parametrov nam dajo štiri možne kombinacije: [10]

    Slika 5-17: Možne konfiguracije vodila SPI

    Za uspešno komunikacijo morajo biti nastavitve teh parametrov v Master in Slave

    napravi enaki.

    '0'

    '1'

    '0'

    '1'

    Tipanje

    Tipanje Tipanje

    Tipanje

    CPHA = 0 CPOL = 0

    CPHA = 0 CPOL = 1

    CPHA = 1 CPOL = 0

    CPHA = 1 CPOL = 1

  • 5.4. Krmilniški podsistem na osnovi mikrokrmilnika MSP430

    5.4.1. Izbira ustreznega mikrokrmilnika

    V krmilnem sistemu imamo štiri mikrokrmilnike MSP430. Glavni krmilnik

    oziroma Master komunicira z računalnikom oziroma okoljem LabVIEW, A/D

    pretvornikom in ostalimi tremi podrejenimi mikrokrmilniki – Slave-i. Master in

    Slave imata različne funkcije, zato se razlikujejo tudi zahteve, ki jih morajo

    krmilniki izpolnjevati.

    5.4.1.1. Izbira za glavno enoto – Master

    Master v krmilnem sistemu opravlja komunikacijske naloge, katere so:

    - Komunikacija z osebnim računalnikom po protokolu UART;

    - Komunikacija s podrejenimi krmilniki po protokolu I2C;

    - Komunikacija z A/D pretvornikom po protokolu SPI.

    Osnovni vmesnik med računalnikom in testirno napravo je TUSB3410, ki pretvarja

    med USB in UART komunikacijo. Krmilnik za Master mora biti tako zmožen

    komunicirati preko protokola UART.

    Hitrost komunikacije med krmilnikom in osebnim računalnikom mora biti dovolj

    visoka, da lahko v realnem času prejemamo podatke o delovni moči dvanajstih

    testirnih gnezd in da imamo med izhodnimi ukazi za vklop/izklop čim manj

    zakasnitve. Zahtevi po hitrosti lahko ustreže povezava UART pri pretokih od

    115200 bitov/s naprej. Ta hitrost je prevelika, da bi lahko krmilnik prenos podatkov

    izvajal programsko, zato mora imeti krmilnik vgrajen vsaj eno UART periferno

    enoto. Enota prenaša podatke s pomočjo prekinitev in CPE praktično ne

    obremenjuje.

    Komunikacija z podrejenimi krmilniki po protokolu I2C zahteva dva prosta

    vhodno/izhodna priključka, za linijo SCL in SDA. Dodali smo še eno linijo, ki je

    povezana na RST priključek podrejenih krmilnikov in omogoči, da jih Master

  • resetira. Za povezavo do dveh A/D pretvornikov po protokoli SPI pa potrebujemo

    še nadaljnjih pet priključkov za linije SOMI, SIMO, SCLK ter dve liniji SS, po eno

    za vsak pretvornik. Krmilnik za Master mora tako imeti najmanj osem prostih

    vhodno/izhodnih priključkov.

    Protokola I2C in SPI delujeta v programskem načinu. Pri branju A/D pretvornikov

    je zaradi večjega števila prebranih vzorcev za izračun povprečja potrebna visoka

    hitrost SPI komunikacije, zato mora sam krmilnik delovati pri visokem taktu. Za

    dovolj hitro komunikacijo mora biti zmožen delovati pri hitrosti takta najmanj 8

    MHz.

    Pri sprejemu bajta le-tega shranimo v 20-mestno polje, katerega elemente

    predhodno pomaknemo za eno mesto v levo. Pomik zaradi večje hitrosti ni izveden

    programsko, pač pa uporabimo DMA modul. Prisotnost DMA modula je tako

    zadnji pogoj za Master krmilnik.

    Za Master je tako dober vsak krmilnik, ki izpolnjuje zgornje zahteve. Za našo

    testirno napravo smo izbrali najzmogljivejšega, ki smo ga imeli na voljo, to je

    MSP430F169.

    5.4.1.2. Izbira za podrejeno enoto – Slave

    Trije podrejeni krmilniki opravljajo funkcijo vhodno/izhodnega vmesnika, ki piše v

    digitalne izhode in proži aktuatorje ter bere digitalne vhode, kamor so priključeni

    senzorji in tipke. Na testirni napravi potrebujemo 58 digitalnih izhodov in 44

    digitalne vhode, kar nanese skupno 102 vhodno/izhodna priključka. Če to število

    delimo s tri in prištejemo še dva komunikacijska priključka na krmilnik, vidimo, da

    mora imeti posamezen krmilnik najmanj 40 vhodno/izhodnih priključkov.

    Komunikacija po protokolu I2C tudi na podrejeni enoti teče v programskem načinu.

    Frekvenca tipanja linij SDA in SCL mora biti najmanj dvakrat višja od frekvence

    urinega signala na SCL liniji, zato mora biti tudi podrejena enota zmožna delovanja

    pri visokih taktih. Tipati je potrebno v enakomernih časovnih intervalih, kar je

    izvedeno s prekinitvami časovnika. Krmilnik za podrejeno enoto mora tako imeti

    najmanj en časovnik.

  • 40 vhodno/izhodnih priključkov imajo vsi 64-pinski MSP430F1xx krmilniki, od

    katerih so tudi vsi zmožni delovanja pri 8 MHz. Program za podrejeno enoto ni

    obsežen, zato tudi glede pomnilnika ni posebnih zahtev. Izbrali smo krmilnik

    MSP430F155.

    5.4.2. Komunikacija med komponentami krmilnega sistema

    Pri opisu komunikacije je krmilni sistem razdeljen na tri hierarhične sloje. Na vrhu

    hierarhične lestvice je programsko okolje LabVIEW, ki je nadrejen glavnemu

    krmilniku – Masterju. Na dnu pa so podrejeni krmilniki – Slave-i in A/D

    pretvornik. Tako imamo tri komunikacijske veje:

    - LabVIEW Master

    - Master Slave

    - Master A/D Pretvornik

    Komunikacija med komponentami je dvosmerna in vedno jo začne nadrejena enota,

    ki pošlje ukaz oziroma podatke, podrejena enota pa se mora na ukaz odzvati

    oziroma postreči s podatki.

    5.4.2.1. Zagotavljanje prenosa brez napak

    Pri prenosu podatkov med komponentami je zelo pomembno, da prejemnik res

    prejme tiste vrednosti podatkov, kot jih je pošiljatelj poslal. Napakam je najbolj

    podvržena relacija TUSB3410 – MSP430F169 (Master), saj tam komunikacija teče

    z največjo hitrostjo. Čeprav je na tej relaciji kot najnižji nivo zaznave napak

    uporabljamo pariteto, pa smo želeli možnosti za napačen prenos kar najbolj znižati,

    ker bi ob napaki v prenosu obstaja možnost proženja neželenega digitalnega izhoda,

    to pa bi toaster lahko poškodovalo. To smo storili z dodatnim, programskim

    nivojem preverjanja napak – uporabili smo zgoščevalno funkcijo.

    Zgoščevalna funkcija na vhodu prejme poljubno število bajtov, na izhodu pa poda

    neko število, poznano tudi kot HASH, katerega vrednost je močno odvisna od

  • vrednosti vhodnih bajtov. Odlika dobre zgoščevalne funkcije je čim večja

    neponovljivost vrednosti HASH ter čim večja sprememba vrednosti HASH ob čim

    manjši spremembi vrednosti vhodnih bajtov. Ponovljivost pomeni verjetnost, da bo

    ob različnih vhodnih podatkih izračunan enak HASH.

    Princip preverjanja napak je takšen, da pošiljatelj iz podatkov, ki jih namerava

    poslati, izračuna vrednost HASH in jo skupaj s podatki pošlje prejemniku.

    Prejemnik iz prejetih podatkov izračuna HASH po istem algoritmu in dobljeno

    vrednost primerja z prejeto vrednostjo HASH. Če med prenosom ni prišlo do

    napake, sta vrednosti enaki.

    Zgoščevalnih funkcij je mnogo vrst, ki se razlikujejo po kompleksnosti, računski

    zahtevnosti, stopnjo ponovljivosti in bitni dolžini vrednosti HASH. Pri projektu

    smo iskali takšno, ki bo ponujala nizko stopnjo ponovljivosti in bo računsko dovolj

    preprosta za uporabo na mikrokrmilnikih. Računsko zelo nezahtevna je na primer

    Paersonova zgoščevalna funkcija, katere HASH pa je dolg le 8 bitov. Želeli smo

    nižjo stopnjo ponovljivosti in postavili pogoj za dolžino HASH najmanj 16 bitov.

    Izbrali smo zgoščevalno funkcijo DJB2. [11]

    Blok diagram funkcije je naslednji:

    Slika 5-18: Blok diagram DJB2 hash funkcije

    N število bajtov

    Začetna vrednost HASH = 5381

    n = 0

    n >= N ?

    DA

    NE

    HASH = (HASH*33) + n-ti bajt

    n++

    KONEC

  • Konstante 5381 in 33 so dobljene eksperimentalno. Ugotovljeno je, da je pri teh

    vrednostih ponovljivost najnižja.

    Algoritem ima v okolju LabVIEW naslednjo obliko:

    Slika 5-19: LabVIEW program za DJB2 hash funkcijo

    Kar naredi algoritem primeren za izračun na mikrokrmilnikih je to, da lahko

    produkt HASH*33 dobimo tudi z vsoto HASH in HASH, pomaknjenim za pet

    bitov v levo. Operacija seštevanja in pomikanja bitov zahteva bistveno manj

    računskih korakov kot operacija množenja.

    Algoritem v jeziku C je tako naslednji:

    Slika 5-20: C koda programa za DJB2 hash funkcijo

    Primer izračuna vrednosti HASH: Kombinacija znakov »Texas instruments« ima

    HASH enak 62614, kombinacija »Texas instrvments« pa 7479.

  • 5.4.2.2. Komunikacija LabVIEW – Master

    Komunikacija LabVIEW – Master teče po protokolu UART preko virtualnih

    serijskih vrat, ustvarjenih z pretvornikom TUSB3410. Osnovna shema povezave

    TUSB3410 in Master krmilnika je naslednja:

    Slika 5-21: UART povezava TUSB3410 in MSP430F169

    Za sporazumevanje z mikrokrmilnikom smo definirali vrsto ukazov, ki jih

    programska oprema na mikrokrmilniku prepozna in izvrši njegovo funkcijo. Ukaz

    pošljemo skupaj s podatki v obliki paketa. V LabVIEW smo razvili funkcije, ki

    ukaz ,podatke in druge informacije zapakira v podatkovni paket in ga pošlje na

    serijska vrata, hkrati pa čaka na potrditev pravilnega sprejema. Velikost paketa je

    omejena na največ 20 bajtov, njegova sestava pa je naslednja:

    Slika 5-22: Struktura podatkovnega paketa za Master

    17 – SIN

    19 – SOUT

    P3.6 – UTXD1 P3.7 – URXD1

    MSP430F169

    TUSB3410

    Znak

    '/'

    Znak

    '*'

    Has

    h LS

    B

    Has

    h M

    SB

    Uka

    z, b

    ajt 3

    Uka

    z, b

    ajt 2

    Uka