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