CAN ( Controller Area Network - ett nätverk av styrenheter) är en industriell nätverksstandard som främst fokuserar på att kombinera olika ställdon och sensorer till ett enda nätverk. Sändningsläge - seriell, broadcast, paket.
CAN utvecklades av Robert Bosch GmbH i mitten av 1980-talet och används nu flitigt inom industriell automation, hemautomationsteknik (smart hem) , bilindustrin och många andra områden. Standarden för automotive automation.
Bosch CAN- standarden definierar direkt överföringen isolerat från det fysiska lagret - det kan vara vad som helst, till exempel en radiokanal eller fiberoptik . Men i praktiken innebär ett CAN-nätverk vanligtvis ett busstopologinätverk med ett fysiskt lager i form av ett differentiellt par , definierat i ISO 11898-standarden . Sändningen utförs av ramar som tas emot av alla noder i nätverket. För att komma åt bussen tillverkas specialiserade chips - CAN-bussförare .
CAN är en synkron buss med accesstyp Collision Resolving ( CR , kollisionsupplösning), som till skillnad från Collision Detect ( CD , collision detection) nätverk ( Ethernet ), deterministiskt (prioritet) ger tillgång till meddelandeöverföring, vilket är särskilt värdefullt för industriella nätverksstyrning (fältbuss). Överföringen sker i ramar . Nyttolasten i en ram består av en identifierare på 11 bitar (standardformat) eller 29 bitar (utökat format, en superset av den föregående) och ett datafält på 0 till 8 byte långt. Identifieraren berättar om innehållet i paketet och används för att bestämma prioriteten när man försöker sända samtidigt av flera nätverksnoder.
För att abstrahera från överföringsmediet undviker CAN-specifikationen att beskriva databitar som "0" och "1". Istället används termerna "recessiv" bit och "dominant" bit, vilket innebär att om en nätverksnod sänder en recessiv bit och en annan sänder en dominant bit, kommer den dominanta biten att tas emot. Till exempel, när man implementerar ett fysiskt lager på en radiokanal, betyder frånvaron av en signal en recessiv bit, och närvaron betyder en dominant; medan i en typisk implementering av ett trådbundet nätverk uppträder en recessiv i närvaro av en signal respektive en dominant i frånvaro. Nätverksstandarden kräver i själva verket bara ett villkor från det "fysiska lagret": att den dominanta biten kan undertrycka den recessiva, men inte vice versa. Till exempel, i en optisk fiber ska den dominerande biten motsvara "ljus" och den recessiva biten ska motsvara "mörker". I en elektrisk ledning kan det vara så här: recessivt tillstånd - hög spänning på linjen (från en källa med hög intern resistans ), dominant - låg spänning (den dominerande nätverksnoden "drar" linjen till marken). Om ledningen är i ett recessivt tillstånd kan vilken nätverksnod som helst överföra den till det dominerande tillståndet (genom att tända ljuset i fibern eller genom att kortsluta högspänningen). Tvärtom, det är omöjligt (det är omöjligt att slå på mörkret).
Data- och förfrågningsramar separeras från tidigare ramar med ett mellanrumsgap .
Fält | Längd (i bitar) | Beskrivning |
---|---|---|
Start av bildruta (SOF) | ett | Signalerar början av ramsändning |
Identifierare | elva | Unik identifierare |
Request to Transfer (RTR) | ett | Måste vara dominant |
Identifier extension (IDE) bit | ett | Måste vara dominant (definierar längden på identifieraren) |
Reserverad bit (r0) | ett | Boka |
Datalängd (DLC) | fyra | Datafältslängd i byte (0-8) |
Data fält | 0-8 byte | Överförd data (längd i DLC-fält) |
Checksumma (CRC) | femton | Kontrollsumma för hela ramen |
Kontrollsummaavgränsare | ett | Måste vara recessiv |
Kvittensintervall (ACK) | ett | Sändaren sänder recessivt, mottagarens insatser dominant |
Bekräftelseavgränsare | ett | Måste vara recessiv |
End of Frame (EOF) | 7 | Måste vara recessiv |
De första 7 bitarna av en identifierare behöver inte alla vara recessiva.
Utökat dataramformatFält | Längd (i bitar) | Beskrivning |
---|---|---|
Start av bildruta (SOF) | ett | Signalerar början av ramsändning |
Identifierare A | elva | Första delen av identifieraren |
Begäran att skicka (SRR) spoofing | ett | Måste vara recessiv |
Identifier extension (IDE) bit | ett | Måste vara recessiv (definierar ID-längden) |
Identifierare B | arton | Den andra delen av identifieraren |
Request to Transfer (RTR) | ett | Måste vara dominant |
Reserverade bitar (r1 och r0) | 2 | Boka |
Datalängd (DLC) | fyra | Datafältslängd i byte (0-8) |
Data fält | 0-8 byte | Överförd data (längd i DLC-fält) |
Checksumma (CRC) | femton | Kontrollsumma för hela ramen |
Kontrollsummaavgränsare | ett | Måste vara recessiv |
Kvittensintervall (ACK) | ett | Sändaren sänder recessivt, mottagarens insatser dominant |
Bekräftelseavgränsare | ett | Måste vara recessiv |
End of Frame (EOF) | 7 | Måste vara recessiv |
Identifieraren erhålls genom att kombinera delarna A och B.
Fjärrbegäran ramformatSamma som dataramar i standardformat eller utökat format, med två undantag:
Med en ledig buss kan vilken nod som helst börja sända när som helst. I fallet med samtidig överföring av ramar av två eller flera noder, sker åtkomstarbitrering : genom att sända identifieraren kontrollerar noden samtidigt bussens tillstånd. Om en dominant bit tas emot under sändningen av en recessiv bit, anses det att en annan nod sänder ett meddelande med högre prioritet, och överföringen skjuts upp tills bussen är ledig. Således, till skillnad från till exempel Ethernet , sker det i CAN ingen overheadförlust av kanalbandbredd under kollisioner. Kostnaden för denna lösning är möjligheten att meddelanden med låg prioritet aldrig kommer att sändas.
CAN har flera felkontroll- och förebyggande mekanismer:
Utvecklarna uppskattar sannolikheten för att inte upptäcka ett överföringsfel till 4,7×10 −11 .
Alla noder i nätverket måste arbeta med samma hastighet. CAN-standarden anger inga driftshastigheter, men de flesta adaptrar, både separata och inbyggda i mikrokontroller, låter dig smidigt ändra hastigheten i intervallet minst 20 kilobit per sekund till 1 megabit per sekund. Det finns lösningar som går långt utanför detta intervall.
NätverkslängdgränsOvanstående felkontrollmetoder kräver att en bitändring under överföringen hinner spridas genom nätverket när värdet mäts. Detta gör nätets maximala längd omvänt relaterad till överföringshastigheten: ju högre hastighet, desto kortare längd. Till exempel, för ett ISO 11898 -nätverk är längdgränserna ungefär:
1 Mbps | 40 m |
500 kbps | 100 m |
125 kbps | 500 m |
10 kbps | 5000 m |
Användningen av optokopplare för att skydda enheter från högspänningsstörningar i nätverket minskar den maximala längden ytterligare, ju mer desto större är signalfördröjningen i optokopplaren. Mycket förgrenade nätverk (banor) minskar också hastigheten på grund av många signalreflektioner och högre elektrisk kapacitans hos bussen.
Den grundläggande CAN-specifikationen saknar många funktioner som krävs i verkliga system: dataöverföring längre än 8 byte, automatisk distribution av identifierare mellan noder, enhetlig kontroll av enheter av olika typer och tillverkare. Därför, strax efter att CAN dök upp på marknaden, började högnivåprotokoll för det att utvecklas. De protokoll som för närvarande används inkluderar:
I alla högteknologiska system i en modern bil används CAN-protokollet för att ansluta ECU :n med ytterligare enheter och styrenheter för ställdon och olika säkerhetssystem. I vissa fordon länkar CAN IMMO , instrumentpaneler, SRS - enheter, etc.
Dessutom blev CAN ISO 15765-4-protokollet en del av OBD-II- standarden .
Industriella nätverk | |
---|---|
Styrsystem bussar | |
Distribuerad kringutrustning | |
Drivteknik |
|
Fältenheter |
|
Byggnadsautomation |
Mikrokontroller | ||||||||
---|---|---|---|---|---|---|---|---|
Arkitektur |
| |||||||
Tillverkare |
| |||||||
Komponenter | ||||||||
Periferi |
| |||||||
Gränssnitt | ||||||||
OS | ||||||||
Programmering |
|