RS 485 Mellan två picar och en dator

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Icecap
Inlägg: 26652
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: RS 485 Mellan två picar och en dator

Inlägg av Icecap »

Såklart!

Alternativet är att alla enheter inte har någon och inte begär någon adress alls förrän man trycker på en knapp på enheten (eller kortsluter en bygel). När man gör det begär enheten en adress hos mastern och sedan är saken biff. Då är det bara att knalla runt och trycka på en efter en.

Det slår alla DIP-switchar eller "sitta med terminalprogram för att lägga in adress" i båda pris och felrisk.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: RS 485 Mellan två picar och en dator

Inlägg av jesse »

Intressanta idéer här! Fördelen med DIP-switch är ju om man enkelt ska kunna byta ut en enhet och den nya ska få samma adress som den gamla. Jag vet inte hur det skulle fungera med knapp-tryckning... Det kan uppstå många speciella situationer då det inte blir som man tänkt sig om mastern och slaven ska försöka gissa vad man vill. T.ex. om man tar bort två enheter och sätter dit två andra, då kan ju inte mastern se vilken som sitter var. (Det är ju bra om mastern vet var de sitter, annars har man snabbt blandat ihop alla mätdata).

Kretskort ska kunna sitta dolda och då finns inte en chans att trycka på nån knapp. De kanske inte strömsätts förrän allt är inbyggt. Då ska mastern kunna identifiera enheten med en kod som jag känner till i förväg som säger exakt var enheten finns. Slumpartad numrering fungerar alltså inte. Det ska vara idiotsäkert.

En variant jag funderat på är att alla enheter har en unik 16-bitars kod. Mastern identifierar alla vid uppstart och tilldelar dem var sitt ordningsnummer. .... Jag ska fundera vidare på det... :humm:
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: RS 485 Mellan två picar och en dator

Inlägg av v-g »

En adress som ligger i tex koden eller kanske i EEPROM känns enkelt och felsäkert för min del iom att koden för att identifiera nya koder osv är rätt avancerad. Det finns ju en variant i OneWire där man tar BIT för BIT bara att läsa databladet för ds1820 så står det där (eller om det var i ett tillägg till detta.

Skulle aldrig för mitt liv bygga in något egenbygge så att den inte går att repa ;)
Användarvisningsbild
Icecap
Inlägg: 26652
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: RS 485 Mellan två picar och en dator

Inlägg av Icecap »

jesse: det fungerar synnerligt väl med knapptryckningen - om du gör rätt!

Säg att du har 10 sub-units. Mastern har ingen adresser sparade men med knapptryckningen ges första lediga nummer till den aktiverade enheten.
Om vi nu antar att adress 0 är gruppkall blir det alltså adress 1-10 till de 10 sub-units.

Sedan pajar #5. Du fixar en ny, kopplar in den och begär en adress till den, under tiden har mastern pollat sin tabell med adress 1-10 men inte fått svar från #5 på ett tag - varför den adress är ledig. Lediga adresser inom adress-spannet pollas en gång för varje gång alla andra är pollade, bara utifall att...

Sedan begärs det adress till nya enheten, den får adress #5 som ju är ledig och alla är glada och nöjda.

Om t.ex. 5 enheter är trasiga kommer alla aktiva adresser att pollas - och sedan en av de tidigare aktiva - sedan pollas alla aktiva - och sedan en av de inaktiva osv. fram till att det begäras att mastern ska utföra en adressrensning.

Eller du lagar #5 som ju har adressen sparat i sig, den pollas och adressen blir aktiv igen.

Vad är problemet?

För att nollställa en enhets adress kan det vara lämpligt att den nollställer sin egen adress om den startar med knappen intryckt, då kan POST/INIT kolla och fixa.
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: RS 485 Mellan två picar och en dator

Inlägg av v-g »

Fast om man antar att man (som jag) har en enhet där utetempen ligger en annan där elförbrukningen ligger osv då måste man ju ändå hålla reda på vilken som är vilken dvs det duger inte att en enhet är 5 sen är den 7 isf måste man ha en "master" där alla adresser efterfrågas.

Som Icecap säger fungerar i princip alla trådlösa brytare också man håller in knappen på dem så lär de sig koden, enkelt och smart.
Pajn
Inlägg: 1160
Blev medlem: 6 juni 2008, 19:14:29
Ort: Nyköping
Kontakt:

Re: RS 485 Mellan två picar och en dator

Inlägg av Pajn »

Nu vet jag inte hur applikationen ser ut och om detta är möjligt...
Men man skulle kunna ha en knapp på mastern som man trycker på när man ska koppla in en ny enhet.
När man trycker på den börjar den polla rätt tätt efter en enhet utan adress. Och om den hittar någon tilldelas nästa lediga, eller högsta +1 beroende på hur det ser ut. Kanske man kan ha två knappar byt ut enhet och lägg till enhet.
På byt ut så får den nya enheten adress 5 (om det är som ovan att 5 är borta) och på lägg till får den nya enheten adress 11.

Idén är att master pollar tillräckligt tätt för att man inte ska lägga till två samtidigt. Kanske ett par sek mellan varje poll.
Såklart kan ju även det pajja om man nu vill pajja det, men jag tror det är väldigt stor osannolikhet att det händer av olycka (dvs. att man råkar koppla in två nya enheter inom loppet av två sek efter att man tryckt på knappen.)
Användarvisningsbild
Icecap
Inlägg: 26652
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: RS 485 Mellan två picar och en dator

Inlägg av Icecap »

Om man har olika funktioner på enheterna finns det såklart en identifikation av enhetstyp med i källkoden så när mastern tilldelar adresser får den samtidig en tabell över adress & funktion.

Att göra adresseringen manuellt är såklart möjligt också, det viktiga är egentligen att undvika DIP-switches eller liknande. Dels tar de onödigt med plats, kostar för mycket, upptar processorpinnar och de kan glappa.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: RS 485 Mellan två picar och en dator

Inlägg av jesse »

>undvika DIP-switches eller liknande.

Det är nog det viktigaste egentligen. Sen får jag lösa det hela i mjukvara på något vis. Jag kommer att ha ett antal av samma typ av enheter, samt några andra olika typer. Jag vill att de av samma typ ska ha adresser efter varandra i ordning. Men det löser sig nog om jag bara gör hårdvaran först (utan dip-switchar: även om de kan utelämnas i ett senare skede så märker jag att de är fruktansvärt skrymmande, särskilt de ytmonterade som har sina stift vinklade utåt).

Men det är alltid intressant att diskutera och få tips och idéer. Så jag tackar så mycket för svaren (och att jag fick låna tråden lite / hoppas det var OK). :)
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46989
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: RS 485 Mellan två picar och en dator

Inlägg av TomasL »

Jesse, det är ju inget som hindrar dig att köra TCP/IP/DHCP över RS485, då det är ett elektriskt protokoll, eller för den delen andra protokoll som CAN osv.
Personligen tror jag, att iom du håller på med Bil-El, så bör du (läs Skall) implementera CAN enligt gängse standarder.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: RS 485 Mellan två picar och en dator

Inlägg av blueint »

Fast det är skillnad på om det ska styra bromsljus eller "nästa låt" på ljudanläggningen. ;)
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46989
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: RS 485 Mellan två picar och en dator

Inlägg av TomasL »

Nä, egentligen inte, eftersom CAN är standard i fordonsmiljö, och om du läst lite vad jesse pysslar med i tidigare inlägg, så handlar det om batteriladdning och styrning i fordon, och jag vill då påstå att allt annat än CAN är dömt att misslyckas
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: RS 485 Mellan två picar och en dator

Inlägg av jesse »

Det är ju internt mellan mina egna enheter. Så varför skulle rs485 inte lyckas?
Interface mot laddare mm. kan däremot vara CAN
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46989
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: RS 485 Mellan två picar och en dator

Inlägg av TomasL »

Jesse, Personligen så tror jag att man skall vara kompatibel, så min rek är kör CAN även internt, då gör du industrin glad, och får en poäng.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46989
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: RS 485 Mellan två picar och en dator

Inlägg av TomasL »

Btw, hittade det här
And if you want, you can run CAN on RS-485 (that's supposedly
how they tested CAN controller chips before CAN xcvr chips were
ready). It's sort of a hack, because you're not driving the
bus for both bit transitions.
Dock vet jag inte hur mycket sanning det ligger idet.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: RS 485 Mellan två picar och en dator

Inlägg av jesse »

Jag får väl kolla CAN då. Har ju några CAN-drivers liggandes, så kan ju testa med dessa.
Finns ju även AVR processorer med CAN.
Skriv svar