CAN-bussen förklarad: hur styrenheter, batterihanteringssystem (BMS) och displayer kommunicerar med varandra
På en modern eldriven maskin utbyter komponenterna inte bara kraft: de utbyter information. Styrsystemet vill veta batteriets status, displayen vill veta hastigheten och temperaturerna, och ett andra styrsystem vill veta inställningarna från det första. Det vanligaste sättet att göra detta kommer från bilindustrin: CAN-bussen. Denna guide förklarar hur den fungerar och hur man kopplar den korrekt.
Det viktigaste
- CAN-bussen ansluter flera enheter via ett och samma par av tvinnade kablar, som kallas CAN-hög och CAN-låg.
- Det krävs ett motstånd på 120 ohm vid vardera änden av bussningen, och endast vid ändarna.
- Varje meddelande har en identifierare som också fungerar som en prioritet: det viktigaste meddelandet visas alltid först.
- Alla enheter måste använda samma kommunikationshastighet.
En buss, inte en koppling
En vanlig seriell anslutning kopplar samman två enheter. CAN, å andra sidan, är en buss: alla enheter är anslutna till samma två ledningar, och varje enhet kan kommunicera med alla andra. För att lägga till en enhet ansluts den till bussen, utan att behöva dra en ny kabel till styrenheten. Detta är det som har gjort den populär inom bilindustrin, där tiotals styrenheter delar några få par av ledningar.
På ett lättfordon hittar man vanligtvis en eller flera styrenheter, batteriets BMS (Battery Management System), en display, en telemetrimodul eller en laddare.
Två trådar, en skillnad
CAN-bussen använder ett par kablar, "CAN high" och "CAN low". Informationen överförs inte genom spänningen i en kabel relativt jord, utan genom skillnaden mellan de två:
- I viloläge (inställning "recessiv") har båda ledarna samma spänning, ungefär hälften av kretsens matningsspänning;
- För att sända en "dominant" bit, separerar sändaren de två ledarna: den ena går upp, den andra går ner.
En elektrisk störning, som den som uppstår från en styrenhet som levererar hundratals ampere, påverkar båda ledarna på samma sätt. Deras skillnad förblir dock oförändrad. Det är detta som gör CAN-bussen så robust i en elektriskt stökig miljö, förutsatt att de två ledarna är tvinnade runt varandra.
Motstånd för avslutning
En CAN-buss måste ha ett motstånd på 120 ohm mellan CAN-hög och CAN-låg vid varje ände av den fysiska kabeln. Dessa motstånd förhindrar att signaler studsar i kabelns ände och återställer bussen till viloläge.
- Bussen är korrekt ansluten: Genom att mäta mellan CAN-hög och CAN-låg, med enheterna avstängda, får man ungefär 60 ohm (vilket motsvarar två stycken 120 ohms motstånd parallellkopplade).
- Ungefär 120 ohm: det saknas en avslutningsmotstånd.
- Ett värde som är betydligt lägre än 60 ohm: Detta indikerar att det finns för många anslutningar, vilket ofta beror på att flera enheter har sina egna anslutningar aktiverade.
En saknad eller felaktig anslutning är den vanligaste orsaken till instabil kommunikation.
Identifierare och prioritering
Varje CAN-meddelande har en identifierare, ett nummer som anger vad meddelandet handlar om (till exempel "batteriets status" eller "motorstyrning fram"). Enheterna läser alla meddelanden och behåller endast de som är relevanta för dem.
När två enheter börjar sända samtidigt, jämför de sina identifierare bit för bit, över samma kabel. En dominerande bit åsidosätter en recessiv bit: den enhet som sänder en recessiv bit och läser en dominerande bit förstår att den har förlorat och slutar sända. Den minsta identifieraren vinner alltid, utan att någon information går förlorad. Detta kallas för "arbitrering": de viktigaste meddelandena får de minsta identifierarna.
Inbyggd tillförlitlighet
- Varje meddelande innehåller en kontrollkod: om ett meddelande är skadat upptäcks det och skickas om.
- Varje mottagare bekräftar att signalen har mottagits korrekt genom att skicka en bekräftelsebit.
- En enhet som uppvisar ett stort antal fel kommer automatiskt att stängas av för att undvika att blockera hela systemet.
Hastigheten på busslinjen
Alla enheter i en buss måste använda samma hastighet. De vanligaste värdena är 250 och 500 kilobit per sekund, ibland 1 megabit. Ju snabbare bussen är, desto kortare är dess maximala längd. Men i ett lätt fordon, med en längd på högst några meter, är längden sällan en begränsning. En nyare version, CAN FD, kan överföra mer data per meddelande vid högre hastighet.
Exempel: två styrenheter anslutna
På en elscooter med dubbla motorer fungerar två styrenheter, som är anslutna via CAN-bussen, som en enda enhet: den som tar emot gaspådraget skickar informationen till den andra, och en enda programvara för inställningar ser båda. Detta gäller för VESC-styrenheterna, som presenteras i vår guide VESC förklarat på ett enkelt sätt.
Tips för verkstaden.
Se till att alltid ansluta CAN-hög och CAN-låg tillsammans, håll dem borta från strömkablarna, och kontrollera resistansen på 60 ohm med en multimeter innan du slår på strömmen för första gången. Fem minuters kontroll kan spara timmar av felsökning för intermittenta kommunikationsproblem.
Vanliga frågor
Transporterar CAN-bussen ström för att driva enheter?
Nej, CAN-gränssnittet transporterar endast information. Enheterna har sin egen strömförsörjning, som ibland tillhandahålls av andra ledare i samma kabel.
Varför fungerar min CAN-kommunikation intermittent?
De vanligaste orsakerna är en avsaknad eller överflödig anslutning, oledad kabel som ligger nära strömkablar, en sliten kontakt, eller två enheter som inte har samma bussfrekvens.
Kan man ansluta vilken som helst CAN-enhet till varandra?
Elektriskt sett, ja, om de delar samma buss-hastighet. Men för att de ska kunna kommunicera måste de använda samma "språk": samma identifierare och samma innehåll i meddelandena. Två olika märken förstår inte varandra utan anpassning.