CAN Algemene Informatie

Firmware Copyright

Copyright© MERG and Rocrail.
Commercieel gebruik is niet toegestaan.
:!: Alleen Kits gekocht bij Giling Computer Applications direct zijn legaal en ondersteund in het Forum.


Geschiedenis

De CAN bus (Controller Area Network) is in de jaren 80 ontwikkeld door Bosch(bekend van de bougie's) voor het gebruik in auto's maar wordt sindsdien toegepast op vele andere terreinen zoals in de luchtvaart en de medische wereld. Het is een open standaard geworden en wordt nu algemeen in de voertuigtechnologie gebruikt waardoor de benodigde componenten goed verkrijgbaar zijn. Kijkend naar de mogelijkheden van de CAN-bus lijkt het ideaal voor toepassing in het modelspoor bedrijf. De bus is bedoeld voor relatief onregelmatig data transport waarbij het gaat om relatief kleine hoeveelheden data voor de besturing van en naar toestellen terwijl respons tijden en veiligheid uitermate belangrijk zijn. In tegenstelling tot Ethernet is het dus niet bedoeld voor het verplaatsen van grote hoeveelheden data tussen computers. ZIMO, een fabrikant van o.a. loc decoders heeft inmiddels ook gekozen voor de CAN bus. Waaruit blijkt dat de CAN bus in de modelspoorwereld kan werken.

Voor de modelspoorwereld is als datatransmissiesnelheid op de bus gekozen voor 125 Kbps (125000 bits per seconde). De specificaties van de Can bus gaan tot 1 Mbps, maar bij die hoge snelheden gaan kabellengtes een niet onaanzienlijke rol spelen in de betrouwbaarheid. Met 125Kbps kunnen lengtes van 500m gehaald worden, dat is zelfs groot genoeg voor de tuinbanen. De bekabeling moet uit getwiste adres bestaan maar een afscherming is niet nodig.


Opbouw van de data, het gebruik van nodes en events

Door MERG (Model Electronic Railway Group) is een protocol vastgelegd voor de modelspoorwereld. Het protocol is gebaseerd op het Loconet protocol. De beschrijving van het protocol is volledig beschikbaar. Gekozen is voor het ' gebruiker - producent ' principe. Stel je voor, je zet een schakelaar om op je spoorbaan, er gebeurt dan iets en dat noemen we een 'event' (in het Nederlands een gebeurtenis genoemd). Er wordt dan een boodschap naar de bus gestuurd, de bus is de verbinding waar alle nodes (of modulen) aan gekoppeld zijn . In deze boodschap staat niet waar hij vandaan komt, waar hij naar toe moet en ook geen verdere informatie hij zendt alleen een 'event' nummer. De schakelaar wordt in Can bus begrippen een “node” genoemd en is de producent. De andere nodes (of modulen) die op de bus aangesloten zijn en die het bericht kunnen lezen zijn de gebruikers. Iedere aangesloten gebruiker ontvangt de event. Wat de gebruiker met deze event doet is afhankelijk van de informatie die al in de gebruiker aanwezig is. Dat betekent dat een gebruiker geleerd moet worden of hij met een event iets moet doen of niet. Als hij iets moet doen is vastgelegd wat hij moet doen. Dit is een heel sterk en flexibel principe. Producenten kunnen veel events sturen. Vele gebruikers kunnen op dat event reageren en op verschillende wijzen acteren. Gebruikers kunnen zelfs het zelfde reageren op verschillende events.

Het hier gegeven voorbeeld is nogal abstract. Ik geef een wat concreter voorbeeld. Stel je wilt met een drukknop op je baan een rijweg zetten met de bijbehorende seinen. Je beschikt over een producenten-node. Je hebt ook meerdere gebruiker-nodes zoals wisselaandrijvingen en seinbesturingen. De drukknop wordt ingedrukt en genereert event 1. Wisselaansturing A is geleerd dat een 1 betekent: wissel1-recht, wissel2-krom. Wisselaansturing B is geleerd dat event 1 betekent: wissel3-recht, wissel4-krom, wissel5-recht. Seinaansturing C en D hebben geleerd dat bij event 1 de seinen gezet moeten worden overeenkomstig de ligging van de wissels. Op de drukknop drukken levert event 1 waarmee zowel de wissels als de seinen in de juiste stand geplaatst worden. Zo stuurt een andere drukknop event 2 en de verschillende gebruikers hebben geleerd hoe te handelen bij ontvangst van dat event.

Met dit 'gebruiker - producent' model heb je een deel van de te nemen beslissingen verlegd van de producent naar de gebruiker. Nog steeds is er een computer nodig om er voor te zorgen dat de verschillende events geen tegenstrijdige acties tot gevolg hebben. De schakelopdracht uit het voorbeeld wordt door de computer (als gebruiker) onderkent, deze neemt een logische beslissing en zendt als producent een andere event naar de eindgebruikers. Bezetmelders in een blok zijn producenten en produceren events zodat de computer weet dat een blok bezet is.

Elke node heeft een node nummer. CAN-modules kunnen meerdere node nummers hebben. Op de Cbus kunnen maximaal 65536 (producenten-)nodes (node nummers) uitgegeven worden, iedere node kan 65536 events produceren. Er zijn dan totaal 4,29 biljoen combinaties mogelijk. Zoveel nodes op 1 lijn/bus kan elektrotechnisch gezien niet. Iedere node beschikt over een zgn zend/ontvang chip deze beperken het aantal tegelijkertijd aan te sluiten nodes. Elektrotechnisch wordt het aantal dat aangesloten wordt op 1 bus beperkt tot 110 exemplaren. Als er meer nodig zijn dan worden zgn repeaters ingezet.


Onderstaand een schematisch voorbeeld voor een modelspoor layout.



Modules, SLiM en FLiM

Door MERG zijn een aantal modules ontwikkeld voor de CAN bus. De ontwerpen zijn gepubliceerd, de schema's zijn beschikbaar en er worden bouwpakketten aangeboden. MERG heeft bij het ontwerp van hun modules voor twee instelopties gekozen: een optie, SLiM (Small Layout Modell)genoemd, waarbij de node nummers met dipswitches worden ingesteld en een tweede optie, FLiM (Full Layout Model)genoemd, waarbij de instellingen geheel vanuit de computer gedaan kunnen worden. In de reeks van modules is ook een DCC station opgenomen zodat het systeem bestuurd kan worden zonder de noodzaak van het gebruik van een computer.

Inmiddels is door Peter Giling en Rob Versluis eveneens een serie CAN-modules ontwikkeld, deze zijn allen gebaseerd op de FLiM methodiek. Rocrail ondersteunt daarbij volledig het CAN-DCC station en de programmering van de modules.

De 12Volt MERG modules kunnen eveneens op Rocrail aangesloten worden.


Adressering van nodes en events in Rocrail

Alle componenten die van uit Rocrail aangestuurd worden moeten geadresseerd kunnen worden, bij de CAN bus gaat dat dus met event en nodenummer. Daarbij wordt in Rocrail onder bus het node nummer verstaan en onder poort het event nummer. Bij gebruik van de CANbus wordt er dus geen adres ingegeven bij de diverse componenten.


Bouwpakketten

Van alle beschreven modulen zijn bouwpakketten verkrijgbaar , kijk hiervoor op www.phgiling.net.

Benodigd gereedschap:
Een eenvoudige, kleine soldeerbout met kleine punt ±1mm.
Tin soldeer 1 - 1,5 mm
Klein kniptangetje en schroevendraaier.
Eenvoudige multimeter.

De bouwpakketten zijn compleet, inclusief voorgeprogrammeerde Pic-microprocessor.
Voor eventuele software updates van de firmware in de microprocessor is een Pic-programmer nodig.
Een zeer geschikte programmer die hiervoor te gebruiken is, is de zgn. PICKIT3 van Microchip.
Deze wordt compleet geleverd met software, waarmee het laden van nieuwe firmware in de PIC erg gemakkelijk is gemaakt.
Op de print bevindt zich een standaard connector voor de programmeeraansluiting.

Beeldmerk

In de communicatie rondom de door MERG ontwikkelde Can bus systematiek wordt het volgende beelmerk gebruikt:

www.merg.org.uk_merg_images_merg_logo.jpg


Personal Tools