* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Automotive CAN Engli..
Survey
Document related concepts
Transcript
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 data layer L1 P1 layer L2 P2 layer L3 P3 data data data P1 layer L1 P2 layer L2 P3 layer L3 CAN – Physical Layer Requirements The basic requirement for the physical layer is to provide so called wired OR functionality Vcc Vcc Bus 1 2 Two basic signaling levels recessive dominant available e.g. in fiber optics 3 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 Arbitration field S O F Length: 1 frame identifier 11 Control field R R R data T1 R 0 length 1 1 1 4 Data field Acknowledge CRC 0 - 8 data bytes 0 - 64 CRC E A A end of inter-frame CC space 15 bits R C K D frame 15 1 1 1 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) 7 3 CAN 2.0B – Standard Data Frame Format Bus idle Arbitration field S O F frame identifier 11 bits Control field Data field R I R data T D 0 length RE 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 Bus idle Arbitration field S O F frame identifier 11 bits S I RD RE frame identifier 18 bits Control field Data field R data T RR R 1 0 length 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 Bus idle Arbitration field S O F Length: 1 frame identifier 11 Control field R R R data T1 R 0 length 1 1 1 4 Acknowledge field CRC CRC E A A end of inter-frame CC space 15 bits R C K D frame 15 1 1 1 7 3 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 Data frame or error delimiter or overload delimiter Superpozition of error flags Inter-frame space or overload frame Error flag Error delimiter 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 Data frame or error delimiter or overload delimiter Overload flag Inter-frame space or overload frame Overload Superpozition of overload flags frame delimiter 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 Node 1-Tr. Node 1-Rec. Node 2-Tr. Node 2-Rec. 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 Sample point Bit interval Sync. segment Propagation segment Phase segment 1 Phase segment 2 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 CAN – měření parametrů spojové vrstvy – lze spoléhat na správnost implementace v řadiči – důležité jsou správné reakce firmware na výskyt chybových stavů – při bus-off stavu nelze jednoduše zinicializovat řadič a spoléhat na to, že se jednalo o náhodu • obvykle stačí osciloskop • na definované vynucení bus-off stavu je třeba specielní přístroj CAN – měření parametrů aplikační vrstvy – vysílání rámců se správnou periodou a obsahem za všech okolností – důležité jsou správné reakce firmware na výskyt chybových stavů • zápisy do chybových pamětí – testování jednotky od vstupů k výstupům (hardware in the loop) • CAN fyzický výstup • fyzický vstup CAN – aplikační testy závisí na typu jednotky, aplikačních protokolech apod. • automobilky obvykle přesně definují požadavky testů a testovací procedury – dle povahy aplikačních testů je obvykle nezbytný analyzátor a generátor rámců v sestavě s osciloskopem, případně CAN – aktivní a pasivní monitoring pro většinu aplikačních měření na CANu postačí monitoring komunikace v síti – aktivní monitoring spočívá v plném začlenění monitorovacího uzlu do komunikace v síti, včetně generování potvrzení, chybových rámců a případné účasti v arbitráži • jediná možnost, pokud je měřený uzel jediný v síti – pasivní monitoring spočívá v pouhém odposlechu komunikace bez zásahu do ní • nelze vysílat – některé řadiče (např. SJA1000) podporují oba režimy • další využití je pro automatickou detekci přenosové rychlosti – řadič, který pasivní režim nepodporuje, lze pro jeho podporu snadno doplnit jednoduchou logikou, která zabrání vysílání na sběrnici, ale umožní zpětný příjem vysílaných dat