Lange afstand serieel bidirectioneel

Ik zou graag over een afstand van maximum 50 meter, via een gewone niet afgeschermde kabel (2x 0.75m²), gegevens verzenden naar en van een PIC.

De kabel ligt al een tijdje klaar, en had oorspronkelijk als doel een 24V spanning te sturen naar het uiteinde.

Maar ik ben ambitieuzer geworden.
Ik zou graag verschillende parameters willen monitoren en deze bidirectioneel kunnen verwerken.
De gegevens zijn low-fi (ik bedoel zijn aan of af toestanden van 230V signalen), en de sturingen zijn licht aan licht uit toestanden. Dus geen storingshypergevoelige signalen.
Ik ben al lang blij met een transmissie van 1byte/seconde.
De intervallen voor de metingen en de sturingen zijn echt niet kritisch (om de 5 seconde een meting is prima)..

Ik zoek dus een systeem om via een onbeschermde kabel toch redelijke signalen te kunnen versturen naar en van een PIC.
Ik weet eigenlijk niet welk protocol ik daarvoor kan gebruiken.

Kan er iemand mij in gang helpen met dit domoticaprojectje?
Dit met voor ogen dat ik maar een amateur ben...

Bedankt in ieder geval

RS-232 op lage baudrate moet zeker kunnen voldoen.

In the beginning there was nothing.... and even that exploded...

Je wil de kabel gebruiken om de PIC en-nog-wat te voeden, èn om ermee te communiceren? Dan kan je het voedingsdeel scheiden door --in serie met de positieve draad-- zowel aan het begin als aan het eind een spoel op te nemen. Het communiceren kan dan gebeuren met pulstreintjes die je via een C op het deel tussen de spoelen superponeerd.

Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)

Je zou bijv hier inspiratie op kunnen doen: http://www.circuitsonline.net/forum/view/52801/
Data (RS-232) en power over twee dezelfde, uitwisselbare draadjes (maar ook beschreven is hoe je dit met aparte datalijn kan doen, wat een veel simpeler interface geeft)

Dit is succesvol getest voor 20 meter kabel op 2400 baud, maar met wat lagere snelheid gaat 50m ook misschien wel.

Hier is een applicatie, door iemand anders met deze opzet gemaakt: http://www.bramblyhill.com/Picaxe/serialPower.aspx

PS: de nodes mogen ook hun eigen voeding hebben, het protocol blijft hetzelfde

Met vriendelijke groet
/Jurjen

Of je gebruikt maar 2 draadjes en RS485.
Dit ontwerp kun je eenvoudig zelfbouwen.

Bart Hiddink is Ideetron; electronics and projects, http://www.ideetron.nl. LoRaWAN Nutcase.

Of I2C met een P82B715 als buffer. Haalt 300 mtr op 100kHz, op lagere snelheid zelfs max. 1600 mtr...

Arco - "Simplicity is a prerequisite for reliability" - www.arcovox.com
bprosman

Golden Member

Ik zou ook voor RS485 gaan met bijvoorbeeld een MAX485 of 75176 driver IC. Nadeel met 2 draden is dat je processor in een "direction" signaal moet voorzien.

[Bericht gewijzigd door bprosman op 4 april 2008 22:02:53 (36%)]

De jongere generatie loopt veel te vaak zijn PIC achterna.

Kan zeker over >100 meter met RS485, weet ik uit ervaring (windwijzer ergens in de tuin op een dak, en data versturen naar een display binnen). De kabel was een gewone niet-afgeschermde telefoondraad. 2 aders voor de stroomvoorziening en 2 aders data (D+ en D-). Met goede afgeschermde kabel kan je met RS485 zelfs kilometers overbruggen. MAX485 transceiver chips gebruikt, aan elke kant een, en de microprocessors (PICjes) schakelen tussen zenden en ontvangen. Je moet dan natuurlijk wel een handig protocolletje verzinnen zodat er geen communicatie verwarring kan onstaan.

"If a rocket goes up, who cares where it comes down." - Wernher von Braun

De schakeling die ik poste los alle problemen voor je op.
Geen directioneel signaal, geen problemen met isolatie en defecten door onweer e.d. Gewoon plug and play.
Je hebt zelfs geen protocolverandering nodig voor de aanpassing.

True, het schema is niet eenvoudig.

Bart Hiddink is Ideetron; electronics and projects, http://www.ideetron.nl. LoRaWAN Nutcase.

Bedankt al iedereen!
Ik ga daar eens naar kijken.
Het is niet echt de bedoeling dat de tweede schakeling gevoed wordt door de eerste.

Ben niet zo thuis in het wereldje van RS....
Wel las ik ergens dat RS232 en RS485 op elkaar lijken.

Ik programmeer die dingen met Flowcode dus zal moeten zoeken wat die voor protocollen aan kan.

Nogmaals bedankt, post gerust verder ;-)

Wel las ik ergens dat RS232 en RS485 op elkaar lijken.

Het belangrijkste verschil is denk ik dat RS485 differentieel is. Voor een digitale '1' moet D+ hoger zijn dan D-, en voor een digital '0' omgekeerd (D+ < D-). Het grote voordeel is sterk verbeterde/verminderde storingsgevoeligheid. Als er bijvoorbeeld onverhoopt een een inductiestroompje op je verbindingsdraad wordt geinduceerd, dan gebeurt dat bij D+ en D- allebei, en dat maakt dus voor het signaal niks uit (ze gaan beide wat omhoog of naar beneden in voltage, maar het gaat om het -verschil-). Bij RS232 wordt alleen gekeken naar het signaalniveau t.o.v. aarde.

"If a rocket goes up, who cares where it comes down." - Wernher von Braun

Precies.

Het is een differentieel systeem, gelijk aan een gebalanceerde microfoon.
Maar dan met digitale signalen.

Storing op de kabel wordt in beide draadjes ongeveer gelijk ingekoppeld en deze stroing wordt er in de ontvanger door de opbouw eenvoudig weer uitgefilterd.

Bart Hiddink is Ideetron; electronics and projects, http://www.ideetron.nl. LoRaWAN Nutcase.

Als je nog niet met RS485 gewerkt hebt, nog wat info:
10 ways to bulletproof rs485, een application note van National.

- - big bang - -

Niets is zo eerlijk verdeeld als verstand: iedereen denkt er genoeg van te bezitten

Om zonder RS485 chipsje toe te kunenn, en er geen voeding overhoeft, kan je toch gewoon differentieel zenden. Twee pennen van je PIC aansluiten en altijd de ene hoog de andere laag maken. Of andersom. En dan gewoon gaan pingpongen: ene kant (master) stuurt een byte, en verwacht er 1 terug. Als er niks terugkomt, probeert hij het nog eens. De slave wacht gewoon totdat ie een byte krijgt.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
bprosman

Golden Member

Om zonder RS485 chipsje toe te kunenn, en er geen voeding overhoeft, kan je toch gewoon differentieel zenden.

Dat kan maar is over grote afstanden niet aan te raden.

De jongere generatie loopt veel te vaak zijn PIC achterna.

Op TTL-niveau communiceren over 50m is niet onmogelijk, als je het maar goed aanpakt.
Om te beginnen kan je de aarde als "3e draad" gebruiken. Het spreekt voor zich, dat die aarding aan beide uiteinden van goede kwaliteit moet zijn.
Vervolgens kan je 1 draad gebruiken om te zenden, en de andere om te ontvangen. Zo kan de software eenvoudiger blijven.
Elke draad dient dan aan het uiteinde afgesloten te worden met een stel weerstanden, bv. 1k tussen lijn en GND en 470R tussen lijn en Vcc. Dan gebruik je stroomsturing ipv. spanningssturing, hetgeen minder storingsgevoelig is, en tevens reflecties onderdrukt.
Als laatste dient een goed-omschreven protocol gebruikt te worden, dat mogelijke fouten in de communicatie herkent. Een checksum is daarbij een aanrader.

Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
bprosman

Golden Member

Op TTL-niveau communiceren over 50m is niet onmogelijk, als je het maar goed aanpakt.

Jakkie, moet er toch niet aan denken dat daar machines aan hangen. Voor een "lampje voor de hobby" zou je t kunnen overwegen, van de andere kant, leg je zo'n kabel door de tuin kun je dr ook wel een doosje reserve buffers bijzetten.

Vervolgens kan je 1 draad gebruiken om te zenden, en de andere om te ontvangen.

Daar zou je de standaard UART zelfs voor kunnen gebruiken en RS232 (op TTL) nivo doen maar dan weer niet op 50 Meter. Bovendien heeft de TS maar 2 draden, geen GND.

Als laatste dient een goed-omschreven protocol gebruikt te worden, dat mogelijke fouten in de communicatie herkent. Een checksum is daarbij een aanrader.

Dat zowiezo maar om een protocol (sterker) te maken vanwege de hogere gevoeligheid in Laag 0 (je hardware - TTL) zou ik ook niet doen.

[Bericht gewijzigd door bprosman op 7 april 2008 12:44:03 (10%)]

De jongere generatie loopt veel te vaak zijn PIC achterna.

Op 7 april 2008 12:42:20 schreef bprosman:
Jakkie, moet er toch niet aan denken dat daar machines aan hangen.

Voor een industriële toepassing zou ik het ook niet met TTL-lijntjes doen. :-)

Voordeel van mijn suggestie is, dat de TS meteen aan de slag kan zonder extra-IC's en de bijbehorende printen. Een snelheid van 1MBit/sec. kan hij wel vergeten, maar 10kBit/sec. moet mogelijk zijn.

Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
bprosman

Golden Member

Voor een industriële toepassing zou ik het ook niet met TTL-lijntjes doen.

Ik schrok al :-) maar gelukkig zitten we weer op een lijn :-)

De jongere generatie loopt veel te vaak zijn PIC achterna.

Ik ben wat aan 't stoeien geweest met hetgeen ik aan verlengkabels bij de hand heb, zo' 27m lengte in totaal.
Dit krijg je aan het eind te zien, als je er aan het begin een TTL-signaal van 100kHz inpompt:
http://www.uploadarchief.net/files/download/27mkabel1.jpg

Een afsluitweerstand van 1k brengt geen zichtbare verbetering.
Maar met een Thevenin-afsluiting (680R naar Vcc en 330R naar GND) en een serieweerstand van 47R tussen TTL-bron en kabel ziet het er veel beter uit:
http://www.uploadarchief.net/files/download/27mkabel3.jpg

De amplitude is nu iets kleiner, maar nog steeds groot genoeg om door de ontvanger als '0' en '1' herkend te worden. Waarschijnlijk kan het signaal nog verbeterd worden door meer-gepaste weerstanden te kiezen.

Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)

Indrukwekkend.

Maar heb je al eens nagedacht over flinke storingen op die lijn?
Zoals een impuls van 50V o.i.d.

Leuk voor je logica. ;)

Bart Hiddink is Ideetron; electronics and projects, http://www.ideetron.nl. LoRaWAN Nutcase.

Misschien helpt een terminator?

RES

Op 7 april 2008 21:10:50 schreef Bart Hiddink:
Maar heb je al eens nagedacht over flinke storingen op die lijn?
Zoals een impuls van 50V o.i.d.

Voor een domotica-projectje zie ik nog niet zo snel stoorbronnen opduiken die 50V op de lijn injecteren. Maar een weerstandje van 10k tussen afsluiting en µC kan nooit kwaad, natuurlijk.

@RES: Die Thevenin-afsluiting is een terminator.

Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)

Op 7 april 2008 21:16:47 schreef RES:
terminator?

terminator:P waarschijnlijk iets anders, wat ik niet snap...

Theo Dooms: "gezonde nieuwsgierigheid is leerzaam. "

De techniek die Pros bedoelt wordt fail-safe biasing genoemd, staat uitgelegd in het artikel dat ik hogerop postte.
Wordt bij industriële bussen (zoals) Profibus wel meer toegepast.

- - big bang - -

Niets is zo eerlijk verdeeld als verstand: iedereen denkt er genoeg van te bezitten