Strömförändring
Strömförändring
Till min krets kan anslutas 1 - > 60 enheter som var och en drar 1,5 mA, alltså max 90 mA. När en enhet anropar, höjer och sänker den strömförbrukningen med 15 mA. HUR skall jag ta till vara denna strömförändring så att jag kan omvandla den till digitala 1:or och 0:or?
Alltså detta skulle inte vara något problem om det alltid skulle vara samma antal enheter anslutna, då skulle man bara ansluta ett motstånd till jord som en enkel I/U-omvandlare.
Det är ju olika referensströmmar med olika antal anslutna...
Alltså detta skulle inte vara något problem om det alltid skulle vara samma antal enheter anslutna, då skulle man bara ansluta ett motstånd till jord som en enkel I/U-omvandlare.
Det är ju olika referensströmmar med olika antal anslutna...
Det hela handlar om en typ av bus alltså huvudenheten är en master och de andra slavar. Alla är parallellkopplade men tar sin strömförbrukning från mastern. När mastern skickar till en slav använder den spänning, men slaven svarar så höjer och sänker den sin egna strömförbrukning. Denna bus har bara två utgångar till busen en Transmitter och en Receiver.
När strömförsörjningen höjs på busen direkt med ca. 15 mA så skall mastern reagera...då behöver jag denna strömförändring till att ge svar tillbaka till Receivern.
Till mastern används ttl-serietrafik och transmitter delen har jag under kontroll...nu behöver jag ha hjälp med receivern.
När strömförsörjningen höjs på busen direkt med ca. 15 mA så skall mastern reagera...då behöver jag denna strömförändring till att ge svar tillbaka till Receivern.
Till mastern används ttl-serietrafik och transmitter delen har jag under kontroll...nu behöver jag ha hjälp med receivern.
Om jag säger så här:
Det enda som är intreeant är förändringen på 15 mA. Det betyder att en digital 1 blir en digital 0.
I normalläge utan att någon slav svarar så kan strömförbrukningen vara allt mellan 1,5 mA (1 slav) -> 90 mA (60 slavar). I alla lägen mellan dessa min och max värden skall den samma förändringen, när en slav svarar på 15 mA, märkas.
Skulle jag t.ex. ha 10 slavar inkopplade så är normal strömmen 15 mA och svarar en slav blir det ju 15mA + 15 mA = 30 mA
Det är ju inte samma som med 20 slavar = 30 mA + 15 mA.
Hur skall jag bara ta tillvara förändringen som en slav ger när den svarar??
Det enda som är intreeant är förändringen på 15 mA. Det betyder att en digital 1 blir en digital 0.
I normalläge utan att någon slav svarar så kan strömförbrukningen vara allt mellan 1,5 mA (1 slav) -> 90 mA (60 slavar). I alla lägen mellan dessa min och max värden skall den samma förändringen, när en slav svarar på 15 mA, märkas.
Skulle jag t.ex. ha 10 slavar inkopplade så är normal strömmen 15 mA och svarar en slav blir det ju 15mA + 15 mA = 30 mA
Det är ju inte samma som med 20 slavar = 30 mA + 15 mA.
Hur skall jag bara ta tillvara förändringen som en slav ger när den svarar??
Ett mycket "enkelt" sätt är att ha en A/D omvandlare körande konstant, den ska omvandla den mätta totalström och, via en µC, subtrahera den minste ström som går. Ett kortvarigt förbruk om 15mA extra kommer att ge tydligt utslag = '1'.
Det kan även lösas analogt men det krävar lite mer pysslande innan jag har den lösning klar och prioriteten är låg.
Men i essens:
Omvandla förbrukat ström till spänning (kallas motstånd...) och använda den spänning till att göra fler saker:
1: sampla minimumvärdet via en ganska trög lågpassfilter med en ideel diod (op-amp + 1N4148).
2: jämföra när strömmen ökas mer än 7,5 mA (= '1')
Det kan även lösas analogt men det krävar lite mer pysslande innan jag har den lösning klar och prioriteten är låg.
Men i essens:
Omvandla förbrukat ström till spänning (kallas motstånd...) och använda den spänning till att göra fler saker:
1: sampla minimumvärdet via en ganska trög lågpassfilter med en ideel diod (op-amp + 1N4148).
2: jämföra när strömmen ökas mer än 7,5 mA (= '1')
Senast redigerad av Icecap 9 december 2005, 13:53:08, redigerad totalt 1 gång.
Kan slavar kopplas in och ur lite hur som helst när som helst ?
Eller är konfigurationen stabil över en rimligt lång tid ?
Kan flera slavar svara oberoende av varandra ?
Eller är det mastern som begär att en slav skall svara ?
Hur lång är förrändringen/ökningen på 15 mA ?
Sker ökningen på 15 mA som en serie pulser för att överföra data ?
Vet mastern när en slav sannolikt svarar ?
Det är mycket du inte talar om...
Eller är konfigurationen stabil över en rimligt lång tid ?
Kan flera slavar svara oberoende av varandra ?
Eller är det mastern som begär att en slav skall svara ?
Hur lång är förrändringen/ökningen på 15 mA ?
Sker ökningen på 15 mA som en serie pulser för att överföra data ?
Vet mastern när en slav sannolikt svarar ?
Det är mycket du inte talar om...
Slavarna kan kopplas in när som helst.
Mastern begär svar av slavarna när den vill ha värden.
Ökningen vet jag inte hur lång den är men det är ett system som skall klara upp till 9600 baud.
Ja ökningen sker som en serie pulser, mera bestämt 1 startbit, 8 databitar inneållande 1 paritetsbit och slutligen 1 stopbit.
Mastern reagerar på svar från slavarna men vet inte exakt när ett svar skall komma...längsta ledningen med 9600 baud till en slav på 60-uppsättning är ca. 1000m så mycket kan inverka.
Mastern begär svar av slavarna när den vill ha värden.
Ökningen vet jag inte hur lång den är men det är ett system som skall klara upp till 9600 baud.
Ja ökningen sker som en serie pulser, mera bestämt 1 startbit, 8 databitar inneållande 1 paritetsbit och slutligen 1 stopbit.
Mastern reagerar på svar från slavarna men vet inte exakt när ett svar skall komma...längsta ledningen med 9600 baud till en slav på 60-uppsättning är ca. 1000m så mycket kan inverka.
> "Mastern begär svar av slavarna när den vill ha värden."
En i taget ??
Eller kan flera svara samtidigt ?
> "en serie pulser,..."
En serie pulser ?
Det är ju en helt vanlig 9.600 baud seriell kommunikation du beskriver !
Varför inte helt enkelt säga det...
Är även sändningarna från mastern helt vanlig serie komm ?
> "Mastern reagerar på svar från slavarna men vet inte exakt när ett svar skall komma..."
Men systemet måste väll ha någon slags max-tid/time-out definierad, annars blir det ju svårt med felhantering och liknande.
Hur länge väntar mastern på svar ?
> "När mastern skickar till en slav använder den spänning, men slaven svarar så höjer och sänker den sin egna strömförbrukning."
Sker detta över samma ledning ?
Eller är det separata ledningat "ut" och "in" ?
Ett strömstyrt interface är ju i och för sig bra när det gäller längre sträckor och störokänslighet, men vilka spänningar jobber mastern med när den sänder ?
Min tanke är att mastern pollar strömmen med jämna intervall vid tillfällen då det inte finns några utestående requests/förfrågningar, alltså då linjen skall vara "idle". Denna ström blir en "bas-nivå".
Sedan beror det lite på hur man vill göra. Antingen någon slags komparator lösning där man sätter brytpunkten någonstans mittimellan bas-nivån och basnivå + 15 mA. Utgången från komparatorn kommer då att bli en vanligt USART signal som kan köras in direkt i en serie ingång. Komparatorns brytpunkt skulle kunna ställas t.ex med en digital pot (Maxim har flera olika).
En i taget ??
Eller kan flera svara samtidigt ?
> "en serie pulser,..."
En serie pulser ?

Det är ju en helt vanlig 9.600 baud seriell kommunikation du beskriver !
Varför inte helt enkelt säga det...
Är även sändningarna från mastern helt vanlig serie komm ?
> "Mastern reagerar på svar från slavarna men vet inte exakt när ett svar skall komma..."
Men systemet måste väll ha någon slags max-tid/time-out definierad, annars blir det ju svårt med felhantering och liknande.
Hur länge väntar mastern på svar ?
> "När mastern skickar till en slav använder den spänning, men slaven svarar så höjer och sänker den sin egna strömförbrukning."
Sker detta över samma ledning ?
Eller är det separata ledningat "ut" och "in" ?
Ett strömstyrt interface är ju i och för sig bra när det gäller längre sträckor och störokänslighet, men vilka spänningar jobber mastern med när den sänder ?
Min tanke är att mastern pollar strömmen med jämna intervall vid tillfällen då det inte finns några utestående requests/förfrågningar, alltså då linjen skall vara "idle". Denna ström blir en "bas-nivå".
Sedan beror det lite på hur man vill göra. Antingen någon slags komparator lösning där man sätter brytpunkten någonstans mittimellan bas-nivån och basnivå + 15 mA. Utgången från komparatorn kommer då att bli en vanligt USART signal som kan köras in direkt i en serie ingång. Komparatorns brytpunkt skulle kunna ställas t.ex med en digital pot (Maxim har flera olika).
Halv duplex : en svarar i taget.
Ja mastern sänder också med vanlig serietrafik.
Jag gör bara en hårdvaru master som gör om ttl-trafik till M-bus trafik och samma tillbaka.
Det finns 1 utgång och en ingång till busen. Ugången ger ut spänningsförändringar på 24 ->36 V beroende på 0:a eller 1:a. Den matar också ut strömförsörjning åt alla slavar, vilken ändras mellan 1,5 mA och 15 mA för den slav som svarar när den har blivit anropad.
Den här busen kallas meter-bus och är tålig för störningar, en av orsakerna till att den existerar.
Nu är det ju det här med "bas-nivån" som du pratar om...men den kommer att vara olika så fort man lägger till eller tar bort en slav.
Jag har också funderat på en komparator eller schmitt-trigger men då måste man också beakta att olika antal slavar kan vara anslutna.
Jag kom fram till en lösning som åtminstone fungerar i simuleringen men jag vill ännu ha idéer. Lösningen var att jag parallellkopplade ett motstånd till jord och en kondensator till en spänningsföljare, för att inte mista något av strömsignalen.
Ja mastern sänder också med vanlig serietrafik.
Jag gör bara en hårdvaru master som gör om ttl-trafik till M-bus trafik och samma tillbaka.
Det finns 1 utgång och en ingång till busen. Ugången ger ut spänningsförändringar på 24 ->36 V beroende på 0:a eller 1:a. Den matar också ut strömförsörjning åt alla slavar, vilken ändras mellan 1,5 mA och 15 mA för den slav som svarar när den har blivit anropad.
Den här busen kallas meter-bus och är tålig för störningar, en av orsakerna till att den existerar.
Nu är det ju det här med "bas-nivån" som du pratar om...men den kommer att vara olika så fort man lägger till eller tar bort en slav.
Jag har också funderat på en komparator eller schmitt-trigger men då måste man också beakta att olika antal slavar kan vara anslutna.
Jag kom fram till en lösning som åtminstone fungerar i simuleringen men jag vill ännu ha idéer. Lösningen var att jag parallellkopplade ett motstånd till jord och en kondensator till en spänningsföljare, för att inte mista något av strömsignalen.