CAN FD Overzicht
CAN FD - dat staat voor CAN met Flexibele Data-rate - is een nieuwe CAN protocolvariant voor in toepassingen die een hogere data-rate vereisen. Die hogere data-rate wordt bereikt door ten eerste een hogere bussnelheid, maar enkel tijdens data-fase, die tot 12x zo snel is als CAN Classic. Daarnaast door het verzenden van veel meer data byte's, tot maximaal 64 bytes in één bericht, 8x zoveel als een CAN Classic.
De begin- en eindfases zijn arbitragefases omdat hierin arbitrair de waarde van bits bepaald wordt, zoals in CAN Classic wordt toegepast. Dit geldt bijvoorbeeld voor de Identifier, het RTR-bit en aan het einde de Acknowldge. Omdat andere CAN-nodes binnen de bit-tijd moeten reageren kan de snelheid hier niet omhoog.
CAN FD versus CAN
CAN FD protocol controllers zijn 100% compatibel met CAN Classic - 2.0 (A/B) - en zijn dus ook in staat om deel te nemen in de standaard CAN Classic communicatie. Dat biedt de mogelijkheid om CAN-nodes geleidelijk te migreren van CAN Classic naar CAN FD. Beide varianten kunnen echter niet zomaar door elkaar gebruikt worden, zie het stukje over Mixed Mode hieronder.
CAN FD ondersteunt, net als CAN Classic, de standaard 11-bit en extended 29-bit identifiers.
CAN FD maakt gebruik van het (eerste) gereserveerd bit in een CAN frame. In een CAN Classic frame wordt dit gereserveerde bit 'dominant' (=0) verstuurd. In een CAN FD frame, is dit bit echter 'recessief’ (=1) ten teken dat dit frame in het CAN FD formaat wordt verzonden. Een CAN FD controller is in staat om beide formaten te decoderen.
CAN FD verschillen
Er zijn twee belangrijke verschillen tussen CAN FD en CAN Classic frames.
- Als eerste bieden CAN FD frames de mogelijkheid om meer dan 8 data bytes te communiceren;
- Daarnaast beschikken CAN FD frames over de optie om over te schakelen naar een andere, en veel hogere, bit-rate tijdens de data-fase dus nadat de arbitragefase in het CAN frame afgerond is.
CAN FD vereist hiertoe twee sets van bit timing configuratie registers, de eerste set voor de bit timing gedurende de arbitragefase en de tweede set voor de bit timing voor de datafase daarna. De timing voor de bit arbitragefase heeft dezelfde beperkingen als in CAN Classic, de bit timing voor de data fase wordt gekozen met betrekking tot de eigenschappen van de gekozen transceiver en binnen de mogelijkheden van CAN FD. De bit timing van beiden sets kan natuurlijk ook identiek zijn.
Deze dubbele snelheid heeft een achtergrond. In de arbitragefase van een CAN-bericht, zowel aan het begin als aan het einde, dienen andere nodes binnen een bit-tijd, te reageren. Door de vertraging in de physical layer en de buslengte, kan de snelheid onder standaard condities niet verhoogd worden.
Standaard CAN transceivers - CAN High Speed genaamd - kunnen ook voor CAN FD gebruikt worden. De speciale CAN FD transceivers, voor hogere snelheden, zijn optioneel. Deze worden CAN SIC - een afkorting voor Signal Improvement Capability - genoemd. CAN FD protocol controllers kunnen zijn voorzien van extra interface signalen om te schakelen - in de fase met een hogere bit-rate - naar CAN SIC transceiver. Dergelijke tranceivers kunnen gebruik maken van een alternatieve signaal codering, in de fase met hogere bit-rate, en zijn niet beperkt tot de standaard CAN's NRZ codering.
De kosten van CAN FD, in volume, valt niet hoger uit dan dat van CAN Classic.
CAN FD en CAN Classic in Mixed Mode
Al eerder is al even het gebruik van CAN FD èn CAN Classic aangehaald. In een dergelijke mixed omgeving worden naast CAN FD-controllers, ook CAN Classic-controllers gebruikt. CAN FD controllers ondersteunen ook CAN Classic frames. Echter originele CAN Classic controllers - origineel CAN 2.0 - , kunnen niet overweg met een bus waar ook CAN FD frames over verzonden worden. Zodra het eerste CAN FD-bit in een CAN-bericht voorbij komt, zal zo'n CAN Classic controller dit als een fout zien en een error versturen.
Nieuwe CAN Classic zijn CAN FD Tolerant. Ze kunnen zelf geen CAN FD berichten ontvangen of verzenden, maar accepteren wel dat er CAN FD berichten over de bus voorbij komen. Een CAN netwerk kan dus de hogere data-rate alleen behalen indien alle nodes voorzien zijn van het CAN FD protocol of CAN FD Tolerant zijn.
Door de software van CAN Classic nodes aan te passen is via een omweg, en met beperkingen, CAN FD wel mogelijk. Voordat een CAN FD bericht verzonden wordt, wordt door software in CAN Classic nodes de controller in Tx-passief of stand-by modus gebracht. Zodoende kan deze geen error op de bus plaatsen en wordt het CAN FD-verkeer niet gehinderd.
Het mag duidelijk zijn dat een dergelijke omschakeling niet continue en on the fly gemaakt kan worden. CAN FD is het hierdoor enkel mogelijk in specifieke bedrijfsmodi te gebruiken, zoals software-download bij end-of-line programmering of bij onderhoud, terwijl de overige (CAN Classic-)controllers die geen ondersteuning bieden voor CAN FD in stand-by gehouden worden. Zodoende kan het voordeel van CAN FD toch (al) gedeeltelijk benut worden.
Voorwaarts compatibel
Het grote probleem met CAN Classic is dus dat het geen voorziening heeft om toekomstige CAN-protocollen toe te staan. Als een CAN Classic node een protocol niet (helemaal) herkent, zal het een fout generen dat daardoor het gebruik van nieuwe protocollen blokkeert.
In CAN FD is dit opgelost door de implementatie van een Protocol Exception State. Deze toestand wordt geactiveerd wanneer een nieuw CAN-protocol de CAN FD-node in de Protocol Exception State zet. In dat geval zal de CAN-FD node dit onbekende bericht negeren, maar zal het zeker geen foutbericht versturen. Het zal weer deelnemen aan het CAN-verkeer bij het volgende frame.
CAN XL maakt hiervan gebruik. Zodoende kunnen de nieuwe CAN XL berichten over een gemixt CAN FD / CAN XL netwerk verzenden, zonder dat CAN FD nodes hiervoor aangepast zijn.









