Magistrsko delo Kandidat: Mitja Vardjan, univ. dipl. inž. el. Naslov: Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju Besedilo: Črni ogljik je v obliki trdnih delcev v zraku onesnaževalec, ki neposredno škoduje zdravju, in zaradi močne optične absorpcije in sipanja vpliva na optične in termične razmere v atmosferi. Eden od pogosteje uporabljanih instrumentov za optično merjenje črnega ogljika je aethalometer, ki meri slabljenje svetlobe pri prehodu skozi sito, na katerem se nabirajo delci, in na podlagi izmerjene vrednosti izračuna ekvivalent masne koncentracije delcev črnega ogljika v ozračju. Predstavite problematiko merjenja trdnih delcev v ozračju. Opišite delovanje aethalometra, analizirajte njegovo merilno negotovost in predlagajte izboljšave za večjo točnost in hitrost meritev. S tem namenom nadgradite obstoječe elektronsko detektorsko vezje in izdelajte programsko opremo za upravljanje celotnega instrumenta, ki bo omogočala povezljivost navzven po vmesniku Ethernet. UNIVERZA V LJUBLJANI FAKULTETA ZA ELEKTROTEHNIKO Mitja Vardjan NADGRADNJA ELEKTRONIKE IN PROGRAMSKE OPREME MERILNIKA TRDNIH DELCEV V OZRAČJU MAGISTRSKO DELO Mentor: prof. dr. Andrej Žemva Ljubljana, 2008 ZAHVALA Najlepše se zahvaljujem mentorju prof. dr. Andreju Žemvi za mentorstvo in pomoč pri izdelavi magistrskega dela. Zahvaljujem se Ministrstvu za visoko šolstvo, znanost in tehnologijo za financiranje podiplomskega raziskovalnega usposabljanja po pogodbi št. 3211-05-000548 in podjetju Optotek za podporo pri študiju. Prav tako se zahvaljujem mentorju za mladega raziskovalca iz gospodarstva dr. Alexisu Zrimcu, nekdanjima sodelavcema dr. Griši Močniku in mag. Damjanu Zadniku, vodji razvoja v podjetju mag. Matjažu Zalarju, nekdanjemu partnerju podjetja in izumitelju aethalometra dr. Anthony D. A. Hansen-u, ter avtorju dosedanje programske opreme aethalometra mag. Andreju Nagodetu. Številnim podpornikom in razvijalcem prostega programja (angl. free software) po vsem svetu se zahvaljujem za mnoge kakovostne projekte, ki so prosto dostopni vsakomur. Kot uporabljene primere programja naj omenim BusyBox, Comedi, GNU gettext in Gnuplot. Zahvala gre tudi staršem, ki sta mi vseskozi pomagala, da sem se lahko bolj posvečal delu in študiju. Kazalo 1. Povzetek ................................................................................................................................. 1 2. Uvod ....................................................................................................................................... 5 2.1 Metode merjenja delcev .................................................................................................. 6 2.2 Etaloni in referenčne metode ......................................................................................... 11 3. Predstavitev aethalometra .................................................................................................... 13 3.1 Princip delovanja in fizikalno ozadje ............................................................................ 13 3.2 Kalibracija ..................................................................................................................... 17 3.3 Merilna negotovost ........................................................................................................ 18 3.3.1 Izvori negotovosti .................................................................................................. 18 3.3.2 Eksperiment v temperaturni komori ...................................................................... 21 3.3.3 Skupna negotovost ................................................................................................. 25 4. Elektronika ........................................................................................................................... 30 4.1 Detektorsko vezje .......................................................................................................... 31 4.1.1 Opis obstoječega vezja .......................................................................................... 31 4.1.2 Razvoj novega vezja .............................................................................................. 32 4.1.2.1 A/D pretvorba ................................................................................................. 33 4.1.2.2 Napajalne in referenčne napetosti .................................................................. 41 4.1.2.3 Multipleksiranje signalov ............................................................................... 42 4.2 Računalnik ..................................................................................................................... 46 5. Programska oprema .............................................................................................................. 47 5.1 Vgrajeni Linux .............................................................................................................. 48 5.2 Program za delovanje aethalometra .............................................................................. 52 5.2.1 Dnevniška sporočila .............................................................................................. 55 5.2.2 Delo z datotekami in konfiguracija programa ....................................................... 57 5.2.2.1 Splošno delo z datotečnimi sistemi in datotekami ......................................... 57 5.2.2.2 Konfiguracija programa ................................................................................. 58 5.2.2.3 Stanje naprave ................................................................................................ 60 5.2.2.4 Spletni vmesnik .............................................................................................. 60 5.2.3 Zaslon in tipkovnica .............................................................................................. 62 5.2.4 Digitalni vhodi in izhodi ........................................................................................ 64 5.2.5 Datum in čas .......................................................................................................... 68 5.2.6 Zaklep programa .................................................................................................... 69 5.2.7 Internacionalizacija ................................................................................................ 70 5.2.8 Meni in upravljanje na višjem nivoju .................................................................... 73 5.2.9 Prevajanje in namestitev programa ........................................................................ 76 6. Rezultati in diskusija ............................................................................................................ 78 6.1 Primerjava A/D pretvornikov DDC101 in DDC112 ..................................................... 78 6.2 A/D pretvornik ADS8341 .............................................................................................. 86 6.3 Stabilizacija napajalnih in referenčnih napetosti ........................................................... 87 6.4 Spletni vmesnik ............................................................................................................. 87 7. Zaključek .............................................................................................................................. 89 8. Priloge .................................................................................................................................. 90 8.1 Dnevniški izpis .............................................................................................................. 90 8.2 Datoteka s konfiguracijo programa za delovanje aethalometra .................................... 92 9. Seznam uporabljenih virov .................................................................................................. 98 10. Izjava o avtorstvu ............................................................................................................. 103 i Kazalo slik Slika 1: Merjenje z optično refleksijo ......................................................................................... 8 Slika 2: Merjenje z optično transmisijo ...................................................................................... 9 Slika 3: Sipanje svetlobe [17] ..................................................................................................... 9 Slika 4: Optična metoda s preletom delcev ............................................................................... 10 Slika 5: Shema aethalometra ..................................................................................................... 13 Slika 6: Optični princip aethalometra ....................................................................................... 14 Slika 7: Aethalometer (foto: Mitja Vardjan) .............................................................................. 16 Slika 8: Notranjost aethalometra (foto: Mitja Vardjan) ............................................................. 17 Slika 9: Enodnevna meritev s časovno bazo T = 5 minut ......................................................... 19 Slika 10: Test temperaturne občutljivosti: temperatura ............................................................. 23 Slika 11: Test temperaturne občutljivosti: signali na fotodiodah .............................................. 23 Slika 12: Test temperaturne občutljivosti: diference signalov na fotodiodah ........................... 24 Slika 13: Test temperaturne občutljivosti: izmerjena koncentracija BC ................................... 24 Slika 14: Bločna shema elektronike aethalometra .................................................................... 30 Slika 15: A/D pretvorba v starem detektorskem vezju ............................................................. 32 Slika 16: Časovni potek meritev optičnih signalov s starim detektorskim vezjem .................. 32 Slika 17: A/D pretvornik Burr-Brown DDC112U (SO ohišje) [28, stran 4] ............................. 34 Slika 18: Branje podatkov iz DDC112 [28, stran 21] ............................................................... 35 Slika 19: Nestalen in stalen način delovanja DDC112 [28, stran 19] ....................................... 37 Slika 20: Shema vezja za A/D pretvornik DDC112 .................................................................. 38 Slika 21: Prenos podatkov pri vsakem branju iz ADS8341 ...................................................... 39 Slika 22: A/D pretvornik Texas Instruments ADS8341 [31, stran 11] ...................................... 39 Slika 23: Opis priključkov ADS8341 [31, stran 2] ................................................................... 40 Slika 24: Signali med branjem iz ADS8341 pri notranji uri [31, stran 14] ............................... 40 Slika 25: Stabilizacija napajanja detektorskega vezja ............................................................... 41 Slika 26: Referenčna napetost za DDC112 [28, stran 11] ......................................................... 41 Slika 27: Multiplekser SN54F157A .......................................................................................... 42 Slika 28: Demultiplekser SN74S139A ..................................................................................... 43 Slika 29: Glavni del detektorskega vezja .................................................................................. 45 Slika 30: Shema celotne programske opreme ........................................................................... 47 Slika 31: Razvojno okolje KDevelop ........................................................................................ 53 Slika 32: Sledenje različicam s Subversion in grafičnim pregledovalnikom Kompare ............ 54 Slika 33: Modularizacija programske kode .............................................................................. 55 Slika 34: Hierarhija konfiguracije programa ............................................................................ 59 Slika 35: Spletni vmesnik ......................................................................................................... 61 Slika 36: Dostop do DIO ........................................................................................................... 64 Slika 37: Ustvarjanje ključa za zaklep programa ...................................................................... 69 Slika 38: Lokalizacija z GNU gettext ....................................................................................... 72 Slika 39: Lokalizacija programa s KBabel ............................................................................... 73 Slika 40: Delovanje glavne funkcije programa ......................................................................... 74 Slika 41: Dokumentacija strukture za meritve, ustvarjena z Doxygen ..................................... 75 Slika 42: Prototipa novega aethalometra z zaslonom Ampire (foto: mag. Damjan Zadnik)....78 Slika 43: Meritve z DDC101 v temi ......................................................................................... 79 Slika 44: Meritve z DDC112 v temi .......................................................................................... 80 Slika 45: Meritve z DDC101 pri prižgani IR LED diodi .......................................................... 81 Slika 46: Meritve z DDC112 pri prižgani IR LED diodi .......................................................... 82 Slika 47: Meritve z DDC101 pri prižgani UV LED diodi ........................................................ 83 Slika 48: Meritve z DDC112 pri prižgani UV LED diodi ........................................................ 84 ii Kazalo tabel Tabela 1: Kalibracija ?(?) [6, stran 40] ..................................................................................... 18 Tabela 2: Posamezne relativne standardne negotovosti za konkreten primer ........................... 28 Tabela 3: Primerjava A/D pretvornikov .................................................................................... 33 Tabela 4: Kontrolni bajt A/D pretvornika ADS8341 ................................................................. 39 Tabela 5: Kontrolni bajt in izbira kanala med nediferencialnimi vhodi ADS8341 ................... 40 Tabela 6: Združevanje digitalnih signalov A/D pretvornikov ................................................... 42 Tabela 7: Pravilnostna tabela multiplekserja SN54F157A ....................................................... 43 Tabela 8: Pravilnostna tabela demultiplekserja SN74S139A .................................................... 44 Tabela 9: Stopnje kritičnosti za dnevniški izpis ........................................................................ 56 Tabela 10: Komunikacijski protokol za zaslon Ampire ............................................................ 64 Tabela 11: Razpored digitalnih linij na DIO vmesniku ............................................................. 67 Tabela 12: DIO kanali za A/D pretvornike ............................................................................... 68 Tabela 13: Varianca signala iz A/D pretvornika za NDDC101 = 10, NDDC112 = 120 ........... 85 Tabela 14: Varianca signala iz A/D pretvornika za NDDC101 = 38, NDDC112 = 240 ........... 85 Tabela 15: Faktor izboljšave DDC112 glede na DDC101 ........................................................ 86 Tabela 16: Šum napajalnih napetosti ......................................................................................... 87 Tabela 17: Šum referenčnih napetosti ....................................................................................... 87 iii SEZNAM UPORABLJENIH SIMBOLOV ADEOS – Adaptive Domain Environment for Operating Systems ARSO – Agencija Republike Slovenije za okolje ATN – Attenuation BC – Black Carbon CF – Compact Flash COMEDI – Control and Measurement Device Interface CR – Carriage Return CRC – Cyclic Redundancy Check CSV – Comma Separated Values DIO – Digital Input/Output EC – Elemental Carbon EPA – U.S. Environmental Protection Agency EPIC – Embedded Platform for Industrial Computing FTP – File Transfer Protocol GPIO – General Purpose Input/Output HTML – Hypertext Markup Language HTTP – Hypertext Transfer Protocol IDE – Integrated Drive Electronics IP – Internet Protocol KDE – K Desktop Environment LAN – Local Area Network LF – Line Feed LIBS – Laser Induced Breakdown Spectroscopy MAAP – Multi Angle Absorption Photometer NAAQS – National Ambient Air Quality Standards iv OC – Optical Carbon PAH – Polycyclic Aromatic Hydrocarbon PCR – Polymerase Chain Reaction PDIP – Plastic Dual In-line Package PM – Particulate Matter PNG – Portable Network Graphics PSAP – Particle Soot Absorption Photometer QFN – Quad Flat No Leads RTAI – Real-Time Application Interface SDL – Simple DirectMedia Layer SMD – Surface Mounted Device SO – Small Outline Plastic Package SSOP – Shrink Small-Outline Package TELNET – Telecommunication Network TSP – Total Suspended Particles UTF-8 – 8-bit Universal Character Set/Unicode Transformation Format VFAT – VxD File Allocation Table, Virtual File Allocation Table VGA – Video Graphics Array XML – Extensible Markup Language v M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 1. Povzetek Trdni delci v zraku so onesnaževalec, ki neposredno škoduje človeškemu zdravju in vpliva na atmosferske lastnosti. Večina sodobnih in hitrih metod merjenja temelji na optičnih lastnostih delcev. Pri teh metodah je črni ogljik operativno definiran kot vrsta delcev, ki močno absorbira svetlobo. Na področju merjenja delcev, kjer glede referenčnih metod in kalibracij ni splošnega soglasja, je eden najpogosteje uporabljanih instrumentov aethalometer, ki po določenem času nalaganja delcev na sito izmeri optično slabljenje skozi sito in iz časovnega prirastka slabljenja izračuna ekvivalent masne koncentracije delcev črnega ogljika. Prvi cilj magistrske naloge je analiza merilne negotovosti ter izboljšava točnosti in hitrosti meritev aethalometra. Prispevki k skupni merilni negotovosti so razdeljeni v tri skupine: sistematske napake, ki jih je možno enostavno kompenzirati; sistematske napake, ki jih zaradi pomanjkanja širšega soglasja strokovne skupnosti glede referenčnih metod in kalibracij ni možno ali ni smiselno kompenzirati; ter naključne napake. K naključnim napakam največ prispeva slabljenje svetlobe, ki se izračuna iz meritev električnih tokov skozi dve fotodiodi. Zasnovana je bila nova različica merilnega vezja, ki omogoča večjo hitrost in točnost meritve slabljenja svetlobe. Ključna izboljšava je zamenjava eno-kanalnega analogno-digitalnega pretvornika za branje fotodiodnih tokov z dvo-kanalnim, ki meri oba kanala sočasno. Tako motilne veličine vplivajo na meritve obeh fotodiodnih tokov podobno in se v izračunu optičnega slabljenja kompenzirajo. Posledično se zmanjša merilna negotovost koncentracije črnega ogljika pri enakih ostalih pogojih oziroma se zmanjša čas meritve pri enaki negotovosti. Dvo-kanalni A/D pretvornik je z obema fotodiodama povezan neposredno in ne preko analognega stikala kot v prejšnji različici merilnega vezja, zato se čas meritve dodatno zmanjša za čas preklopa in stabilizacije po preklopu stikala. To najbolj pride do izraza pri izjemno majhnih časih meritve (reda nekaj sekund). Dodatna izboljšava je nov vgrajeni računalnik, ki izpolnjuje sodobne zahteve po povezljivosti. Drugi cilj magistrske naloge je izgradnja in namestitev posebej prilagojenega vgrajenega Linuxa ter programiranje aplikacije za neposredno komunikacijo z vsemi segmenti instrumenta, med katerimi so A/D in D/A pretvorniki na merilnem vezju, multiplekser za izbiro vira svetlobe, elektronika za samodejno menjavo sita in vmesnik do vgrajenega 1 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 alfanumeričnega zaslona in vgrajene tipkovnice. Program preko dodatnih aplikacij, kot so hotplug, thttpd, vsftpd in BlueZ, komunicira tudi preko USB, Ethernet in Bluetooth povezav. Program je napisan v programskem jeziku C in je razdeljen na smiselne module, ki so medsebojno dovolj neodvisni, da je možno obravnavati in spreminjati vsakega posebej. V primeru zamenjave določene strojne opreme se, v kolikor sprememba programskih nastavitev in makrojev ne zadostuje, zamenja samo ustrezni programski modul. Ključne besede: Črni ogljik, optične metode merjenja delcev, aethalometer, merilna negotovost, merilno vezje, digitalni vhodi-izhodi, vgrajeni Linux, programski jezik C. 2 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Abstract Particulate matter pollutes our environment, adversely affects human health and influences atmospheric properties. Most of the modern and quick measurement methods are based on optical properties of particles. Black Carbon (BC) is operationally defined as strongly optically absorptive particulate matter and is measured by some optical methods. In this area where no definitions, calibrations and reference methods are generally accepted, aethalometer is one of the most often used instruments for measuring BC concentration. It samples particles on a filter tape, calculates attenuation of light passing through the filter and calculates equivalent of BC mass concentration from speed of attenuation increase. This M. Sc. thesis analyzes aethalometer's measurement uncertainty and suggests steps to improve measurement accuracy and speed. Errors that add to combined standard uncertainty are grouped into: systematic errors that can be easily compensated; systematic errors compensation of which is either too hard or pointless due to the lack of common agreement over reference methods and calibrations; and random errors. The random errors arise above all from the optical attenuation which is calculated from measurements of electric currents through two photodiodes. To accomplish greater speed and accuracy of attenuation measurement, the detector circuit was partially redesigned. The essential change was the replacement of 1-channel A/D converter with a 2-channel A/D converter that samples both channels simultaneously. This way various disturbances in the circuit affect measurements of both photodiode currents in a similar way and are compensated when attenuation is calculated. This results either in decreased measurement uncertainty of BC concentration at unchanged measurement conditions, or in decreased time of measurement with same uncertainty. The photodiodes are directly connected to the 2-channel A/D converter and not through an analog switch as was the case with previous detector circuit version. This additionally shortens measurement time by the length of stabilization period after switching the source for A/D converter's analog input. This effect is the most obvious when the time of BC concentration measurement is set extremely short (a few seconds). Also, a new embedded computer was chosen to meet the modern needs for connectivity. Another goal of this work is to configure, build and install embedded Linux, and to program an application to directly communicate to all components of aethalometer, including A/D and 3 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 D/A converters in the detector circuit, multiplexer for light source selection, electronics for automated filter tape advance, and interface to built-in keyboard and alphanumeric screen. The application communicates through USB, Ethernet and Bluetooth by using other applications like hotplug, thttpd, vsftpd and BlueZ. The application is programmed in the C programming language and is modularized. The modules are independent enough to be analyzed or changed separately from the rest of the source code. If a piece of hardware is to be replaced in future and the changes in program configuration and macros cannot compensate for the hardware upgrade, only the appropriate module needs to be changed. Key words: Black Carbon, optical measurement methods for particulate matter, aethalometer, measurement uncertainty, detector circuit board, digital input/output, embedded Linux, C programming language. 4 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 2. Uvod Snovi, s katerimi je onesnažen zrak, v grobem delimo na pline in aerosole. Slednje nadalje delimo na razpršene kapljevine in trdne delce (PM, particulate matter), od katerih trdni delci prevladujejo tako po razširjenosti, masi, kot po škodljivem učinku na zdravje in jim je zato v strokovni javnosti posvečeno največ pozornosti. Trdne delce nadalje klasificiramo: • po biološki sestavi na nežive delce, bakterije, viruse, glive in odpadle delce večceličnih organizmov (npr. odmrli delci kože, dlaka), • po kemijski sestavi na ogljik, organske spojine (npr. policiklični aromatski ogljikovodiki ali PAH – polycyclic aromatic hydrocarbons) in anorganske snovi (npr. težke kovine), • po velikosti, glede na aerodinamični premer1, na večje od 10 µm, grobe (coarse particles, 2,5-10 µm), fine (fine particles, do 2,5 µm) in ultrafine (ultrafine particles, do 0,1 µm). Za delce z aerodinamičnim premerom, manjšim ali enakim X µm, je v uporabi oznaka PMX. Tako fine delce označujemo s PM2.5. Delce vseh velikosti skupaj označujemo s TSP (total suspended particles). Manjši delci prodrejo globlje v dihalno pot [1], fini delci (PM2.5) prodrejo v pljuča in so zdravju ljudi bolj škodljivi kot večji delci [2]. Škodljivost manjših delcev je zaradi večje površine na maso lahko še dodatno povečana zaradi večje adsorpcije težkih kovin, PAH-ov in drugih škodljivih snovi [2, stran 711]. Poleg negativnih posledic na zdravje imajo delci v zraku lahko vpliv tudi na formiranje oblakov in padavin [3 in 4], zaradi povečane optične absorpcije in sipanja svetlobe v atmosferi prihaja do temnenja neba (global dimming, zelo opazno v Indiji in na Kitajskem), na sneg adsorbirani delci zmanjšajo albedo snega in lahko povečajo topljenje in globalno segrevanje [5]. Črni ogljik (black carbon, BC) je produkt nepopolnega zgorevanja, tipično velikosti 0,03-0,3 µm [6, stran 59] in je zdravju zelo škodljiv [7, 8 in 9]. Zaradi grafitne strukture ima v infrardečem (IR) in vidnem območju svetlobe zelo močno absorpcijo, ostali delci v zraku pa imajo v primerjavi z BC večinoma zanemarljivo absorpcijo [6, stran 20]. Poleg BC so za razne 1 Aerodinamični premer delca - premer krogle z gostoto 1g/cm3 z enako gravitacijsko končno hitrostjo (terminal velocity) v mirujočem zraku, kot jo ima delec [1, stran 1]. 5 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 oblike ogljika v zraku v uporabi še druge oznake: elementarni ogljik (EC, elemental carbon) in optični ogljik (OC, optical carbon), ki se med seboj po definicijah2 razlikujejo. Pri meritvah je OC v večini primerov enak ali skoraj enak BC, EC pa je dobro koreliran. Predlog direktive EU vsebuje regulacijo PM z zelo nizko določenimi največjimi dovoljenimi povprečnimi koncentracijami PM2.5: največ 25 µg/m3 kjerkoli [10, stran 5], in zmanjšanje za 20% od 2010 do 2020 [10, stran 55]. V ZDA je na tem področju v veljavi Environmental Protection Agency (EPA) Clean Air Act [11], iz katerega izhajajo standardi National Ambient Air Quality Standards (NAAQS) [12]. 2.1 Metode merjenja delcev V osnovi ločimo tri skupine metod za merjenje koncentracije PM: gravimetrične, optične in električne. Slednje so manj razširjene, temeljijo pa na naelektritvi delcev in odvajanju elektrine s preletom naelektrenih delcev, kar ima za posledico merljivo spremembo elektrine oziroma napetosti na elektrodah. Zgodovinsko so se najprej uveljavile gravimetrične metode in zato razne definicije in regulacije s strani okoljskih agencij ponavadi temeljijo na njih. Pri gravimetrični metodi se zaradi majhne mase delcev v zraku delce nabira dalj časa, da se akumulira količina, ki zagotavlja dovolj točno meritev. Za nabiranje delcev se največkrat uporablja sito iz kremenčevih ali celuloznih vlaken. Kremenčeva vlakna so kemijsko nereaktivna in odporna na visoke temperature, zato so takšna sita primerna za merjenja, kjer je poleg meritev koncentracije zaželena tudi dodatna analiza, npr. kemijska analiza, LIBS3, PCR4. Njihovi slabosti sta mehanska krhkost in visoka cena. Za najboljše rezultate mora biti sito pred meritvijo čisto. Lahko se ga segreje v peči do visoke temperature, da nečistoče izparijo. Čisto sito se stehta in izvede vzorčenje s črpanjem merjenega zraka čez sito. Po določenem času se sito ponovno stehta in masni prirastek sita predstavlja maso nabranih delcev. Masno koncentracijo se izračuna iz mase delcev na situ in količine zraka, ki se je ob konstantnem volumskem pretoku ?v v časovnem obdobju ?t prečrpala čez sito: 2 Povsem točne in splošno sprejete definicije za BC, OC in EC kot onesnaževalce zraka pravzaprav sploh ne obstajajo. 3 Laser induced breakdown spectroscopy – Lasersko segrevanje snovi do visokih temperatur, kjer snov razpade na ione in atome, ki sevajo. Ker imajo le-ti značilne spektre, je z analizo spektra možno določiti elementarno sestavo snovi. 4 Polymerase chain reaction – Umetna replikacija DNA, uporablja se lahko za ugotavljanje vrste mikroorganizma v vzorcu. Modifikacija metode, ki omogoča tudi ugotavljanje količine v prvotnem vzorcu, je QPCR (Quantitative PCR). 6 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 'y---- i cm - —-t- (1) Poglavitna slabost gravimetrične metode je zahtevnost natančnega tehtanja in menjave sita, zaradi česar je ta metoda počasna in neprimerna za avtomatizacijo. Še vedno se uporablja v nekaterih situacijah, kjer so enostavnost, majhne dimenzije in masa merilnega sistema pomembnejši faktorji izbire kot hitrost, časovna ločljivost in samodejnost meritev, sicer pa se bolj uporablja kot referenčna metoda, za kalibracijo ostalih metod, ali kot vzporedna kontrolna meritev. Optične metode delimo nadalje na 2 skupini: • z nabiranj em delcev na situ, ki izhaj a iz gravimetrične, • in z direktnim merj enj em delcev v zraku. Optična metoda z nabiranjem delcev na situ je podobna gravimetrični, bistvena razlika je le v določanju nabrane količine delcev na situ, kjer se namesto tehtanja mase uporabi optično transmisijo ali pa refleksijo. V obeh primerih ima meritev teoretično podlago v absorpciji svetlobe v nabranih delcih in Beer-Lambertovem zakonu, ki opisuje zmanjšanje intenzitete svetlobe z valovno dolžino ? iz I0 na I pri prehodu skozi medij z optično globino ?: t(A) = 1iiI (2) Iz meritev intenzitete svetlobe pri čistem situ in intenzitete svetlobe pri situ z nabranimi delci se torej izračuna optično globino ali atenuacijo svetlobe, ki je osnova za nadaljnji izračun koncentracije delcev v zraku. Prednost metode izhaja iz integracije merilnega signala, saj se kot pri gravimetrični metodi z nalaganjem merj enca na račun povečanega časa meritve zmanjšuje meja detekcije. Posebnost optičnih metod je odvisnost od valovne dolžine, kar zahteva dodatno kalibracijo, a omogoča pridobitev več informacije o merjenih delcih, saj različne snovi izražajo različno odvisnost absorpcije od valovne dolžine. Metoda meritve optične refleksije je prikazana na sliki 1, izračun pa je podan z enačbo (3), kjer a označuje ti. absorpcijski koeficient5. Podrobno jo opisuje standard ISO 9835:1993 [15]. Posebnost metode 5 Absorpcijski koeficient je po nekaterih definicijah [13, stran 219; 14, stran 110] lastnost snovi, v drugih virih [15, stran 1; 16, stran 1447] pa se pojavlja kot veličina, sorazmerna s količino nabrane snovi in s tem tudi s koncentracijo delcev v zraku. Smiselno razlago drugega primera daje obravnavanje nabranih delcev kot 7 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 je dvakratni prehod svetlobe skozi merjeno snov na traku, kar se odraža s faktorjem 1 v enačbi (3), s čimer se tudi meja detekcije in šum, ki izvira iz fotodetektorja, teoretično prepolovita. Vendar se delci pri nalaganju na sito ne ustavijo takoj na skrajni zgornji točki sita, temveč delno prodrejo skozi vlakna v notranjost sita, pri čemer je globina prodora, s tem pa tudi refleksija, odvisna od velikosti in oblike delcev, strukture vlaken sita (odvisnost od proizvodne serije in kvalitete izdelave), zračnega pretoka skozi sito, ter od časa, saj ni možno predpostaviti, da vsi delci po pristanku na trak kljub zračnemu pretoku stalno mirujejo. Slika 1: Merjenje z optično refleksijo Zato sodobne optične metode, ki merijo na situ akumulirano snov, namesto refleksije merijo transmisijo. Na tej metodi temelji delovanje pogosto uporabljanih instrumentov Particle Soot Absorption Photometer (PSAP), Aethalometer in Multi Angle Absorption Photometer (MAAP)6. enotne snovi z zanemarljivo spremenljivo debelino, pri čemer se z nalaganjem novih delcev spreminja koncentracija in optična prepustnost te snovi. 6 MAAP meri tudi refleksijo, vendar so te meritve namenjene pridobivanju dodatnih informacij o sipanju in ne o absorpciji, na kateri temelji izračun koncentracije delcev. 8 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Slika 2: Merjenje z optično transmisijo Enačba (2), ki je osnova vseh optičnih metod z nabiranjem delcev na situ, poleg absorpcije zajema tudi sipanje. Pri teh metodah temelji izračun masne koncentracije na povezavi med maso določenih delcev (npr. BC) in absorpcijo, sipanje pa pri tem predstavlja neželen pojav. Še posebej moteče so spremembe sipanja na vlaknih sita zaradi nalaganja novih delcev. Slika 3: Sipanje svetlobe [17] Optična metoda z direktnim merjenjem delcev v zraku je popolnoma drugačna in temelji prav na sipanju. Čeprav se zaradi zgodovine in medsebojne primerljivosti tudi pri optičnih metodah rezultat velikokrat preračuna v ng/m3 ali µg/m3, kot rezultata ta metoda praviloma ne podaja masne koncentracije, ampak številčno koncentracijo (število delcev na enoto 9 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 prostornine). Zato se takšne naprave imenujejo števci delcev (particle counter). Delovanje prikazuje slika 4. Skozi ozko cev se črpa zrak in ko pravokotni snop laserja za trenutek prekine delec, se svetloba siplje v vse smeri. Fotodetektor je zato lahko nameščen kjerkoli, razen v snopu laserja. Vendar se s postavitvijo fotodetektorja v kot, v katerem se pričakuje največjo jakost sipanja, doseže manjša potrebna moč laserja za zadovoljivo zanesljivost detekcije, oziroma se meja detekcije fotodetektorja sploh preseže. Pri delcih, zanemarljivo majhnih v primerjavi z valovno dolžino svetlobe, je sipanje dobro aproksimirano z Rayleigh-jevim sipanjem, sicer je potrebno upoštevati Mie-jevo teorijo7 [13, strani 759-789], ki je grafično in poenostavljeno prikazana na sliki 3. Tako se z uporabo več detektorjev in razmerjem signalov iz njih lahko pridobi dodatno informacijo o velikosti delca. Slika 4: Optična metoda s preletom delcev Omenim naj še eno izvedbo metode z direktnim merjenjem delcev, kjer je fotodetektor postavljen v laserski snop in zaznava zmanjšanje jakosti svetlobe zaradi absorpcije in sipanja delca, ki preleti snop. Ker absorpcija na delec narašča z velikostjo delca, je takšna metoda primerna za merjenje večjih delcev (1 µm in več), za merjenje bolj škodljivih manjših delcev 7 Mie-jeva teorija (Mie theory) – konkretna rešitev Maxwellovih enačb za primer elektromagnetnega valovanja na homogeni in izotropni krogli z danim radijem. Če je radij v primerjavi z ? / (2?) zelo majhen, preide rešitev v Rayleigh-jev model sipanja, druga skrajnost (neskončen radij), pa preide v geometrijsko optiko [14, strani 775-779]. 10 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 pa ne. Koncentracijo se izračuna iz števila zaznanih pulzov na fotodetektorjih: N 1 cN~^M P (zadetek) (4) Če laserski žarek ni razširjen po celotnem preseku cevi, po kateri se pretakajo delci, je potrebno v izračunu koncentracij e upoštevati verjetnost zadetka delca z laserskim snopom. Ob predpostavki homogene razpršenosti delcev po preseku cevi in zanemarljive velikosti delcev v primerjavi s premerom cevi je to kar razmerje površin laserskega snopa in preseka cevi. V strokovni literaturi se večinoma ugotavlja koreliranost meritev z različnimi instrumenti in koreliranost meritev s sprejemom bolnikov ter z umrljivostjo ljudi. V prid optičnim metodam govori dejstvo, da so njihovi rezultati občutno bolj povezani z negativnim vplivom na zdravje ljudi kot rezultati gravimetričnih metod za merjenje TSP. Poleg tega vse optične metode omogočajo večjo hitrost in lažjo avtomatizacijo meritev. 2.2 Etaloni in referenčne metode Etaloni ne obstajajo niti za koncentracije PM (TSP, PM10, PM2.5, PM1, PM0.1) niti za koncentracije BC. Obstajajo generatorji delcev (npr. Palas GfG 1000), ki generirajo določeno vrsto delcev (npr. kerozinske saje kot model delcev z visoko absorpcijo, amonijev sulfat kot model delcev, ki svetlobo samo sipajo in je ne absorbirajo) in jih nekateri avtorji uporabljajo za preizkus delovanja ali za kalibracijo merilnikov. Vendar takšni delci niso enaki delcem v atmosferi in njihova uporaba za etalon ali referenčno koncentracijo za umerjanje je vprašljiva. Glede na povezavo vpliva na zdravje in velikosti delcev, ter glede na velikostno distribucijo delcev v urbanem okolju, bi bilo za etalon potrebno generirati delce, manjše od 1 µm. Tako majhnih delcev se ne da generirati z enostavnimi mehanskimi postopki [18]. Poleg tega se tako majhni sveži delci hitro prilepijo na površine, se medsebojno združujejo in adsorbirajo še manjše delce, ki prosto plavajo v zraku. Delci v atmosferi s kemijskim staranjem sčasoma izgubijo to lepljivost [18]. Na stene naloženi delci se lahko zaradi kroženja zraka ali drugih mehanskih vplivov iz površin tudi resuspendirajo in spremenijo koncentracijo. Poleg tega vse metode, ki posredno ali neposredno merijo masno koncentracijo, nekaj delcev pri meritvi 11 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 odstranijo iz zraka (količina odstranjenih delcev narašča z želeno natančnostjo meritve), s čimer se koncentracija v končno velikem zaprtem prostoru spremeni in četudi bi obstajal etalon, bi se uničil s prvo primerjavo z neko drugo merjeno koncentracijo. Tudi pri metodah merjenja ni neke absolutne reference, vsaj ne za optične metode. Za merjenje koncentracije BC obstaja več metod in več optičnih instrumentov, vendar nobena metoda ni splošno sprejeta ali standardna [19]. So pa nekatere bolj pogosto uporabljane, npr. izmed optičnih metod za merjenje BC je najbolj pogosto uporabljan aethalometer [16], oziroma vsaj eden najbolj pogosto uporabljanih [20]. Kot referenčne metode in za umerjanje tistih optičnih metod, ki prikazujejo rezultat kot masno koncentracijo, se uporabljajo gravimetrične metode. Težava je tudi v definiciji koncentracij, ki so v standardih in predpisih podane kot masne koncentracije. Optične metode dajejo rezultat, ki se ga sicer da pretvoriti v masno koncentracijo, a sta natančnost in pogrešek pretvorbe ob nepoznanih ostalih parametrih (vlaga, biološko kemijska sestava delcev, velikostna distribucija delcev, oblika delcev, staranje delcev, spreminjanje agregatnega stanja) slabo predvidljiva, različne optične metode pa prav tako niso direktno primerljive. Med rezultati različnih merilnih instrumentov vedno obstaja neka korelacija, vendar razlik ni možno izničiti s splošno kalibracijo, saj so razlike v meritvah različnih instrumentov, tudi tistih, ki temeljijo na podobnih metodah, odvisne od merilnih pogojev. Močan vpliv na te razlike imata običajno lokacija in letni čas (drugačne vrste aerosolov, klimatski pogoji, itd.). 12 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 3. Predstavitev aethalometra Aethalometer z optično metodo, z meritvijo optične transmisije skozi na situ nabrane delce, meri koncentracijo črnega ogljika. 3.1 Princip delovanja in fizikalno ozadje Slika 5: Shema aethalometra Delovanje instrumenta shematsko prikazuje slika 5, optično komoro pa slika 6. Povratna zanka s črpalko in merilnikom pretoka zagotavlja konstanten zračni pretok skozi sito iz kremenčevih vlaken v optični komori, na katero se nabirajo delci iz zraka. V prvih instrumentih iz osemdesetih let 20. stoletja je bila v optični komori kot vir svetlobe uporabljena širokospektralna žarnica, ki so jo v kasnejših izvedbah nadomestile LED diode. Na drugi strani sita se meri intenziteto svetlobe na dveh mestih: • Neposredno pod površino, skozi katero se pretaka zrak in kamor se nalagajo delci. To detektorsko mesto se označi s „s“ kot „sense“. • Pod površino, skozi katero ni zračnega pretoka in zato ostaja svetlobno enako prepustna ves čas meritve. To detektorsko mesto se označi z „r“ kot „reference“. 13 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Slika 6: Optični princip aethalometra Iz Beer-Lambertovega zakona (2) se izrazi intenziteto svetlobe na vsaki fotodiodi posebej: Is = I-e~Ts (5) Ir = I0-e-Tr (6) V izračunu slabljenja svetlobe se uporabi razmerje Is/Ir. To razmerje je pri konstantnih optičnih lastnostih sita z nabranimi delci neodvisno od I0. S tem se v veliki meri kompenzira nestalnost svetlobnega vira in z njim povezan merilni pogrešek. Pred začetkom serije meritev se sito samodejno zamenja in se za „sense“ in „reference“ fotodiodi izmeri temna tokova sz in rz. Zatem se vklopi LED diodo in se v rednih intervalih meri tokova sb in rb čez fotodiodi pri prižgani LED. Optična atenuacija se označi z ATN in je v skladu z Beer-Lambertovim zakonom definirana z enačbo (7), pri čemer je argument logaritma obrnjen (če odštejemo vpliv sita, signal referenčne fotodiode ustreza I0), faktor 100 pa dodan zaradi človeku lažjega obravnavanja števil v tipičnem razponu med 0 in 75. Izračun masne koncentracije BC iz atenuacije podaja enačba (8). 14 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 sb-sz ATN =-100 lnbz (7) r -r b A AATN cm a(\)-> 0, ?ATN >> 0) se lahko relativna standardna negotovost izračuna neposredno po enačbi (18). cm if—)2+te) w=w^f+f^l (18) Primer modela aethalometra z zbiralno površino sita A = 1,67 cm2, nastavitvijo na Magee BC kalibracijo za ?(?), časovno bazo ?t = 5 minut, izmerjenim pretokom 4 L/min in koncentracijo na IR kanalu 3000 ng/m3: Iz enačbe (8) sledi: ?ATN = 0,59641. Iz enačb (11) in (15) sledi: 0,086603 L min-1 L = p = 0 021651 (19) *m 4 L min 1 cmw*m,P,T = 30003V0,0216512 + 0,0826312 = 256,26 3 (20) Del, ki ga k skupni standardni negotovosti prispeva ?ATN: ^W """ = 30 0 0 596 g 41 3 0,0070565 = 35,495 3 (21) Z vstavitvijo vrednosti izrazov (20) in (21) v enačbo (17) končno sledi skupna standardna negotovost: u = "cm V256,262 + 35,4952 ^ = 258,71 ^ « 260 ^ -3=258,713~2603 (22) Rezultat se lahko zapiše z razširjeno merilno negotovostjo s faktorjem razširitve 2: cm = 3000 3 ± 520 3 (23) 27 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Enačba (23) velja pri predpostavljenih normalnih distribucijah za nivo zaupanja 95,5 %, v najslabšem primeru z upoštevanjem neenakosti Čebiševa pa za nivo zaupanja 75 %. Tabela 2: Posamezne relativne standardne negotovosti za konkreten primer Wcm w#m Wp wT Waatn 0,087 0,022 0,074 0,038 0,012 Tabela 2 podaja posamezne prispevke k skupni relativni standardni negotovosti. Prispevek temperature in tlaka k negotovosti je bil ocenjen zelo konservativno. Poleg tega gre pri tlaku, temperaturi in v veliki meri tudi pri masnem pretoku za sistematske pogreške. Standardna negotovost merilnika pretoka Sierra 824-RFQ-2340, izmerjena kot negotovost tipa A pri pretoku od 1 do 1,8 L/min, znaša od 0,0075 do 0,014 L/min (odvisno od pretoka), kar je samo 9-16% standardne negotovosti tipa B, ki je bila uporabljena v izračunu skupne negotovosti. Omenjene sistematske pogreške se lahko kompenzira s: • kalibracij o merilnika pretoka, • hkratno meritvijo tlaka in temperature; na merilnih mestih nekaterih okoljskih organizacij sta ta podatka že tako ali tako prisotna in dodatni instrumenti sploh niso potrebni. Prispevek negotovosti ?ATN k skupni negotovosti je lahko že brez kompenzacij sistematskih pogreškov večji kot v tabeli 2, kar dokazuje prejšnji primer aethalometra, ki se mu časovno bazo ?t = 5 minut zmanj ša na ?t / k: Iz enačbe (8) sledi, da se tudi ?ATN zmanjša z enakim faktorjem na ?ATN / k. Izraz (20) ostaja enak, izraz (21) pa se poveča z istim faktorjem na k · 35,495 ng/m3. Skupna standardna negotovost tako znaša: ucm = V256,262 + (k-35,495)2 3 (24) V praksi glavni delež prispeva negotovost, ki izvira iz meritev optičnih signalov, torej negotovost ?ATN. Negotovost ?ATN se močno poveča z zmanjšanjem časovne baze in/ali uporabo več različnih svetlobnih virov (npr. aethalometer s 7 LED diodami), saj se s tem 28 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 skrajša čas za stabilizacijo opto-elektronskega merilnega sistema po preklopu svetlobnega vira. Ravno povečanje hitrosti meritev pa je ena glavnih zahtev pri izboljšavi aethalometra. 29 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 4. Elektronika V prejšnjem poglavju je bilo ugotovljeno, da k merilni negotovosti aethalometra prispevajo sistematski vplivi, ki jih je po potrebi možno enostavno kompenzirati, sistematski vplivi, ki so prezahtevni za obravnavo v tem delu in zahtevajo tudi soglasje širše strokovne skupnosti, ter naključni vplivi, ki v največji meri izvirajo iz ?ATN. Zato je najboljši pristop za izboljšanje merilne točnosti izboljšava meritev signalov fotodiod. Dodaten razlog je, da so pri merjenju koncentracije delcev naključni vplivi bolj problematični kot pri meritvah nekaterih drugih veličin, ker je njihovo odpravljanje s ponavljanjem meritev zaradi stalnega spreminjanja koncentracije vprašljivo. Poleg tega pri nekaterih dodatnih obdelavah podatkov iz več aethalometrov (omenjeno na sliki 30 v poglavju 5) naključni pogreški predstavljajo velik problem, sistematski pa nikakršnega. Serijska vrata Disketna enota Vgrajeni čitalnik pomnilniških kartic Ethernet Računalniška tipkovnica (za razvoj in servisiranje) Zaslon in tipkovnica Detektorsko vezje Pretok se preusmeri mimo filtra Mehanizem za premik traku Medij za shranjevanje podatkov Slika 14: Bločna shema elektronike aethalometra Črpalka Merilnik pretoka LED vezje Analogni izhod Obvod zračnega pretoka Solenoid Motor za premik traku Motor za napenjanje traku Na sliki 14 je bločna shema elektronike aethalometra, na kateri so predlagane spremembe označene s sivino. Poleg izboljšave detektorskega vezja, ki vsebuje A/D pretvornik za branje 30 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 signalov fotodiod, je za modernizacijo celotnega instrumenta hkrati izbran tudi nov računalnik, ki še vedno podpira disketno enoto, na katero so navajeni dosedanji uporabniki, podpira pa tudi sodobne vmesnike. 4.1 Detektorsko vezje Detektorsko vezje vsebuje celotno elektroniko za delovanje črpalke, merilnika pretoka, LED diod in ostalih komponent aethalometra, razen komunikacije z zunanjim svetom. Z računalnikom je vezje povezano po 50 žilnem ploskem kablu. Razdeljeno je na dva logična sklopa, ki se nahajata vsak na svojem delu tiskanine: • Močnostni del, ki vsebuje napajalni del, komponente za krmiljenje solenoida in motorjev, kondenzatorje (1000 µF in več) za stabilizacijo napajalnih napetosti za večje porabnike, ipd. Motnje v napajalni napetosti bi lahko vplivale tudi na občutljivi merilni del vezja, zato je bila napajalna napetost dodatno stabilizirana, sicer pa ta del deluje dobro in večjih sprememb ni bilo. • Merilni del, ki zajema bolj občutljive komponente: A/D in D/A pretvornike, fotodiodi, generatorje referenčnih napetosti ter vso digitalno elektroniko. Glavnina tega dela vezja je skupaj s svojimi spremembami opisana v nadaljevanju. 4.1.1 Opis obstoječega vezja Osrednji del detektorskega vezja predstavlja A/D pretvornik Burr-Brown DDC101, ki ima en tokovni merilni vhod. Za delovanje aethalometra je potrebno meriti tri analogne veličine: dva tokova iz fotodiod Hamamatsu S1336 in izhodno napetost merilnika pretoka. Vse tri veličine so preko analognega stikala Maxim DG308 povezane na isti vhod A/D pretvornika, kar je prikazano na sliki 15. Ta pristop ima naslednji slabosti: • Fotodiodi na A/D pretvornik nista priklopljeni neposredno. • Pred A/D pretvorbo je potrebno preklopiti analogno stikalo, razen če gre za serijo meritev iste veličine. To ima še bolj usodne posledice: po preklopu je potrebno zakasniti začetek meritve A/D pretvornika za 100 ms, da se signal stabilizira. Meritvi tokov čez fotodiodi sta časovno tako oddaljeni, da lahko upravičeno sumimo, da zaradi nihanja jakosti vira svetlobe in ostalih motenj v merilnem vezju nista izvedeni 31 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 pri enakih pogojih. Poleg tega se podaljša tudi čas celotne meritve koncentracije BC. To je problematično zlasti pri zelo kratkih časovnih bazah (do približno 1 minute), kjer časovna razlika med meritvami signalov iz obeh fotodiod v primerjavi s časovno bazo ni več zanemarljiva, čeprav enačba (7) predpostavlja sočasnost meritev svetlobnih signalov. „Sense“ fotodioda Referenčna fotodioda Merilnik pretoka Nepovezan napetostni vhod (temperatura, ...) A/D pretvornik DDC101 Slika 15: A/D pretvorba v starem detektorskem vezju Črpanje zraka, meritve pretoka N meritev „sense“ fotodiode 100 ms premora N meritev ref. fotodiode Slika 16: Časovni potek meritev optičnih signalov s starim detektorskim vezjem Vse elektronske komponente so v ohišju PDIP in nameščene v podnožja na tiskanini. Izjema je A/D pretvornik, ki ga proizvajalec dobavlja samo v SMD pakiranju in se nahaja na svoji ločeni tiskanini, ki je prav tako nameščena v podnožje na glavni tiskanini. Tako se večina komponent vezja ob okvari lahko zamenja, čeprav se v praksi to ne dogaja pogosto in je običajno enostavneje in hitreje zamenjati celotno vezje kot najti in zamenjati nedelujoč element. 4.1.2 Razvoj novega vezja Shema novega vezja je načrtana s programom gschem iz paketa gEDA 20070216 [25]. Vse sheme na slikah v tem poglavju, pri katerih ni naveden vir, so izdelane z gschem. 32 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 4.1.2.1 A/D pretvorba Ključna sprememba je zamenjava enega eno-kanalnega A/D pretvornika z rešitvijo, ki ima merilne signale povezane na vhode neposredno in skrajša časovno oddaljenost meritev obeh optičnih signalov. Ker je obstoječi A/D pretvornik sicer kakovosten, preverjen in primeren za neposredno merjenje majhnih tokov, se kot prve opcije ponujajo rešitve s sorodnimi Burr-Brown A/D pretvorniki: Tabela 3: Primerjava A/D pretvornikov A/D pretvornik Cena / $ [26] Dolgoročna dobavljivost [26] Srednja kvadratna vrednost šuma pri enakih ali podobnih pogojih / ppm polnega obsega 2 × Burr-Brown DDC101 v kaskadi 1 × cenejši napetostni, npr. ADS8341 2 × 42 + 8 Ne 1,6 – 2,1 [27, stran 4] 1 × Burr-Brown DDC112 1 × cenejši napetostni, npr. ADS8341 16 + 8 Da 4,2 [28, stran 3] 1 × Burr-Brown DDC 114 24 Da 5,2 – 5,5 [29, stran 3] Manj kritična je meritev pretoka, ki se lahko izvede kot tokovna meritev preko upora na istem A/D pretvorniku ali pa se izvede z dodatnim, cenejšim A/D pretvornikom. Čeprav je DDC101 bolj natančen kot DDC112 ali DDC114 (tabela 3), so glede na nihanja izmerjenih signalov (slike 43 do 48 v poglavju 6.1) vsi pretvorniki dovolj natančni. Dva pretvornika DDC101 v seriji sta manj primerna rešitev, ker proizvajalec izdelek umika iz tržišča in priporoča DDC112 kot nadomestilo [26]. Manj pomemben argument proti DDC101 je tudi cena. DDC114 je na voljo samo v ohišju QFN [30], ki je za manjše serije in za ročno spajkanje manj primerno. Možnost za nadgradnjo v prihodnosti je dodatek senzorjev tlaka in temperature (za kompenzacijo sistematskih napak masnega merilnika pretoka), ki bi bila na A/ D pretvornik povezana enako kot merilnik pretoka. Zato je bil izbran DDC112 z dodatnim 16 bitnim 4-kanalnim A/D pretvornikom Burr-Brown ADS8341. Tako je tudi ob predpostavljenih senzorjih temperature in tlaka en kanal še vedno prost za morebitno dodatno nadgradnjo. 33 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Top View SO IN1 1 AGND 2 CAP1B 3 CAP1B 4 CAP1A 5 CAP1A 6 AVDD 7 TEST 8 CONV 9 CLK 10 DCLK 11 12 DXMIT DIN 13 DVDD 14 DDC112U 28 IN2 AGND CAP2B CAP2B CAP2A CAP2A Vref AGND RANGE2 (MSB) RANGE1 RANGEO (LSB) DVALID DOUT 15 DGND PIN LABEL DESCRIPTION 1 IN1 Input 1 : analog input for Integrators 1A and 1B. The integrator that is active is set by the CONV input. 2 AGND Analog Ground 3 CAP1B External Capacitor for Integrator 1B 4 CAP1B External Capacitor for Integrator 1B 5 CAP1A External Capacitor for Integrator 1A 6 CAP1A External Capacitor for Integrator 1A 7A vDD Analog Supply, +5V Nominal 8 TEST Test Control Input. When HIGH, a test charge is applie to the A or B integrators on the next CONV transition. 9 CONV Controls which side of the integrator is connected to input. In continuous mode; CONV HIGH side A is integrating, CONV LOW side B is integrating. CONV must be synchronized with CLK (see Figure 2). 10 CLK System Clock Input, 10MHz Nominal 11 12 DCLK Serial Data Clock Input. This input operates the serial I O shift register. Serial Data Transmit Enable Input. When LOW, this input enables the internal serial shift register. DXMIT 13 DIN Serial Digital Input. Used to cascade multiple DDC112; 14 DVDD Digital Supply, +5V Nominal 15 16 17 DGND DOUT Digital Ground Serial Data Output, Hi-Z when UXMII is HIGH Data Valid Output. A LOW value indicates valid data is available in the serial I/O register. UVALIL) 18 RANGEO Range Control Input 0 (least significant bit) 19 RANGE1 Range Control Input 1 20 RANGE2 Range Control Input 2 (most significant bit) 21 AGND Analog Ground 22 Vref External Reference Input, +4.096V Nominal 23 CAP2A External Capacitor for Integrator 2A 24 CAP2A External Capacitor for Integrator 2A 25 CAP2B External Capacitor for Integrator 2B 26 CAP2B External Capacitor for Integrator 2B 27 AGND Analog Ground 28 IN2 Input 2: analog input for Integrators 2A and 2B. The integrator that is active is set by the CONV input. Slika 17: A/D pretvornik Burr-Brown DDC112U (SO ohišje) [28, stran 4] Pretvorba se v DDC112 začne s polnitvijo vgrajenega kondenzatorja na referenčno napetost Vref. Vhodni tok v DDC112 prazni kondenzator. Po določenem času se napetost na kondenzatorju primerja z Vref in razliko digitalizira. Vsak vhod v DDC112 ima po dva integratorja, označena z A in B. Medtem, ko se tokovni signal integrira, se prejšnji integral digitalizira. Integraciji obeh kanalov potekata sočasno. Čas integracije je stalen in znan, saj ga določi uporabnik kot polovico periode zunanjega signala CONV. Tako se lahko DDC112 obravnava tudi kot merilnik elektrine. Merilni obseg je tako v specifikaciji podan kot elektrina v pC. Največja vrednost elektrine, ki jo meri DDC112, se nastavi z vgrajenimi kondenzatorji od 50 do 350 pC v korakih po 50 pC, ali pa z zunanjimi kondenzatorji do 1000 pC, če so kapacitivnosti zunanjih kondenzatorjev 250 pF [28, stran 3]. Kondenzatorje se izbere z 34 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 vhodnimi signali RANGE0 do RANGE2. Pri izbiri vgrajenih kondenzatorjev so le-ti za vsak integrator vsakega kanala enakih kapacitivnosti [28, stran 11]. Vhod TEST omogoča, da se vhodna analogna signala spelje na maso in na integratorje prenese elektrina 13 pC [28, stran 12]. Za večino notranje digitalne elektronike je uporabljena ura iz vhodnega signala CLK, ki določa hitrost A/D pretvorbe [28, stran 13]. Z izbrano 10 MHz uro (CLK) se digitalizacija izvrši v 220 µs [28, stran 8]. Podatki se pošljejo zunanji napravi po serijskem vmesniku. A/D pretvornik najprej javi dostopnost podatka s prehodom izhodnega signala DVALID v nizko stanje. Zatem naprava, ki bere podatke, s prehodom signala DXMIT v nizko stanje javi začetek branja, sproži uro DCLK in prebere 40 bitni podatek na izhodu DOUT. Prebrani podatek vsebuje zaporedni 20 bitni vrednosti obeh kanalov. Vhod DIN je namenjen hkratnemu delovanju več pretvornikov DDC112 in v tem vezju ni uporabljen. Procesa A/D pretvorbe in dostavljanja podatkov zunanji napravi sta neodvisna in DCLK je lahko drugačne frekvence kot CLK, določi pa jo zunanja naprava [28, stran 13]. V nasprotju z DDC101 pretvornika DDC112 ni potrebno inicializirati in vpisovati parametrov integracije kot serijskih podatkov pred prvo uporabo po vklopu napajanja, temveč se nastavitve določijo strojno ali z zunanjimi signali (frekvenci CLK in CONV, vrednosti RANGE0, RANGE 1 in RANGE2). CLK DVALID DXMIT DCLKO) J\ ^_______/ \_______,_____{ ' TJ*U~~l_ri_[*l_rL no, .y _____________________/ Input 2 yJ "V Input 2 y Input 1 \J «"W Input 1 \ Output Disabled \ Bil 1 A » A Bit20 A Bin A »A Bit20 f MSB ^ LŠB MSB --------^ LŠB °UtpUt Disabled Output Enabled NOTE: (1) Disable DCLK (preferably hold LOW) when DXMIT is HIGH. Slika 18: Branje podatkov iz DDC112 [28, stran 21] Tipične najvišje izmerjene vrednosti tokov čez fotodiodi (prižgana LED dioda z najvišjim odzivom fotodiode, čisto sito) znašajo okoli 0,5 µA. Vsaka meritev optičnega signala, ki 35 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 nastopa v enačbi (7), je v praksi statistični parameter več zaporednih meritev. Tipično število meritev je 10-250, odvisno od časa, ki je na razpolago za meritve. Čas ene meritve naj zato ne bi bil daljši od približno 1 ms, lahko je tudi manjši. Tako bo tudi pri kratki časovni bazi aethalometra reda nekaj sekund še dovolj časa za meritve signalov. S krajšim časom integracije se zmanjša točnost posamezne meritve. V enakem časovnem intervalu je lahko krajših meritev več, vendar čas komunikacije z računalnikom za posamezno meritev ostaja enak in delež časa, namenjen sami meritvi, se zmanjšuje na račun večjega časa za prenos podatkov do računalnika. Statistične metode pri naknadni obdelavi podatkov lahko torej le delno kompenzirajo manjšo točnost posamezne meritve pri seriji več meritev v istem času. Če se za želeni čas integracije izbere 0,5 ms, znaša elektrina, ki odteče iz kondenzatorja v A/D pretvorniku v tem času pri toku 0,5 µA: Q = I-t= 0,5-10 6 A • 0,5-10 3s - 250pC (25) Prekoračitev vrednosti toka čez merilni obseg pomeni neveljavno meritev koncentracije BC, zato je bil izbran obseg 350 pC pri uri 10 MHz in paru števcev Texas Instruments SN74HC4040 kot frekvenčnim delilnikom, ki poveča periodo za faktor 2N, pri čemer je N vrednost od 1 do 24. Iz želenega časa integracije (polovica povečane periode ure) 0,5 ms se izračuna N po enačbah (26) in (27). N mora biti celo število. Dejanski čas integracije podaja izraz (28). ti = 1-1-2N (26) f ura N = log2(2 • trfura) = log2(2 • 0,5 • 10 3 s 107s_1) - 13.288 ~ 13 (27) ti - 10MHz ' 2 ' 213 = 409.6Vs (28) 36 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 CONV 1 r i i i i State )CZXZ3^ M i Non-Continuous ^----- ¦ -----¦_ Continuous i i X X Status _/ Int A Y Int B \------------ ------------------------------------------/ Integrate A i X Integrate B V m/r/az Status ----------------/ m/r/az A V m/r/az B \--------------------------------------- H m/r/az A \--------/ mbsy _l SMa 19: Nestalen in stalen način delovanja DDC112 [28, stran 19] Čas integracije je krajši od časa pretvorbe in priprave na ponovno integracijo obeh kanalov (479,4 µs pri 10 MHz uri CLK [28, stran 14]). Po integraciji traja A/D pretvorba celotno polovico periode CONV in še nekaj naslednje polovice periode. Zato DDC112 v času vsake polovice periode CONV ne zmore sproti opravljati integracije in pretvorbe ter deluje v nestalnem načinu (noncontinuous mode) [28, stran 13]. Za prehod v stalni način delovanja (continuous mode) bi bilo potrebno povečati čas integracije, vendar so za integratorj e že izbrani vgrajeni kondenzatorji z največjimi kapacitivnostmi. Za ohranitev merilnega obsega bi bila torej potrebna uporaba zunanjih kondenzatorjev, pri katerih pa se pričakujejo večja odstopanja v lastnostih (predvsem kapacitivnosti) kot pri vgrajenih kondenzatorjih, ki so nastavljeni med proizvodnjo [28, stran 11], s čimer se doseže podana merilna točnost A/D pretvornika. V vezju na sliki 20 so dodani tudi zunanji kondenzatorji, z vrednostjo na sponkah RANGE0 - RANGE2 pa se izbere bodisi zunanje bodisi vgrajene. Če bi tok čez katerokoli fotodiodo presegel merilno območje, se lahko uporabijo zunanji kondenzatorji za povečanje merilnega obsega, ali pa se uporabijo za ohranitev merilnega obsega pri povečanem času integracije. Čas integracije se v fazi razvoja lahko spreminja s faktorjem potence števila 2 z enostavno spremembo vezave števcev SN74HC4040. 37 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 5 ~T^ 230pF g I + SMDC U —I „ 10U/16V ose 71 5 ~p 230pF 230pF T Slika 20: Shema vezja za A/D pretvornik DDC112 Po izkušnjah sodelavcev se DDC101 kvari pogosteje kot ostale komponente, zato je glavni A/ D pretvornik ostal na svoji ločeni tiskanini, ki se namesti v podnožje na glavni tiskanini detektorskega vezja. Na tiskanini so skupaj z DDC112 samo še elementi, ki morajo biti zelo blizu čipa: kondenzatorji za stabilizacijo referenčne in napajalnih napetosti in kondenzatorji za zunanje integratorje (slika 20). Drugi A/D pretvornik, ADS8341 v SSOP ohišju, deluje s sukcesivno aproksimacijo. Pretvornik se lahko uporabi s štirimi vhodi ali z dvema diferencialnima vhodoma. Pred branjem digitalizirane vrednosti se vanj po serijskem vmesniku na vhod DIN vpiše kontrolni bajt, razložen v tabeli 4. 38 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 A/D pretvornik ADS8341 t ! Kontrolni bajt 16-bitni podatek t i Zunanja naprava Slika 21: Prenos podatkov pri vsakem branju izADS8341 Tabela 4: Kontrolni bajt A/D pretvornika ADS8341 Bit Oznaka Pomen 7 (MSB) S Začetni bit, visoko stanje. 6 A2 Izbira kanala. 5 A1 4 A0 3 - Neuporabljen. 2 SGL/DIF Visoko stanje - 4 vhodi glede na maso. Nizko stanje - 2 diferencialna vhoda. 1 PD1 Ugašanje A/D pretvornika med pretvorbami ali izbira notranje PD1 v visokem in PD0 v nizkem stanju. ure s 0 (LSB) PD0 to 10 F -± +2.7V to +5V G F L-----T , d= 0.1 F d= External Single-ended " or differential __ analog inputs vREF °--------I J_ 0.1 F Hz zb ADS8341 +vcc CH0 CH1 CH2 CH3 COM SHDN DCLK CS DIN BUSY DOUT GND GND +V„„ -/Serial/Conversion Clock V Chip Select -/Serial Data In -> Serial Data Out Slika 22: A/D pretvornik Texas Instruments ADS8341 [31, stran 11] 39 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 PIN NAME DESCRIPTION 1 + Vcc Power Supply, 2.7V to 5V 2 CHO Analog Input Channel 0 3 CH1 Analog Input Channel 1 4 CH2 Analog Input Channel 2 5 CH3 Analog Input Channel 3 6 COM Ground Reference for Analog Inputs. Sets zero code voltage in single-ended mode. Connect this pin to ground or ground retae point. 7 SHUN Shutdown. When LOW, the device enters a very low power shutdown mode. 8V REF Voltage Reference Input. See Electrical Characteristics Table for ranges. 9+ Vcc Power Supply, 2.7V to 5V 10 GND Ground. Connect to Analog Ground 11 GND Ground. Connect to Analog Ground. 12 DOUT Serial Data Output. Data is shifted on the falling edge of DCLK. This output is high impedance when CS is HIGH. 13 BUSY Busy Output. This output is high impedance when üb is HIGH. 14 DIN Serial Data Input. If US is LOW, data is latched on rising edge of DCLK. 15 CS Chip Select Input. Controls conversion timing and enables the serial input/output register. 16 DCLK External Clock Input. This clock runs the SAR conversion process and synchronizes serial data I/O. Maximum input clookdriency equals 2.4MHz to achieve 100kHz sampling rate. Slika 23: Opis priključkov ADS8341 [31, stran 2] S sponkama PD1 in PD0 je izbrana notranja ura za pretvorbo s sukcesivno aproksimacijo. Zunanja ura DCLK je uporabljena samo za komunikacijo z zunanjo napravo. ~L jmnJUlTLTLFL Idle _____j—. Acquire — jiijjnyr^jjiyTsijiiijiy^ T77J2 S I A2 I A1 I AO F|pdiTpdô| _r | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 76:^4321| | | | | | 0 | Slika 24: Signali med branjem iz ADS8341 pri notranji uri [31, stran 14] Tabela 5: Kontrolni bajt in izbira kanala med nediferencialnimi vhodi ADS8341 Kanal A2 Al A0 Kontrolni bajt (dvojiška vrednost) Kontrolni bajt (šestnajstiška vrednost) CH0 0 0 1 10011110 9E CH1 1 0 1 11011110 DE CH2 0 1 0 10101110 AE CH3 1 1 0 11101110 EE Pri nediferencialnih vhodih in ozemljeni COM sponki je merilni obseg od 0 V do napetosti 40 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Vref [31, stran 12]. Napetostni izhod merilnika pretoka se pretvori iz območja 0-5 V na nižje območje z napetostnim delilmkom (slika 29 v poglavju 4.1.2.3). 4.1.2.2 Napajalne in referenčne napetosti Napajalna napetost starega vezja niha za okoli 100 mV (tabela 16 v poglavju 6.3). Poizkus stabilizacije s fentom in kondenzatorjem prikazuje slika 25. Napajalna napetost za A/D pretvornik DDC112 je prav tako stabilizirana s fentom (slika 29 na strani 45). CO T- +12V C105_ 3300U/16V L101 EMI 1206 + < POWER+12V Slika 25: Stabilizacija napajanja detektorskega vezja m—i— I10 F d: 0.10 F 10 F To VREF MD Pin 22 of the DDC112 0.1 F Slika 26: Referenčna napetost za DDC112 [28, stran 11] Referenčna napetost Vref za DDC112 je realizirana z vezjem, ki je predlagano v specifikaciji izdelka in je predstavljeno na sliki 26. Element REF3040 daje na izhodu napetost 4,096 V. Operacijski ojačevalnik zagotavlja stabilno napetost tudi pri povečanem toku med polnjenjem kondenzatorjev A/D pretvornika DDC112. Visokofrekvenčna nihanja zmanjša nizkoprepustni 41 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 filter med REF3040 in operacijskim ojačevalnikom. Podobno vezje z elementom REF3040 ustvari referenčno napetost za ADS8341. A/D pretvornika imata enaki, a ločeni referenci. 4.1.2.3 Multipleksiranje signalov Z uvedbo dodatnega A/D pretvornika je naraslo število linij za komunikacijo z računalnikom. Sorodne digitalne izhode obeh A/D pretvornikov se združi z multiplekserjem, sorodne vhode pa z demultiplekserjem, kot je podano v tabeli 6. Za izbiro aktivnega A/D pretvornika se uporabi signal CS čipa ADS8341, ki bi bil uporabljen v vsakem primeru. Tabela 6: Združevanje digitalnih signalov A/D pretvornikov Par združenih vhodov v A/D pretvornik Par združenih izhodov iz A/D pretvornika DDC112 ADS8341 DDC112 ADS8341 DCLK DCLK DVALID BUSY DXMIT DIN DOUT DOUT Izhode A/D pretvornikov združuje štirikratni multiplekser Texas Instruments SN54F157A. Multiplekserji so na sponkah 2-4, 5-7, 9-11 in 12-14 (slika 27). SN74F157A 1 "A7B Vcc 1A G 1B 4A 1Y 4B 2A 4Y 2B 3A 2Y 3B GND 3Y 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9 Slika 27: Multiplexer SN54F157A 42 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Tabela 7: Pravilnostna tabela multiplekserja SN54F157A Vhodi Izhod G A/B A B Y 1 X X X 0 0 0 0 X 0 0 0 1 X 1 0 1 X 0 0 0 1 X 1 1 Vhode A/D pretvornikov združuje dvojni demultiplekser Texas Instruments SN74S139A. Demultiplekserja se nahajata na sponkah 2-7 in 9-14 (slika 28). SN74S139A 1 1Ü Vcc 1A 2G 1B 2A 1Y0 2B 1Y1 2Y0 1Y2 2Y1 1Y3 2Y2 GND 2Y3 2 3 4 5 6 7 8 Slika 28: Demultiplekser SN74S139A 43 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Tabela 8: Pravilnostna tabela demultiplekserja SN74S139A Vhodi Izhodi Omogočen Izbira G B A Y0 Y2 Y2 Y3 1 X X 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 1 0 Shema opisanega glavnega dela vezja je prikazana na sliki 29. Večina komponent v detektorskem vezju je v prvi fazi razvoja zaradi lažjega testiranja ostala v PDIP ohišju, kasneje pa so bile zamenjane s komponentami v SMD ohišju. 44 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 ! —I «—.S" ? a I i s DD ü a S S a g h ' tf . _kL i II 1 S g s g S g g g I g s sli a h s s s t 1-1= 1=1=1=1 = bhi en 4 M-l-l-l- l-l-B a g g a i p S t- bISbjeBb l-l- I- L=_a______™ H-l-H-l-l-« B 9 a h i p e E S g e p s s I-U 1=1-I-1-I-1- SS FUS ICh Fiicr ich F: I (E ICh * 3 g -Ih- A^± I S ^ 1 g 1 g = » J 1 » l g g M j f S B 5 5 j S g i !00! • i= i» i- i- FHD3 IDc FI1IM- I-:-!: FUDE I-:-!: DU U 'Mi u ~ ijT " FI11D ICh Slika 29: Glavni del detektorskega vezja 45 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 4.2 Računalnik Računalnik je zamenjan z novejšim, ki izpolnjuje zahteve za posodobljen instrument: • 24 kanalni digitalni vhodno-izhodni vmesnik (DIO, GPIO), • serijska vrata, • USB host vmesnik, • Ethernet vmesnik, • ura (real time clock), • podpora za čim več operacijskih sistemov, obvezno Linux (vanilla kernel), • zagon sistema iz spominske kartice, • nizka poraba, pasivno hlajenje, • majhne mere. Izbran je bil računalnik WinSystems EPX-C3. Po velikosti (form factor) je tipa EPIC. Računalnik ima 733 MHz VIA C3 procesor in čip Intel 82C55A za GPIO, s katerim je možno komunicirati direktno preko naslovnega prostora ali pa s prostim gonilnikom Comedi [32]. Digitalni izhodi so dovolj močni, da ne potrebujejo dodatnega ojačevalnika. Nekateri DIO vmesniki imajo visoko izhodno stanje izvedeno s pull-up uporom, kar je manj primerno. Slabost čipa 82C55A je grupacija vhodov/izhodov v skupine po štiri, ki se jim smer lahko določa samo vsem hkrati. Zagon sistema lahko poteka iz Compact flash (CF) medija. Za testiranje in razvoj sta uporabna še vmesnika IDE in VGA. Zlasti slednji se je izkazal za zelo koristnega. Cena računalnika je visoka (okoli 500 $), a za načrtovane majhne serije instrumentov z visoko dodano vrednostjo to ni odločilnega pomena. 46 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 5. Programska oprema Celotna programska oprema zajema naslednje sklope: operacijski sistem, program za delovanje aethalometra, obdelava meritev. Hierarhija sklopov s praktično izvedbo je prikazana na sliki 30. Na dnu se nahajajo najosnovnejši sklopi. Višje so sklopi, ki temeljijo na nižjih – bodisi uporabljajo izhodne podatke nižjih sklopov bodisi neposredno uporabljajo nižje sklope. Shema Izvedba D odatna obdelava podatkov Z unanji ali vgrajeni računalnik Naknadna obdelava podatkov iz več instrumentov m-funkcije za GNU Octave Filtriranje šuma m-funkcije za GNU Octave Program za delovanje aethalometra Programska koda C O peracijski s i ste jm V grajeni Linux Knjižnice, gonilniki in zunanji programi Hotplug, Comedi, libusb, gnuplot, BlueZ, vsftpd Vgrajeni sistem BusyBox, uClibc Jedro Linux 2.6 Slika 30: Shema celotne programske opreme 47 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Na vgrajenem Linux operacijskem sistemu z dodatnimi gonilniki, knjižnicami in zunanjimi programi teče posebna aplikacija, ki krmili delovanje aethalometra ter računa in prikazuje koncentracijo BC in ostale podatke iz meritev. Ti izhodni podatki aethalometra se lahko naknadno obdelajo z namenom zmanjševanja šuma ali pridobivanja dodatnih informacij iz časovnih signalov več aethalometrov. Dodatna obdelava podatkov presega obseg tega dela in je samo omenjena kot možen dodatek aethalometrom, ki zaključuje celotno programsko opremo. Opisana programska oprema naj bi v celoti nadomestila starejši v Basic-u napisani program, ki se izvaja v okolju DOS in ne podpira sodobnejših načinov prenosa podatkov. Dodatna razloga za prehod na popolnoma nov sistem sta tudi čedalje manjša podpora za DOS pri novih vgrajenih računalnikih in novo detektorsko vezje, ki v vsakem primeru zahteva vsaj popravke v programski opremi. 5.1 Vgrajeni Linux Vgrajeni Linux (Embedded Linux) je splošen pojem, ki lahko pomeni katerikoli operacijski sistem z Linux jedrom, ki je prilagojen za manjše naprave, kot so vgrajeni računalniki, dlančniki in mobilni telefoni. V primerjavi z najbolj razširjenimi GNU/Linux distribucijami za namizne računalnike je tu nameščeni sistem bistveno manjši in ima manj stroge zahteve glede zmogljivosti strojne opreme. Iz jedra so izločeni nepotrebni moduli. Knjižnica GNU C Library (glibc) je nadomeščena z manjšo, npr. uClibc, dietlibc ali newlib. Paket GNU Core Utilities (Coreutils) je nadomeščen z manjšo aplikacijo, na primer BusyBox [33]. Od ostalih paketov so nameščeni samo nujno potrebni. Kljub temu praviloma ni potrebe po spremembi izvorne kode Linuxa in se lahko uporabi t.i. vanilla kernel11 brez popravkov, razen če spremembe zahteva posebna strojna oprema ali če želimo bolj determinističen odziv na prekinitve, večji nadzor in večjo prioriteto izvajanja procesa. V tem primeru možno rešitev ponujajo projekti RTAI [34], Adeos [35] in Xenomai [36], s katerimi se lahko naredi t.i. realtime Linux jedro. Za aethalometer to ni potrebno, ker komunikacija z elektroniko deluje tudi z nespremenjenim jedrom. Za ta projekt je bilo uporabljeno jedro Linux 2.6.10 v izvirni (vanilla) obliki in s konfiguracijo 11 Vanilla kernel - originalna, nespremenjena izvorna koda Linux jedra, ki jo ponuja Linus Torvalds. 48 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 proizvajalca vgrajenega računalnika WinSystems. Iz konfiguracije je bila pred prevajanjem odstranjena podpora za zvok, dodane pa so bile opcije: CONFIG_BLK_DEV_FD=y CONFIG_BT=y CONFIG_BT_BNEP=y CONFIG_BT_HCIUSB=y CONFIG_FB=y CONFIG_FB_MODE_HELPERS=y CONFIG_FB_VESA=y CONFIG_FB_I810=y CONFIG_FB_I810_GTF=y CONFIG_FB_INTEL=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_USB_OHCI_HCD=m CONFIG_USB_UHCI_HCD=m CONFIG_USB_ALI_M5632=y CONFIG_USB_AN2720=y CONFIG_USB_BELKIN=y CONFIG_USB_GENESYS=y CONFIG_USB_NET1080=y CONFIG_USB_PL2301=y CONFIG_USB_KC2190=y CONFIG_IDE_GENERIC=y CONFIG_BLK_DEV_IDEPNP=y CONFIG_BLK_DEV_GENERIC=y CONFIG_BLK_DEV_AMD74XX=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y Spremembe so namenjene uporabi disketne enote, komunikaciji (Bluetooth, USB), t.i. framebuffer-ju12, kompatibilnosti jedra tudi z vgrajenim računalnikom WinSystems EPX-GX50013 in podpori dolgim imenom datotek na datotečnem sistemu VFAT. Posamezne opcije so podrobneje dokumentirane v grafičnem vmesniku med konfiguriranjem jedra, ko se požene „make xconfig“. Ostali segmenti operacijskega sistema, ki jih je bilo potrebno pripraviti in prevesti, so še Comedi, module-init-tools, setserial, System V init, demona syslogd in klogd, hotplug [37], 12 Framebuffer ali FB – Video naprava, oziroma vmesnik, ki prikazuje sliko na zaslon iz pomnilnika, kjer je predhodno shranjena celotna slika. Linux FB je pogosto uporabljen kot nadomestek pravega grafičnega vmesnika, kot sta X.Org in Xfree86, za prikaz grafike v tekstovnem načinu. 13 Računalnik, ki bi lahko bil uporabljen namesto EPX-C3. 49 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 BusyBox [33] s podporo za lokalizacijo (locale support) in GNU GRUB [38] z onemogočeno podporo za vse datotečne sisteme, z izjemo ext2. Hotplug je potreben samo za detekcijo in klasifikacijo priklopljenih USB naprav. Samega demona hotplug se ne uporabi, temveč se potrebne module ohci-hcd, sd_mod in 8255 zaradi hitrejšega zagona sistema naloži eksplicitno v /etc/modules. V datoteko /etc/hotplug/usb/aethalometer.usermap se vpiše identifikacijske kode vseh USB naprav, ki naj bi bile uporabljane v aethalometru. Zraven vsake kode se določi dejanje (skript), ki naj se samodejno izvede, ko uporabnik priklopi napravo. Primeri: # Syntax: script_to_run match_flags idVendor idProduct ... # # Belkin USB Direct Connect; usbnet cable. # Matched by idVendor and idProduct. host2host_usbnet 0x0003 0x050d 0x0004 0x0000 0x0000 0x00 0x00 \ 0x00 0x00 0x00 0x00 0x00000000 # # Any Bluetooth USB device # Matched by bDeviceClass, bDeviceSubClass and bDeviceProtocol. bluetooth-start.sh 0x0070 0x0000 0x0000 0x0000 0x0000 0xE0 0x01 \ 0x01 0x00 0x00 0x00 0x00000000 # # Any mass storage device. Matched by bInterfaceSubClass. mass-storage.sh 0x0080 0x0000 0x0000 0x0000 0x0000 0x0000 \ 0x0000 0x0000 0x0008 0x0000 0x0000 Ko uporabnik priklopi USB host2host kabel zgornjega proizvajalca in tipa, se izvede skript host2host_usbnet, ki nastavi IP povezavo med dvema USB gostiteljema (IP over USB). Ko uporabnik priklopi katerikoli Bluetooth USB vmesnik, se izvede bluetooth-start.sh, ki pripravi aethalometer na Bluetooth povezavo z drugo stranjo (s t.i. gospodarjem piko-omrežja). Zatem se nastavi povezava IP po Bluetooth (IP over Bluetooth). Vse mrežne storitve aethalometra so s tem na voljo tudi po USB ali Bluetooth povezavi. Hotplug na podoben način zazna vstavljanje kateregakoli USB ključa ali druge USB naprave za shranjevanje podatkov, npr. bralnika pomnilniških kartic, nato pa izvede sledeči skript, ki pošlje procesu z imenom „aethalometer“ signal USR1, da lahko proces samodejno prepiše datoteke z meritvami na vstavljen medij: # idVendor/idProduct/bcdDevice of the built-in mass storage device # Memory card & floppy combo drive 50 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 BUILT_IN_STORAGE=7cc/301/5 if [ "$PRODUCT" != "$BUILT_IN_STORAGE" ]; then echo `date` " USB stick" >>/var/log/storage.log killall -USR1 aethalometer fi Računalniku priloženi skript make_els_rootfs.sh ustvari osnovne imenike (/bin, /boot, /dev, ...), v njih skopira prej pripravljene segmente sistema in ustvari večino posebnih datotek za naprave (device node). Za večjo hitrost in za vgrajene sisteme na flash pomnilniku je namreč bolj primerna statična mapa /dev namesto modernejših rešitev devfs ali udev, kjer bi se datoteke naprav ustvarjale in brisale samodejno. Manjkajoče datoteke naprav se ustvari ročno z ukazom mknod: mknod -m 660 /dev/hdc2 b 22 2 mkdir /dev/pts mknod -m 666 /dev/pts/0 c 136 0 mknod -m 666 /dev/pts/1 c 136 1 mknod -m 666 /dev/pts/2 c 136 2 mknod -m 666 /dev/fb0 c 29 0 Imenik /var/log, ki je predviden za pogosto spreminjajoče se datoteke, je na datotečnem sistemu tipa tmpfs, ki se nahaja v virtualnem pomnilniku. Pomnilniška kartica CF vsebuje dva razdelka z datotečnim sistemom ext2. Na enem je operacijski sistem, ki je vedno priklopljen na imenik / v načinu samo za branje. Drugi razdelek je priklopljen na /home, kjer se nahaja program za delovanje aethalometra s svojimi pripadajočimi datotekami (konfiguracija, prevodi, ...). Skupna velikosti datotek na tem razdelku je manj kot 1 MB. Razdelek se po potrebi začasno preklopi v način za pisanje. Integriteta operacijskega sistema je tako zagotovljena tudi ob nenadnem izklopu napajanja. Če pride do izklopa napajanja ravno v trenutku, ko se izvaja pisanje na drugi razdelek, skript za ukazno vrstico ob ponovnem zagonu v primeru, da katerakoli datoteka iz določenega seznama manjka ali je poškodovana, vse datoteke samodejno prepiše s privzetimi.: #!/bin/sh LIST="aethalometer aethalometer.conf aethalometer.status" function restore { mount -o remount,rw /home && \ 51 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 cp -af /usr/local/backup/* /home/aeth echo `date` " aethalometer files reverted" >>/home/aeth/revert.log mount -o remount,ro /home exit } for FILE in $LIST; do if [ ! -e $FILE ]; then restore fi done md5sum -c Predpostavka drži v večini primerov, npr. s privzetimi nastavitvami brskalnika Mozilla Firefox 2. 60 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Slika 35: Spletni vmesnik Sliko ustvari zunanji program Gnuplot [41], ki se mu kot edini parameter poda datoteko s skriptom. Skript pred tem ustvari program za delovanje aethalometra glede na nastavitve. Spodaj je primer skripta, katerega program ustvari za dvo-kanalni aethalometer s serijsko številko 123, ki meri z IR in UV svetlobo, izbrana enota za BC je ng/m3, za dan 18. 2. 2008. set title "This day's data chart" set datafile separator "," set xdata time set timefmt "%H:%M" set xrange ["00:00":"24:00"] set xtic ("00:00", "03:00", "06:00", "09:00", "12:00", "15:00", "18:00",\ "21:00", "24:00") set time 61 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 set grid set xlabel "time / h" set ylabel "BC concentration / (ng / m^3)" set terminal png set output "/var/log/graph-day.png" set format x "%H:%M" plot "/mnt/storage/ae123_bc080218.csv" using 2:3 title 'IR' with lines, \ "/mnt/storage/ae123_bc080218.csv" using 2:4 title 'UV' with lines Na sliki 35 je spletni vmesnik aethalometra z eno valovno dolžino. Pri vmesniku aethalometra z več valovnimi dolžinami vsebuje PNG slika časovne poteke rezultatov meritev za vsako valovno dolžino v svoji barvi. Primer za dve valovni dolžini je na sliki 9 v poglavju 3.3.1. 5.2.3 Zaslon in tipkovnica Štirivrstični alfanumerični zaslon Warner Power Termiflex CP/2500 s petimi zunanjimi LED diodami za prikaz stanja aethalometra in tipkovnico s 5×5 tipkami (slika 7) preko mikrokrmilnika komunicira z računalnikom preko serijskih vrat. Iz računalnika poslani ASCII znaki se prikažejo neposredno na zaslonu. Ostali znaki so uporabljeni kot kontrolni znaki za kratek ukaz oziroma kot začetek večbajtnega ukaza za zvočni signal, brisanje zaslona, prikaz kurzorja, premik kurzorja ter vklop, izklop ali utripanje zunanjih LED diod. Koda pritisnjene tipke se prebere kot en znak. Pri programiranju vmesnika je edini netrivialni del inicializacija serijskih vrat, pri čemer je potrebno nastaviti vse ustrezne parametre (hitrost, parnost, itd.) serijskih vrat. Če funkcija read() ob klicu blokira do dostopnega podatka, se izvajanje programa lahko prekine za nedoločen čas. Zato je s funkcijo fcntl() izbran asinhron način in četudi na serijskih vratih ni na voljo podatkov za branje, klic read() zaradi morebitne napake v programu ne bo blokiral izvajanja: int comPortDisplay = -1; // ... comPortDisplay = open("/dev/ttyS0", O_RDWR | O_NOCTTY); // ... fcntl(comPortDisplay, F_SETFL, O_ASYNC | O_NONBLOCK); Z nastavljenim asinhronim branjem se lahko čaka na pritisk tipke v zanki s periodičnim preverjanjem. Temu se izogne s funkcijo select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout), ki čaka na nove podatke: 62 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 int waitForComInput(long usecTimeout, int comPortDisplay) { fd_set rfds; struct timeval tv; int retval; dbgOut(DBGOUT_EVERYTHING, "%s(%ld)", __FUNCTION__, usecTimeout); FD_ZERO(&rfds); FD_SET(comPortDisplay, &rfds); tv.tv_sec = usecTimeout / 1000000; tv.tv_usec = usecTimeout % 1000000; retval = select(comPortDisplay + 1, &rfds, NULL, NULL, &tv); if (retval == -1) { dbgOut(DBGOUT_MINOR_ERR, "select(): %s", strerror(errno)); return -1; } else if (retval) { dbgOut(DBGOUT_EVERYTHING, "Data is available now."); return 1; } else { dbgOut(DBGOUT_EVERYTHING, "No data within timeout."); } return 0; } V prototipu aethalometra je bil poizkusno uporabljen grafični monokromatski zaslon Ampire AG-240128G ločljivosti 240×128. Tudi ta je s tipkovnico povezan na mikrokrmilnik, ki z računalnikom komunicira preko serijskih vrat. Komunikacijski protokol je zasnoval mag. Damjan Zadnik. Posamezni bajti v sporočilu so navedeni v tabeli 10. Za preverjanje integritete sporočila se izračuna CRC kot ekskluzivni ali posameznih bajtov. Vsakemu sporočilu sledi tudi potrditev prejema. V primerjavi z vmesnikom za alfanumerični zaslon so dodani ukazi za inicializacijo zaslona, izbiro velikosti pisave, obarvanje ozadja pisave in okvirjanje. Vmesnik do zaslona je napisan v ločenih izvornih datotekah in zaslon se pred prevajanjem izbere z vključitvijo ustrezne „header“ datoteke. Dokler dodatni grafični učinki niso uporabljeni, je to edina potrebna sprememba izvorne kode za izbiro zaslona. 63 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Tabela 10: Komunikacijski protokol za zaslon Ampire Začetek Dolžina Sporočilo Integriteta Konec 0x01 N+2 B1 B2 ... BN CRC 0x0D Tretja možnost za zaslon bi bila uporaba zaslona, ki ga podpira že sam računalnik s priklopom na digitalni vmesnik za vgrajene LCD zaslone ali VGA, primer je 3,5 palčni Purdy Electronics AND-TFT-35VX ločljivosti 640×480. Programski vmesnik za takšen zaslon bi bilo ob potrebi enostavno dodati z uporabo nameščene knjižnice SDL. 5.2.4 Digitalni vhodi in izhodi Za dostop do DIO obstajata dve možnosti: • gonilnik Comedi [32] • in neposredno naslavljanje. Del izvorne kode programa za delovanje aethalometra Dig. vhodi in izhodi (DIO) Vmesnik do Comedi Vmesnik do naslovnega prostora Knjižnica Comedilib (licenca LGPL) I Gonilnik Comedi (licenca GPL) Jedrna modula comedi in 8255 Vhodi in izhodi na nižjem nivoju: funkcije ioperm(), inb(), outb() Slika 36: Dostop do DIO Neposredno naslavljanje je preprosto in deluje na vsakem računalniku, kjer proizvajalec za DIO vmesnik poda naslovni obseg. S funkcijo ioperm() se ob inicializaciji določi obseg, do 64 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 katerega naj jedro dovoli dostop. Bajte se bere z inb() in zapisuje z outb(). Izvorna koda se prevede s prevajalnikom gcc z opcijo -O. Funkciji inb() in outb() lahko ob napaki povzročita nenaden konec programa. Tako lahko pri naslavljanju prostora, ki z ioperm() ni bil predhodno določen za dostop, proces prejme signal SIGSEGV in se konča. Naslovni prostor je ob morebitni zamenjavi računalnika potrebno ustrezno spremeniti na nivoju programa. Vendar je za čipe, ki jih Comedi ali podoben vmesnik ne podpira (npr. WS16C48 na računalniku WinSystems EPX-GX500), to edina možnost dostopa do DIO. Projekt Comedi ponuja enoten in naprednejši vmesnik do mnogo čipov za DIO, seznam podprtih naprav je možno najti na spletu [47]. Spremembe ob zamenjavi računalnika se naredi na nivoju operacijskega sistema. Sam program za delovanje aethalometra dostopa do DIO vedno enako. Po potrebi se na novo ustvari datoteko naprave. Primer za čip 82C55A na izbranem računalniku WinSystems EPX-C3: mknod -m 666 /dev/comedi0 u 98 0 Potrebno je naložiti še ustrezni jedrni modul. Za čip Intel 82C55A se naloži modul 8255. Proces, ki uporablja DIO preko Comedi, ima na voljo večji nadzor nad izvajanjem in ob napaki funkcije vrnejo kodo z indikacijo napake. Tako se program lahko ustrezno odzove. Kot kaže slika 36, sta narejena majhna in preprosta vmesnika za oba načina dostopa do DIO. Oba vmesnika vsebujeta štiri funkcije, in sicer za inicializacijo, sprostitev sredstev ter branje in pisanje za posamezen kanal. Prototipi funkcij so v obeh primerih enaki: • int initDevice() • int closeDevice() • int getChannel(Channel channel) • int setChannel(Channel channel, unsigned int value) Channel je oštevilčeni tip z veljavnimi vrednostmi, ki predstavljajo posamezne kanale DIO (0-23). Funkcije v primeru napake vračajo negativno vrednost, v primeru uspešne izvršitve pa 0 oziroma prebrano vrednost. Vmesnik za način dostopa do DIO se izbere v datoteki Makefile. Pri Comedi velja omeniti še licenco. Sam gonilnik Comedi je na voljo po licenci GPL [48], knjižnica comedilib pa po LGPL [49]. Izvorno kodo, ki je pri prevajanju povezana do knjižnice, licencirane po GPL, je v primeru distribucije prav tako potrebno ponuditi na voljo po GPL. Za LGPL to ne velja in za licenco programa za delovanje aethalometra, ki 65 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 uporablja samo knjižnico comedilib, ni te zahteve. Najvišji vmesnik na sliki 36 ima funkcije za komunikacijo z A/D in D/A pretvorniki in posredniške funkcije do nižjenivojskega vmesnika, ki jih lahko kličejo ostali segmenti programa. Vmesnik vsebuje še konstante za pretvorbo golih binarnih vrednosti v fizikalne količine in obratno. Razpored in opis kanalov DIO vmesnika podajata tabeli 11 in 12. 66 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Tabela 11: Razpored digitalnih linij na DIO vmesniku Št. NA 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Oznaka Smer Opis +5V Izhod Napajanje, ni uporabljeno. DI0MUX3 Izhod Izbira LED diode z multiplekserjem. DIO TAPE ADVANCE Izhod Premik traku. DIOTAPETENSION Izhod Napenjanje traku. DIOBYPASS Izhod Obvod zračnega pretoka mimo sita. DIOMUX2 Izhod Izbira LED diode z multiplekserjem. DIOMUX1 Izhod Izbira LED diode z multiplekserjem. DIO ADC DIODE Izhod Izbira A/D pretvornika. DIONOTUSED1 Izhod Samo za obstoječe detektorsko vezje. DIONOTUSED2 Izhod Samo za obstoječe detektorsko vezje. DIO NOT USED 3 Izhod Samo za obstoječe detektorsko vezje. DIOTEST Izhod Testni način delovanja DDC112. DIO RANGE Izhod Izbira merilnega obsega DDC112. DIO_READ_SETUP16 Izhod Pisanje v izbrani D/A pretvornik (nastavitev zračnega pretoka ali analognega izhoda). DIO DATA TRANSMIT Izhod Komunikacija z izbranim A/D pretvornikom. DIONOTUSED4 Izhod Samo za obstoječe detektorsko vezje. DIOCS2 Izhod Izbira D/A pretvornika za nastavitev zračnega pretoka. DIO DATA INVALID Vhod Pripravljenost izbranega A/D pretvornika za prenos podatka. DIO DATA OUT Vhod Shranjevanje podatka iz izbranega A/D pretvornika. DIO NOT CONNECTED 1 Vhod Neuporabljeno. DIO NOT CONNECTED 2 Vhod Neuporabljeno. DIO DATA CLOCK Izhod Zunanja ura za izbrani A/D ali D/A pretvornik. DIO BC DATA Izhod Podatek za vpis v izbrani D/A pretvornik. DIOCS1 Izhod Izbira D/A pretvornika za analogni izhod. DIO ANALOG OUT INVALID Izhod Nastavitev analognega izhoda izven veljavnega območja. 16 Oznaka izvira iz zgodovinskih razlogov, čeprav je zavajajoča. 67 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Tabela 12: DIO kanali za A/D pretvornike A/D pretvornik Uporabljeni DIO kanali Viri opisa komunikacije DDC101 6, 7, 8, 9, 13, 16, 17, 20 [27] DDC112 6, 10, 11, 13, 16,17, 20 Slika 18, [28] ADS8341 6, 13, 16, 17, 20 Sliki 21 in 24, tabela 5, [31] 5.2.5 Datum in čas Vmesnik ima funkcije za branje in nastavljanje sistemskega časa ter za pretvarjanje podanega časa v niz v podanem formatu. Uporabljena načina zapisa časa sta število sekund od 1. 1. 1970 in struktura struct tm, ki je definirana v standardni C knjižnici . V ta vmesnik sodi tudi funkcija, ki iz časa prejšnje meritve in nastavljene časovne baze določi primerno zaokrožen čas naslednje meritve atenuacije: time_t getNextRoundTime(time_t previousTime, int timeBase) Drugi del tega vmesnika so funkcije za premor. Jedro Linux 2.6.10 po začetku spanja procesa ne more zagotoviti ponovnega izvajanja procesa pred potekom 10 ms. Tudi če proces s funkcijo nanosleep() iz zahteva spanje za 1 ns, se bo ponovno izvajal šele po 10 ms. Zato ta del vmesnika vsebuje: • funkcije za normalno spanje za podano časovno obdobje ali do podanega časa, • funkcijo za aktivno čakanje v zanki za podano obdobje (busy wait, busy loop), • funkcijo, ki izbere način čakanja glede na podano časovno obdobje in na ustrezen način čaka: če je časovno obdobje manjše od 10 ms, čaka aktivno, sicer spi. Zgornje funkcije prejmejo tudi kazalec na strukturo s trenutnim časom. Če podani kazalec ni NULL, čas začetka čakanja funkcije preberejo iz strukture, na katero kaže podani kazalec, sicer čas začetka čakanja določijo kot trenutni čas. Tako lahko funkcija, ki uporablja ta vmesnik, najprej določi trenutni čas ta, izvede opravilo, za katerega čas izvedbe ni vnaprej znan, ter v času tb kliče funkcijo čakanja s podanim „trenutnim“ časom ta. Tako se lažje in bolj pregledno poda čas celotne operacije. Dodane so še funkcije čakanja, ki ob pritisku tipke vrnejo predčasno. Med delovanjem se za čakanje največkrat uporablja slednje, ker se mora aethalometer takoj odzvati na pritisk tipke STOP, v nekaterih stanjih pa tudi na pritisk drugih 68 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 tipk. Alternativa temu je proženje signala ob prejemu podatka na serijski vmesnik (znak pritiska tipke). Vendar pa je, ko uporabnik brska po menijih, pritiskov na tipke veliko in je ravnanje s signalom ob vsakem pritisku tipke nepregledno. 5.2.6 Zaklep programa Aethalometer naj bi se novim uporabnikom za določeno obdobje tudi posodil, po izteku te dobe pa naj ne bi več deloval. Program ob zagonu preveri obdobje veljavnosti in nadaljuje samo v primeru, če je sistemski čas znotraj tega obdobja. V kodiran zapis, ki ga imenujemo ključ, je vključena tudi serijska številka instrumenta, s čimer se oteži ugotovitev postopka kodiranja iz več ključev, če ima uporabnik na voljo več aethalometrov. Nekodiran zapis Čas (št. sek. od 1.1.1970) Binarna oblika 8 bajtov Serijska št. instrumenta Besedilna oblika 24 bajtov "\\ ^^ Skupen zapis 32 bajtov Kodiran skupen zapis 32 bajtov Digitalni podpis 8 bajtov Kodiran zapis Skupen zapis Binarna oblika 40 bajtov 2-kratna izvedba: čas začetka veljavnosti čas konca veljavnosti Skupaj 80 bajtov Slika 37: Ustvarjanje ključa za zaklep programa Ključ se ustvari z ločenim programom, ki uporabnikom ni na voljo. Kodiranje poteka po shemi na sliki 37, končni rezultat (ključ) je velikosti 80 bajtov. Kodiranje je simetrično in program za delovanje aethalometra ključ dekodira in preveri podpis v obratni smeri. Digitalni podpis izvede naslednja funkcija z uporabo dveh velikih praštevil: u_int64_t sign(const unsigned char *str, int len) { int i; 69 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 u_int64_t hash = INITIAL_HASH; u_int64_t a = PRIME_NUMBER_A; u_int64_t b = PRIME_NUMBER_B; for (i = 0; i < len; i++) { hash = str[i] + hash * a; a = a * b; } return hash; } Zapis se kodira s premeščanjem posameznih bajtov in invertiranjem nekaterih bitov znotraj posameznega bajta. Bitna maska za invertiranje bitov je za vsak bajt drugačna. Algoritem je enostaven, vendar bi po avtorjevi oceni uporabnik za razbitje zaščite porabil preveč časa, da bi se izplačalo podaljšati uporabo aethalometra za nekaj dni, tednov ali mesecev, za kolikor uporabniki včasih zamujajo z vračilom posojenega aethalometra. Že samo za digitalni podpis je število možnosti: 2N^N v^N vbajtu = 22'8-8 ~ 3,4 • 1038 (29) Za preizkus vsakega podpisa (če uporabnik predhodno ugotovi, kateri del ključa vsebuje podpis in kakšen je način kodiranja) bi bilo potrebno s FTP odjemalcem prepisati v aethalometer nov ključ, ponovno zagnati program in preveriti uspeh. Ob konservativni predpostavki, da traja ta postopek vsaj 1 ms, traja preizkus vseh možnih podpisov več kot 1028 let. 5.2.7 Internacionalizacija Internacionalizacija (zanjo se na podlagi angleškega izraza internationalization uporablja oznaka i18n) je postopek, pri katerem se v programu omogoči prikazovanje informacij na več načinov, značilnih za različne jezike in regije. Lokalizacija (zanjo se na podlagi angleškega izraza localization uporablja oznaka L10n) pomeni prilagoditev za določen jezik in regijo. Internacionalizacijo omogoča GNU gettext [50]. V programski kodi se najprej s funkcijami bindtextdomain(), textdomain() in setlocale() določi jezik in regijo. Vsak niz, ki naj bo lokaliziran, se zamenja s klicem gettext(), ki vrne kazalec na lokaliziran niz. Klicev gettext() 70 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 je veliko in programska koda se poenostavi, če se definira kratek makro za gettext(): #define _(string) gettext(string) Podobno kot projekt Comedi je tudi GNU gettext licenciran po GPL in LGPL: izvedljivi programi in knjižnica libgettextpo so licencirani po GPL, knjižnici libintl in libasprintf pa po LGPL [51]. Vse klicane funkcije so iz knjižnice libintl in za licenco programa ni omejitev. Lokalizacija pomeni predvsem prevod, saj so oblike zapisa števil in druge značilnosti večine jezikov že opisane in vključene v nameščeni sistem. Postopek lokalizacije poteka po shemi na sliki 38. Razdeljen je na tri dele: • priprava PO datoteke (s končnico „.po“) za prevod, • prevod, • preoblikovanje prevedene PO datoteke v binarno datoteko s končnico „.mo“, ki jo uporablja program med izvajanjem. Prvi in zadnji del sta avtomatizirana v datoteki Makefile, poženeta se enako enostavno kot prevajanje izvorne kode – z izbiro ustreznega cilja iz menija KDevelop (slika 31 na strani 53). 71 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Izvorna C koda, klici gettext() T Program xgettext, del GNU gettext 1 Katalog sporočil (datoteka .pot) Izbira jezika in regije Program msgmerge, del GNU gettext Program msginit, del GNU gettext Prevod ali posodobitev prevoda Katalog sporočil za prevod v določen jezik (datoteka .po) T Program KBabel ali podobno orodje V določen jezik preveden katalog sporočil (datoteka .po) Program msgfmt, del GNU gettext V določen jezik preveden katalog sporočil (binarna datoteka .mo) Slika 38: Lokalizacija z GNU gettext 72 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Slika 39: Lokalizacija programa s KBabel Besedilo, ki ga program izpisuje na alfanumerični zaslon, se prevede s KBabel ali podobnim programom za urejanje PO datotek [52]. Prevod lahko opravi kdorkoli z zadostnim poznavanjem angleščine in jezika, v katerega prevaja. KBabel samodejno označi nize, ki niso prevedeni (untranslated, kot izbrani niz na sliki 39), ter nize, ki so bili po zadnjem prevodu spremenjeni v C programski kodi (fuzzy). Alfanumerični zaslon aethalometra prikazuje samo ASCII znake in slovenski prevod je zato brez šumnikov. Sporočila v PO datoteki so zapisana z UTF-8 kodom, ki podpira večino lokalnih znakov, med drugimi tudi znake kitajske abecede. Pri morebitni menjavi zaslona z grafičnim bi prevajalec lahko uporabil tudi lokalne znake, ki jih ni v ASCII kodu. 5.2.8 Meni in upravljanje na višjem nivoju Programska koda za meni je enostavna, a dolga, zato je ločena od glavnega upravljanja na višjem nivoju. Tipični meni ima naslednjo obliko, ki je kompatibilna tudi z alfanumeričnim 73 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 zaslonom: 1.2 Ime menija Opcija 1 >Opcija 2 (izbrana) Opcija 3 Opcija se izbira s tipkama UP in DOWN ter potrdi z ENTER. S tipko ESC se vrne v prejšnji meni. Menije ustvarja nekaj osnovnih generičnih funkcij za izpis naslova, izpis opcije, branje vtipkanega niza ter premikanje kurzorja in opcij (v primeru, ko je število opcij večje ali enako številu vrstic). Višji nivo predstavljajo funkcije za prikaz menija za spreminjanje vrednosti tipa int, float ali niz, ter funkcije za vsak konkreten meni posebej. Slednje sestavijo opcije v dvodimenzionalno polje tipa char, kličejo funkcijo, ki izpiše podane opcije in vrne indeks izbrane opcije, ter v stavku switch izvedejo izbrani opciji ustrezno dejanje. Ugasni LED diode Regulacija pretoka Meritve s in r Prikaz meritve / Posodobitev zaslona ^^-— / Zaporedno prižiganje vseh LED diod, meritve s in r Zapis vrstice v CSV L Premik traku Izračun koncentracije Zapis HTML da ne Zapis na analogni izhod vATN presega\^ \ ATN ? j \ max / Slika 40: Delovanje glavne funkcije programa Upravljanje na višjem nivoju je osredotočeno okoli glavne funkcije, ki deluje po shemi na sliki 40. Vsaka meritev se vpiše v primerek strukture Measurement, ki je predstavljena na sliki 41. 74 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Slika 41: Dokumentacija strukture za meritve, ustvarjena z Doxygen Ključne pomožne funkcije so: void calculateConc(Measurement *m, const Measurement *mPrevious) void cleanUpOnExit(int programExit) double getFlow() void getSenseRef(double *sense, double *reference) double getTemperature() int initializeProgram(Configuration *c) void readSignalsLampOn(Measurement *m, time_t timeEnd) int setFlow(float flowLpm) int switchOnLamp(u_int8_t lamp) int tapeAdvance(int spots) 75 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Imena in parametri nazorno opisujejo vloge naštetih funkcij. V prejšnjih poglavjih predstavljeni vmesniki nižjega nivoja omogočajo kratko in preprosto implementacijo teh funkcij. 5.2.9 Prevajanje in namestitev programa Datoteka Makefile je napisana ročno. Splošna sintaksa je: # Komentar cilj: odvisnosti ukaz 1 ukaz 2 ... ukaz N Ciljev je lahko več, pred njimi so definirane globalne spremenljivke, dostopne ukazom vseh ciljev. Primera globalnih spremenljivk sta: BINARY = aethalometer REVISION = `svn info | grep "Revision: " | sed 's/Revision: //'` Program za delovanje aethalometra se prevede s ciljem „aethalometer“, ki vsebuje ukaze: sed -i "s/#define SW_VERSION.*/#define SW_VERSION \"r${REVISION}\"/" main.h sed -i "s/#define PACKAGE.*/#define PACKAGE \"${BINARY}\"/" i18n.h ${CC} ${CFLAGS} ${SOURCES} ${CC} ${LFLAGS} -o ${BINARY} *.o Tik pred prevajanjem se iz izpisa Subversion izlušči različica programa, ki se vgradi v izvorno kodo. Sledi prevajanje izvornih datotek, definiranih v spremenljivki SOURCES s prej definiranimi prevajalnikom in opcijami. Rezultat so objektne datoteke s končnico „.o“, ki se jih z zadnjim ukazom poveže v izvedljivo datoteko „aethalometer“. Cilj „install“ vsebuje ukaze za namestitev programa v aethalometer po omrežju: md5sum -b ${BINARY} > ${BINARY}.md5 lftp -e "rm -f ${BINARY} ${BINARY}.md5; put ${BINARY} ${BINARY}.md5; chmod 755 ${BINARY}; quit" -u username, ftp://aethalometer Lokalizacija v jezik in področje, določena s spremenljivko LOCALE (npr. LOCALE=sl_SI za slovenski jezik) se izvede s ciljema „L10n-messages“: 76 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 xgettext --sort-by-file -k_ -o ${BINARY}.pot ${SOURCES} if [ -e ${LOCALE}.po ]; then \ msgmerge --backup=off --sort-by-file --quiet -U ${LOCALE}.po ${BINARY}.pot; \ else \ msginit --no-translator -l ${LOCALE} -o ${LOCALE}.po -i ${BINARY}.pot; \ fi in „L10n-catalog“: mkdir -p ${LOCALE_PATH}/${LOCALE}/LC_MESSAGES msgfmt -c -o ${LOCALE_PATH}/${LOCALE}/LC_MESSAGES/${BINARY}.mo ${LOCALE}.po KDevelop vgradi vse cilje v meni (slika 31 na strani 53). 77 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 6. Rezultati in diskusija Dva prototipa aethalometra z novo strojno in programsko opremo sta prikazana na sliki 42. Pozdravni zaslon je prilagojen za javno predstavitev. Slika 42: Prototipa novega aethalometra z zaslonom Ampire (foto: mag. Damjan Zadnik) 6.1 Primerjava A/D pretvornikov DDC101 in DDC112 Na slikah 43 do 48 so prikazani rezultati meritev z A/D pretvornikoma Burr-Brown DDC101 in DDC112 pri ugasnjenih LED diodah, po vklopu IR in po vklopu UV LED diode, v odvisnosti od časa v sekundah. Vsaka točka na grafih je povprečje N zaporednih prebranih golih podatkov iz A/D pretvornika. N je izbran tako, da je čas meritve enak za oba A/D pretvornika: NDDC101 = 10, NDDC112 = 120. Vse meritve so izvedene brez zračnega pretoka. Če zanemarimo temna tokova, je končni rezultat (masna koncentracija BC) odvisen od naravnega logaritma razmerja sb/rb. To razmerje je na slikah 43 do 48 prikazano na spodnjih grafih z oznako „sense / reference“. Po vklopu LED diode (slike 45 do 48) je poleg šuma opazno še lezenje obeh signalov. Pri deljenju signalov (spodnji grafi na slikah 45 do 48) se lezenji ne kompenzirata popolnoma. 78 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Slika 43: Meritve z DDC101 v temi 79 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Slika 44: Meritve z DDC112 v temi 80 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Slika 45: Meritve z DDC101 pri prižgani IR LED diodi 81 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Slika 46: Meritve z DDC112 pri prižgani IR LED diodi 82 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Slika 47: Meritve z DDC101 pri prižgani UV LED diodi 83 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Slika 48: Meritve z DDC112 pri prižgani UV LED diodi Šum je v tabelah 13 in 14 kvantitativno ocenjen z varianco signala. Šum na posameznem kanalu DDC112 je v večini primerov večji kot pri DDC101. Ker pa so pri DDC112 meritve obeh kanalov izvedene sočasno, je šum obeh kanalov bolje koreliran in se pri deljenju signalov kompenzira v večji meri. V prvotni nadgradnji detektorskega vezja fotodiodi nista bili ozemljeni. Ko sta bili naknadno priklopljeni na maso, se je rezultat v primerjavi z 84 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 DDC101 še dodatno izboljšal (tabela 13). Tabela 13: Varianca signala iz A/D pretvornika za Nddc101 = 10, Nddc11 2 = 120 A/D pretvornik Svetloba var(sense) var(reference) var(sense / reference) DDC101 tema 9,0851 6,9402 7,4193 · 10-7 DDC112 73,8533 125,5634 1,1775 · 10-6 DDC112, diodi na masi 51,462 64,694 6,0901 · 10-7 DDC101 IR 3,4986 · 104 1,4948 · 104 4,1395 · 10-8 DDC112 5,6065 · 104 3,7456 · 104 3,8360 · 10-9 DDC112, diodi na masi 5,7037 · 104 4,2554 · 104 2,4082 · 10-9 DDC101 UV 1,1181 · 105 5,5763 · 104 4,1264 · 10-7 DDC112 1,1937 · 105 7,6254 · 104 8,1192 · 10-8 DDC112, diodi na masi 9,3663 · 104 6,8387 · 104 4,7640 · 10-8 Tabela 14: Varianca signala iz A/D pretvornika za NDDC101 = 38, NDDC11 2 = 240 A/D pretvornik Svetloba var(sense) var(reference) var(sense / reference) DDC101 tema 4,8889 21,676 2,1400 · 10-6 DDC112, diodi na masi 6,7222 6,2614 1,0165 · 10-7 DDC101 IR 3,6100 · 104 2,3576 · 104 6,1173 · 10-9 DDC112, diodi na masi 5,6263 · 104 3,2258 · 104 6,1472 · 10-9 DDC101 UV 1,1436 · 105 6,7028 · 104 2,9303 · 10-7 DDC112, diodi na masi 1,2911 · 105 8,8444 · 104 7,1036 · 10-8 Število meritev za izračun enega podatka je v tabeli 14 pri DDC112 povečano za faktor 2 in pri DDC101 za faktor 3,8, tako da je celotni čas meritev za oba A/D pretvornika enak. Za primerjavo med DDC112 z diodama na masi in DDC101 definirajmo faktor izboljšave po enačbi (30). 85 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 varsenDDC101\ Vref Faktor izboljšave =----- DDC101 (30) sen DDC112 ref Tabela 15: Faktor izboljšave DDC112 glede na DDC101 DDC112 Pogoj tema IR UV NdDCIOI = 10, Nddc112 = 120 NddcIOI = 38, Nddc112 = 240 1,2183 21,053 17,189 0,99514 8,6616 4,1251 Rezultati v tabeli 15 potrjujejo predvidevanja, da se bo točnost meritev z uporabo dvo-kanalnega A/D pretvornika izboljšala ter da bo izboljšava še posebej očitna pri manjšem času meritve. Faktor izboljšave za meritve v temi ni bistven, ker so te meritve že tako ali tako bistveno bolj točne kot meritve pri prižgani LED diodi (tabeli 13 in 14) in je pri odštevanju od sb in rb (7) za točnost rezultata pomembna predvsem točnost meritev sb in rb. Pri izračunu posameznega podatka s povprečenjem zaporednih meritev DDC101 se meritve, ki močno izstopajo, izloči. Za DDC112 bi bil tak pristop z vidika programiranja bolj zapleten in je bil zato odložen, čeprav se predvideva, da bi se s tem merilna točnost pri uporabi DDC112 dodatno izboljšala. Vhodni signal CONV naj bi bil pri DDC112 za natančnejše delovanje sinhroniziran z vzponom signala CLK [28, stran 9]. V načrtanem vezju je signal CONV sinhroniziran s padcem signala CLK. Merilni rezultat bi se morda izboljšal tudi z dodanim inverterjem, ki bi pred vhodom v DDC112 obrnil uro. 6.2 A/D pretvornik ADS8341 Pri preizkušanju vezja sekundarni A/D pretvornik ADS8341 ni deloval. Signali na ADS8341 so bili temeljito preverjeni z osciloskopom. Ugotovljeno je bilo, da se ADS8341 na pravilne zahteve računalnika ne odziva. ADS8341 je edini element s tako visoko gostoto sponk (ohišje SSOP) in možno je, da se je zaradi težav med spajkanjem uničil. Meritve koncentracije BC z novim detektorskim vezjem so zato izvedene s krmiljenjem namesto z regulacijo pretoka. V izračunu koncentracije BC je vrednost pretoka ocenjena s konstanto. 86 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 6.3 Stabilizacija napajalnih in referenčnih napetosti V tabelah 16 in 17 so podane ocene šumov napajalnih in referenčnih napetosti. Vrednosti so iz zaslona osciloskopa približno ocenjene od najnižje do najvišje točke (peak to peak). Stabilizacija ni bila učinkovita, na nekaterih mestih se je šum celo povečal. Tabela 16: Šum napajalnih napetosti Različica vezja 5 V napajanje / mV 12 V napajanje / mV Napajanje A/D pretvornika / mV AE22 (DDC101) • 80, neperiodičen • 120, redka odstopanja • 90, neperiodičen • 150, neperiodičen AE33 TEST-1 (DDC112) • 80, neperiodičen • 60, neperiodičen • 120, redka odstopanja • 100 do 150, neperiodičen Tabela 17: Šum referenčnih napetosti Različica vezja Referenca za A/D pretvornik, 1. meritev / mV Referenca za A/D pretvornik, 2. meritev / mV AE22 (DDC101) • 120, perioda 60 ms • 100, neperiodičen AE33 TEST-1 (DDC112) • 200, neperiodičen • 140, periodi 300 ns in 2 ms • 80, neperiodičen (na izhodu generatorja reference) Šumi v napajalnih in referenčnih napetostih verjetno nimajo opaznega vpliva na točnost meritev. Točnost meritev v temi je za razred boljša od točnosti meritev pri prižgani LED diodi (tabeli 13 in 14), čeprav napajalne in referenčne napetosti vplivajo podobno na vse meritve. 6.4 Spletni vmesnik Vmesnik je prikazan na sliki 35 v poglavju 5.2.2.4. Velikost HTML kode je 1 KB, skupaj s PNG sliko je podatkov za prenos do spletnega brskalnika za okoli 6 KB. HTML koda je preprosta, vsebuje samo osnovne elemente, ki jih brskalnik hitro interpretira. Nalaganje strani na običajnih namiznih računalnikih v lokalni mreži (LAN) traja komaj opazen delček sekunde. Kljub temu ponuja HTTP strežnik vse potrebne podatke. Nameščeni storitvi FTP in 87 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 TELNET omogočata celotno upravljanje aethalometra na daljavo, namenjeni pa sta bolj za razvoj in servisiranje kot za končnega uporabnika. Enostavnejše upravljanje ali vsaj spreminjanje programskih nastavitev bi bilo lahko omogočeno tudi preko spletnega vmesnika, ki bi vseboval gumbe in obrazce za vnos novih vrednosti. To bi spletni strežnik dodatno obremenilo in bi bilo izvajanje programa za delovanje aethalometra bolj ovirano. Tudi z najvišjo prioriteto procesa namreč ni možno zagotoviti neprekinjenega izvajanja procesa. Če bi bilo to potrebno, se lahko uporabi real-time operacijski sistem, primer je že omenjeni RTAI [34]. Iz varnostnih razlogov bi bilo morda potrebno namestiti dodatne aplikacije, na primer OpenSSL [53]. Kljub vsemu pa bi spletni vmesnik, ki bi tudi končnemu uporabniku omogočal enostavno in varno upravljanje, bi bil velika in očitna izboljšava, o kateri je vredno razmisliti. 88 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 7. Zaključek Uvodoma je bilo pregledno predstavljeno področje merjenja aerosolov, od razlogov za potrebo po nadzoru nad trdnimi delci do različnih metod merjenja, med katerimi prevladujejo optične metode. V nadaljevanju je bil predstavljen aethalometer kot eden najpogosteje uporabljanih instrumentov za merjenje koncentracije črnega ogljika z optično metodo v realnem času. Na osnovi analize merilne negotovosti aethalometra je bil spremenjen del merilnega vezja. Ključna sprememba je uporaba dvo-kanalnega A/D pretvornika namesto eno-kanalnega. Rezultati potrjujejo izboljšano točnost meritve optičnega slabljenja, ki je glavni vir naključnih napak pri meritvi koncentracije črnega ogljika. Hkrati je bila v programskem jeziku C razvita tudi nova programska oprema za upravljanje aethalometra, ki s pomočjo dodatnih aplikacij na vgrajenem Linuxu omogoča dostop do merilnih rezultatov in stanja aethalometra preko Ethernet in USB vmesnikov. Programska koda je razdeljena na smiselne in samostojne dele, uporabljena so sodobna orodja za dokumentacijo in sledenje različicam, s čimer je vzdrževanje in spreminjanje programske kode bolj enostavno in pregledno. 89 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 8. Priloge 8.1 Dnevniški izpis Najprej je bila spremenjena časovna baza na 600 sekund, zatem so se pričele meritve. Feb 20 04:58:05 2008 [4] Configuration file "aethalometer.conf" read Feb 20 04:58:05 2008 [6] Locale 6 set to en_US Feb 20 04:58:05 2008 [6] Locale 5 set to en_US Feb 20 04:58:05 2008 [6] Locale 2 set to en_US Feb 20 04:58:05 2008 [5] Locales set to en_US, en_US and en_US Feb 20 04:58:06 2008 [5] Read: 0x43 Feb 20 04:58:06 2008 [6] sleep finished due to a keypress, numKeys = 1 Feb 20 04:58:07 2008 [5] Read: 0x43 Feb 20 04:58:08 2008 [5] Read: 0x0A Feb 20 04:58:08 2008 [6] Chosen option index: 1 Feb 20 04:58:09 2008 [5] Read: 0x43 Feb 20 04:58:09 2008 [5] Read: 0x43 Feb 20 04:58:10 2008 [5] Read: 0x0A Feb 20 04:58:10 2008 [6] Chosen option index: 2 Feb 20 04:58:10 2008 [6] menuCreateChosenTitle(2 Settings, 3, Timebase) Feb 20 04:58:10 2008 [5] Formatted title: "2.3 Timebase" Feb 20 04:58:12 2008 [5] Read: 0x36 Feb 20 04:58:12 2008 [5] Read: 0x30 Feb 20 04:58:13 2008 [5] Read: 0x30 Feb 20 04:58:14 2008 [5] Read: 0x0A Feb 20 04:58:14 2008 [5] typed: "600" Feb 20 04:58:16 2008 [5] Read: 0x1B Feb 20 04:58:16 2008 [6] ESC pressed, no option chosen Feb 20 04:58:20 2008 [5] Read: 0x1B Feb 20 04:58:20 2008 [6] ESC pressed, no option chosen Feb 20 04:58:27 2008 [5] Read: 0x0A Feb 20 04:58:27 2008 [6] Chosen option index: 0 Feb 20 04:58:27 2008 [6] switchOnLamp(0) Feb 20 04:58:27 2008 [6] Setting flow to 2.00 LPM Feb 20 04:58:27 2008 [6] File "/proc/mounts" read successfully, length = 296 Feb 20 04:58:58 2008 [5] Raw data from DDC112: ref = 0000322, sense = 0000350 Feb 20 04:58:58 2008 [5] operate(): loop level 1 (tape advance) start Feb 20 04:58:58 2008 [6] tapeAdvance(1) Feb 20 04:58:58 2008 [6] bufPar[0]: "Main menu " Feb 20 04:58:58 2008 [6] bufPar[1]: "Tape: 20% Saver Off" Feb 20 04:58:58 2008 [6] bufPar[2]: "Disk:117.4MB 0.0 LPM" 90 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Feb 20 04:58:58 2008 [6] bufPar[3]: " BC = 0 ng/m3 " Feb 20 04:58:58 2008 [6] bypassValve(1) Feb 20 04:58:58 2008 [6] switchOnLamp(1) Feb 20 04:59:28 2008 [6] sleep finished due to timeout, numKeys = 0 Feb 20 04:59:48 2008 [6] sleep finished due to timeout, numKeys = 0 Feb 20 04:59:58 2008 [6] sleep finished due to timeout, numKeys = 0 Feb 20 04:59:58 2008 [6] bypassValve(0) Feb 20 05:00:29 2008 [5] Raw data from DDC112: ref = 0649736, sense = 0575382 Feb 20 05:00:29 2008 [6] writeSingleParameter(spots, 199, aethalometer.status) Feb 20 05:00:29 2008 [4] Tape moved for 1 spots Feb 20 05:00:29 2008 [3] getNextRoundTime(): previousTime is 0, will set it to current time Feb 20 05:00:29 2008 [6] Next (round) time = Wed 20 Feb 2008 05:10:00 AM UTC Feb 20 05:00:29 2008 [5] readSignalsLampOn(, 1203484200) Feb 20 05:00:29 2008 [6] switchOnLamp(1) Feb 20 05:09:59 2008 [6] sleep finished due to timeout, numKeys = 0 Feb 20 05:10:29 2008 [5] Raw data from DDC112: ref = 0648271, sense = 0571738 Feb 20 05:10:30 2008 [2] Could not read from A/D converter ADS8341 (0) Feb 20 05:10:30 2008 [6] Time: now = 1203484230, end = 1203484200. Feb 20 05:10:30 2008 [6] Rel. atn = 0.000000, atnMax = 75, Tape advance not needed yet Feb 20 05:10:30 2008 [5] operate(): loop level 2 (timebase) start Feb 20 05:10:30 2008 [6] Next (round) time = Wed 20 Feb 2008 05:20:00 AM UTC Feb 20 05:10:30 2008 [5] readSignalsLampOn(, 1203484800) Feb 20 05:10:30 2008 [6] switchOnLamp(1) Feb 20 05:19:59 2008 [6] sleep finished due to timeout, numKeys = 0 Feb 20 05:20:29 2008 [5] Raw data from DDC112: ref = 0648200, sense = 0570000 Feb 20 05:20:30 2008 [2] Could not read from A/D converter ADS8341 (0) Feb 20 05:20:30 2008 [6] Time: now = 1203484830, end = 1203484800. Feb 20 05:20:30 2008 [6] Calculated conc = 442.284463, time period = 600 Feb 20 05:20:30 2008 [6] timePrevData = 0, timeLastData = 1203484830 Feb 20 05:20:30 2008 [5] Wrote 1 empty data lines to CSV file Feb 20 05:20:30 2008 [6] File "/proc/mounts" read successfully, length = 296 Feb 20 05:20:30 2008 [5] Data line: "20-Feb-02","05:20:30",442,2.00,0.001831, 2.981172,0.001684,3.390167,1.000000,0.293677 Feb 20 05:20:31 2008 [6] Setting analog out to 0.11 V Feb 20 05:20:31 2008 [6] Rel. atn = 0.293677, atnMax = 75, Tape advance not needed yet Feb 20 05:20:31 2008 [5] operate(): loop level 2 (timebase) start Feb 20 05:20:31 2008 [6] Next (round) time = Wed 20 Feb 2008 05:30:00 AM UTC Feb 20 05:20:31 2008 [5] readSignalsLampOn(, 1203485400) Feb 20 05:20:31 2008 [6] switchOnLamp(1) 91 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 8.2 Datoteka s konfiguracijo programa za delovanje aethalometra ################################################################################ # # # Aethalometer config file # # # # Generated by program version r124 # # Time: 2008-01-29, 19:00:03 # # # # Lines starting with hash (#) are comments. # # Lines enclosed with square brackets denote beginning of a section. # # # ################################################################################ [Hardware] # Chassis Type. 0 = rack mount, 1 = portable chassis = 0 # Number of LEDs (1, 2, 7) numberOfLamps = 2 # Lamp wavelengths in nm lambda_lamp_1 = 880 lambda_lamp_2 = 370 lambda_lamp_3 = 520 lambda_lamp_4 = 590 lambda_lamp_5 = 660 lambda_lamp_6 = 370 lambda_lamp_7 = 950 # Lamp sigma values in m^2 / g sigma_lamp_1 = 16.600000 sigma_lamp_2 = 39.500000 sigma_lamp_3 = 28.100000 sigma_lamp_4 = 24.800000 sigma_lamp_5 = 22.200000 sigma_lamp_6 = 39.500000 sigma_lamp_7 = 15.400000 # Lamp names name_lamp_1 = IR-1 92 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 name_lamp_2 = UV name_lamp_3 = Green name_lamp_4 = Yellow name_lamp_5 = Red name_lamp_6 = UV name_lamp_7 = IR-2 # Area of collecting spot on tape / cm^2 spotArea = 0.500000 # Air pump zero offset in volts pumpZero = 0.000000 # Air pump scale factor (LPM / volt) pumpScale = 1.900000 # Flowmeter zero offset in volts flowMeterZero = 0.153523 # Flowmeter scale factor (LPM / volt) flowMeterScale = 2.000000 [Operation] # Timebase for measurements, in seconds timeBase = 300 # Bypass valve behaviour for tape saving # 0 off (pump air through the filter all the time) # 1 auto (set automatically, depending on timebase and current concentration) # 3 x3 # 10 x10 tapeSaver = 0 # Tape spot spacing spotsPerAdvance = 1 # How many hours before forced tape advance. 0 for automatic. tapeAdvancePeriod = 0 # Maximum optical attenuation increase compared to clean tape. # If tape advance is set to automatic, it is advanced when attenuation gets 93 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 # bigger than this value. atnMax = 75 # If 1 then wait after startup untill instrument stabilizes (pump zero V, flow) warmUp = 0 # Desired air flow in LPM flow = 4.000000 # Enable/disable beeping screenBeep = 1 # Low Flow Warning percentage lowFlowWarning = 5.000000 [Strings] # Title line 1 title1 = MAGEE SCIENTIFIC # Title line 2 title2 = AETHALOMETER # Instruments unique ID for German Network Protocol instID = 123 # Security code to exit from Operate mode securityCode = 111 # Instrument serial number serNumber = 217 [Data files] # Automatically overwrite old data files when disk full overwriteOldData = 0 # Data format. 0 = normal, 1 = compressed, 2 = verbose dataFormat = 2 # File compression 94 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 # 0 = no compression # 1 = tar bzip2 (one compressed archive for all files) # 2 = tar gzip (one compressed archive for all files) # 3 = bzip2 (compress every file to its own archive) # 4 = gzip (compress every file to its own archive) # 5 = zip (compress every file to its own archive) compression = 0 # Data storage media # 0 = floppy disk # 1 = memory card (any card that fits) # 2 = any, but prefer floppy # 3 = any, but prefer memory card storageDevice = 3 # Write data to temporary internal storage device when no storage media is # available and move that data to the real storage media when it becomes # available again, e.g. after a bad floppy was replaced. saveDataInternally = 1 [Units and conversions] # BC Unit. 0 for ng, 1 for ug (micro grams) bcUnit = 0 # Network scale factor in ( ng/m3 BC ) / mV netScaleFac = 10.000000 # Volume unit for concentration. # 0 = standard volume unit, 1 = volumetric vol. unit volUnit = 0 # Pressure parameter for volumetric units. In mbar pressure = 1013.000000 # Temperature parameter for volumetric units. In Kelvins. temperature = 293.000000 # Optical Calibration 0 = BC, 1 = EC, 2 = C opticCalibr = 0 # Smoothing factor 95 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 smooth = 0 # Delta UV-display 0 = off, 1 = on dUV = 0 [Alarm] # Alarm mode for analog output # 0 = no alarm, output represents BC value # 1 = output is -5V (BC invalid), 0V (BC < alarmValue), or +5V (BC >= alarmValue) # 2 = output is -5V (BC invalid) or 0V (BC valid) alarmMode = 0 # Treshold for analog output alarm # 0 = automatically select lamp with highest concentration # from 1 to numberOfLamps = manually select lamp alarmValue = 0.000000 # Lamp index (channel) for alarm alarmCh = 0 [Debugging output] # Verbosity level of debugging output: # 0 no debug output # 1 fatal error; the program stops due to this error # 2 major error; the program can still continue # 3 minor error # 4 normal operation # 5 verbose # 6 even more verbose # 7 display everything # 8 include also source filenames and line numbers debugLevel = 6 # Print timestamp with each debug message. 0 = no, 1 = yes debugPrintTime = 1 # Print seriuosness of event with each debug message. 0 = no, 1 = yes debugPrintSeriousness = 1 96 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 [Localization] # Locales for display menu, not for debugging output. # The usual form of the value is xx_YY where xx is a 2 character language code # and YY is a 2 character country code. Examples: en_US, en_GB, fr_FR, fr_CA # For compatibility reasons, this does not affect data in CSV files. # Locale for text language only lc_messages = en_US # Locale for date and time format lc_time = en_US # Locale for all other categories, including numbers lc_all = en_US # End of Aethalometer config file 97 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 9. Seznam uporabljenih virov [I] International Organization for Standardization , ISO Standard 7708:1995, Air quality – Particle size fraction definitions for health-related sampling, Geneva, Švica, 1995. [2] C. A. Pope, D. W. Dockery, “Health Effects of Fine Particulate Air Pollution: Lines that Connect”, Journal of the Air & Waste Management Association, 56, 709-742, 2006. [3] D. Rosenfeld, “Suppression of Rain and Snow by Urban and Industrial Air Pollution”, Science, 287, 1793-1796, 2000. [4] Y. J. Kaufman, I. Koren, “Smoke and pollution aerosol effect on cloud cover”, Science, 313, 655-658, 2006. [5] J. R. McConnell, R. Edwards, G. L. Kok, M. G. Flanner, C. S. Zender, E. S. Saltzman, J. R. Banta, D. R. Pasteris, M. M. Carter, J. D. W. Kahl, “20th-century industrial black carbon emissions altered arctic climate forcing”, Science, 317, 1381-1384, 2007. [6] A. D. A. Hansen, The Aethalometer 2005.07, Magee Scientific Co., Berkeley, California, ZDA, 2005. [7] K. L. Jansen, T. V. Larson, J. Q. Koenig, T. F. Mar, C. Fields, J. Stewart, M. Lippmann, “Associations between Health Effects and Particulate Matter and Black Carbon in Subjects with Respiratory Disease”, Thorax, 60, 455-461, 2005. [8] J. Schwartz, A. Litonjua, H. Suh, M. Verrier, A. Zanobetti, M. Syring, B. Nearing, R. Verrier, P. Stone, G. MacCallum, F. E. Speizer, D. R. Gold, “Traffic related pollution and heart rate variability in a panel of elderly subjects”, Thorax, 60, 455-461, 2005. [9] N. Kulkarni, N. Pierse, L. Rushton, J. Grigg, “Carbon in Airway Macrophages and Lung Function in Children”, New England Journal of Medicine, 355, 21-30, 2006. [10] Commission of the European Communities, Proposal for a Directive of the European Parliament and of The Council on ambient air quality and cleaner air for Europe, 2005/0183 (COD). [II] U.S. Environmental Protection Agency, Clean Air Act. URL: http://www.epa.gov/oar/caa/caa.txt (Datum dostopa: 13. 12. 2007) [12] U.S. Environmental Protection Agency, National Ambient Air Quality Standards. 98 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 URL: http://www.epa.gov/air/criteria.html (Datum dostopa: 13. 12. 2007) [13] M. Born, E. Wolf, Principles of Optics, 4. izdaja, Cambridge University Press, 2006. [14] E. Hecht, Optics, Second Edition, Addison-Wesley Publishing Company Inc., stran 110, 1987. [15] International Organization for Standardization, ISO Standard 9835:1993, Ambient air – Determination of a black smoke index, Geneva, Švica, 1993. [16] E. Weingartner, H. Saathoff, M. Schnaiter, N. Streit, B. Bitnar, U. Baltensperger (2003) “Absorption of light by soot particles: determination of the absorption coefficient by means of aethalometers”, Journal of Aerosol Science, 34, 1445-1463. [17] URL: http://hyperphysics.phy-astr.gsu.edu/hbase/atmos/blusky.html (Datum dostopa: 30. 10. 2007) [18] A. D. A. Hansen, elektronska pošta, 2006. [19] R. Hitzenberger, A. Petzold, H. Bauer, P. Ctyroky, P. Pouresmaeil, L. Laskus, H. Puxbaum (2006) “Intercomparison of thermal and optical measurement methods for elemental carbon and black carbon at an urban location”, Environmental Science & Technology, 40, 6377-6383. [20] P. Venkatachari, L. M. Zhou, P. K. Hopke, J. J. Schwab, K. L. Demerjian, S. Weimer, O. Hogrefe, D. Felton, O. Rattigan, “An intercomparison of measurement methods for carbonaceous aerosol in the ambient air in New York City”, Aerosol Science and Technology, 40, 788-795, 2006. [21] L. A. Gundel, R. L. Dod, H. Rosen, T. Novakov, “The relationship between optical attenuation and black carbon concentration for ambient and source particles”, Sci. Total Environ., 36, 197, 1984. [22] W. P. Arnott, K. Hamasha, H. Moosmuller, P. J. Sheridan, J. A. Ogren, “Towards aerosol light-absorption measurements with a 7-wavelength Aethalometer: Evaluation with a photoacoustic instrument and 3-wavelength nephelometer”, Aerosol Science and Technology, 39, 17-29, 2005. [23] A. Virkkula, T. Mäkelä, R. Hillamo, T. Yli-Tuomi, A. Hirsikko, K. Hämeri, I. K. Koponen, “A Simple Procedure for Correcting Loading Effects of Aethalometer Data”, 99 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 Journal of the Air & Waste Management Association, 57, 1214–1222, 2007. [24] O. Schmid, P. Artaxo, W. P. Arnott, D. Chand, L. V. Gatti, G. P. Frank, A. Hoffer, M. Schnaiter, M. O. Andreae, “Spectral light absorption by ambient aerosols influenced by biomass burning in the Amazon Basin. I: Comparison and field calibration of absorption measurement techniques”, Atmospheric Chemistry and Physics, 6, 3443-3462, 2006. [25] gEDA – GPL'd suite of Electronic Design Automation tools. URL: http://www.geda.seul.org/ (Datum dostopa: 11. 2. 2008) [26] A/D pretvorniki Burr-Brown (Texas Instruments) – cene in dobavljivost. URL: http://focus.ti.com/docs/prod/folders/print/ddc101.html http://focus.ti.com/docs/prod/folders/print/ddc112.html http://focus.ti.com/docs/prod/folders/print/ddc114.html http://focus.ti.com/docs/prod/folders/print/ads8341.html (Datum dostopa: 11. 2. 2008) [27] A/D pretvornik Burr-Brown DDC101 (Texas Instruments) – specifikacije. URL: http://focus.ti.com/lit/ds/symlink/ddc101.pdf (Datum dostopa: 11. 2. 2008) [28] A/D pretvornik Burr-Brown DDC112 (Texas Instruments) – specifikacije. URL: http://focus.ti.com/lit/ds/symlink/ddc112.pdf (Datum dostopa: 11. 2. 2008) [29] A/D pretvornik Burr-Brown DDC114 (Texas Instruments) – specifikacije. URL: http://focus.ti.com/lit/ds/symlink/ddc114.pdf (Datum dostopa: 11. 2. 2008) [30] QFN ohišje. URL: http://focus.ti.com/lit/ml/mpqf140a/mpqf140a.pdf (Datum dostopa: 11. 2. 2008) [31] A/D pretvornik Burr-Brown ADS8341 (Texas Instruments) – specifikacije. URL: http://focus.ti.com/lit/ds/symlink/ads8341.pdf (Datum dostopa: 14. 2. 2008) [32] Control and Measurement Device Interface. URL: http://www.comedi.org/ (Datum dostopa: 4. 2. 2008) [33] BusyBox URL: http://www.busybox.net/ (Datum dostopa: 4. 2. 2008) 100 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 [34] RealTime Application Interface for Linux. URL: https://www.rtai.org/ (Datum dostopa: 4. 2. 2008) [35] Adeos URL: http://home.gna.org/adeos/ (Datum dostopa: 4. 2. 2008) [36] Xenomai URL: http://www.xenomai.org/ (Datum dostopa: 4. 2. 2008) [37] Linux Hotplugging URL: http://linux-hotplug.sourceforge.net/ (Datum dostopa: 4. 2. 2008) [38] GNU GRUB URL: http://www.gnu.org/software/grub/ (Datum dostopa: 4. 2. 2008) [39] Vsftpd – Very Secure FTP Daemon. URL: http://vsftpd.beasts.org/ (Datum dostopa: 5. 2. 2008) [40] BlueZ URL: http://www.bluez.org/ (Datum dostopa: 5. 2. 2008) [41] Gnuplot URL: http://www.gnuplot.info/ (Datum dostopa: 4. 2. 2008) [42] Thttpd – tiny/turbo/throttling HTTP server. URL: http://www.acme.com/software/thttpd/ (Datum dostopa: 5. 2. 2008) [43] KDevelop URL: http://www.kdevelop.org/ (Datum dostopa: 13. 02. 2008) [44] Doxygen URL: http://www.stack.nl/~dimitri/doxygen/ (Datum dostopa: 4. 2. 2008) [45] Subversion URL: http://subversion.tigris.org/ (Datum dostopa: 4. 2. 2008) [46] Linux Programmer's Manual, Man pages 2.67, isalpha, sekcija 3. 101 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 URL: http://linux.die.net/man/3/isalpha (Datum dostopa: 4. 2. 2008) [47] Comedi – podprti čipi. URL: http://www.comedi.org/hardware.html (Datum dostopa: 4. 2. 2008) [48] GNU General Public License. URL: http://www.gnu.org/copyleft/gpl.html (Datum dostopa: 20. 2. 2008) [49] GNU Lesser General Public License. URL: http://www.gnu.org/licenses/lgpl.html (Datum dostopa: 20. 2. 2008) [50] GNU gettext URL: http://www.gnu.org/software/gettext/ (Datum dostopa: 4. 2. 2008) [51] Licenci za GNU gettext. URL: http://www.gnu.org/software/gettext/manual/gettext.html#Licenses (Datum dostopa: 4. 2. 2008) [52] Urejanje PO datotek. URL: http://www.gnu.org/software/gettext/manual/html_node/Editing.html#Editing (Datum dostopa: 15. 2. 2008) [53] OpenSSL URL: http://www.openssl.org/ (Datum dostopa: 20. 2. 2008) 102 M. Vardjan, Nadgradnja elektronike in programske opreme merilnika trdnih delcev v ozračju, mag. delo, 2008 10. Izjava o avtorstvu Izjavljam, da sem magistrsko delo izdelal samostojno pod vodstvom mentorja prof. dr. Andreja Žemve, izrednega profesorja na Fakulteti za elektrotehniko Univerze v Ljubljani. Izkazano pomoč drugih sodelavcev sem v celoti navedel v zahvali. V Ljubljani, marec 2008. Mitja Vardjan 103