Fimo skrev:...jag funderar på hur det fungerar och vilka olika alternativ det finns, och då är det väl mest dom lättaste som inte involverar massa programering och annat.
Det där med att det inte ska involvera en massa programmering rimmar inte med rubriken "CANBUS / MODBUS"...
Vill du involvera processorer över huvud taget? Eller hellre "enbart logikkretsar"?
Enklast (om du skippar processor helt) är antagligen en ganska långsam oscillator i ena änden om alstrar en klocka (Den kan sitta på antingen sändar eller mottagarsidan - har ingen betydelse). Till den ansluter du en rad med shiftregister (Se bearing's förslag) med parallell ingång och seriell utgång. Sedan skickas klocka och data iväg (två trådar plus jord). Men nu ska shiftregistren synkas. Det kan bli knepigt. Ett alternativ är att man har en räknare som pausar klockan efter 32 bitar - (och låter klockan vara stoppad under 32 bitars tid), sedan upprepas proceduren igen : sänd 32 bitar, paus 32 bitar. (då använder man fyra shiftregister och får 32 utgångar).
Då kan mottagarenheten synka vid pausen genom att de mottagande shiftregistrens latchar aktiveras efter en viss fördröjning (när klockan varit inaktiv en viss tid). Detta löses med ett RC-filter. Sändaren latchar även sina shiftregister på samma sätt (direkt från räknarens utgång).
Detta fungerar (vid låga frekvenser) förvånansvärt bra. Man kan för säkerhets skull sätta ett lågpassfilter på klockan på mottagarsidan, så att ev. störningar (som kan uppfattas som en extra puls) filtreras bort. Man ansluter även en schmitt-trigger grind efter RC-filtret som snyggar till signalen ytterligare. (Schmitt-trigger rekommenderas starkt vid långsamma flanker!).
Jag har gjort en liknande sak med tryckknappar anslutet till shiftregistret
74HC165 (men har en processor i andra änden som genererar klockan och avläser data, samtdidigt som den skickar ut textinformation åt andra hållet) men då har jag en separat tråd för "latch" input.
(Googla på 74hc165 så bör du få fram en del likannde projekt...)