next up previous contents
Next: Kokeen dokumentointi Up: Rekisteröintiohjelmiston oliomalli Previous: Käyttöliittymä

Mittaus- ja stimuluslaitteiston ohjaus

Toteutettaessa liityntää LabMaster-korttiin, joudutaan tekemään valinta odottavan (pollaavan) I/O:n ja keskeytyspohjaisen rekisteröinnin välillä. Valinta vaikuttaa oleellisesti sovelluksen kontrollivuohon, mutta suuri osa kortin ohjaustoiminnoista voidaan toteuttaa siten, että ne ovat käytettävissä molemmilla rekisteröintitavoilla.

Koska rekisteröinnin ajoituksiin käytetään LabMaster-kortin ajoitinlaskureita ja koska LabMaster antaa mahdollisuuden käyttää kahta laskuria kalenterikellona, kannattaa kyseistä piirrettä käyttää hyväksi. Rekisteröinnin aikana voidaan joutua kieltämään normaalit mikrotietokoneen keskeytykset, jolloin PC:n oma kello ei välttämättä pysy ajassa.

Jotta rekisteröinti voidaan suorittaa tarvittaessa mahdollisimman korkealla näytteenottotaajuudella, rekisteröidyt näytteet tulee voida tallentaa niille varattuun tilaan mahdollisimman nopeasti. LabMaster-kortilta luettavat yksittäiset näytteet ovat 12-bittisiä kokonaislukuja, joten luonnollisin tapa signaalinäytteiden tallennukseen on kokonaislukutaulukko. Tila signaalidatalle tulee varata ennen varsinaisen rekisteröinnin aloittamista. Dynaaminen muistin varaaminen rekisteröintisekvenssin suorituksen aikana voi aiheuttaa viiveitä, joiden kestoa on vaikea arvioida. Toisaalta virhetilanteiden mahdollisuus rekisteröinnin aikana tulee minimoida. Muistin loppuminen kesken rekisteröinnin voi aiheuttaa arvokkaan datan menetyksen ja hidastaa mittaustyötä merkittävästi.

Varsinainen A/D-muunnos tapahtuu kirjoittamalla LabMaster-kortin rekistereihin halutut asetukset (esim. A/D-kanavan numero) ja aloittamalla muunnos siihen varattuun rekisteriin kirjoittamalla. Kortti ilmaisee muunnoksen valmistumisen asettamalla kortin statusrekisterin tietyn bitin. Kortti voidaan konfiguroida myös generoimaan keskeytys muunnoksen valmistumisesta.


 
Kuva 3.4: Rekisteröintisekvenssiä kuvaavien olioiden luokkakaavio LabMaster-kortin ohjauksen kannalta.
OMT kaavio LabMaster-sekvenssistä

Rekisteröinnin tulee tapahtua tasavälisellä näytteenotolla. Jos rekisteröinti tapahtuu keskeytyspohjaisesti, tulee jokin LabMaster-kortin ajoitinlaskureista asettaa generoimaan keskeytys halutulla rekisteröintitaajuudella. Pollaavassa rekisteröinnissä laskuri vain asetetaan generoimaan halutun taajuista suorakaideaaltoa ja A/D-muunnosten välillä laskurin lähtöä testataan kunnes se muuttuu. Koska keskeytysten käsittely vaatii CPU:lta huomattavasti enemmän prosessointia kuin yksintertainen I/O-rekisterin pollaus, keskeytyspohjaisella rekisteröinnillä ei päästä yhtä korkeisiin näytteenottotaajuuksiin kuin pollaavalla rekisteröinnillä. Toisaalta valoreseptoreiden signaalia rekisteröitäessä tarvitaan harvoin satoja hertsejä korkeampaa taajuutta. Jos rekisteröinti tapahtuu usealla kanavalla ja eri kanavien rekisteröintitaajuudet poikkeavat toisistaan, näytteenoton ajoitusta ohjaava laskuri voidaan asettaa laskemaan taajuudella, joka on kaikkien rekisteröintitaajuuksien pienin yhteinen jaettava (yleensä sama kuin suurin näytteenottotaajuus). Jos taajuudet ovat esimerkiksi 1000 Hz, 100 Hz ja 10 Hz, laskuri asetetaan laskemaan 1000 Hz taajuudella ja hitaammilla kanavilla näytteenotto tapahtuu joka kymmenennellä ja joka sadannella laskurin liipaisulla.

Kuten vaatimusten yhteydessä todettiin, magneettisen sulkimen ohjaus tapahtuu nykyisessä mittauslaitteistossa kahden ajoitinlaskurin lähtösignaaleiden avulla: yksi signaali avaa sulkimen ja toinen sulkee sen. Sulkimen ohjausstrategian valinta riippuu siitä, miten valosalaman ajoitus ja käytetty näytteenottotaajuus sekä rekisteröinnin pituus suhtautuvat toisiinsa. Jotta valosalaman pituus voitaisiin määrätä millisekunnin tarkkuudella, vähintäänkin sulkevaa signaalia ohjaavan laskurin tulee laskea millisekunteja. Toisaalta laskureiden rekisterit ovat 16 bittisiä etumerkittömiä kokonaislukuja joten millisekuntilaskuri voi itsenäisesti mitata aikaa noin minuutin. Yleensä tämä on aivan riittävä aika, joten laskurit voidaan asettaa generoimaan pulssit itsenäisesti ja ne voidaan liipaista käyntiin rekisteröinnin alkaessa. Jos preparaatille halutaan antaa useita valosalamia vaihtuvilla väleillä rekisteröinnin aikana, laskureita joudutaan ohjaamaan kesken rekisteröinnin. Tällöin sulkimen avauspulssin ajallinen paikka täytyy määrätä suhteessa näytteenottoa ohjaavan laskurin antamaan ajoitukseen, koska rekisteröinnin aikana kaikki LabMaster-kortin viisi ajoitinlaskuria ovat käytössä.

Stimulusvalon intensiteetin säätö tapahtuu LabMaster-kortin digitaalisten lähtöjen avulla, jotka antavat ohjaussignaaleja HS-3-askelmoottoriohjaimelle. Rekisteröintisovelluksen tulee aina tietää harmaakiilaa ohjaavan askelmoottorin asento, jotta harmaakiilan optinen tiheys voitaisiin asettaa. Jos preparaatille annetaan rekisteröinnin aikana vain yksi valostimulus, harmaakiilan asento voidaan asettaa jo ennen rekisteröinnin aloittamista. Jos rekisteröinnin aikana annetaan useita valosalamia eri intensiteeteillä, askelmoottoria joudutaan ohjaamaan rekisteröinnin aikana. Askelmoottoria voidaan kiertää kulmakiihtyvyydellä, jonka yläraja riippuu moottoriin kiinnitetyn kuorman hitausmomentista ja moottorin vääntökäyrästä. Jos askelmoottorin kierto tapahtuu rekisteröinnin aikana, ajoitus voi tapahtua vain näytteenottoa ohjaavan laskurin perusteella - enintään yksi askel kahta laskurin liipaisua kohti. Tällöin tulee jo rekisteröintisekvenssin määrittelyvaiheessa laskea, voidaanko tarvittava määrä askelia generoida valostimulusten välisenä aikana. Jos kahden stimuluksen väliin tarvitaan enemmän askelia kuin niiden välinen näytemäärä sallii, näytteenottoa ohjaava laskuri voidaan asettaa laskemaan suuremmalla taajuudella kuin näytteenotto edellyttäisi. Toisaalta askelmoottorin kulmakiihtyvyyden maksimi täytyy myös ottaa huomioon. Suurella näytteenottotaajuudella askelmoottoria ei välttämättä voida ohjata jokaisella näytteenottoa ohjaavan laskurin liipaisulla. Käytännössä pysähdyksissä oleva moottori voidaan kiertää uuteen asemaan vakionopeudella, jos kiertonopeus on tarpeeksi pieni. Tällöin säästytään erillisiltä kiihdytys- ja jarrutussekvensseiltä askelmoottorin kierrossa.

Kuvassa 3.4 on esitetty luokkakaavio olioista, joiden avulla voidaan hoitaa usean kanavan rekisteröinnin ajoitus, rekisteröinnin aikaiset sulkimen ohjaukset ja rekisteröinnin aikaiset askelmoottoreiden kierrot. Kaaviossa esiintyvien $1 \ldots N$ suhteiden toteutuksessa tulee ottaa huomioon rekisteröinnin tiukat aikavaatimukset. Suurella rekisteröintiaajuudella rekisteröinnin aikana ei voida suorittaa raskaita hakuja rekisteröinnin määrittelevistä tietorakenteista.


next up previous contents
Next: Kokeen dokumentointi Up: Rekisteröintiohjelmiston oliomalli Previous: Käyttöliittymä
Antti Miettinen
9/3/1997

Valid HTML 3.2!