CMRI
Computer/Model Railroad Interface (C/MRI eller CMRI) er et system for å koble en datamaskin til en modelljernbane. Systemet er utviklet av Bruche Chubb i USA og ble presentert gjennom en artikkelserie i Model Railroader fra 1985 og utover. CMRI handler først og fremst om elektroniske kort og hvordan de brukes og kobles sammen, men manualene omtaler også programmeringsmåter i Basic. Senere er egne programmer utviklet for å bruke CMRI, JMRI f.eks.
Innhold
Hovedprinsipp
Datamaskinens interne hukommelse (RAM) utvides med en ekstern hukommelse som plasseres på (eller rett ved) MJ-anlegget i IO-kort (input/output). Et IO-kort kan enten bestå av 24 innganger eller 24 utganger. (Antall porter er senere øket til 32.) En inngang brukes til å teste om en elektrisk leder ligger på 0 volt eller ikke i forhold til et definert 0-plan eller jordplan. En utgang kobler en elektrisk leder til dette 0-planet via en transistor som tåler ca 200 mA (open collector).
Programvaren må lages slik at den leser eller skriver til disse eksterne hukommelsescellene, og på den måten kan programmet ved inngangene oppfatte hvilken situasjon MJ-anlegget befinner seg i, og kan påvirke anlegget ved å legge utgangene mot 0-planet eller la være.
Inngangene kan være brytere, i relekontaker, eller tilbakemeldinger fra andre elektronikkort, for eksempel detektorer for sporbelegg.
Utgangene kan være elektronisk utstyr som legger sporveksler, stiller signaler, eller et lite énspolet relé som kan drives direkte fra utgangene.
De elektroniske kortene
Systemet er helt åpent, slik at man kan bygge de elektroniske kortene selv hvis man ønsker. Noen amerikanske firmaer lager også ferdige kort for salg, med eller uten komponenter, for eksempel JLC Enterprises, Inc..
Kommunikasjonen med datamaskinen
I den opprinnelige versjon fra 1985 brukte man et computer-spesifikt kort (IBEC) som man satte ned i maskinens bus for dermed å få direkte tilgang til adresserings- og datalinjene. Man trakk simpelt hen datamaskinens bus utenfor maskinen og koblet USIC-kortene direkte til denne. Dermed fikk den lokale hukommelsen på USIC-kortene et absolutt adresse i datamaskinens hukommelseshierarki. Man valgte en av de den gang gjerne ubrukte adressesegmentene til dette. Fordelen med denne måten var at det var like raskt å lese en USIC-hukommelse som fra maskinens egen RAM. I en tid hvor klokkefrekvensen på maskinen var typisk 5 MHz var det viktig.
Ettersom datamaskinene utviklet seg på 1990-tallet og klokkefrekvensen økte raskt, utviklet Chubb en seriell kommunikasjon i stedet via RS232-porten. Fordelen var at man slapp den computerspesifikke kortet, og slapp i det hele å gjøre inngrep i datamaskinen, samt at man trengte ikke å finne et ubrukt hukommelsessegment, slik beskrevet over. Ulempen var at man i de første årene fikk en noe langsommere kommunikasjonsfrekvens, men det bedret seg når det kom et overgangskort fra RS232 til RS422 (senere 485) som tillot høyere overføringsfrekvens.
Fleksible inn- og utporter
Innporten føler på om inngangen ligger mot jord, 0 volt. Hvis den gjør det, er det logisk 1, hvis den ikke gjør det, er det logisk 0. Det er altså ikke kritisk hva slags spenning inngangen ligger på, for den tester bare på om spenningsforskjellen mot et referansepotensial, jord, er 0.
Tilsvarende kobler utportene mot dette referansepotensialet, eller lar være. Det er en open collector koblet transistor som står på utgangene, og den takler dermed forskjellige typer spenninger som brukeren av porten måtte arbeide med. Porten kan brukes til å tenne LED eller aktivere releer. Enspolereleer egner seg absolutt best, siden de er laget for å stå med spenning på over tid. De små utgavene trekker heller ikke mer strøm enn det utgangstransistoren på porten klarer.
Sporfelt
CMRI har egne sporfeltdetektorer, en for analog drift OD, og en for digital drift DCCOD. Dersom en strømbruker står på en seksjon, vil detektoren legge sin utgang mot 0 volt. Detektorene kan stilles inn på forskjellig følsomhet, som da må tilpasses det materiellet som brukes på banen.
Felles jordplan
CMRI krever et felles jordplan på MJ-anlegget som alle komponenter som skal kobles direkte til portene må kobles til. Det anbefales at man lager egne jordledere for de forskjellig brukertypene og spenningsvariantene, og så fører alle jordlederne sammen til ett sentralt koblingspunkt.
Styring av tog
For analog drift finnes det egne CMRI-styrte kontrollere. For digitaldrift må den koblingen skje via datamaskinen til DCC-sentralen.
Programmering
I prinsippet kan ethvert programmeringsspråk som kan programmere direkte mot porter anvendes. De nyeste CMRI-manualene har eksempler for både Basic, QuickBasic, C++, Pascal og Visual Basic. Et program bygges opp som et sanntidsprogram som går i en evig løkke. En løkke som har vist seg anvendelig er denne:
- Alle portene på inn-kortene leses.
- Alle endringer i tastetrykk og museflytt og klikk leses.
- Ut fra disse to lesningene beregnes det logiske nivået på portene på ut-kortene.
- Alle portene på ut-kortene skrives ut fra beregningen over.
- Eventuelt skjermbilde endres i tråd med beregningene.
- Start forfra igjen.
Det er tilstrekkelig at dette skjer 10 ganger i sekundet, så med moderne maskiner har man rikelig med tid til de beregningene som skal gjøres.
Vurdering
Systemet er svært fleksibelt og kan utføres relativt billig hvis man har stor egeninnsats i produksjon av kortene. Systemet er velegnet hvis man har rimelig kunnskap om elektronikk og god kunnskap om programmering, men tilsvarende krevende og uoverkommelig hvis man ikke har slik erfaring. Dette er altså ikke et ferdig plug-and-play system.
Anvendelse
JLC Enterprises sier at de har levert ca 3000 systemer verden over. I Norge ble Gardermobaneanlegget (1995-98) styrt med et slikt system. Det ble utviklet slik at anlegget kunne detaljstyres via en skjermbasert togledersentral over datidens langsomme Internett via telefonmodem. TMJK installerer CMRI på sitt nye anlegg for tiden.