seriële communicatie.

Gestart door conducteur, 30 mei 2013, 21:03:53 PM

Gerolf

RS485 is bedoeld voor industriële omgevingen, en kan tot enkele kilometers overbruggen in een "ruige" omgeving
CAN komt uit de automobielsector, dus storingsgevoeligheid zal ook wel prima zijn. Afstanden? Zal je moeten Googlen

Ik weet dat er bij de AVR's heel wat microcontrollers zijn met "CAN" in de hardware
RS485 vereist speciale chips (van Maxim bijvoorbeeld) voor de niveau-aanpassing

Maar het gaat niet alleen over de elektrische eigenschappen bij een bussysteem.
Het protocol en de opbouw (master-slave of Multi-master) bepalen vooral hoe alles werkt.

Ik heb intussen ook TWI (I2C) in gebruik, maar dat is alleen betrouwbaar over relatief korte afstanden (max 80cm, dacht ik)
Groeten uit "Marche-en-Bières"   ** Modelspoor is plezant **   TPIII-H0-DC-Zelfbouw

MickeyMouse

Het voordeel van CAN is dat de basis van het protocol reeds in de CAN-controller aanwezig is (bvb prioriteit op de bus wordt bepaald door het adres). CAN gaat ook over een 'differentiele' lijn waardoor het ook stoorongevoeliger is net als rs485. RS485 staat voor een wijze van overdracht, een protocol zit daar niet in vervat, ook in rs232 niet.
CAN is ideaal om veel kleine berichten door te sturen met een minimum aan vertraging, zoals in een auto.

Geert

Havoc

RS-485 is enkel een electrische standaard, het beschrijft hoe de spanningen moeten zijn. CAN is een protocol, beschrijft ook hoe de berichten moeten zijn.

Op het werk hebben we een systeem en dat is CAN met een RS-485 interface. Haalt tot 1000m maar dan moet de bedrading wel volgens de regels zijn. Dus geen aftakkingen maar in lus van de ene naar de andere module. Bij de meeste van die interfaces hangt de maximale snelheid van de bus af van de lengte (en dus ook omgekeerd).

I2C kan véél verder dan 80cm gaan. Typisch is I2C enkel voor tussen IC's op een printplaat. De limiet wordt bepaald door de capacitieve load van 400pF. (voor standaard I2C) Maar er bestaan I2C buffers waarmee veel meer mogelijk is en je tot 100m over ethernetkabel kan gaan. Philips (nu NXP, maar het is al zo oud dat er nog Philips op de slides staat) heeft een presentatie waar het probleem wordt uitgelegd en ook hoe die buffers dat omzeilen. 100m is dan de nieuwe limiet enkel door de rondgaande vertraging. Ben het systeem voor mijn baan dan ook op die basis aan het uitwerken.

Langs de andere kant blijf ik me afvragen waarom men altijd een netwerk van microcontrollers wil opzetten.

Met vakantie voor onbepaalde duur.

raf

bij ons zijn de can draden altijd getwist en in een auto heb je dus veel storende elementen.
maar hoe ver je der mee kan gaan ??? toch altijd een meter of 10
wij werken met highspeed can en mid speed can
dan is er nog lin en dat is weer iets anders en zo is er dan weer high en low lin bus systeem
dan nog iets met audio welk de audio apparaten in de wagen met elkaar laat babbelen.
gelukkig ben ik op 31 december van die ellende vanaf

gr raf 
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

PeterC

Citaat van: conducteur op 30 maart 2014, 00:05:55 AM
...In de treinclub zijn we bezig met een nieuwe modulebaan. Ik speel met het idee om onder elke bak een microcontroller te plaatsen die via een soort busnetwerk met elkaar kunnen communiceren.
Bv een trein wordt op een sectie op bak 1 gedetecteerd met stroomdetectie, en dan moet informatie verzonden worden naar de node op bak 3 om daar het sein/wissel te verzetten. Ook een baanbedieningspaneeltje kan op dit netwerk aangesloten zijn...

Loconet?  Bestaat, is degelijk en er zijn commerciële zaken genoeg verkrijgbaar.

Zelfbouw?  Het is een 'gesloten' protocol maar hier vind je de vrijgegeven standaard (Loconet personal edition) en hier een eenvoudige controller interface.
Er zijn genoeg softwareoplossingen op het net te vinden (meestal in C maar gemakkelijk om te zetten naar een andere taal).

Succes!




Groetjes, Peter


patrick smout

Citaat van: conducteur op 30 maart 2014, 00:05:55 AM
Ik blaas even nieuw leven hierin. In de treinclub zijn we bezig met een nieuwe modulebaan. Ik speel met het idee om onder elke bak een microcontroller te plaatsen die via een soort busnetwerk met elkaar kunnen communiceren.


Bv een trein wordt op een sectie op bak 1 gedetecteerd met stroomdetectie, en dan moet informatie verzonden worden naar de node op bak 3 om daar het sein/wissel te verzetten. Ook een baanbedieningspaneeltje kan op dit netwerk aangesloten zijn.
quote]

Ik weet niet hoe ver jullie staan in de systeemopzet maar persoonlijk zou ik zeker eerst de systeemarchitectuur/opzet volledig op punt zetten. Een systeemconcept met gedecentraliseerde intelligentie is niet zo eenvoudig, zeker niet als modules kennis moeten hebben van wat onderling mogelijk is. Dit beperkt de flexibiliteit en het is een nachtmerrie om de software te onderhouden.
De keuze van CAN of welke oplossing ook om te communiceren is eigenlijk een beslissing die nog veel later genomen kan worden.

mvg,

Patrick Smout
Met vriendelijke groeten,

Patrick Smout