Sarjaportin toteutustapa ja sen aiheuttama viive

Aloittaja Jarkko.A, 06.08.2011, 15:19:25

« edellinen - seuraava »

Jarkko.A

Tuli tuossa mieleen, että sarjaporttihan on analoginen yhteys, joten sen toteuttamiseen tarvitaan muunnin joka muuntaa digitaalisen signaalin analogiseksi ja toisinpäin. Tämähän aiheuttaa tietenkin viivettä joten mikä olisi pienimmän viiveen aiheuttama toteutustapa ja onko tästä viiveestä mitään haittaa käytännössä, esm. tähtikuvauksessa.

Perinteisestihän sarjaportti toteutettiin southbridgellä tai muulla vastaavalla suoraan emolevyllä sijaitsevalla monitoimipiirillä. Olettaisin sen olevan nopein tapa. Sitten kun tarve vähentyi, siirryttiin southbridgeen kiinnitettyyn erilliseen piiriin. Sitten kun tarve väheni vielä pienemmäksi tulivat käyttöön pci-väylään liitetyt kortit. Nykyisin sitten käytössä on usb-väylään liitettävät muuntimet jotka oletettavasti aiheuttavat eniten viivettä.

Onkohan näistä tehty mitään nopeusvertailua? Tai onko signaalin laadussa mitään eroa? Eli jos halutaan tietyn nastan antavan siniaaltoa, miten nopealla viiveellä nuo sen toteuttavat ja miten lähellä täydellistä siniaaltoa signaali on eri toteutustavoilla?

GaryP

Lainaus käyttäjältä: Jarkko.A - 06.08.2011, 15:19:25
Tuli tuossa mieleen, että sarjaporttihan on analoginen yhteys...

Täytyy myöntää että tämä tuli ihan kolmion takaa. Mistä tuon tiedon sait?

Kari
Kari Pulkkinen
Espoo, Finland

Harrastus uudelleen lämpiämässä...

einari

Kun sarjaporttia käytetään nykyään jalustan ohjaukseen, fokuksen ohjaukseen, filtteripyörän pyöritykseen, niin arvelen että sarjaportin nopeus riittää noihin tehtäviin ihan mainiosti.
___
Tapio

Jarkko.A

#3
Lainaus käyttäjältä: GaryP - 08.08.2011, 06:56:51
Täytyy myöntää että tämä tuli ihan kolmion takaa. Mistä tuon tiedon sait?

Kari

Sarjaportin kautta on mahdollista antaa jännitteeltään vaihtelevaa signaalia eri nastoista. Tätä kun vertaa USB-liitäntään jossa tiedonsiirtonastoista tulee ulos pelkkää sykäyksikkäistä signaalia, jonka jännite on vakio, voitaneen sarjaportista puhua analogisena liitäntänä. Tai ainakin tämän minä olen käsittänyt liitännöistä puhuttaessa analogisuuden ja digitaalisuuden erona. Samalla tapaa kuin C-64:n kasettiasema oli analoginen tallennusmenetelmä verrattuna fläshmuistiin.

Jos sarjaporttia halutaan käyttää tiedonsiirtoon, käytetään siinä tietenkin digitaalista signaalia. Jännitevaihtelu on kuitenkin niin laaja, että sopivalla ohjelmalla saadaan sarjaportin kautta menemään analogistakin dataa ulos ja sisään.

Edit: Jos nyt haluisi mainita muutaman sovellutuksen tuolle sarjaportin analogisuudelle, voidaan siihen esimerkiksi liittää kaiutin rx ja tx navan väliin ja tuottaa vaihtelevaa ääntä tai sitten vaikkapa laittaa näiden väliin lämpötila-anturi ja lukea volttitasosta lämpötila.

Huomasin kun tutkin asiaa tarkemmin, ettei usb:n kautta toteutettavassa sarjaportissa tämä toimi johtuen siitä, että usb antaa vain +5v eikä negatiivisia jännitteitä.

Kaizu

Lainaus käyttäjältä: Jarkko.A - 08.08.2011, 10:43:32
Jos sarjaporttia halutaan käyttää tiedonsiirtoon, käytetään siinä tietenkin digitaalista signaalia. Jännitevaihtelu on kuitenkin niin laaja, että sopivalla ohjelmalla saadaan sarjaportin kautta menemään analogistakin dataa ulos ja sisään.

Edit: Jos nyt haluisi mainita muutaman sovellutuksen tuolle sarjaportin analogisuudelle, voidaan siihen esimerkiksi liittää kaiutin rx ja tx navan väliin ja tuottaa vaihtelevaa ääntä tai sitten vaikkapa laittaa näiden väliin lämpötila-anturi ja lukea volttitasosta lämpötila.
Mikähän tuo sopiva ohjelma on?

Googletettuna "RS232" ei tuottanut viitteitä sarjaportin analogisuudesta. Tiedän kyllä että erään omatekoisen sääsateliittivastaanottimen signaali tuotiin koneeseen sarjaportin kautta mutta siinäkin oli ad-muunnin viimeisenä. Portin kohdalla data oli sarjamuotoista ja digitaalista.

Kaizu
Kai Forssen

Jarkko.A

En nyt löydä suoraan noita softia. Silloin kuin noihin kahteen esimerkkitapaukseen törmäsin, oli käytössä Amiga ja purkkeihin otettiin modeemiyhteys. Pitänee penkoa tuo amiga esille ja katsoa tarkemmin miten nuo oli toteutettu.

Kokeilin googlettaa vastaavaa ja tämmöinen löytyi.
http://www.maxim-ic.com/app-notes/index.mvp/id/3424

Abstract: A temperature-sensor chip is powered by the Tx channel of an RS-232 interface chip, and the signal (a squarewave with frequency proportional to the sensor-package temperature) is returned via the Rx channel.

Jos nyt tajusin oikein, niin tuossa Rx pinnistä mitataan taajuutta ja tehdään sen perusteella lämpötilan tunnistus.

Normaalistihan Rx nastasta katsotaan vain jännitettä. Alle -3v on 1 ja yli +3v on 0. Kuitenkin jännite voi vaihdella +- 15v ja portista saa tiedon jännitteestä tai voi antaa ulos jännitettä tuolla välillä. Tämä pätee myös muihin nastoihin poislukien maat. Eli käytännössä voit softalla käskyttää esm. releitä jotka on liitetty suoraan minkä tahansa nastan ja maanastan väliin. Tai liittää pienitehoisen ledin nastan ja maanastan väliin ja vaihdella sen kirkkautta.

EQDIR taitaa tuolla perusteella toimiakin ja muuttaa vain jännitteet sopiviksi ja eristää jalustan tietokoneesta.

Jarkko.A


Kaizu

Kumpikaan yllämainituista ei tee sarjaportista analogista. Vastaanotettaessa laitetyypistä hieman riippuu mikä jännite nastassa tulikitaan nollaksi ja mikä ykköseksi. Lähetettäessä portin nastat ovat joko nollassa tai täpöllä, mitä se ikinä onkaan (2,4V, 3V, 5V 12V).
Rinnakkaisportinkin saa näyttämään analogiselta kun ulos tuleva signaali on pulssisuhdemoduloitua ja mitataan riittävän hitaalla mittarilla. Risto1 rakenteli akanaan tuolla periaatteella vanhasta läppäristä mikroaskeltavan askelmoottoriohjaimen jalustaansa. Siinä oli jopa autoguidausmahdollisuus, vaikkei se nyt enää tähän aiheeseen liitykkään.

Kaizu
Kai Forssen

GaryP

Eli se siitä?

Lisätään vielä kysymys. Jos sarjaportista luettaisiin jännitetaso, pitäisi sille olla oma rekisteri jonne tieto tallennetaan, ja vieläpä jonkin verran resoluutiota, 8- tai 2x8-bittinen muistipaikka.
Kun nyt kaivelin vanhan kunnon PClähdeteoksen naftaliinista... ei täällä ole sellaista muistipaikkaa josta voisi lukea jännitteenä, kaikille biteille on paikkansa, mutta vain yksittäisinä bitteinä. Jos lisätietoa löytyy, jota en kylläkään usko, olen valmis syömään talvihattuni.

Näitä veivattiin hulluna silloin kun tein laivanupotuspelin vanhaan kunnon modeemiaikaan. Eipä enää muistakaan kuinka hauskaa oli... :tongue:

Kari
Kari Pulkkinen
Espoo, Finland

Harrastus uudelleen lämpiämässä...

Munkki

#9
Itse olen jonkin verran koodannut pc:llä ja mikro-ohjaimilla mm. sarjaporttia. Portti on kyllä digitaalinen ja data liikkuu sarjamuodossa kuten sanottu. Yleensä merkitseviä bittejä lähetetään kahdeksan kappaleen ryhmissä joita tuttavallisesti tavuiksi kutsutaan. Tietokoneen sarjaportin lähdössä data on hassusti käännetty, niin että loogista ykköstä vastaa miinus jännite (yleensä -5...-12V) ja loogista nollaa vastaa positiivinen jännite (+5...+12). Jos tuon signaalin haluaa viedä omalle mikroohjaimelle tai muulle omalle digitaaliselle elektroniikalle, niin väliin laitetaan yleensä muunnin jolla data saadaan tutumpaan muotoon jossa nolla tilaa vastaa nollan voltin jännite ja loogista ykköstä +3.3...+5V (puhutaan TTL tasoisesta logiikasta). Datan vastaanotossa tavut luetaan automaattisesti sarjaportin rekistereihin ja rekistereistä niitä voi sitten lähteä käsittelemään haluamallaan tavalla.

Sarjaportilla vois toteuttaa periaatteessa analogista mittausta. Sarjamuotoista dataa lähettävän laitteen pitää vain kirjoittaa tavut koostumaan sitä enemmän ykkösistä mitä isompi jännite halutaan ja puhtaasti analogisessa vastaanottimessa sitten vain "integroidaan" jännitettä tavujen yli (~kumulatiivinen kertymä tavun aikana). Käytännössä näin saataisiin siis sitä suurempi jännite mitä enemmän tavussa on loogisia ykkösiä.

-Mikko  
Mikko Salokannel

GaryP

Heh, nyt aletaan jo keksimään pyörää uudestaan. AD- ja DA-muuntimia on ollut sarja- ja rinnakkaisdatalla mikro-ohjaimia varten jo kymmeniä vuosia, joten alkuperäinen asia, eli sarjaportin analogisuus itsessään on osoitettu myytiksi. BUSTED!

Kari
Kari Pulkkinen
Espoo, Finland

Harrastus uudelleen lämpiämässä...