1.56k likes | 3.25k Views
CAN Bus and its Applications in Vehicles. J. Novák Czech Technical University in Prague Faculty of Electrical Engineering Dept. Of Measurement. Distributed Systems in Vehicles. CAN LIN MOST Byteflight D2B K-line … FlexRay.
E N D
CAN Bus and its Applications in Vehicles J. Novák Czech Technical University in Prague Faculty of Electrical Engineering Dept. Of Measurement
Distributed Systems in Vehicles • CAN • LIN • MOST • Byteflight • D2B • K-line • … • FlexRay
Application Areas of Distributed Systems in Vehicles – Power Train • Communicating units • engine, brake, gear, ABS/ESP • steering wheel position, steering booster • light control, damper … • High-speed and reliability are required • running only when the ignition is on • in future the technologies for X by wire will be applied • Today standards • CAN (high-speed) • Byteflight • Future: the FlexRay standard
Application Areas of Distributed Systems in Vehicles – Comfort Functions • Communicating units • seat position control, mirrors control, windows control • air condition, vehicle top, • tires pressure control, parking assistant • wiper control, door control … • Lower-speed is enough • Low-power mode is required • units wake-up by data transmission • running also when ignition is off • Today standards • CAN (low-speed) • LIN
Application Areas of Distributed Systems in Vehicles – Infotainment and Telematics • Communicating units • sound system, CD player, changer, tuner • TV set, mobile phone, navigation • inter-vehicle communication, traffic info reception … • Different communication speeds • low speed for control transfers • high speed for user data transfers (audio, video) • Low power mode required • unit wake-up by data communication • running if ignition is off • Today standards • CAN (low-speed) • MOST
Application Areas of Distributed Systems in Vehicles – Diagnostics • Communicating units • all (use their native interface) … • Different interfaces • today often so called K-line with diagnostics protocols • gateway unit often translates diagnostics protocols of particular ECUs • in future the wireless diagnostics is expected • using bluetooth ??? … • security is the issue
CAN and ISO-OSI Model • Physical layer • transmission line parameters, signaling levels, transmission speed, … • Link Layer = CAN • medium access control • frame coding and decoding • addressing • data security • error states behavior
CAN and ISO-OSI Model • Application layer • defines the data content of link layers frames • defines when (under which conditions) the frames are transmitted • in automotive industry there are only company standards • standards do exist for diagnostics • Application protocols are defined e.g. in industrial automation field (CANopen) • effort to use them in vehicles too
CAN and ISO-OSI Model • Inter-layer communication • each protocol layer adds some information that allows the layer protocols to provide the required service for the layer above
CAN – Physical Layer Requirements • The basic requirement for the physical layer is to provide so called wired OR functionality • Two basic signaling levels • recessive • dominant • available e.g. in fiber optics
CAN – Link Layer, MAC and LLC • MAC – Medium Access Control • provides the physical channel access for the units, prevents destructive collisions • provides priority transmission • implements the channel coding • provides the data security by means of CRC check • solves high error rate problem for particular nodes in network • provides mechanism for acknowledgement of correctly received frames • LLC – Logical Link Control • allows filtering of received frames • solves the overload condition
CAN – Communication Principle • All nodes within the systems are equal (from the communication point of view) – peer to peer • Frames, (sometimes called messages) are broadcasted into the network and received by all nodes simultaneously • There is no node oriented addressing • frame always starts with identifier, which must provide a unique frame content identification • In case the frame is received correctly by receiving nodes, the acknowledge is sent to the transmitting node • In case there is an error detected during the transmission, the error identification sequence is sent and frame has to be transmitted again
CAN – Medium Access Control • Any node can start transmitting only if the bus idle state is detected • In case that more than one node start transmitting simultaneously • there is no physical contention on the bus, as the dominant bit transmission „beats“ the recessive one • Each node receives back the transmitted bit value • if a node transmitting the recessive bit value receives back the dominant bus state, it stops transmitting immediately • This method is called CSMA/CR • Carrier Sense Multiple Access with Collision Resolution • sometimes it is also less correctly called CSMA/CA (…Collision Avoidance)
CAN – Medium Access Control • 3 nodes start transmitting simultaneously • Start of Frame (SOF) bit is always dominant • 11 bits of identifier follow • identifier must be unique within the system
CAN – Frame Identifier • Identifies the frame content • It is not the sender nor the receiver address • usually one node transmits frames with different identifiers • each node receives frames with identifiers it is interested in • Identifier must be unique within the system • two different nodes are not allowed to transmit frame with the same identifier (because of arbitration) • In case the information source redundancy is required, identifiers usually differ in low significant bit • Identifier is transmitted from the most significant bit • log. 0 is transmitted as a dominant state, log. 1 as a recessive • the lower identifier value, the higher frame priority
CAN – Frame Format • Current standard version is CAN 2.0 • Bosch, 1990 • it defines only the link layer protocol • there are two parts (variants) A and B • CAN2.0A is backward compatible with older CAN versions, it uses 11-bit identifier • CAN2.0B defines two data frame types – standard and extended • standard frame offers 11-bit identifier • extended frame offers 29-bit identifier • Accepted as ISO11898-1 standard • next standard parts define the physical layer protocols too
CAN – Frame Format • 4 frame types are defined • data frame • used for data transfer • variable length (0 – 8 data bytes) • remote request frame • used to request the data frame with the same identifier • it contains no data • error frame • consists of six consequent dominant or recessive bits • it is transmitted to indicate the error • overload frame • the same format like the error frame • nodes transmit it to delay the next data frame transmission
CAN 2.0A – Data Frame Format • bus idle – recessive state • SOF – start of frame • arbitration field (identifier + RTR bit) • control field (dedicated bits + data length) • Both dedicated bits have a dominant value • data (0 – 8 bytes) • CRC (15-bit CRC, 1 recessive bit as a delimiter) • acknowledge (1 bit acknowledge, 1 bit delimiter) • end of frame (7 recessive bits) • inter-frame space (3 recessive bits)
CAN 2.0B – Standard Data Frame Format • In fact the same like CAN 2.0A frame format • Only the formal difference • bit r1 name changed to IDE (identifier extended) • The IDE bit is always dominant in a standard data frame
CAN 2.0B – Extended Data Frame Format • Allows higher number of frames in particular system • RTR bit is replaced by SRR bit (substitute remote request) • always recessive • IDE bit is always recessive • standard frame with the same first 11 bits of identifier has higher priority • Following 18 identifier bits are used for arbitration among extended frames only • CAN controllers provide either active or passive compatibility with CAN2.0B
CAN 2.0A – RTR Frame Format • RTR bit is always recessive • RTR frame identifier is the same like the data frame identifier which transmission is requested • RTR frame has lower priority than the data frame with the same identifier • do you know WHY ??? • Data length is always 0 • Similarly it exists an extended RTR frame format according to the CAN 2.0B
CAN – Error Frame Format • Error frame consists of six dominant or recessive bits • it depends on error state of the node which transmits it • It is transmitted by the node (-s) that detect (-s) any communication error • it result in an immediate transmission stop and its later repetition • this is all controlled by the controller (implemented in silicon), not by application software
CAN – Overload Frame Format • Overload frame consists of six dominant bits • Its transmission is requested by the receiver in order to • delay the transmission of a next data frame • indicate a detection of a dominant value in a last bit of the end of frame field or in first two bits of inter-frame space • Its occurrence does not mean an error • previous frame is not retransmitted • Today controllers do not use it to delay the next transmission – they are fast enough
CAN – Error Detection Several simultaneously used mechanisms: • Monitoring • transmitter receives back the bus state and if it detects a different value, its behavior is: • in case it detects a dominant bus state within the arbitration field while transmitting the recessive one, it stops transmitting • in case it detects a recessive bus state within the arbitration field while transmitting the dominant one, or if it detects anywhere else (excluding the ACK bit) opposite bus state than that one it is currently transmitting, it sends the error frame • CRC (Cyclic Redundancy Check) • in case the locally evaluated CRC is different from the received one, the error frame is transmitted
CAN – Error Detection • Bit stuffing • transmitter transmits particular bits using NRZ (not return to zero) coding • if there is a sequence of 5 consecutive bits of the same level, one bit of the opposite level is inserted • during the reception an inverse process takes place, it means after five received bits of the same level the next bit must be of the opposite level (check) and it is known it is an inserted bit – it is thus removed
CAN – Bit Stuffing • Error frame transmission violates bit stuffing rule • all nodes thus detect the error • it is thus ensured that the frame is received either by all nodes or by no node • data consistency
CAN – Error Detection • Frame format check • some bits have predefined level • CRC or ACK delimiters are always recessive • end of frame field is whole recessive • if there is a dominant bit detected, an error frame is sent • data length field can contain value higher than 8 • length of 8 is expected • error frame is not sent • Frame receive acknowledge • by the dominant level in the ACK bit • if there is no acknowledge, transmitting node sends an error frame • data frame transmission is repeated
CAN – Node Error States • One node encountering communication problems could block complete communication within the system • it detects an error in each received frame and transmits an error frame • it is necessary to limit this possibility • There are two so called error counters in each CAN controller (and thus in each network node) • one for errors during transmission, one during reception • at the beginning they are reset • if there is an error during transmission, transmission error counter value is increased, the same is tru for reception • If the transmission or reception have passed without error, the respective value is decremented (up to zero) • According to the error counters values particular node is in one of three error states
CAN – Node Error States • Error active • value of each of both error counters has to be lower than 128 • in case the error is detected during the frame transmission or reception, an active error flag (6 consecutive dominant bits) is generated • it breaks communication and all other nodes within the system detect error as well • the number the respective error counter is increased (0, 1 or 8) depends on the error context, it means the situation and conditions of error detection • if any of error counters reaches the value higher than 127, the respective node goes into the error passive state
CAN – Node Error States • Error passive • the value of at least one error counter is higher than 127 • if the node detects communication error, it generates a passive error flag (6 consecutive recessive bits) • if the error passive node is the only one who detects error (probably incorrectly), the communication is not broken and can be finished and acknowledged by other nodes • in case of successful reception the respective counter is either decremented (if its value was lower than 128) or set between 119 and 127 (if its value was higher 127) • if the values of both counters fall under 128, the node goes back to error active state • if the value of transmission error counter gets over 255, the controller enters bus-off state
CAN – Node Error States • Bus-off state • transmission error counter value is higher than 255 • reception error counter value has no influence on entering into the bus-off state • bus-off node is completely disconnected from the network (logical not physical disconnect) • it is not possible to transmit frames nor to influence the bus communication by any way (no ACK, error frame..) • reception is possible (depends on implementation) • from the point of view of other nodes the bus-off node disappears from the network (like switched off) • to leave the bus-off state only the controller hardware or software reset is available • then after the detection of 128 recessive 11-bit sequences the controller enters an error active state • incorrect software implementation can make global problems in communication
CAN – Error States Servicing CAN controller Status register usually contains: • Error warning flag • set if any error counter reaches some limit • usually 96 • sometimes this limit can be preset • controller can generate an interrupt service request • application software (node firmware) may or may not service this event • Error passive flag • set by entering the error passive state • interrupt service request possible • Application software should také into account possible data inconsistency within the local node and the rest of a network • Bus-off flag • controller reinitialization is necessary
CAN – Persisting communication problems • It always depends on the error type, direction of communication (reception, transmission) where it takes place as well as the physical layer protocol version • e.g. tolerance to some shorts • Fatal errors (e.g. Short connection of both CAN lines to ground) always finishes in bus-off state • only in case the node tries to transmits • The node which is alone in the network (or disconnected by cable interrupt), enters after 16 unacknowledged frame transmissions into an error passive state • If the software service of error states is not correctly implemented, serious communication problems may occur • Under the standard conditions all nodes within the system are in the error active state and there are no error frames generated
CAN – Physical Layer Standards • CAN standard (Bosch) defines the link layer protocol only • It is also standardized by ISO as ISO11898-1 • Physical layers are defined in standards ISO11898-2 • high-speed CAN • up to 1 Mbit/s • and ISO11898-3 • low-speed CAN • up to 125 kbit/s • particular fault tolerance • Both these physical standards are widely used in today vehicles • For trucks there are othe standards available with higher degree of immunity • They are all defined as SAE standards too
CAN – ISO11898-2 Physical Layer • Bus structure with terminators • Line impedance of 120 ohm • Communication speed up to 1 Mbit/s • Differential signaling (logical level defined by voltage difference) • CAN_H and CAN_L lines
CAN – ISO11898-2 Physical Layer • The recessive level is provided by terminators and „wake“ voltage sources in transceivers • CAN_H – CAN_L difference is near 0 • The dominant state is driven by the transceiver • CAN_H – CAN_L difference is about 2 volts
CAN – ISO11898-2 Physical Layer • The transceiver contains the temperature, short circuit and ESD protection • Low load in power off state • Some offer low power states
CAN – ISO11898-3 Physical Layer • Bus structure • Sleep mode with remote wake-up by CAN communication • Communication speed up to 125 kbit/s • Differential signaling
CAN – ISO11898-3 Physical Layer • Particular fault tolerance, transceiver enters so called single wire mode • CAN_H or CAN_L wire broken • short connection of CAN_H or CAN_L to ground • short connection of CAN_H or CAN_L to +5V • short connection of CAN_H or CAN_L to +12V • short connection of CAN_H to CAN_L • Single wire mode is indicated by the transceiver output • after the fault is removed transceiver automatically enters standard two wire mode
CAN – ISO11898-3 Physical Layer • RTH and RTL resistors provide termination • their values depend on number of nodes in system • Transceiver supports node wake-up when the CAN activity is examined, or by he local signal • Sleep mode is controlled by the local microprocessor • if the whole bus is in sleep (low power) mode, CAN_H voltage is near 0 and CAN_L voltage is near the battery one
CAN – Immunity to External Disturbances • Information is transferred by the voltage difference • if both wires are close the induced disturbance is the same, difference stays the same • the absolute value of the induced disturbance can be further decrease with utilization of twisted pair wire
CAN – Transmission Timing • všechny uzly v síti musí mít nastavenu shodnou nominální přenosovou rychlost • skutečné rychlosti se mírně liší (tolerance oscilátorů) • vzhledem k faktu, že v průběhu arbitráže může vysílat více uzlů najednou, že arbitráž probíhá bit po bitu a že šíření informace z jednoho uzlu do druhého je zatíženo zpožděním (budič – vedení – přijímač), je třeba: • kompenzace statických zpoždění • průběžné synchronizace • kvůli odchylkám oscilátorů
CAN – časování komunikace • příklad „současného“ vysílání dvou uzlů • maximální zpoždění, s nímž je nutno počítat, je dáno dvojnásobkem zpoždění řetězce budič, vedení, přijímač
CAN – časování komunikace • konstrukce délky bitu • programovatelná dělička generuje signál s délkou označovanou jako časové kvantum • z celistvého počtu časových kvant je poté složen bitový interval
CAN – časování komunikace • bitový interval se skládá z 8 až 25 časových kvant, která jsou rozdělena do 4 segmentů • synchronizační segment je dlouhý 1 časové kvantum • „propagation“ segment slouží ke kompenzaci zpoždění mezi uzly • „phase buffer“ segmenty 1 a 2 určují bod, kde řadič vzorkuje, zda je na sběrnici recesivní či dominantní úroveň
CAN – časování komunikace • na začátku rámce dochází k tzv. tvrdé synchronizaci (hard synchronization) • sběrnice je vzorkována s periodou časového kvanta • je-li detekován přechod z recesivní do dominantní úrovně, pak je dané časové kvantum považováno za synchronizační segment • v průběhu vysílání rámce dochází k resynchronizaci • délka „phase buffer“ segmentů je měněna podle detekovaných hran tak, aby hrany vždy spadaly do synchronizačního segmentu jednotlivých bitů • využívá se pouze přechodů z recesivní do dominantní úrovně • velikost synchronizačního skoku je omezena • časový rozdíl mezi očekávaným a skutečným výskytem hrany se nazývá fázovou chybou • dvě varianty resynchronizace podle znaménka fáz. chyby
CAN – časování komunikace • při kladné fázové chybě je „phase buffer 1“ segment prodloužen ak, aby byl bod vzorkování správně zpožděn za příchozí hranou signálu • dojde vlastně k „dočasnému zpomalení“ taktu
CAN – časování komunikace • při záporné fázové chybě je „phase buffer 2“ segment zkrácen tak, aby byl příslušná hrana signálu ležela v synchronizačním segmentu následujícího bitu • dojde vlastně k „dočasnému zrychlení“ taktu
CAN – časování komunikace • z doposud uvedeného vyplývá, že maximální délka sběrnice závisí na přenosové rychlosti • musí být kompenzováno zpoždění
CAN – měření parametrů • fyzické vrstvy • úrovně signálů • osciloskop • rychlosti hran • osciloskop • hodnoty terminátorů • multimetr, osciloskop • přenosová rychlost • osciloskop • pozice vzorkovacího bodu v bitu • vyžaduje specielní přístrojové vybavení • není třeba, pokud je k dispozici zdrojový kód firmware jednotky