Logiikka-analysaattori tietokoneen LPT-portista

Tämän lyhyen artikkelintarkoituksena on esitellä suppeasti tietokoneen LPT portin käyttäminen logiikkasignaalien analysoinnissa 17 Channel Logic Analyzer ohjelmalla.

ohjelma1.png
[size=150]Ohjelmasta[/size]
17 Channel Logic Analyzer on avoimen lähdekoodin logiikka-analysaattori-ohjelma jolla voi analysoida LPT-porttiin tulevia digitaalisia signaaleja. Ohjelman käyttöön tarvitaan vain LPT-portillinen Windows tietokone. USB väylään kytkettävää LPT muunninta ei voi käyttää ohjelman kanssa.

Ohjelmalla voidaan kaapata LPT portin kautta kohtuullisen nopeasti tilaa vaihtavia digitaalisia signaaleja.

Ennen ohjelman käyttöön ottoa, tulee LPT portti asettaa ECP+EPP moodiin tietokoneen BIOS:sista, jotta ohjelma voisi kaapata signaaleja portista. Ohjelman otosnopeuteen vaikuttaa tietokoneen nopeus, emolevy ja käytettävä käyttöjärjestelmä. Ohjelma toimii vain Windows käyttöjärjestelmissä. 32-Bittisissä NT pohjaisissa (Windows 2000, XP, Vista ja 7) käyttöjärjestelmissä kaappaamiset tehdään PortTalk-nimisellä ajurilla, mutta tätä ajuria ei voida käyttää jos käyttöjärjestelmä on 64-bittinen. Tällöin ohjelma toimii hitaammalla WinRing0-ajurilla.

Ohjelma tulee käynnistää järjestelmänvalvojan oikeuksilla, jotta aiemmin mainitut ajurit voidaan asettaa käyttöön. Ajureita ei tarvitse käyttäjän erikseen asentaa vaan kun ohjelman käynnistää asentaa ohjelma ajurit ilman näkyvää indikaatiota tästä. Kun ajurit ovat asennettu onnistuneesti päästää kone PC-piipperistä lyhyen merkkiäänen ja ohjelman käyttöliittymä avautuu.

Ohjelman k√§ytt√∂liittym√§n k√§sitt√§√§ vain yksi n√§kym√§. Tarkkailtavat LPT-pinnit valitaan kohdista ‚ÄĚEnable data port‚ÄĚ, ‚ÄĚEnable Status Port‚ÄĚ ja ‚ÄĚEnable Control Port‚ÄĚ. Ennen kuin tietokoneen LPT portin mihink√§√§n pinneist√§ kytkee mit√§√§n, tulevat k√§ytett√§v√§t portit olla kytkettyin√§ ohjelmassa Enable tilaan. Muutoin LPT portti tai analysoitava laite saattaa vahingoittua. Kaikkia pinnej√§ LPT portista ei voi k√§ytt√§√§ analysoitiin, johtuen siit√§ miten se on suunniteltu.

Kun portit ovat asetettu Enable tilaan, voidaan LPT portin pinneihin kytkeä analysoitavat signaalit analysoitavasta laitteesta.

Seuraavaksi asetetaan mittaustuloksille maksimissaan varattava keskusmuisti. Moderneissa tietokoneissa on gigatavuittain keskusmuistia, jonne mittaustulokset tallennetaan ennen niiden analysointia. T√§st√§ johtuen ohjelman ‚ÄĚAllocate X megabyte for capture data‚ÄĚ arvon voi asettaa isoksi. Esimerkiksi 512 megatavua riitt√§√§ jo niin pitk√§√§n datan kaappaukseen, ett√§ sen pit√§isi riitt√§√§ jo monimutkaisimmissakin tilanteissa.

T√§m√§n j√§lkeen valmistellaan kaapattava-laite ja k√§ynnistet√§√§n datan-kaappaus painamalla ohjelmasta ‚ÄĚStart Capture‚ÄĚ painiketta. Kaappauksen alettua laitetaan analysoitava laite tuottamaan halutut signaalit. Kaappaus p√§√§tet√§√§n ‚ÄĚStop Capture‚ÄĚ painikkeella joka ilmestyy ‚ÄĚStart Capture‚ÄĚ nappulan tilalle kaappauksen alettua. Kaappaus p√§√§ttyy my√∂s jos datalle varattu keskusmuisti loppuu kesken.

Kannattaa pyrkiä siihen että kaappaus olisi päällä vain sen aikaa kun tiedetään analysoitavan laitteen lähettävän analysoitavia signaaleja. Muutoin tulee analysoitua myös muita signaaleja ja halutun signaalin poimiminen niiden joukosta ei välttämättä ole kovin helppoa.

T√§m√§n j√§lkeen vuorossa on datan analysointi. Yleisimmiss√§ tilanteissa Raster ja Idle time arvot kannattaa j√§tt√§√§ tietokoneen p√§√§tett√§v√§ksi. Raster Unit on analysointi tuloksissa n√§ytett√§v√§ pienin ajan ‚ÄĚblokkikoko‚ÄĚ. Idle time arvo taas m√§√§r√§√§ sit√§ aikaa jolloin analysaattori olettaa pinnin olevan ‚Äúnukkumassa‚ÄĚ kun analysoitavassa pinniss√§ ei tapahdu muutosta.

Analysaattori tarjoaa automaattisesti Sarja, I2C, PS/2, SPI, Infrapuna ja Smartcard protokollien dekoodauksen. Jos ei haluta automaattista dekoodausta, jätetään alas vetovalikon arvo tyhjäksi. Tällöin nähdään kaapattu linjan nousut päälle ja pois tilasta raakana.

tulos1.png
Ohjelma tulostaa analysointi tulokset HTMLtiedostona. N√§m√§ tiedostot tallenetaan oletuksena k√§ytt√§j√§n ‚ÄúOmat tiedostot‚ÄĚ kansioon ‚ÄúElmueSoft-LogicAnalyzer‚ÄĚ kansion alle.

[size=150]Esimerkkinä sarjadatan kaappaus ja analysointi[/size]
Esimerkissä meillä on Arduino Uno, joka lähettää meille vielä tuntematonta tietoa sarjaliikenteenä tietokoneelle. Aloitamme käynnistämällä analysaattori-ohjelma järjestelmänvalvojana. Käytämme LPT portin pinniä 12 arduinon serial TX linjantarkkailuun.

arduinouno.jpg
Aivan ensimm√§iseksi kytkemme ‚ÄĚEnable Status Port‚ÄĚ valinnan ohjelmasta p√§√§lle, jottemme rikkoisi LPT porttia. Seuraavaksi kytkemme hyppylangalla, ensin yhden LPT portin nollapinneist√§ Arduinon nollatasoon. T√§m√§n j√§lkeen kytkemme Arduinon sarjaliikenne portin (pinni 1 Arduino Unossa) LPT portin pinniin 12.

Seuraavaksi asetetaan kaapattavalle datalle varattava keskusmuisti ohjelmassa 32 megatavuun ja käynnistetään kaappaus. Tämän jälkeen kytkemme Arduinoon virrat. Kun luulemme että vaadittava data on kaapattu, pysäytetään kaappaus.

Oikeiden arvojen valitseminen analysaattoriin on hyvin haastavaa, jollei analysoitavasta kohteesta ei tiedetä mitään. En käsittele tässä oppaassa syvemmin signaalien analysointia, vaan huijjaamme ja asetamme ohjelman analysoimaan kaapattu data 9600 baudisena sarjadatana ilman parityä ja databitit kahdeksana ja stop bitit yhtenä.

analyze.png
Laitetaan ohjelma raksuttamaan analysointituloksia. Ohjelman tuottamasta sivusta voimme lukea analysoidussa linjassa l√§hetetyt datat hexadesimaaleina linjan kuvaajan alla. Linjasta kaapatut heksadecimaali luvut ovat 77, 77, 77, 2E, 72, 75, 75, 76, 69, 70, 65, 6E, 6B, 6B, 69, 2E, 66 ja 69. N√§m√§ arvot ASCII-merkeiksi muutettuina muodostava tekstin ‚ÄĚwww.ruuvipenkki.fi‚ÄĚ.

Arduinossa käytetty koodi

[code]void setup() {
Serial.begin(9600);
delay(1000);
Serial.print(‚Äúwww.ruuvipenkki.fi‚ÄĚ);
}

void loop() {

}
[/code]

[size=150]Lopuksi[/size]
Ohjelmalla ei voi analysoida nopeasti tilaa muuttavia signaaleja mutta ohjelma on oiva työkalu aloittelevalle harrastajalle. Esimerkiksi kun jonkun laitteen komponenttien välistä tiedonvaihtoa pitäisi selvitellä ei se käytännössä ole mahdollista ilman logiikka-analysaattoria.
Ohjelman nettisivuilla on kuvattu LPT-portin, ohjelman ja analysoinnin periaatteita hyvin seikkaperäisesti. Ohjelman käyttäjän kannattaakin lukea huolellisesti sivulla olevat ohjeet.