CAN FD Bus snelheid

Flexibele bus snelheid

Zoals in het artikel CAN Bus snelheid en lengte in detail is beschreven, is bij CAN de maximale bus lengte en de maximale bits snelheid omgekeerd evenredig. Deze afhankelijk komt voort uit de toegepaste bus arbitrage waarbij andere nodes een recessieve bit kunnen overrulen met een dominant bit. Dit dient immers binnen de bittijd te gebeuren en gebeuren en is afhankelijk van de signaalsnelheid door de bus (circa 5 nsec/m).

CAN-bus bus-snelheidn versus maximale bus-lengte
CAN-bus snelheid versus bus-lengte
CAN-bus bus-snelheidn versus maximale bus-lengte
CAN-bus snelheid versus bus-lengte

Het ‘zomaar’ opvoeren van de bus snelheid zou dus de maximale bus lengte onacceptabel beperken. Daarom is er in CAN FD gekozen voor een flexibele bus timing: Gedurende de arbitragefase is de bovenstaande afhankelijk van bus lengte en snelheid van belang. Daarom is in CAN FD in deze fase de maximale bus snelheid beperkt en precies gelijk aan CAN 2.0, dus maximaal 1 Mbit/sec.

Zodra binnen het CAN-bericht de databyte’s worden verzonden, is die afhankelijk niet van belang omdat de communicatie nu mono-directioneel is: van de master naar de slave(s). Hier kan de CAN FD de bus snelheid opvoeren. Met de standaard NRZ-bitcodering en de standaard ISO-11989-2 ’CAN High Speed’ physical layers kan tijdens het verzenden van de data byte’s de snelheid bij CAN FD worden opgevoerd tot zeker 8 Mbit/sec, wat door CiA (CAN in Automation) geadviseerd wordt. We noemen dat hierna, versneld zenden van data.
Nadat de data byte’s verzonden zijn, is er opnieuw sprake van een arbitragefase, hier wordt de CRC uitgewisseld en reageren de slave’s met een acknowledge. Omdat hier de communicatie weer bi-directioneel is, treedt de bekende afhankelijkheid weer op en is de snelheid opnieuw beperkt tot CAN 2.0, dus maximaal 1 Mbit/sec

De toepassing van verschillende bus snelheden is in CAN FD opgelost door de introductie van twee sets bus-timing registers. De eerste set is de standaard set, zoals ook aanwezig in CAN 2.0. De tweede set wordt enkel gebruikt tijdens het versneld verzenden van data. Als beide sets dezelfde waarden hebben, dan is er van versneld verzenden van data geen sprake.

Gemiddelde bus snelheid

Er is dus bij CAN FD sprake van meerdere bus snelheden. Er kan dan ook niet van dé bus snelheid worden gesproken, zoals bij CAN 2.0, maar over een gemiddelde bus snelheid. Dat gemiddelde hangt niet alleen af van de gekozen standaard en versnelde data bus snelheden, maar ook van het aantal databyte’s dat verzonden worden. Hoe meer data bytes er verzenden worden, des te hoger is het aandeel versnelde data bus snelheid in het totale bericht waardoor de gemiddelde bus snelheid (voor dat bericht) hoger wordt.
Het onderstaande diagram toont voor verschillende aantal data byte’s (8 t/m 64) de gemiddelde bus snelheid ten opzicht van de bus snelheid tijdens het versneld verzenden van de data.

CAN FD gemiddelde bussnelheid afhankelijk van aantal databyte's
CAN FD Gemiddelde busnelheid
CAN FD gemiddelde bussnelheid afhankelijk van aantal databyte's
CAN FD Gemiddelde busnelheid

Op deze basis is in de onderstaande table de bussnelheid en berichtduur voor een een paar standard warden uitgewerkt.

  Data Bit snelheid Bericht

 Type

byte's

Standaard

Data

Gemiddeld

duur

CAN 2.0 8 1 Mbit/s     111 µs
CAN FD 8 1 Mbit/s 4 Mbit/s 2,3 Mbit/s 50,75 µs
CAN FD 8 1 Mbit/s 8 Mbit/s 2,9 Mbit/s 39,875 µs
CAN FD 64 1 Mbit/s 4 Mbit/s 3,5 Mbit/s 163,75 µs
CAN FD 64 1 Mbit/s 8 Mbit/s 5,9 Mbit/s 96,375 µs

CAN FD reduceert dus de bus belasting significant: Als we CAN FD vergelijken met CAN 2.0, dan is voor het versturen van 64 byte’s (96,375 µs versus 8x 111 µs) de busbelasting afgenomen met een kleine 90%!

Het zal overigens duidelijk zijn dat indien een bericht geen data byte’s bevat, CAN FD geen voordeel biedt omdat er dan überhaupt geen sprake is van versneld verzenden. Om deze reden kunnen ‘Remote Request’-berichten, die ook geen data bevatten, niet als CAN FD verzonden worden maar enkel als CAN 2.0.

Hogere bus snelheden

Zoals gezegd is met standaard NRZ-bitcodering en de standaard ISO-11989-2 ’CAN High Speed’ physical layers een versnelde data verzending tot 8 Mbit/sec mogelijk. Er zijn echter speciale CAN FD physical layers ontwikkeld om snelheden tot circa 12 Mbit/sec betrouwbaar en storingsvrij te kunnen bereiken. Om compatibel te blijven zijn CAN FD controllers voorzien van controlesignalen om physical layers om te schakelen tijdens het versneld verzenden, van standaard (CAN-compatible) ISO-11989-2 naar deze snellere interfacing.