Re: Dataöverföring liknande 1-Wire i bilen
Postat: 16 januari 2009, 10:50:21
Jodå, det går alldeles utmärkt. I2C tex kan vara multimaster, så något liknande det skulle man kunna göra.
Det som behövs är collision detect, brukar normalt göras genom att man lyssnar samtidigt som man sänder.
Är det tex två som pratar samtidigt kommer den enas resultat på bussen skilja sig beroende på om 0 eller 1
är dominant och då slutar man sända när man märker att man inte får ut det man vill på bussen.
För den som slutar sända innebär det att man inför en "backoff" tid som får slumpas fram mellan nåt min
och max värde så att ifall det är flera som vill sända samtidigt så minskar man risken för collision på
omsändningen.
Tyvärr verkar få fältbussar fixa detta. CAN tror jag gör det men det blir ju lätt komplex design med den...
Dock finns det tex de som implementerat CAN i ren sw på AVR
Behovet är stort tycker jag om man vill ha ner strömförbrukningen. Vill man tex ha en knapp (eller annat
userinterface input) så är det ju himla dumt om en master måste polla den varje 50 ms eller så.
Pollar man den för långsamt kommer systemet upplevas "trögtryckt" och pollar man för snabbt så ökar
förbrukningen i systemet plus att det slösas med bandbredd.
Det som behövs är collision detect, brukar normalt göras genom att man lyssnar samtidigt som man sänder.
Är det tex två som pratar samtidigt kommer den enas resultat på bussen skilja sig beroende på om 0 eller 1
är dominant och då slutar man sända när man märker att man inte får ut det man vill på bussen.
För den som slutar sända innebär det att man inför en "backoff" tid som får slumpas fram mellan nåt min
och max värde så att ifall det är flera som vill sända samtidigt så minskar man risken för collision på
omsändningen.
Tyvärr verkar få fältbussar fixa detta. CAN tror jag gör det men det blir ju lätt komplex design med den...
Dock finns det tex de som implementerat CAN i ren sw på AVR

Behovet är stort tycker jag om man vill ha ner strömförbrukningen. Vill man tex ha en knapp (eller annat
userinterface input) så är det ju himla dumt om en master måste polla den varje 50 ms eller så.
Pollar man den för långsamt kommer systemet upplevas "trögtryckt" och pollar man för snabbt så ökar
förbrukningen i systemet plus att det slösas med bandbredd.