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.