Centronics-liittimen nastojen määritykset


 

 

DB-25 ( TIETOKONE )

DB-25

CENTRONICS NAARAS 50 PINNIÄ

Centronics 50 napainen

 

 

CENTRONICS UROS 36 PINNIÄ ( KIRJOITIN )

 Centronics 36 napainen


Kirjoitin (cenronics 36-nap)   Tietokone (25-napainen D-liitin, IBM/yht.sop)

Centronics Pinni DB-25 Pinni Nimi Suunta Toiminta
1 1 STROBE PC ---> Printteri Liipaisupulssi
2 2 D0 PC ---> Printteri Vähiten merkitsevä bitti 0
3 3 D1 PC ---> Printteri Data Bit 1
4 4 D2 PC ---> Printteri Data Bit 2
5 5 D3 PC ---> Printteri Data Bit 3
6 6 D4 PC ---> Printteri Data Bit 4
7 7 D5 PC ---> Printteri Data Bit 5
8 8 D6 PC ---> Printteri Data Bit 6
9 9 D7 PC ---> Printteri Eniten merkitsevä bitti 7
10 10 /ACK Printteri ---> PC Kättelysignaali
11 11 BUSY Printteri ---> PC Kättelysignaali Varattu !
12 12 POUT Printteri ---> PC Paperi loppu
13 13 SEL Printteri ---> PC Kirjoitin päällä / valinta
14 14 /AUTOFEED PC ---> Printteri Automaattisyöttö
15 N/A n/c N/A Ei käytössä
16 N/C 0 V N/A Signaalimaa
17 N/C CHASSIS GND N/A Kirjoittimen rungon maa
18 N/C +5 V PULLUP Printteri ---> PC +5 V DC Anto (50 mA maximi)
19-30 18-25 GND N/A Maat
31 16 /RESET PC ---> Printteri Resetointi
32 15 /FAULT Printteri ---> PC Virhe !
33 N/C 0 V N/A Ylimääräinen Signaalimaa
34 N/C N/C N/A Ei käytössä
35 N/C +5 V Printteri ---> PC +5 V DC
36 17 /SLCT IN PC ---> Printteri Valinta sisälle

 

DB-25 ssa:


18-25   Nämä kaikki on kytketty GND:hen
16,19-30 ja 33 ovat yleensä kytketyt D-liittimen nastoihin 18-25, joissakin kirjoitinkaapeleissa nasta 16 on jätetty kytkemättä. 
Otot ja annot ovat TTL-tasoisia, eli 0V on looginen nolla ja +5V on looginen 1. Ottojen oletustila on 1,jos niitä ei ole kytketty mihinkään. Otot ja annot käyttävät niinsanottua Wired-Or -kytkentää, joten kaksisuuntainen liikenne on mahdollista. 

Centronics-kättely:


Standard


        PARALLEL DATA ___XXXXXXXXXX____________________________
___________ ______ _______________________________
DATA STROBE |__|
___________ _____________________________ ______
ACKNOWLEDGE |____|
 
| a| b| c| e |

BUSY/ACK


PARALLEL DATA ___XXXXXXXXXX_____________________________
___________   ______     ________________________________
DATA STROBE           |__|
                                                 ____________
BUSY                 ___________XXXX                   |______________
___________   ________________________________             __
ACKNOWLEDGE                                                    |______|
 
                           | a| b| c|
                                    |   d   |                                    | e   |


Ajoitukset/nimi:


(ys tarkoittaa tässä mikrosekuntia eli 1/1000000 s)


a = 1.0 ys (min)
b = 1.0 ys (min) ... 500 ys (max)
c = 1.0 ys (min)
d = BUSY DELAY
e = ACK DELAY


IBM AT Technical Referenecessä mainitaan a:n, b:n ja c:n minimiajoiksi 0.5 us. 
 
Maksimaaliseksi kirjoitinkaapelin etenemisviiveksi on mainittu 200 mikrosekuntia ohjeellisena arvona. 


Centronics-liittimen piirien I/O osoitteita:


Tässä OSOITE tarkoittaa Centronics rinnakkaisliitiinkortin I/O osoitetta. (I/O alkuosoite)

 
OSOITE            Datalinjojen ohjaus
 
                        Kirjoittimelle lähtevä merkki kirjoitetaan tänne. Bitit
                        ohjaavat suoraan vastaavia centronics-nastoja.
                        Luettaessa saadaan tietää datalinjojen todellinen tila
                        lähdöissä. Tätä käytetään kaksisuuntaisessa liikennöinnissä.
 
OSOITE + 1     Sisääntulojen luku
                       __
                       D7 = BUSY (D7 nolla kun otto 1)
                               ___
                       D6 = ACK  (sama tila kuin ottolla)
 
                       D5 = PAPER OUT (sama tila kuin ottolla)
 
                       D4 = SELECTED (sama tila kuin otolla)
                              _____
                       D3 = ERROR
 
OSOITE + 2    Kättelylähtöjen ohjaus
 
                      D4 = Kirjoittimen keskeytyksen valinta (1=keskeytys aktivoitu)
                              eli ACK linja aiheuttaa keskeytyksen.
                       __     ________               _________
                       D3 = SELECTED (printterin SELECT IN,  centronics nasta 36)
                               _____
                       D2 = RESET
                       __   _________                           _________
                       D1 = AUTO FEED (kun D1 on 0, niin AUTO FEED on 1)
                       __   ______                           ______
                       D0 = STROBE (kun D0 on 0, niin STROBE on 1)


Tavallisessa merkin tulostamisessa kirjoittimelle kirjoitetaan ensin merkki datalinjoihin ja sitten aiheutetaan lyhyt pulssi STROBE linjalla. Tämä tapahtuu kirjoittamalla kättelylinjoja ohjaavaan osoitteeseen ensin arvo 05h ja heti perään arvo 04h. Busy linjan tila on syytä tarkistaa ennen merkin kirjoitusta.

 
Kättelylähtöjen ohjauksessa bitti D5 on otettu joissain koneissa (esim. IBM PS/2 sarja) käyttöön ohjaamaan centronics liitännän datalinjojen kaksisuuntaista toimintaa. Jos kaksisuuntaisuus on sallittu (joko erityisellä järjestelmän rekisterillä PS/2 koneissa tai jumpperilla joissain koneissa), bitillä D5 voidaan ohjata datalinjojen suuntaa siten, että kun D5=0 niin datalinjat ovat ulostuloja (kuten tavallisesti) ja kun D5=1 niin datalinjat toimivat sisääntuloina (ulostulopuskurit kytketty pois päältä).

 
Centronics        Keskeytys-   Keskeytys-      I/O                          BIOS data
portti               linja            numero           osoite                       osoite
-----------------------------------------------------------------------------------------
LPT1                IRQ7           INT 0Fh          378h tai 3BCh *         0040:0008
LPT2                IRQ5**       INT 0Dh                                        0040:000A
LPT3                     -                  -                                          0040:000C
LPT4                     -                  -                                          0040:000E ***
 
  * Yleisesti käytössä I/O osoite 378h, mutta koneissa jossa Centronics liitin
    on näyttökortilla (yleensä Hercules) I/O osoite on 3BCh.
** HUOM! IRQ5 on varattu IBM PC:ssä kovalevylle, joten se ei ole siinä
    käytettävissä Centronicsille.
*** HUOM! LPT4 osoite ei ei toimi OS/2:ta käytettäessä.


Vaihtamalla keskenään muistapaikoissa olevat kahden portin arvot voidaan ohjata esim. vain porttia LPT1 tukeva ohjelma tulostus pakotta esim. portiin LPT2 ohjelman sitä tietämättä. Tämä ei välttämänttä toimi ohjelmissa, jotka käyttävät keskeytyspohjaista Centronics-portin käyttöä.


MS-DOS ei hyödynnä rinnakkaisporttien keskeytyksiä, joten pelkässä DOS käytössä keskeytysten puuttuminen ei ole ongelma. Muut käyttöjärjestelmät (esim. OS/2) yleensä hyödyntävät rinnakkaisportin keskeytyksiä. 


Keskeytysten ohjelmoinnista


Kirjoitinportti LPT saadaan käyttämään keskeytyslinjaa IRQ7, joka aiheuttaa keskeytyksen INT 0Fh. Tätä keskeytysvekstoria muuttamalla voi tehdä keskeytysajettuja kirjoitinrutiineja, koska keskeytys aiheuttuu ACK- signaalista, eli kun kirjoitin on valmis ottamaan uuden merkin. User Supported Programming Technical Reference tosin ilmoittaa, että portti on Reseved by IBM. Jos IRQ7-linja ei ole päällä, niin sen saa päälle nollaamalla keskeytysohjaimen maskin bitin D7 (porttiosoite 0021h)


Kaksisuuntainen liikennöinti


Alkuperäinen cemtronics-standardi oli suunniteltu yksisuuntaiseksi liitännäksi datan siirtämiseksi toietokoneesta kirjoittimeen. Kuitekin PC koneiden yhteydessä niiden centronics porttia on ruvettu hyödyntämään hiukan laajemmin- kin kuin alunperin oli suunniteltu. Yleisiä soveullutuksia ovat mm. tiedoston siirto koneiden välillä (Laplink ja FastLynx) sekä erilaiset centronics porttiin liitettävät lisälaitteet (levyasemat, kovalevyt, lähiverkkosovittimet).


Koska rinnakkaisportti oli alunperin suunniteltu yksisuuntaisuutta silmällä pitäen, kaksisuuntainen liikennöinti vaati normaalikäytöstä poikkeavia menettelyjä. Yleisimmin dataa välitetään koneelle päin käyttäen centronics portin kättelysisääntuloja (5 kpl) siten että data lähetetään 4 bitin ryhmissä 4 linjaa pitkin ja yhtä käytetään ajoitukseen. Tätä menetelmää käyttävät useat lisälaiteet sisääntulona. Ulostulo hoidetaan normaalisti datalinjoja pitkin. Mm. Fastlynx ohjelma hyödyntää kättelysisääntuloja data lukemisessa ja datanastoja ulostulossa siistäessään dataa tietokoneiden välillä centronics-portin kautta. 
Joissain tapauksissa nämä sisääntulot eivät ole riittäneet, ja käyttään on otettu lisäksi kättelyulostulot sisääntuloina. Tämä onnistuu, koska kättelyulostulot ovat periaatteessa ylösvedettyjä avokollektoriantoja /tai heikosti ylös vedettyjä TTL lähtöjä). Kun ulostulo ohjataan ykköseksi, se on mahdollista vetää nollaksi ulkoisella kytkennällä. Ulostulonastojen tila on luettavissa, joten ne toimivat hyvin sisääntuloinakin. Mm. Laplink käyttää sisääntuloina sekä kättelysisääntuloja että osaa kättelyulostuloista. 
Dataulostulot ovat voimakkaampia ulostuloja kuin kättelyulostulot, joten niiden käyttö sisääntuloina ei onnistu aina yhtä helposti. Eräät lisälaitteet (mm. Xircomin lähiverkkosovitin) testaa pystyykö se käyttämään datatalinjoja sisääntuloina koneeseen päin. Jos sepystyy, se hoitaa kaiken dataliikennöintinsä datalinjojen välityksellä kumpaankin suuntaa. Jos se ei pysty käyttämään niitä sisääntuloina, niin se käyttää datalinjoja datan siistämiseen koneesta sovittimeen ja kättelysisääntuloja toisen suunnan liikennöintiin (jolloin se on puolet hitaampaa). 


Todelliset kaksisuuntaiset centronics-liitännät


Vuosien varrella tarve kaksisuuntaiseen liikennöintiin kasvoi. IBM laittoi PS/2 sarjansa koneisiin todelliset kaksisuuntaiset centronics portit. Niissä muut nastat toimivat kuten ennenkin (ks. yllä), mutta datalinjat pystyttiin tarvittaessa kytkemään sisääntuloksi. Datalinjojen suunnan vaihtamien tapahtui ulostuloja ohjaavasta reisteristä käyttöön otetulla bitillä D5. Jotta yhteensopivuus olisi saatu mahdollisimman hyväksi, tämä kaksisuuntainen toiminto oli ensiksi kytkettävä päälle. PS/2 koneissa se tapahtuu laitteisto- kokoonpanoa ohjaavalla rekisterillä. Joissain muissa merkeissä saattaa toiminto olla asetettavissa jumpperin avulla. 


Uusissa kannettavissa koneissa alkaa myös esiintyä kaksisuuntaista porttia Intelin otettua tämän ominaisuuden integroituun piirisarjaansa, jonka se teki erityisesti kannettavia koneita varten. Näissä koneissa kaksisuuntaisuusominaisuus on yleensä laitettavissa päälle muuttamalla piirisarjan asetuksia joko BIOSin setupilla tai erillisellä ohjelmalla. 
Jos koneessa oleva centronics portti on kasattu erillisistä piireistä, niin se on muutettavissa todelliseksi kaksisuutaiseksi portiksi pienellä muutoksella, jonka Mark B. Bower kuvaa tekstissään "Making your paralllel port bi-directional", joka on tietojeni mukaan saatavana vain vapaasti levitettävänä tekstitiedostona. 


Kaksisuuntainen liikennöinti perinteisessä PC:n centronics portissa


Omien kokemuksien mukaan kaikkia PC:n centronics-liitännän antoja voidaan käyttää ottoina. Kaupallisissa sovellutuksissa on otettu joissain määrin käyttöön ohjausulostulojen kaksisuuntaisuus, mutta myös datalinjojen kaksisuuntaisuutta on hyödynnetetty. Ohjauslinjojen kaksisuuntaisuuden pitäisi toimia ongelmitta aiva kaikissa koneissa, koska sitä käytetään melko yleisestikin. Datalijojen kaksisuuntaisuudessa saattaa olla joillain erikoisilla koneilla pieniä ongelmia toimivuudessa, mutta omalle kohdalle ei ole vielä yhtään tällaista konetta tullut. Omat kokemukset ovat 82C11 piiriin perustuvista porteista, sekä perinteisestä IBM AT:n centronics portista. 82C11 on nykypäivänä yleisin käytetty piiri, koska se sisältää koko cenronics portin toiminnot yhdellä piirillä. Yleensä integrointi on vielä asekelen pidemmällä multi-IO korteissa, ja 82C11:ta sekä parin RS-232C liitännän toiminnat on yleensä integroitu yhdelle VLSI piirille. Vanhoissa koneissa erilliskomponenteista kasattu IBM AT kortin tyyppinen kytkentä on hallitseva.


Kaksi PC:tä voidaan liittää yhteen yksinkertaisella johdolla, jossa kummassakin päässä on D-25 uros ja kummankin liittimen kaikki datanastat on kytketty toisen liittimen saman mumeroisiin nastoihin, osa kättelynastoista on yhdistetty toisiinsa (esim. STROBE kytketty toisen koneen ACK linjaan) sekä maat kytketty yhteen- Sopivalla ohjelmalla voidaan siirtää tietoa koneiden välillä nopeasti.


Jos antoja halutaan käyttää ottoina, niin kirjoitetaan lähdön bitit ykkösiksi. Toisen pään laite sitten maadoittaa kyseisen linjan, kun se haluaa lähettää nollan koneelle. Vastaus luetaan samasta osoitteesta, johon oli kirjoitettu (ns. Wired-Or -kytkentä). Lähtöjen maadoittamiseen tarvitaan voimakas linja- puskuri (esim. 74LS245), koska centronics-liittimen linjapuskuri pystyy syöttämää kohtuullisia virtoja (joitain kymmeniä milliampeereja oikosulussa), varsinkin jos liitimessä ei ole rajoittavia vastuksia linjaohjaimen jäljessä. Omassa koneessani oleva centronics-liittimen piiri (82C11) pystyi syöttämään 40 mA oikosuljettaessa (datakirjan mukaan syöttökyky 24 mA), ja kesti sen hyvin. Olen kuullut huhuja, että kaksisuuntainen liikennöinti ei olisi suositeltavaa, mutta usean vuoden kokemuksen perustella olen sitä mieltä, että kaksisuuntainen liikennöinti on täysin turvallista. 
Computer Craft lehdessä mainitaan testi, jolla voidaan varmistaa, onko tietokoneen centronics portti sovelias käytettäväksi kaksisuuntaisena. Tarvitaan yleismittaria ja pari vastusta. Ohjaa dataulostulot ykköseksi ja mittaa ulostulojännite signaalimaata vastaan. Jos sen on 5V käyttöjännitteen luokkaa, niin luultavasti porttikaksisuuntaiseen liikennöintiin sopiva, jatka kuitenkin mittauksia etenpäin. Jos jännite jäi 3.5-4V tuntumaan, niin luultavasti kyseessä ns. totem-pole lähtö, joka ei sovellu kaksisuuntaiseksi. Seuraavaksi kytke 2200 ohmin vastus maan ja datanastan väliin, ja mittaa jännite. Sen pitäisi olla pudonnut noin 5% tai enemmän ensimmäisen mittauksen arvosta. Toista sama 1000 ohmin vastuksella. Pudotuksen tulisi olla 10% tai enemmän ensimmäisestä mittauksesta. Jos mittaustulokset vastasivat vaatimuksia, niin portti toimii hyvin kaksisuuntaisena.

  
 
 
Centronics-liittimen käyttöä BIOS-rutiineilla (PC ja AT)


INT 17h: muuttaa vain rekisteriä AH


INT 17h funktio 00h: Merkin kirjoitus kirjoittimelle


vaatii:
AH=00h
AL=kirjoitettava merkki
DX=rinnakkaisportin numero (0=LPT1, 1=LPT2, jne.)
palauttaa:
AH=kirjoittimen tila: (merkitys jos kyseinen bitti ykkönen)


               D7      kirjoitin ei varattu (busy)
               D6      kirjoittimen ACK
               D5      paperi loppunut (PO)
               D4      kirjoittimen SELECT
               D3      I/O virhe (ERROR)
               D2      ei käytössä
               D1      ei käytössä
               D0      aika loppunut (timed-out)


INT 17h funktio 01h: rinnakkaisportin initialisointi


vaatii:
AH=01h
DX=rinnkkaisportin numero (0=LPT1, 1=LPT2, jne.)
palauttaa:
AH=kirjoittimen tila (katso INT 17h funktio 00h)


INT 17h funktio 02h: kirjoittimen tilan luku


vaatii:
AH=02h
DX=rinnakkaisportin numero (0=LPT1, 1=LPT2, jne.)
palauttaa:
AH=kirjoittimen tila (katso INT 17h funktio 00h)


PC/MS-DOS sisältää myös oman kutsun Centronics-liitännän käyttöön.


INT 21h fuktio 05h: merkin lähetys tavalliseen tulostuslaitteeseen (tavallisesti LPT1)


vaatii:
AH=05h
DL=kirjoitettava merkki
palauttaa:
ei mitään




Ylös