CAN Error Detection and Confinement
One of the most important and useful features of CAN is its high reliability, even in extremely noisy environments. CAN provides a variety of mechanisms to detect errors in frames. This error detection is used to retransmit the frame until it is received successfully. CAN also provides an error confinement mechanism used to remove a malfunctioning device from the CAN network when a high percentage of its frames result in errors. This error confinement prevents malfunctioning devices from disturbing the overall network traffic.
Error Detection
Whenever any CAN device detects an error in a frame, that device transmits a special sequence of bits called an error flag. This error flag is normally detected by the device transmitting the invalid frame, which then retransmits to correct the error. The retransmission starts over from the start of frame, and thus arbitration with other devices can occur again.
CAN devices detect the following errors, which are described in the following sections:
- Bit error
- Stuff error
- CRC error
- Form error
- Acknowledgment error
Bit Error
During frame transmissions, a CAN device monitors the bus on a bit-by-bit basis. If the bit level monitored is different from the transmitted bit, a bit error is detected. This bit error check applies only to the Data Length Code, Data Bytes, and Cyclic Redundancy Check fields of the transmitted frame.
Stuff Error
Whenever a transmitting device detects five consecutive bits of equal value, it automatically inserts a complemented bit into the transmitted bit stream. This stuff bit is automatically removed by all receiving devices. The bit stuffing scheme is used to guarantee enough edges in the bit stream to maintain synchronization within a frame.
A stuff error occurs whenever six consecutive bits of equal value are detected on the bus.
CRC Error
A CRC error is detected by a receiving device whenever the calculated CRC differs from the actual CRC in the frame.
Form Error
A form error occurs when a violation of the fundamental CAN frame encoding is detected. For example, if a CAN device begins transmitting the Start Of Frame bit for a new frame before the End Of Frame sequence completes for a previous frame (does not wait for bus idle), a form error is detected.
Acknowledgment Error
An acknowledgment error is detected by a transmitting device whenever it does not detect a dominant Acknowledgment Bit (ACK).
Error Confinement
To provide for error confinement, each CAN device must implement a transmit error counter and a receive error counter. The transmit error counter is incremented when errors are detected for transmitted frames, and decremented when a frame is transmitted successfully. The receive error counter is used for received frames in much the same way. The error counters are increased more for errors than they are decreased for successful reception/transmission. This ensures that the error counters will generally increase when a certain ratio of frames (roughly 1/8) encounter errors. By maintaining the error counters in this manner, the CAN protocol can generally distinguish temporary errors (such as those caused by external noise) from permanent failures (such as a broken cable). For complete information on the rules used to increment/decrement the error counters, refer to the CAN specification (ISO 11898).
With regard to error confinement, each CAN device may be in one of three states: error active, error passive, and bus off.
Error Active State
When a CAN device is powered on, it begins in the error active state. A device in error active state can normally take part in communication, and transmits an active error flag when an error is detected. This active error flag (sequence of dominant 0 bits) causes the current frame transmission to abort, resulting in a subsequent retransmission. A CAN device remains in the error active state as long as the transmit and receive error counters are both below 128. In a normally functioning network of CAN devices, all devices are in the error active state.
Error Passive State
If either the transmit error counter or the receive error counter increments above 127, the CAN device transitions into the error passive state. A device in error passive state can still take part in communication, but transmits a passive error flag when an error is detected. This passive error flag (sequence of recessive 1 bits) generally does not abort frames transmitted by other devices. Since passive error flags cannot prevail over any activity on the bus line, they are noticed only when the error passive device is transmitting a frame. Thus, if an error passive device detects a receive error on a frame which is received successfully by other devices, the frame is not retransmitted.
One special rule to keep in mind: When an error passive device detects an acknowledgment error, it does not increment its transmit error counter. Thus, if a CAN network consists of only one device (for example, if you do not connect a cable to the National Instruments CAN interface), and that device attempts to transmit a frame, it retransmits continuously but never goes into bus off state (although it eventually reaches error passive state).
Bus Off State
If the transmit error counter increments above 255, the CAN device transitions into the bus off state. A device in the bus off state does not transmit or receive any frames, and thus cannot have any influence on the bus. The bus off state is used to disable a malfunctioning CAN device which frequently transmits invalid frames, so that the device does not adversely affect other devices on the network. When a CAN device transitions to bus off, it can be placed back into error active state (with both counters reset to zero) only by manual intervention. For sensor/actuator types of devices, this often involves powering the device off then on. For NI-CAN network interfaces, communication can be started again using an API function.
I am trying to setup CAN communication between a couple of LPC device nodes. My setup includes a couple of CAN nodes writing on to the CAN bus. For example LPC 2292 CAN controller can write on to the CAN bus and the LPC1758 can receive the data. This works perfectly fine. Now LPC1758 has 2 CAN controllers and I have setup one for receiving data and the other for transmitting data on the bus as a response. I also setup interrupt handlers for LPC 1758 CAN 1 transmit & receive and CAN 2 transmit & receive. ( I dont have code for LPC 2292. its not under my control)
My problem is at the LPC1758 side. Here the CAN 1 receiver is able to get the data from the other CAN nodes as I can see the interrupt vector handler being called. The problem is when the the LPC 1758 CAN 2 tranmistter writes to the bus . It gets a bus error . More specificially "Start of Frame " error
. ( I use a Ulink2 debugger). Now reading the CAN specs I know the start frame of the CAN message should start with a low ( dominant) bit CAN specs ; See page 3
How do I go about fixing this error ? Its not a configurable register that I can set the first bit to 0 or 1. I run the default LPC 1758 CAN code that comes with KEIL C:Keil_v5ARMBoardsKeilMCB1700CAN
I think the code is fine because when I run the code in simulation mode of KEIL I can see the CAN commnication work well.
Is this «Start of Frame» a by product of some other configurations that I am missing ?
Update Code :
I run the default LPC 1758 CAN code that comes with KEIL C:Keil_v5ARMBoardsKeilMCB1700CAN
I think the code is fine because when I run the code in simulation mode of KEIL I can see the CAN communication work well. Also I did not make any changes to the code except the baudrate.
CAN setup :
/*----------------------------------------------------------------------------
setup CAN interface. CAN controller (1..2)
*----------------------------------------------------------------------------*/
void CAN_setup (uint32_t ctrl) {
LPC_CAN_TypeDef *pCAN = (ctrl == 1) ? LPC_CAN1 : LPC_CAN2;
if (ctrl == 1) {
LPC_SC->PCONP |= (1 << 13); /* Enable power to CAN1 block */
LPC_PINCON->PINSEL0 |= (1 << 0); /* Pin P0.0 used as RD1 (CAN1) */
LPC_PINCON->PINSEL0 |= (1 << 2); /* Pin P0.1 used as TD1 (CAN1) */
NVIC_EnableIRQ(CAN_IRQn); /* Enable CAN interrupt */
} else {
LPC_SC->PCONP |= (1 << 14); /* Enable power to CAN2 block */
LPC_PINCON->PINSEL4 |= (1 << 14); /* Pin P2.7 used as RD2 (CAN2) */
LPC_PINCON->PINSEL4 |= (1 << 16); /* Pin P2.8 used as TD2 (CAN2) */
NVIC_EnableIRQ(CAN_IRQn); /* Enable CAN interrupt */
}
LPC_CANAF->AFMR = 2; /* By default filter is not used */
pCAN->MOD = 1; /* Enter reset mode */
pCAN->IER = 0; /* Disable all interrupts */
pCAN->GSR = 0; /* Clear status register */
CAN_cfgBaudrate(ctrl, /*250000*/ 100000); /* Set bit timing */
pCAN->IER = 0x0003; /* Enable Tx and Rx interrupt */
//pCAN->IER = 0x7FF;
}
Here is my code to transmit and receive:
/*----------------------------------------------------------------------------
wite a message to CAN peripheral and transmit it. CAN controller (1..2)
*----------------------------------------------------------------------------*/
void CAN_wrMsg (uint32_t ctrl, CAN_msg *msg) {
LPC_CAN_TypeDef *pCAN = (ctrl == 1) ? LPC_CAN1 : LPC_CAN2;
uint32_t CANData;
CANData = (((uint32_t) msg->len) << 16) & 0x000F0000 |
(msg->format == EXTENDED_FORMAT ) * 0x80000000 |
(msg->type == REMOTE_FRAME) * 0x40000000;
if (pCAN->SR & (1<<2)) { /* Transmit buffer 1 free */
pCAN->TFI1 = CANData; /* Write frame informations */
pCAN->TID1 = msg->id; /* Write CAN message identifier */
pCAN->TDA1 = *(uint32_t *) &msg->data[0]; /* Write first 4 data bytes */
pCAN->TDB1 = *(uint32_t *) &msg->data[4]; /* Write second 4 data bytes */
//pCAN->CMR = 0x31; /* Select Tx1 for Self Tx/Rx */
pCAN->CMR = 0x21; /* Start transmission without loop-back */ -- Here is when "Start of Frame " error happens
}
}
Receive code is fine but still posting
/*----------------------------------------------------------------------------
read a message from CAN peripheral and release it. CAN controller (1..2)
*----------------------------------------------------------------------------*/
void CAN_rdMsg (uint32_t ctrl, CAN_msg *msg) {
LPC_CAN_TypeDef *pCAN = (ctrl == 1) ? LPC_CAN1 : LPC_CAN2;
uint32_t CANData;
/* Read frame informations */
CANData = pCAN->RFS;
msg->format = (CANData & 0x80000000) == 0x80000000;
msg->type = (CANData & 0x40000000) == 0x40000000;
msg->len = ((uint8_t)(CANData >> 16)) & 0x0F;
msg->id = pCAN->RID; /* Read CAN message identifier */
if (msg->type == DATA_FRAME) { /* Read the data if received message was DATA FRAME */
*(uint32_t *) &msg->data[0] = pCAN->RDA;
*(uint32_t *) &msg->data[4] = pCAN->RDB;
}
}
Baudrate Calculation:
/*----------------------------------------------------------------------------
configure the requested baudrate. CAN controller (1..2)
*----------------------------------------------------------------------------*/
static void CAN_cfgBaudrate (uint32_t ctrl, uint32_t baudrate) {
LPC_CAN_TypeDef *pCAN = (ctrl == 1) ? LPC_CAN1 : LPC_CAN2;
uint32_t result = 0;
uint32_t nominal_time;
/* Determine which nominal time to use for PCLK */
if (((PCLK / 1000000) % 6) == 0) {
nominal_time = 12; /* PCLK based on 72MHz CCLK */
} else {
nominal_time = 10; /* PCLK based on 100MHz CCLK */
}
/* Prepare value appropriate for bit time register */
result = (PCLK / nominal_time) / baudrate - 1;
result &= 0x000003FF;
result |= CAN_BIT_TIME[nominal_time];
pCAN->BTR = result; /* Set bit timing */
}
Obtaining Bus Status Information
Use canReadErrorCounters() to read the error counters of the CAN controller. There are two such counters in a CAN controller (they are required by the protocol definition).
- Note
- Not all CAN controllers allow access to the error counters, so CANlib may provide you with an «educated guess» instead.
Use canReadStatus() to obtain the bus status (error active, error passive, bus off; as defined by the CAN standard).
Overruns
If the CAN interface or the driver runs out of buffer space, or if the bus load is so high that the CAN controller can’t keep up with the traffic, an overload condition is flagged to the application.
The driver will set the canMSGERR_HW_OVERRUN and/or canMSGERR_SW_OVERRUN flags in the flag argument of canRead and its relatives. The flag(s) will be set in the first message read from the driver after the overrun or overload condition happened.
Not all hardware platforms can detect the difference between hardware overruns and software overruns, so your application should test for both conditions. You can use the symbol canMSGERR_OVERRUN for this purpose.
Error Frames
When a CAN controller detects an error, it transmits an error frame. This is a special CAN message that causes all other CAN controllers on the bus to notice that an error has occurred.
CANlib will report error frames to the application just like it reports any other CAN message, but the canMSG_ERROR_FRAME flag will be set in the flags parameter when e.g. canRead() returns.
When an error frame is received, its identifier, DLC and data bytes will be undefined. You should test if a message is an error frame before checking its identifier, DLC or data bytes.
In an healthy CAN system, error frames should rarely, if ever, occur. Error frames usually mean there is some type of serious problem in the system, such as a bad connector, a bad cable, bus termination missing or faulty, or another node transmitting at wrong bit rate, and so on.
SJA1000 Error Codes
Many of our CAN interface boards use the SJA1000 CAN controller. When an error occurs on the bus, the device firmware and driver will pass the error code from the CAN controller to the application by using the CAN identifier field. The identifier will be set to 0x800 (2048) plus the error code from the controller. The flag field will contain the canMSG_ERROR_FRAME flag. The data length will be 0.
You can use the following tables to interpret the error code from the controller. Note that they are applicable only to those CAN interfaces that use SJA1000.
Bit 7 | Bit 6 | Meaning |
---|---|---|
0 | 0 | bit error |
0 | 1 | form error |
1 | 0 | stuff error |
1 | 1 | other type of error |
Bit 5 | Meaning |
---|---|
0 | TX; error occurred during transmission |
1 | RX; error occurred during reception |
Bit 4..0 | Meaning |
---|---|
0x03 | start of frame |
0x02 | ID.28 to ID.21 |
0x06 | ID.20 to ID.18 |
0x04 | bit SRTR |
0x05 | bit IDE |
0x07 | ID.17 to ID.13 |
0x0F | ID.12 to ID.5 |
0x0E | ID.4 to ID.0 |
0x0C | bit RTR |
0x0D | reserved bit 1 |
0x09 | reserved bit 0 |
0x0B | data length code |
0x0A | data field |
0x08 | CRC sequence |
0x18 | CRC delimiter |
0x19 | acknowledge slot |
0x1B | acknowledge delimiter |
0x1A | end of frame |
0x12 | intermission |
0x11 | active error flag |
0x16 | passive error flag |
0x13 | tolerate dominant bits |
0x17 | error delimiter |
0x1C | overload flag |
Example
A message is transmitted on the CAN bus. A stream of error frames are returned. canRead() reads messages with id 0x000008D9, dlc = 0 and flags = 0x20 (canMSG_ERROR_FRAME). What’s up?
Using the tables above, we see that 0xD9 means
- Other type of error.
- Error during transmit.
- Acknowledge slot.
so it is likely that the module transmitting the message doesn’t get any answer.
- Note
- We make no guarantee that this feature will be present in future releases of hardware, drivers and firmware.
- We recommend that you use this feature for troubleshooting a particular installation only. Do not write your software so it relies on this feature.
Продулжу сегодняшний день написанием поэм . Всем день добрый кто только зашол на мой бж.
Сдесь я решил расказать про акпп бмв . Что с чем и как . От чего и почему.
И так поехали . Начнем немного текста, которого я ни где не нашол и пришлось до этого дойти самому.
1. Мотроник 3.1 -система управления двс бош 400-405, даный эбу поддерживает акпп типа EGS электронное управление акпп, имеет выход шим —положение дросельной заслонки, выход —сигнал обороты кв, выход — нагрузка, вход- режим акпп N/P, вход — изменение УОЗ . Можно сказать что связь DME -EGS (двс-акпп) сугубо аналоговая (хоть и сигналы цифровые, но ни каких кодовых слов они не несут, тупо вкл-выкл или 1/0)
По такому принципу работает и система мотроник 3.3.1 от бош 417 эбу. С этими эбу способно работать эбу акпп до 92г.в (e32, e34, 34 ) в стоке с мотр 3.1 3.3.1 работает акпп ZF 5нр18 (А5S310) и А4S310 от GM.
2. Система управления МS41, система управления двс схожая с мотроником 3.3.1, но имеет шину CAN для связи с эбу акпп, именно по этому я остановился на ней. В этой версии системы управления уже нет кипы проводов для связи межу эбу, а всего лиш 2 провода CAN H(CAN+ ) и CAN L(CAN -) . по этой шине в виде кода происходит двустороний обмен даных между эбу, дме передает даные о нагрузке двс, оборотах кв, темпиратуре двс, активности климатической установки и т.д в общем все что происходит с двс. Акпп тем временем передает даные о положении селектора акпп, темпиратуре масла акпп, и информацию о включенной передачи.
Тем временем эбу двс и эбу акпп не могут обойтись без системы абс/асц, информация о скорости автомобиля, ускорения и срабатывания абс/асц, опять же все сигналы аналоговые в виде шим или вкл/выкл . Это сигналы для акпп : скорость и срабатывание абс . для исключения не предвиденого включения понижено или повышеной передачи.
Сигналы для двс в момент активизации абс это : корекции УОЗ, изменения и отключение топливоподачи, скорость автомобиля . Даные о положение педали тормоза передаеться аналогово.
Примерная картина выглядет так что акпп и двс по шине CAN, абс и акпп, абс и двс — аналогово.
MS41 рабоет с эбу акпп типпа GS8.32, так же по этому же алгоритму работают следующие системы GS7.32, 8.51, 8.55, 8.70, 9.20 9.22.
под этим управлением работают акпп следующего типа 5нр18, 5нр24, 5нр30 и семество GM A4S270, A4S360
3 система управления MS42-43 эти системы управления схожи с MS41, но имеют уже дополнения управление приводом дросельной заслонки, управления дополнительными эоементами по шим и по шине CAN.
И так эта система имее имеет две шины CAN, первая отвечает за управление акпп ( AGS-EGS ) адаптивная система управления акпп. Вторая шина отвечает ща связь между абс и приборная панель, опционально доп.оборудование. в этой системе эбу двс (DME ) собирает даные о других системах и передает их в акпп, увы но тут эбу акпп черпает даные только с эбу двс. Какие даные EGS принемает с DME : весь тот же набор что и в системах описаных выше, но к ним добавляються даные принятые DME от ABS/ASC, так как тут нет уже линий связи акпп-абс, положения педали тормоза .
С MS42-43, DDE4.1, ME7.2 работают эбу симества EGS8.60, 8.60.2 и т.д 8.60.х
Под этим управлением работают такие акпп как 5нр18, 5нр19, 5нр24, 5нр30.
Полный размер
Вырезка из етк.
Полный размер
Схема подключения семейство GS8.32
Полный размер
Схема подключения семейства GS9.20, 9.22
Полный размер
Симейство GS8.60.x
На этом лекция закончена . Многие не поймут о чем тут, но если бы мне попалась такого рода статья я бы съэкономил месяц времени и пару десятков тыс.рублей, а может быть и больше (не имею привычки подсчитывать ущербы)
Более качествееные схемы и подробное описание, инструкции и руководсва по ТО вы можете найти на bmw.etk.club
И WDS Wiring Diagram System bmwsar.ru/wds или
www.newtis.info .
Ну вот я в кратце чем я занимался эти 2 месяца . Так как под свой проект я планирую уставить акпп 5нр24 тип-троник . Начало тут www.drive2.ru/b/1737114/
www.drive2.ru/b/461236057954845153/ и тут
www.drive2.ru/b/461246778193217003/, но за это время не удалось создать ни чего грамотного. Поэтому я вернулся к истокам, и начал подбирать эбу под свое акпп, не сложные поиски и эбу были найдены www.drive2.ru/b/464045310163813561/
В общем ни чего сложного. Берем схему, эбу, фишки все соединяем по схеме и поехали.
Полный размер
Схема с автодаты.
соединив все линии связи ключь на старт, но чудо опять не произошло . Все эти манипуляции происходили паралельно с траблами по ews, поэтому изначально система не активировалась из за перемычки в эбу.
Когда же проблемма решилась с евс то на диагностики выскачила ошибка EGS /AGS «НЕ ВЕРНЫЙ КОД ДАНЫХ ШИНЫ CAN»
Различными манипуляциями, тыкание кнопок на пк, пытаясь перезалить прошивки в эбу акпп, кидая разные перемычки, результат один и тот же, ну было только хуже.
Длиными ночами сидел в нэте и читал разные инструкции, мануалы, отечественые и забугорные форумы, мануалы по ремонту и то акпп, проверяя различные схемы и доскональное их изучение. Вот на что я потратил все это время, я понял что MS41 не подружить с GS8.60.2, а причина бональна, в шине CAN отсутствуют даные по АБС .
Уже был готов поставить 5нр18, коих акпп у меня 2 шт одна от дизеля м51, вторая от м52 бензин. Эбу на разборке найти не сложно их там, ну очень много, проводки вообще лежит две шт. Бери и собирай. Но . Эти но . Все дело в том что проект по расчетам может выдать более 315н.м, а акпп 5нр18 способно без вреда переваривать 310н.м, эбу . Это либо тошнить в пол силы, или раз вдавить в полик и красиво уйти в ремонт акпп.
Поэтому все же уклон делался на 5нр24, момент этой коробки состовляет 440н.м, что с хорошим запасом на ресурс акпп.
И так сидя перед монитором пк я нарыл немного информации и проанализировал ее, о чем я расказал в начале всей этой басни. На данный момент подходящего эбу нет но примерно думаю что нужен этот
будет ли он работать с MS41 я еще не знаю, все на грани эксперемента.
Но что бы не терять время зря достал эбу акпп от 5нр30 е34/е38 версии GS9.22
Сравнил ее по тис, етк и всем возможным ресурсам, пришол к выводу что схема абсолютно идентична и применима ко всем сериям AGS EGS 8.32 8.51 8.55 9.20 и 9.22, отличие только в концевиках выбора скорости в ручную.
Состыковал проводку, ключ на старт, запуск, и запуск диагностики . Эбу вышел на связь, ошибок по кан шине нет, блоки спокойно обмениваються информацией . Но все же небольшой список ошибок появился.
Полный размер
Список ошибок.
Полный размер
Эбу собственной персоной
Далее поиск расшифровок ошибок, опять окей гугл, форумы и мануалы не дали толку, поиск не принес результатов, но перелистывая мануал по ремонту акпп 5нр30 обратил на дополнительную информацию, в которой числились коды, быстренько все перевел . Ответ был прост это ошибки по соленоидам акпп, все верно получаеться, так как акпп я еще не подключал, ну ее у меня тупо нет . Хотя можно было подключить 5нр24, так как разпиновка разьема идентична, но алгоритм солиноидов несколько отличаеться.
Но можно сказать что на этом все заканчиваеться, а нет . Даная версия не работоспособна без абс/асц5, а значит придеться изучать, читать схемы и пытаться ее собрать тоже . Хотя я уже собрал рабочую модель абс/асц первого поколения е32/34 и адаптировал ее для работы с мотором м30 под управлением мотроник 1.0-1.3 . Начало гдето тут www.drive2.ru/l/508125555955073970/, а продолжение расползлось в следующих постах. Возможно прилеться его ввставить на продажу. Ибо спонсоров проекта нет .
На этом я сегодня завершу . Извиняйте что мало красивых фоток с сискожопами и т.д
Всем удачи и ровного тюненга . А мы ищем пока что этот эбу . Даные все на фото . Основной критерий версия эбу и тип акпп .
5нр24 (A5S440) GS8.51 GS8.55
Продолжение обязательно будет .
Полный размер
Прогулки по бездорожью . А вы храните свой автомобиль на теплой парковке?
Общей проблемой, с которой сталкиваются многие владельцы BMW, является автоматическая коробка передач, не переключающаяся или неустойчивое переключение. Первым признаком проблемы с трансмиссией BMW является транс. Неисправность диска Умеренно сообщение появляется на экране.
Симптомы проблем с передачей BMW различаются. Возможно, ваш BMW работает нормально, и вдруг вы получаете предупреждение о неисправности коробки передач, и автомобиль переходит в безопасный режим/режим Limp. Передача больше не будет сдвигаться или идти в обратном направлении.
Содержание
- 1
симптомы - 2
Что делать?- 2.1 Перезапустить движок
- 2.2 Сбросить автоматическую коробку передач
- 2.3 Чтение и сброс кодов ошибок EGS
- 2.4 Проверьте уровень трансмиссионной жидкости
- 2.5 Замена жидкости для автоматической коробки передач
- 3
Распространенные проблемы с трансмиссией BMW- 3.1
Трансмиссия Мехатроник Гильза - 3.2
Мехатронный переходник Bridge Seal - 3.3
Мехатронная проблема - 3.4
Обновление/обновление программного обеспечения модуля управления коробкой передач EGS - 3.5
Передача застряла в режиме FailSafe - 3.6
Временное исправление, 2 совет 1 - 3.7
BMW застрял в парке - 3.8
Передача от BMW
- 3.1
- 4
Передача сообщений iDrive - 5
Коды неисправностей трансмиссии BMW - 6
Связанные ресурсы
симптомы
- Коробка передач застряла в передаче
- Коробка передач BMW проскальзывает
- Сообщение о сбое передачи
- Коробка передач переключается жестко, а не плавно
- Неисправность коробки передач, привод умеренный
- Неустойчивое переключение передач или столкновение на одной или нескольких передачах
- Двигатель набирает обороты и отказывается переключаться
- Передача Failsafe Prog. Предупреждение
- Отставание между передачами, например, с 1 по 2, со 2 по 3
- Коды ошибок передаточного числа
- Неустойчивое переключение передач при переключении передач
Что делать?
Устранение проблем с коробкой передач BMW самостоятельно возможно. Часто вы можете не только решить проблему самостоятельно, но и решить ее, заменив только неисправную часть вместо коробки передач. Давайте начнем с самых простых и основных шагов по устранению неполадок.
Перезапустить движок
Если ваш BMW отображает сообщение об ошибке передачи или застревает на передаче, первое, что вы должны сделать, это найти безопасное место, выключить двигатель и перезапустить автомобиль.
Подождите хотя бы одну минуту и заведите машину. Это может сбросить передачу и сообщение о сбое передачи может отключиться, что должно позволить вам вернуться на дорогу.
Если ваш BMW снова переключается, не думайте, что проблем нет. Существует высокая вероятность того, что вы снова столкнетесь с той же проблемой передачи.
Хотя проблема может и не показаться серьезной, но если вы ее проигнорируете, со временем она может усугубиться настолько, что ваш BMW больше не будет переключать передачи.
Сбросить автоматическую коробку передач
Если вы заметили, что ваш BMW имеет неустойчивые сдвиги или не отвечает должным образом, проблему можно устранить, выполнив несколько простых процедур, которые позволят вам сбросить адаптивные настройки BMW. Эта процедура очень проста, не требует инструментов и занимает всего пару минут.
Процедура сброса трансмиссии BMW
- Включить зажигание. Если на вашем BMW есть кнопка Пуск/Стоп, нажмите кнопку Старт, но НЕ нажимайте педаль тормоза.
- Все огни приборной панели включатся.
- Теперь нажмите педаль газа до самого пола и держите ее нажатой. (Убедитесь, что выключатель нажат)
- Держите педаль газа нажатой в течение 30 секунд. (Во время этой процедуры двигатель должен быть выключен, зажигание все еще включено.)
- Отпустите педаль газа.
- Заведите БМВ и езжайте нормально.
Это вернет вашу передачу к исходным заводским настройкам. Другими словами, BMW сотрет точки переключения передач. В течение следующих нескольких циклов вождения ваш BMW будет следить за вашими схемами вождения; НЕ рекомендуется агрессивно ездить.
Надеюсь, это решило вашу проблему, но если симптомы вернутся снова, переходите к следующему шагу.
Чтение и сброс кодов ошибок EGS
Следующим шагом является чтение кодов неисправностей. Вам понадобится специальный сканер BMW OBD2, который может извлекать коды неисправностей из модулей BMW.
Как правило, вы сможете получить хороший сканер в диапазоне от 100 до 150 долларов. Обычные сканеры OBD2 не помогут вам в этой задаче.
Если вы используете универсальный сканер OBD2, вы получите общие коды ошибок, такие как P0720 или P0732, которые не предоставляют достаточно подробных сведений о том, что может быть причиной проблемы.
Что мы использовали: Foxwell NT510 для BMW
Альтернативные сканеры: 10 лучших сканеров для BMW
Вы должны как минимум прочитать коды неисправностей из модуля передачи (EGS), но рекомендуется полное сканирование системы. Иногда вы можете обнаружить код неисправности DSC или ABS. Вполне возможно, что код неисправности в этих системах может перевести вашу автоматическую коробку передач BMW в режим повышенной безопасности, даже если в коробке нет ничего плохого.
Удалить все коды. Это приведет к удалению всех сохраненных кодов и текущих кодов. Если ваша трансмиссия BMW работает нормально, отлично. Если ваш BMW все еще находится в отказоустойчивом режиме, прочитайте коды еще раз.
Проверьте уровень трансмиссионной жидкости
Если на вашем BMW появляется сообщение об ошибке «Неисправность привода», вам следует всегда проверять уровень жидкости в автоматической коробке передач.Если уровень трансмиссии низкий, даже незначительный, ваш BMW перейдет в режим бездействия, чтобы защитить трансмиссию.
Обычно небольшое количество масла вытекает, особенно в BMW с большим пробегом. Добавьте недостающую трансмиссионную жидкость, но не переполняйте трансмиссию выше рекомендованного уровня, так как это может вызвать проблемы с переключением передач.
Типичными признаками того, что уровень трансмиссионного масла низкий, является то, что ваш BMW отображает Prog Failsafe Transmission. «Предупреждение, если вы пытаетесь ускориться, нажимая педаль газа или когда вы ускоряетесь, когда делаете поворот.
Это происходит из-за того, что во время ускорения требуется больше трансмиссионной жидкости, или при повороте жидкости выталкиваются на одну сторону масляного поддона. Это означает, что для масляного насоса нет трансмиссионной жидкости, что приводит к переходу трансмиссии в режим FailSafe или Limp.
Как проверить трансмиссионное масло BMW
- Поезжайте на своем BMW в течение 15 минут, чтобы прогреть жидкость для автоматической коробки передач. Убедитесь, что коробка передач переключается на все передачи. Температура переходной жидкости должна достигать около 100 градусов по Фаренгейту во время этого цикла движения.
- Припаркуйте свой BMW на ровной поверхности или поднимите его на лифте.
- Пусть машина в парке и на холостых.
- Снимите сливную пробку с масляного поддона коробки передач.
- Очень небольшое количество трансмиссионной жидкости должно слиться из масляного поддона, если уровень заполнен.
Если уровень низкий, масло не будет выходить.
Замена жидкости для автоматической коробки передач
BMW может сказать, что их трансмиссии запечатаны на всю жизнь и требуют замены трансмиссионной жидкости. Мы не верим этому требованию. Мы рекомендуем менять трансмиссионную жидкость каждые 60 км.
Что вам понадобится:
Используйте только рекомендованную трансмиссионную жидкость для вашего BMW.
- Комплект фильтров и прокладок
-
ZF Lifeguard жидкость
- 4,5 ц, если только слив масла из поддона
- 9,5 кварт для полной очистки системы
- Насос перекачки жидкости
- Torx Socket
- Drain Pan
Если у вас возникли проблемы со случайным переключением передач, рассмотрите возможность замены жидкости и фильтра для автоматической коробки передач. Существует много дискуссий и часто возникают разногласия по поводу того, следует или не следует менять автоматическую жидкость в BMW, особенно на трансмиссию, запечатанную на всю жизнь.
По нашему опыту, свежая жидкость и трансмиссионная жидкость только помогут продлить срок службы трансмиссии. Единственный раз, когда дела идут хуже, это когда уже существует проблема с передачей.
Автоматическая коробка передач BMW вмещает около 9,5 т жидкости ATF. Это полная емкость системы, которая включает в себя все масло в коробке передач, масляном поддоне и гидротрансформаторе. Если вы не собираетесь промывать всю систему, а только сливать масляный поддон, вам потребуется около 4,5 ц масла.
Трансмиссия Мехатроник Гильза
Проверьте на утечку масла на электрическом разъеме. Мехатронная гильза расположена на стороне пассажира коробки передач рядом с концом автоматической коробки передач. Это место, где жгут проводов от блока управления коробкой передач (TCU) соединяет коробку передач.
Это обычно около задней части передачи. Если вы отсоедините жгут проводов, вы можете заметить утечку масла на этой вилке. Если есть масло, это не только означает, что вы теряете масло, но связь между ЭБУ и корпусом мехатронного клапана прерывается.
Чтобы заменить или проверить на наличие утечек, вам нужно будет поднять свой BMW на рампе. Снимите брызговик из-под коробки передач и отсоедините жгут проводов.
Что вам понадобится: рукав мехатроника BMW (деталь №: 0501 216 272 01)
Самостоятельная инструкция: как заменить втулку BMW Mechatronic, альтернативное руководство
Мехатронный переходник Bridge Seal
Другая причина, по которой BMW может отображать предупреждающее сообщение «Ошибка трансмиссии» на экране iDrive, связана с треснувшим адаптером (втулкой с уплотнением) для корпуса мехатронного клапана.
При нормальных условиях прокладка позволяет жидкости течь от трансмиссии к корпусу мехатронного клапана без потери жидкости.
Это позволяет трансмиссионной жидкости попадать в мехатроник без потери давления, что, в свою очередь, обеспечивает нормальное переключение передач.
Втулка или пластиковый адаптер со временем могут треснуть, что позволяет жидкости вытекать через это отверстие. Когда это происходит, давление жидкости в корпусе мехатронного клапана снижается.
Поскольку давление жидкости снижается, соленоиды в корпусе клапана не могут открываться и закрываться должным образом, что вызывает сбой передачи или ошибочное переключение.
Эта часть легко заменяется и поставляется в пластиковом или алюминиевом корпусе.
Оригинальная деталь, продаваемая в BMW, обычно пластмассовая, но модернизированные алюминиевые адаптеры можно приобрести через Интернет и прослужить дольше, чем пластиковая.
Эта проблема характерна для трансмиссий BMW: 6HP26, 6HP28 и 6HP32. Доступен улучшенный алюминиевый номер детали SFC-MA-001.
Еще один признак того, что эта часть не работает, это то, что вы получите всплывающее окно «Ошибка передачи», как правило, когда вы переключаете переключатель с привода на задний ход. Вы обычно отступаете на несколько футов и снова включаете передачу.
Что вам понадобится:
Мехатронный адаптер BMW (деталь №: 0501 215 783 01)
Список автомобилей, наиболее пострадавших от этой проблемы:
- 2001–2008 BMW E65/E66 7-й серии
- 2004–2006 BMW E53 X5 V8
- 2003–2010 BMW E60 5 серии
- 2005–2011 BMW E90 3 серии
- 2003–2010 BMW E63/E64 6 серии
- 2007–2013 BMW E70 X5, кроме 4.0d
- 2008–2012 BMW F01/02 7-й серии (кроме 760i/Li и Hybrid 7)
Мехатронная проблема
Если вы читаете коды, вы можете получить коды неисправностей, относящиеся к корпусу клапана, также известному как мехатроник BMW. Мехатроник BMW ZF печально известен проблемами с понижением передачи от 2 до 1-й передачи или вспышкой переключения передач во время переключения на повышенную передачу.
Эти резкие повышения и понижения часто происходят из-за отказа муфты TTC, перегрева, поврежденного соленоида, изношенных селеноидных пружин и других проблем с мехатронным устройством.
Если вы проверили все вышеперечисленное, но у вас все еще возникают проблемы с трансмиссией BMW, скорее всего, причиной является мехатронный блок. Если вы хотите сэкономить, вы можете заменить только соленоиды в блоке мехатроники/корпусе клапана.
Если вы решите заменить соленоиды самостоятельно, не забудьте заменить пенопластовую прокладку, которая проходит между клеммами соленоида и разъемами.
Вы можете купить дешевые соленоиды трансмиссии BMW онлайн. Проверьте стоимость BMW Mechatronic Соленоиды здесь и следуйте этому руководству о том, как их заменить.
Если вы хотите устройство, которое уже было восстановлено и протестировано, вы можете купить восстановленное устройство BMW Mechatronic онлайн. Если у вас есть некоторые базовые навыки самостоятельной работы, вы можете заменить мехатронный блок на BMW.
Имейте в виду, что устройство часто необходимо кодировать в соответствии с вашим VIN BMW. Перед покупкой сменного мехатронного устройства, обратитесь к продавцу или дилеру BMW, если требуется программирование или кодирование.
Можно заменить BMW мехатроником самостоятельно.
Если вы предпочитаете, чтобы механик выполнял эту работу, этот ремонт может стоить от 1500 до 3500 долларов. Если вы решите, чтобы дилер заменил мехатроник на вашем BMW, он обычно будет стоить от 2100 до 3500 долларов.
Рекомендуется выполнить сброс модуля передачи после замены мехатроника. Поезжайте на автомобиле примерно 15-20 минут, убедившись, что трансмиссия несколько раз проходит по всем передачам, чтобы откалибровать точки переключения.
Обновление/обновление программного обеспечения модуля управления коробкой передач EGS
BMW часто предлагает обновления программного обеспечения для автоматической коробки передач. Эти обновления меняют точки смещения, что улучшает смещение.
В некоторых случаях сообщалось, что он устраняет проблемы с ошибками или БЕЗОПАСНЫЙ РЕЖИМ. Вам нужно будет позвонить своему дилеру BMW и спросить его, есть ли обновление программного обеспечения для трансмиссии для вашего конкретного автомобиля. Вам нужно будет предоставить дилеру VIN номер вашего BMW.
Передача застряла в режиме FailSafe
Мы видели случаи, когда трансмиссия BMW застревала на второй или третьей передаче и не выходила из отказоустойчивого режима, даже если вы перезапустите автомобиль. В одном случае эта проблема была вызвана разряженной батареей, в которой хранились жесткие коды.
Несмотря на то, что батарея BMW была заменена, автомобиль оставался в безопасном режиме. Обычно BMW переходит в отказоустойчивый режим, если напряжение ниже 9 вольт.
Если жесткий код хранится в модуле EGS, вам потребуется специальный сканер BMW для удаления кодов неисправностей из модуля EGS. Низкое напряжение аккумулятора также может привести к тому, что коробка передач не войдет в режим движения или реверса.
Временное исправление, 2 совет 1
Часто проблема передачи может быть связана с проблемой только первой передачи. Чтобы убедиться, что проблема связана с первой передачей, установите вашу трансмиссию BMW в зимний режим, которая заставляет трансмиссию начинаться на второй передаче.
Если ваш BMW переключается нормально в зимнем режиме, это означает, что есть проблема с первой передачей. Держите коробку передач в зимнем режиме, пока не почините коробку передач BMW.
BMW застрял в парке
Если ваш BMW застрял в парке, и переключатель не выходит, проблема также может быть в выключателе стоп-сигнала или парковочном соленоиде.
Передача от BMW
БМВ, оснащенные двойным турбонаддувом, могут испытывать симптомы дрожания, особенно во время длительной поездки.Чтобы убедиться, что это проблема, рекомендуется остановить машину и дать ей остыть.
Если симптомы дрожания коробки передач исчезают при остывании двигателя, возможно, проблема связана с двойными турбинами. Проверьте, может ли загораться лампа двигателя. Симптомы часто случались между 50-70 милями в час.
Другая причина, по которой вы можете испытывать дрожание коробки передач, связана с проблемами с гидротрансформатором. Часто это связано с тем, что блокировка гидротрансформатора изнашивается и не блокирует гидротрансформаторы.
Из-за проблем со свечой зажигания или топливной форсункой может возникнуть также дрожание коробки передач BMW. Если контрольная лампа двигателя включена, обязательно отсканируйте коды от ЭБУ, чтобы вы могли лучше понять, почему происходит дрожание коробки передач.
Передача сообщений iDrive
Это список распространенных сообщений о передаче BMW. Эти сообщения различаются в зависимости от модели, но все они указывают на проблемы с трансмиссией BMW.
- Неисправность трансмиссии . Функциональность или отображение положения переключателя передач могут давать сбой. Положение коробки передач P может быть недоступно. Установите стояночный тормоз, когда он полностью остановился. Запуск двигателя возможен с задержкой.
- Trans. Неисправность . Умеренная езда. Продолжение вождения возможно. Уменьшенное ускорение. Проверьте систему в ближайшем центре BMW.
- Неисправность передачи . Возможен ограниченный выбор передач. Продолжение вождения возможно./Вождение умеренно. Проверьте систему в ближайшем центре BMW.
- Передача неисправна . Положение передачи P возможно недоступно. Включите стояночный тормоз, когда автомобиль канцелярский. Пожалуйста, свяжитесь со службой BMW.
- Trans. Отказоустойчивая прога
Коды неисправностей трансмиссии BMW
Это список распространенных кодов неисправностей трансмиссии BMW.
Шоу
- 578E – EGS Износ масла коробки передач
- CF17 Нет сообщения от JBBF. Приемник режима автомобиля DKG/EGS передатчик DSC/DME
- 5140 нет сообщения CAN от DME
- 4F8F – EGS: контроль передаточного числа, переключение передач 3-2
- 5149 – нет сообщения CAN от силового модуля
- 27EB Нет сообщения (EGS 2) от электронного блока управления передачей (EGS)
- 27EC Нет сообщения (EGS 1) от блока управления электронной передачей (EGS)
- 299A МОЖЕТ управлять неисправностями, электронным управлением коробкой передач (EGS)
- 4f81 – Контроль передаточного числа, сцепление A
- cf17 – отсутствует калибровка между ISTA/D и ISTA/P
- 507B или 507C – Невероятный сигнал датчика парковочного механизма
- 507D – неправильно отключен парковочный механизм
- 4f89 – неправильный контроль передаточного числа
- 4f92 – контроль соотношения EGS, сцепление A-C
- 4f8d – контроль передаточного числа, переключение передач 5-4 – достоверность
- 37 – Низкое напряжение
- 4f85 – СЦЕПЛЕНИЕ МОНИТОРИНГА RATIO 4F85 E
- 4f8a – МОНИТОРИНГ СООТНОШЕНИЯ СДВИГА 4-5 МЕХАНИЗМ
- 5088 – Датчики, переключатель коробки передач L1-L4
- 507C – Датчики парковочного механизма неправдоподобны
- ДАТЧИК ПАРКОВКИ 507B НЕЗАВИСИМО
- СЦЕПЛЕНИЕ МОНИТОРИНГА 4F84 D
- СЦЕПЛЕНИЕ МОНИТОРИНГА 4F97 “B” -D
- СЦЕПЛЕНИЕ МОНИТОРИНГА СООТНОШЕНИЯ 4F83 C
Этот список не включает все коды неисправностей BMW EGS. Сканер BMW необходим для чтения и очистки этих кодов BMW.
Связанные ресурсы
- Корпус клапана BMW и мехатронное обслуживание от Sonnax
- Инструкция по замене соленоида CTSC
- Наконечники с уплотнительной втулкой или мехатронным узлом для замены от BimmerForums
- Замена 6-скоростной муфты BMW от CTSC
- Неисправность трансмиссии ZF BMW Ягуар Рендж Ровер Ленд Ровер
Controller Area Network
(шина данных CAN)
Или разговорно: «Шина CAN».
В период с 1984 по 1986 г.г., компанией Robert Bosch GmbH был придуман, разработан и воплощен в производство стандарт CAN — Controller Area Network (сеть контроллеров), основной целью которого является объединение в единую сеть различных исполнительных устройств, датчиков, сенсоров и т.п.
И как оказалось впоследствии, шина данных CAN действительно имела множество преимуществ перед обычными жгутами проводов, причислим некоторые:
Электромагнитная совместимость
Раньше об этом понятии задумывались мало или вообще не задумывались. Потому что автомобилям хватало небольшого пучка проводов и пару-тройку устройств для нормальной работы двигателя внутреннего сгорания.
Однако технический прогресс идет вперед, вопросы экологии, безопасности дорожного движения и водителя, как участника этого движения, выходят на первое место, что приводит к постоянному увеличению количества электронных устройств на автомобиле.
Что такое «Электромагнитная совместимость на автомобиле»?
Это способность одновременного и стабильного функционирования множества различных электронных устройств на автомобиле без создания электромагнитных помех друг другу.
Шина CAN как раз отвечает этим важным требованиям.
Более конкретно об этом вопросе чуть позже.
Уменьшение количества кабельных соединений
Сначала немного о том, что же такое эта шина и как она выглядит:
Шина данных CAN – это обычная «витая пара», вот как на фото справа. Это специально скрученный двухжильный провод.
К этой витой паре подключены различные блоки управления – их называют «пользователи». Передача данных идет одновременно по двум проводам этой «витой пары». Важно знать, что логические уровни шины имеют зеркальное отображение: если по одному проводу передается уровень логического «нуля», то по другому проводу одновременно передается уровень логической «единицы».
Почему используется двухпроводная схема передачи данных:
- для стабильности распознавания ошибок
- для увеличения и повышения надёжности работы по передаче данных
Предположим, что пик напряжения возникнет только на одном проводе (например, вследствии проблем по электромагнитной совместимости).
И тогда блоки-приёмники могут идентифицировать это как ошибку и проигнорировать данный пик напряжения.
Если же произойдет короткое замыкание или обрыв одного из двух проводов, то благодаря интегрированной программно-аппаратной концепции надёжности произойдёт переключение в режим работы по однопроводной схеме, и повреждённая передающая линия использоваться не будет.
Так вот, продолжим о «уменьшении количества соединений между устройствами шины CAN»:
- Провода от датчиков проводятся только к ближайшему блоку управления, который преобразует измеренные значения в пакет данных и передаёт его на шину данных CAN.
- Уменьшение количества штекерных соединений
- Уменьшение количества контактных выводов на блоках управления
- Сигналами с одного датчика (например, с датчика температуры охлаждающей жидкости) могут воспользоваться различные системы
Пакет данных шины CAN
А сейчас давайте посмотрим, что представляет из себя «пакет данных» шины CAN. Он состоит из семи последовательных полей (отрезков).
На приведенном внизу рисунке показано восемь полей, последнее Intermission– «Пауза между пакетами данных» и оно не входит в Data Frame:
Цифры в каждом поле показывают количество битов, используемых в каждом сообщении (пакете данных).
Описание полей пакета данных<
Start of Frame
Маркирует начало сообщения (стартов, бит) и синхронизирует все модули шины.
Arbitration Field
Это поле состоит из идентификатора адреса в 11 бит и 1 контрольного бита и запрос (Remote Transmission Request-Bit).
Этот контрольный бит маркирует пакет как Data Frame (фрейм сообщения) или как Remote Frame (фрейм запроса) без байтов данных.
Control Field (управл. биты)
Поле управления (6 бит) содержит бит IDE (Identifier Extension Bit) для распознавания стандартного и расширенного формата, резервный бит для последующих расширений и — в последних 4 битах — количество байтов данных, заложенных в Data Field (поле данных).
Data Field (данные)
Поле данных может содержать от 0 до 8 байт данных. Сообщение по шине данных CAN длиной 0 байт используется для синхронизации распределённых процессов
CRC Field (контрольное поле)
Поле CRC (Cyclic-Redundancy-Check Field) содержит 16 бит и служит для контрольного распознавания ошибок при передаче данных.
АСК Field (подтверждение приема)
Поле АСК (Acknowledgement Field) содержит сигнал квитирования всех блоков-приёмников, получивших сообщение по шине данных CAN без ошибок (квитирование — подтверждение приема, отправка квитанции — управляющее сообщение или сигнал, выдаваемые в ответ на принятое сообщение).
End of Frame (конец фрейма)
Маркирует конец пакета данных
Intermission (интервал)
Интервал между двумя пакетами данных. Интервал должен составлять не менее 3 битов. После этого любой блок управления может передавать следующий пакет данных.
IDLE (режим покоя)
Если ни один блок управления не передаёт сообщений, то шина данных CAN остается в режиме покоя до передачи следующего пакета данных.
Прием и передача данных
Шина данных CAN является двунаправленной шиной — любой из подключённых блоков может, как передавать, так и принимать сообщения.
На приведенном выше рисунке слово Dashboard можно заменить на привычное (разговорное и чаще применяемое) «Шлюз».
К примеру на некоторых автомобилях, шлюзом между быстрой и медленной шиной является панель приборов (Ауди,Фольксваген), у Мерседеса функции шлюза выполняет EZS (замок зажигания), хотя сама панель работает в двух сетях, для отображения как салонной, так и моторной информации.
На следующих поколениях автомобилей с 2002 года начали использовать отдельный блок ZGW (центральный интерфейс), который выполняет функции шлюза, хранит кодировки комплектации авто и через него работает диагностика по CAN шине (именно по «чистому» CAN – без к-линий).
Шины данных CAN существуют с различными скоростями передачи данных и их иногда называют «быстрая шина» (High-Speed-CAN) и «медленная шина» (Low- Speed-CAN).
Например, High-Speed-CAN – это шина двигателя, АКПП и т.п., имеет скорость передачи данных 500 Кбит
Low-Speed-CAN — это шины для управления стеклоподъемниками, кондиционером и т.п. , со скоростью передачи данных 100 Кбит.
Порядок и формат передачи и приёма сообщений пользователями определён в протоколе обмена данных.
Существенным отличительным признакомшины данных CAN по сравнению с другими шинными системами, базирующимися на принципе абонентской адресации, является соотнесённая с сообщением адресация.
- каждому сообщению по шине данных CAN присваивается его постоянный адрес (идентификатор), маркирующий содержание этого сообщения (например: температура охлаждающей жидкости).
- протокол шины данных CAN допускает передачу до 2048 различных сообщений, причём адреса с 2033 по 2048 являются постоянно закреплёнными. Объём данных одного сообщения по шине данных CAN составляет 8 байт.
Блок-приёмник обрабатывает только те сообщения(пакеты данных), которые сохранены в его списке принимаемых по шине данных CAN сообщений (контроль назначения сообщения).
Пакеты данных могут передаваться только в том случае, если шина данных CAN свободна (то есть, если после передачи последнего пакета данных последовал интервал в 3 бита, и никакой из блоков управления не начинает передавать сообщение). При этом логический уровень шины данных является рецессивным (логическая «1»)
Шина данных CAN: РАСШИРЕННЫЕ ВОЗМОЖНОСТИ проведения Диагностики
Так как сигналы с одного датчика (например, датчика температуры, датчика скорости и др.), может использоваться различными системами, то в том случае, если наличие неисправности отображают все использующие данный сигнал системы, неисправным является, как правило, датчик или блок управления, обрабатывающий его сигналы.
Если же сообщение о неисправности поступает только от одной системы, хотя данный сигнал используется и другими системами, то причина неисправности, в большинстве случаев, заключается в обрабатывающем этот сигнал блоке управления или сервомеханизме
Высокий уровень защиты передаваемых данных
Высокий уровень защиты передаваемых данных беспечивается даже при сильных помехах.
При этом обеспечивается высокая скорость передачи данных (до 1 Mbit/s)
За счет чего это достигается:
- Механизм обнаружения ошибок Механизм исправления ошибок
- Сохранение работоспособности при высоком уровне электромагнитных помех
- Распределение приоритетов команд
- Работа в реальном режиме времени
Распознавание ошибок
Помехи при передаче данных могут приводить к возникновению ошибок. Такие ошибки при передаче данных надо распознавать и устранять. Протокол шины данных CAN различает два уровня распознавания ошибок:
- механизмы на уровне Data Frame (фрейм сообщения)
- механизмы на уровне битов
Cyclic-Redundancy-Check:
на основе передаваемого по шине данных CAN сообщения модуль-передатчик рассчитывает контрольные биты, которые передаются вместе с пакетом данных в поле «CRC Field». Модуль-приёмник заново вычисляет эти контрольные биты на основе принятого по шине данных CAN сообщения и сравнивает их с контрольными битами, полученными вместе с этим сообщением.
Frame Check:
Этот механизм проверяет структуру передаваемого фрейма, то есть перепроверяются битовые поля с заданным фиксированным форматом и длина фрейма.
Распознанные функцией Frame Check ошибки обозначаются как ошибки формата.
Механизмы на уровне битов
Мониторинг
Каждый модуль при передаче сообщения отслеживает логический уровень шины данных CAN и на основе этого распознаёт различия между переданным и принятым битом. Благодаря этому обеспечивается надёжное распознавание глобальных и возникающих в блоке-передатчике локальных ошибок по битам.
Bit Stuffing:
В каждом пакете данных между полем «Start of Frame» и концом поля «CRC Field» должно быть не более 5 последовательных битов с одинаковой полярностью. После каждой последовательности из 5 одинаковых битов блок-передатчик добавляет в поток битов один бит с противоположной полярностью. Блоки- приёмники, в свою очередь, удаляют эти биты после приёма сообщения по шине данных CAN.
Механизм устранения ошибок
Если какой-либо модуль шины данных CAN распознаёт ошибку, то он прерывает текущий процесс передачи данных, отправляя сообщение об ошибке. Сообщение об ошибке состоит из 6 доминантных битов.
Благодаря этому сообщению об ошибке все подключённые к шине данных CAN блоки управления оповещаются о возникшей локальной ошибке и, соответственно, игнорируют переданное сообщение.
После короткой паузы все блоки управления снова смогут передавать сообщения по шине данных CAN, причём первым опять будет отправлено сообщение с наивысшим приоритетом (мотор, АКПП и т.п.).
Блок управления, чьё сообщение по шине данных CAN обусловило возникновение ошибки, также начинает повторную передачу своего сообщения (Automatic Repeat Request — автоматический повтор запроса).
ПРИОРИТЕТЫ шины данных CAN
«ПРИНЦИП ПРИОРИТЕТНОСТИ»
Если несколько блоков управления одновременно начинают передавать сообщения, то вступает в силу «принцип приоритетности», согласно которому сообщение по шине данных CAN с наивысшим приоритетом будет передаваться первымбез потери времени или битов (арбитраж доступа к шине данных).
Каждый блок управления, утрачивающий право арбитража, автоматически переключается на приём и повторяет свою попытку отправить сообщение только после того, как шина данных CAN снова освободится.
Кроме пакетов данных существует также пакет запроса определённого сообщения по шине данных CAN. В этом случае блок управления, который может предоставить запрашиваемый пакет данных, реагирует на изданный запрос.
Для обработки данных в режиме реального времени должна быть обеспечена возможность их быстрой передачи. Это предполагает не только наличие линии с высокой физической скоростью передачи данных, но и требует также оперативного предоставления доступа к шине данных CAN, если нескольким блокам управления необходимо одновременно передать сообщения.
В целях разграничения передаваемых по шине данных CAN сообщений по степени срочности для отдельных сообщений предусмотрены различные приоритеты. Угол опережения зажигания, например, имеет очень высокий приоритет, значения пробуксовки — средний, а температура наружного воздуха — низший приоритет. Приоритет, с которым сообщение передаётся по шине данных CAN, определяет идентификатор (адрес) соответствующего сообщения.
Идентификатор, соответствующий меньшему двоичному числу, имеет более высокий приоритет, и наоборот (чем больше нулей в идентификаторе (битов нулевых) тем больше приоритет). Протокол шины данных CAN основывается на двух логических состояниях: биты являются или «рецессивными» (логическая «1» — единица), или «доминантными» (логический «О» — ноль).
Если доминантный бит передаётся как минимум одним модулем шины, то рецессивные биты, передаваемые другими модулями, перезаписываются.
Для примера: Когда несколько блоков управления начинают одновременную передачу данных, то конфликт доступа к шине данных разрешается посредством «побитового арбитража запросов общего ресурса»с помощью соответствующих идентификаторов.
При передаче «поля идентификатора» блок-передатчик после каждого бита проверяет, обладает ли он ещё правом передачи, или уже другой блок управления передаёт по шине данных CAN сообщение с более высоким приоритетом. Если передаваемый первым блоком-передатчиком рецессивный бит перезаписывается доминантным битом другого блока- передатчика, то первый блок-передатчик утрачивает своё право передачи (арбитраж) и становится блоком-приёмником.
Первый блок управления (N 1) утрачивает арбитраж с 3-го бита.
Третий блок управления (N 3) утрачивает арбитраж с 7-го бита.
Второй блок управления (N 2) сохраняет право доступа к шине данных CAN и может передавать свое сообщение.
Другие блоки управления могут передавать свои сообщения по шине данных CAN только после того, как она освободится.
При этом право передачи опять будет предоставляться в соответствии с приоритетностью сообщения по шине данных CAN.
То есть, при использовании этого принципа «приоритетности», на шине данных CAN не должно происходить конфликта, если одновременно несколько устройств выставили различные логические уровни.
Виды существующих шин
(на примере VW, Audi, Opel, Mercedes)
Шина CAN силового агрегата (быстрая шина), позволяющая передавать информацию со скоростью 500 кбит/с. Она служит для связи между блоками управления на линии двигателя и трансмиссии.
Шина CAN системы «Комфорт» (медленная шина), позволяющая передавать информацию со скоростью 100 кбит/с. Она служит для связи между блоками управления, входящими в систему «Комфорт».
Виды шин по классификации Mercedes:
Шина CAN-С – «быстрая» шина силового агрегата.
Шина CAN-B – «медленная», салонная шина «комфорт».
Шина CAN-D – диагностическая шина (используется для диагностики).
В автомобилях, имеющих диагностику по CAN шине, в качестве шлюза всех трёх шин установлен блок ZGW (центральный интерфейс). Это на более современных Мерседесах с 2002 года выпуска.
Цветовая маркировка шин на Mercedes
«Быстрая» шина силового агрегата (500 кб/сек) – зелёный и зелёный с белой полосой.
Шина «комфорт» — коричневый и коричневый с чёрной полосой.
На рисунках в различного рода руководствах и справочниках, провода шин CAN, для наглядности, могут быть обозначены приблизительно таким образом:
Общими для всех систем является следующее:
- Системы выполняют одинаковые предписания по передаче данных, сформулированные в соответствующем протоколе.
- Для передачи сигналов используются два скрученных между собой провода (Twisted Pair),которые эффективно противостоят внешним помехам (например, такая необходимость существует при их расположении в моторном отсеке).
- Один и тот же сигнал передается трансивером блока управления через оба провода шины, но на различных уровнях напряжения; только в дифференциальном усилителе принимающего блока управления формируется единый (разностный и очищенный от помех) сигнал, поступающий на вход шины CAN принимающего блока управления (Шина дифференциальная и работает только за счёт разницы напряжений между линиями, а не между линией и корпусом автомобиля. Многие «тыкаются» относительно «массы» и удивляются:
Искал и нашел 12 вольт на медленной шине относительно кузова, откуда?!! Ведь в спецификациях написано 2,5 — 3,5 вольта?).
Области применения шины данных CAN
(применительно к Mercedes)
Для моторного отсека и салона применяются различные шинные системы CAN, которые отличаются друг от друга скоростью передачи данных.
Скорость передачи по шине данных CAN моторного отсека (CAN-С) составляет 500 Кбит/с, а шина данных CAN салона (CAN-B) вследствие меньшего количества особо срочных сообщений обладает гораздо меньшейскоростью передачи данных — 83 Кбит/с.
Обмен данными между обеими шинными системами осуществляется через так называемые «межсетевые шлюзы», т.е. блоки управления, подключенные к обеим шинам данных.
CAN-C (шина данных CAN моторного отсека)
В оконечном блоке управления с каждой стороны установлен так называемый согласующий резистор шины данных с сопротивлением 120 Ком, подключённый между обеими проводами шины данных.
Шина данных CAN моторного отсека активирована только при включенном зажигании.
CAN-B (шина данных CAN салона)
Некоторые блоки управления, подключённые к шине данных CAN салона, активируются независимо от включения зажигания (например, система центральной блокировки).
Поэтому шина данных салона должна находиться в режиме функциональной готовности даже при выключенном зажигании (то есть, возможность передачи пакетов данных должна быть обеспечена и при выключенном зажигании).
Для максимально возможного снижения энергопотребления в состоянии покоя шина данных CAN переходит в режим «пассивного ожидания» при отсутствии передаваемых пакетов данных и активируется снова только при последующем доступе к ней.
Если в режиме «пассивного ожидания» шины данных CAN салона какой-либо блок управления (например, потолочная блок-панель управления (N70) передаёт сообщение по шине данных CAN, то его принимает только ведущий системный модуль (например, блок управления EZS (N73)
Соответствующий ведущий блок управления сохраняет это сообщение в памяти и посылает сигнал активации («Wake-up») на все блоки управления, подключённые к шине данных CAN салона.
При выполнении активации блок управления (N73) проверяет наличие всех абонентов шины данных CAN, после чего передаёт сохранённое ранее в памяти сообщение.
Топология шины CAN
Схема соединения шины CAN называется «топологией».
Или: «набор определенных правил, по которым к шине подключаются различные устройства».
Она зависит от модели конкретного автомобиля и Производителя.
Например, звездообразная топология запатентованная фирмой Daimler-Benz. Эта топология позволяет уменьшить резонансные проблемы в линии.
CAN контроллеры соединяются с помощью шины, которая имеет как минимум два провода CAN H и CAN L , по которым передаются сигналы при помощи специализированных ИМС приемо-передатчиков. Кроме того, ИМС приемо- передатчиков реализуют дополнительные сервисные функции:
- Регулировка скорости нарастания входного сигнала путем изменением тока на входе.
- Встроенная схема ограничения тока защищает выходы передатчиков от повреждения при возможных замыканиях линий CAN_H и CAN_L с цепями питания , а также от кратковременного повышения напряжения на этих линиях.
- Внутренняя тепловая защита.
- Режим пониженного энергопотребления, в котором приемники продолжают сообщать контроллеру о состоянии шины для того, чтобы при обнаружении на шине информационных сигналов он мог вывести приемопередатчики в нормальный режим работы.
Наиболее широкое распространение получили два типа приемоперадатчиков (трансиверов):
- «High Speed» приемопередатчики (ISO 11898-2),
- «Fault Tolerant» приемопередатчики
Трансиверы, выполненные в соответствии со стандартом
«High-Speed» (ISO11898-2), наиболее просты, дешевы и дают возможность передавать данные со скоростью до 1 Мбит/c.
«Fault-Tolerant» приемопередатчики (не чувствительные к повреждениям на шине) позволяют построить высоконадежную малопотребляющую сеть со скоростями передачи данных не выше 125 кбит/c.
ПРАКТИЧЕСКАЯ РАБОТА
Теперь, когда мы немного ознакомились с понятием «шина данных CAN», можно коротко рассказать о том, как проводилась практическая работа по обнаружению и устранению неисправности шины данных CAN на автомобиле Mercedes ML350 рейстанлинговой модели.
Ошибка была такая:
Этот автомобиль попал в Россию из Америки, был привезен на продажу, дефект оказался непонятным и «плавающим»: «автомобиль может 15-20 минут работать нормально, а потом на панели загорается значок BAS ESP и отключается вся шина данных».
Эти практические занятия проводились по учебному плану «Мастер-класс Mercedes» в компании BrainStorm, занятия проводил Дереновский Максим Васильевич (на фото вверху он слева: снимает разъем моторного блока).
До этого момента автомобиль уже пытались ремонтировать в другой мастерской. Там поменяли «по показаниям» (?) блок BAS ESP, что не помогло устранить неисправность.
Тогда им посоветовали «прокинуть» два провода шины CAN минуя крыло автомобиля.
(Эта неисправность – гниение проводов на этом крыле и выход их из строя, является конструктивно-технологической недоработкой фирмы).
Тоже не помогло. И тогда автомобиль был доставлен на эти практические занятия с целью найти и устранить неисправность.
Для поиска неисправности применили два рекомендуемых метода:
- Проверка шины CAN по сопротивлению
- Поочередное отключение блоков схемы
Проверка по сопротивлениям
Шина представляет собой два провода витой пары.
Образно: «имеет начало и конец», которыми являются какие-либо два блока. В этих конечных блоках находятся согласующие сопротивления («терминаторы»,- разг.), номиналом 120 Ом.
Следовательно:
- Если шина исправна и оконечные блоки подключены, то на шине мы увидим сопротивление 60 Ом (два по 120 в параллель).
- Если есть обрыв на одном из конечных блоков — шина будет звониться 120 Ом, и более 120 Ом, если конечных блоков нет вообще.
Подключенные в параллель блоки мультиметром (по сопротивлению) не контролируются.
В ML350 один из конечных блоков будет моторный, второй, в зависимости от года выпуска, вероятнее всего AAM, EAM или EZS.
Другие проверки
Определение КЗ (короткого замыкания) в шине данных CAN – определенно сложная задача. Как можно поступить:
- Визуально осмотреть провода с целью выявления и определения внешних повреждений
- Расстыковать разъемы блоков управления и проверить, не погнуты ли контактные штифты в одном и втором разъеме, не попали ли туда посторонние предметы (грязь, кусочки проводов и т.д)
- Попробовать локализовать поиск неисправности и разделить шину данных CAN на короткие участки, последовательно проверяя каждый из них
Отключение блоков
Одним из обучаемых было предложено начать проверку с отключения стеклоподъемников: «Он же на CAN «висит».
Неправильно. Стеклоподъемники «висят» на «медленной» шине и даже «если сильно захотят», все-равно «не положат «быструю» шину».
Начали отключать другие блоки по «быстрой» шине. Их достаточно много…
На блоке EGS (управление коробкой), расположеный справа в ногах у водителя, было, как обычно, обнаружено масло.
Именно масло иногда является причиной неисправности этого блока.
Откуда оно там появляется – трудно сказать, но как вариант, — « согласно «эффекта каппилярности» масло из коробки поднимается по проводам и через неплотности уплотнений просачивается и на блок и вовнутрь его, привнося ошибку».
Эта ошибка конструктивная: некачественные уплотнения жгута проводов к соленоидам в коробке АКПП. По жгуту оно и поднимается в электронный блок.
Блок ААМ – тоже оказался исправным.
Кстати, если уж заговорили о нем:
- по причине «программного сбоя», у него часто «слетает» радиоканал ключей зажигания. После «перезаливки» блока работоспособность восстанавливается.
- Может «слететь» роллинг ключей ( автомобиль не запускается, не видит ключа)
Виной «слёта» не только радиоканала , но и роллинга самих ключей , могут быть проблемы с питанием. Прокрутка двигателя на слабом аккумуляторе, плавная «посадка» АКБ на автомобиле , клеммы и т.д.
Но сама шина такой «слёт» не вызовет. Максимум сигнал разрешения запуска от блока ААМ не дойдёт до моторного и не будет включен даже стартер.
Отключение блоков тоже ничего не дало.
Проверили номера блока, которого заменили – все нормально, хотя тут тоже может быть путаница, так как существуют три варианта спецификаций для заказа:
— номер фирмы Mercedes
— номер BOSCH
— внутризаводской номер
Кодировки
Это достаточно важный момент, который нельзя упускать при проведении Диагностики.
Что такое «кодировки» для автомобиля:
Если просто, то это «единый язык, на котором блоки управления могут «разговаривать» между собой.
И так как автомобиль пришел из другой мастерской, а нам вообще неизвестна его история «жизни и ремонта», то проверять пришлось все кодировки.
И узнали, что в приборном щитке было прописано, что «BAS не интегрирован в ESP».
Сделали наоборот – «BAS интегрирован в ESP», перезапустили систему управления и ошибка С1020 перестала появляться.
Какой можно сделать вывод: причиной неисправности С1020 на данном автомобиле явилась неправильно закодированная комплектация автомобиля.
Однако не стоит считать, что «ошибка по CAN» является простойи её можно быстро найти и быстро устранить.
Как раз наоборот.
Как говорят специалисты: «Это «головняк» и разобраться с ним можно только при отличном знании «психологии Mercedes».
Это на бумаге и в этой статье вся работа по определению неисправности уложилась в несколько строчек.
В жизни все намного труднее, сложнее и длиннее…
ШОПИН А.В
© Легион-Автодата
Информационный центр компании BrainStorm
Апрель 2009 г.
Комментарии к статье: http://forum.autodata.ru/7/12832/
Вас также может заинтересовать:
Диагностика и ремонт: CAN — шина
Шина CAN системы «Комфорт»
Шина CAN — это страшно?
Промышленная сеть реального времени CAN представляет собой сеть с общей средой передачи данных. Это означает, что все узлы сети одновременно принимают сигналы передаваемые по шине. Невозможно послать сообщение какому-либо конкретному узлу. Все узлы сети принимают весь трафик передаваемый по шине. Однако, CAN-контроллеры предоставляют аппаратную возможность фильтрации CAN-сообщений.
Каждый узел состоит из двух составляющих. Это собственно CAN контроллер, который обеспечивает взаимодействие с сетью и реализует протокол, и микропроцессор (CPU).
Рис. 1. Топология сети CAN.
CAN контроллеры соединяются с помощью дифференциальной шины, которая имеет две линии — CAN_H (can-high) и CAN_L (can-low), по которым передаются сигналы. Логический ноль регистрируется, когда на линии CAN_H сигнал выше, чем на линии CAN_L. Логическая единица — в случае когда сигналы CAN_H и CAN_L одинаковы (отличаются менее чем на 0.5 В). Использование такой дифференциальной схемы передачи делает возможным работу CAN сети в очень сложных внешних условиях. Логический ноль — называется доминантным битом, а логическая единица — рецессивным. Эти названия отражают приоритет логической единицы и нуля на шине CAN. При одновременной передаче в шину лог. нуля и единицы, на шине будет зарегестрирован только логический ноль (доминантный сигнал), а логическая единица будет подавлена (рецессивный сигнал).
Типы сообщений сети CAN.
Данные в CAN передаются короткими сообщениями-кадрами стандартного формата. В CAN существуют четыре типа сообщений:
- Data Frame
- Remote Frame
- Error Frame
- Overload Frame
Data Frame — это наиболее часто используемый тип сообщения. Он состоит из следующих основных частей:
- поле арбитража (arbitration field) определяет приоритет сообщения в случае, когда два или более узлов одновременно пытаются передать данные в сеть. Поле арбитража состоит в свою очередь из:
- для стандарта CAN-2.0A, 11-битного идентификатора + 1 бит RTR (retransmit)
- для стандарта CAN-2.0B, 29-битного идентификатора + 1 бит RTR (retransmit)
Следует отметить, что поле идентификатора, несмотря на свое название никак не идентифицирует само по себе ни узел в сети, ни содержимое поля данных. Для Data кадра бит RTR всегда выставлен в логический ноль (доминантный сигнал).
- поле данных (data field) содержит от 0 до 8 байт данных
- поле CRC (CRC field) содержит 15-битную контрольную сумму сообщения, которая используется для обнаружения ошибок
- слот подтверждения (Acknowledgement Slot) (1 бит), каждый CAN-контроллер, который правильно принял сообщение посылает бит подтверждения в сеть. Узел, который послал сообщение слушает этот бит, и в случае если подтверждение не пришло, повторяет передачу. В случае приема слота подтверждения передающий узел может быть уверен лишь в том, что хотя бы один из узлов в сети правльно принял его сообщение.
Рис. 2. Data frame стандарта CAN 2.0A.
Remote Frame — это Data Frame без поля данных и с выставленным битом RTR (1 — рецессивные бит). Основное предназначение Remote кадра — это инициация одним из узлов сети передачи в сеть данных другим узлом. Такая схема позволяет уменьшить суммарный трафик сети. Однако, на практике Remote Frame сейчас используется редко (например, в DeviceNet Remote Frame вовсе не используется).
Error Frame — это сообщение которое явно нарушает формат солобщения CAN. Передача такого сообщения приводит к тому, что все узлы сети регистрируют ошибку формата CAN-кадра, и в свою очередь автоматически передают в сеть Error Frame. Результатом этого процесса является автоматическая повторная передача данных в сеть передающим узлом. Error Frame состоит из поля Error Flag, которое состоит из 6 бит одинакового значения (и таким образом Error frame нарушает проверку Bit Stuffing, см. ниже), и поля Error Delimiter, состоящее из 8 рецессивных битов. Error Delimiter дает возможность другим узлам сети обнаружив Error Frame послать в сеть свой Error Flag.
Overload Frame — повторяет структуру и логику работы Error кадра, с той разницей, что он используется перегруженным узлом, который в данный момент не может обработать поступающее сообщение, и поэтому просит при помощи Overload-кадра о повторной передаче данных. В настоящее время Overload-кадр практически не используется.
Контроль доступа к среде передачи (побитовый арбитраж).
Поле арбитража CAN-кадра используется в CAN для разрешения коллизий доступа к шине методом не деструктивного арбитража. Суть метода не деструктивного арбитража заключается в следующем. В случае, когда несколько контроллеров начинают одновременную передачу CAN кадра в сеть, каждый из них сравнивает, бит, который собирается передать на шину с битом, который пытается передать на шину конкурирующий контроллер. Если значения этих битов равны, оба контроллера передают следующий бит. И так происходит до тех пор, пока значения передаваемых битов не окажутся различными. Теперь контроллер, который передавал логический ноль (более приоритетный сигнал) будет продолжать передачу, а другой (другие) контроллер прервёт свою передачу до того времени, пока шина вновь не освободится. Конечно, если шина в данный момент занята, то контроллер не начнет передачу до момента её освобождения.
Рис. 3. Побитовый арбитраж на шине CAN.
Методы обнаружения ошибок.
CAN протокол определяет пять способов обнаружения ошибок в сети:
- Bit monitoring
- Bit stuffing
- Frame check
- ACKnowledgement Check
- CRC Check
Bit monitoring — каждый узел во время передачи битов в сеть сравнивает значение передаваемого им бита со значением бита которое появляется на шине. Если эти значения не совпадают, то узел генерирует ошибку Bit Error. Естественно, что во время арбитража на шине (передача поля арбитража в шину) этот механизм проверки ошибок отключается.
Bit stuffing — когда узел передает последовательно в шину 5 бит с одинаковым значением, то он добавляет шестой бит с противоположным значением. Принимающие узлы этот дополнительный бит удаляют. Если узел обнаруживает на шине больше 5 последовательных бит с одинаковым значением, то он генерирует ошибку Stuff Error.
Frame Check — некоторые части CAN-сообщения имеют одинаковое значение во всех типах сообщений. Т.е. протокол CAN точно определяет какие уровни напряжения и когда должны появляться на шине. Если формат сообщений нарушается, то узлы генерируют ошибку Form Error.
ACKnowledgement Check — каждый узел получив правильное сообщение по сети посылает в сеть доминантный (0) бит. Если же этого не происходит, то передающий узел регистрирует ошибку Acknowledgement Error.
CRC Check — каждое сообщение CAN содержит CRC сумму, и каждый принимающий узел подсчитывает значение CRC для каждого полученного сообщения. Если подсчитанное значение CRC суммы, не совпадает со значением CRC в теле сообщения, принимающий узел генерирует ошибку CRC Error.
Механизм ограничения ошибок (Error confinement).
Каждый узел сети CAN, во время работы пытается обнаружить одну из пяти возможных ошибок. Если ошибка обнаружена, узел передает в сеть Error Frame, разрушая тем самым весь текущий трафик сети (передачу и прием текущего сообщения). Все остальные узлы обнаруживают Error Frame и принимают соответствующие действия (сбрасывают принятое сообщение). Кроме того, каждый узел ведет два счетчика ошибок: Transmit Error Counter (счетчик ошибок передачи) и Receive Error Counter (счетчик ошибок приема). Эти счетчики увеличиваются или уменьшаются в соответствие с несколькими правилами. Сами правила управления счетчиками ошибок достаточно сложны, но сводятся к простому принципу, ошибка передачи приводит к увеличению Transmit Error счетчика на 8, ошибка приема увеличивает счетчик Receive Error на 1, любая корректная передача/прием сообщения уменшают соответствующий счетчик на 1. Эти правила приводят к тому, что счетчик ошибок передачи передающего узла увеличивается быстрее, чем счетчик ошибок приема принимающих узлов. Это правило соответствует предположению о большой вероятности того, что источником ошибок является передающий узел.
Каждый узел CAN сети может находится в одном из трех состояний. Когда узел стартует он находится в состоянии Error Active. Когда, значение хотя бы одного из двух счетчиков ошибок превышает предел 127, узел переходит в состояние Error Passive. Когда значение хотя бы одного из двух счетчиков превышает предел 255, узел переходит в состояние Bus Off.
Узел находящийся в состоянии Error Active в случае обнаружения ошибки на шине передает в сеть Active Error Flags. Active Error Flags сотстоит из 6 доминантных бит, поэтому все узлы его регистрируют. Узел в состоянии Passive Error передает в сеть Passive Error Flags при обнаружении ошибки в сети. Passive Error Flags состоит из 6 рецессивных бит, поэтому остальные узлы сети его не замечают, и Passive Error Flags лишь приводит к увеличению Error счетчика узла. Узел в состоянии Bus Off ничего не передает в сеть (не только Error кадры, но вообще никакие другие).
Адресация и протоколы высокого уровня
В CAN не существует явной адресации сообщений и узлов. Протокол CAN нигде не указывает что поле арбитража (Identification field + RTR) должно использоваться как идентификатор сообщения или узла. Таким образом, идентификаторы сообщений и адреса узлов могут находится в любом поле сообщения (в поле арбитража или в поле данных, или присутствовать и там, и там). Точно также протокол не запрещает использовать поле арбитража для передачи данных.
Утилизация поля арбитража и поля данных, и распределение адресов узлов, идентификаторов сообщений и приоритетов в сети является предметом рассмотрений так называемых протоколов высокого уровня (HLP — Higher Layer Protocols). Название HLP отражает тот факт, что протокол CAN описывает только два нижних уровня эталонной сетевой модели ISO/OSI, а остальные уровни описываются протоколами HLP.
Рис. 4. Логическая структура протокола CAN.
Существует множество таких высокоуровневых протоколов. Наиболее распространенные из них это:
- DeviceNet
- CAL/CANopen
- SDS
- CanKingdom
Физичекий уровень протокола CAN
Физический уровень (Physical Layer) протокола CAN определяет сопротивление кабеля, уровень электрических сигналов в сети и т.п. Существует несколько физических уровней протокола CAN (ISO 11898, ISO 11519, SAE J2411).
В подавляющем большинстве случаев используется физический уровень CAN определенный в стандарте ISO 11898. ISO 11898 в качестве среды передачи определяет двухпроводную дифференциальную линию с импедансом (терминаторы) 120 Ом (допускается колебание импеданса в пределах от 108 Ом до 132 Ом. Физический уровень CAN реализован в специальных чипах — CAN приемо-передатчиках (transceivers), которые преобразуют обычные TTL уровни сигналов используемых CAN-контроллерами в уровни сигналов на шине CAN. Наиболее распространенный CAN приемо-передатчик — Phillips 82C250, который полностью соответствует стандарту ISO 11898.
Махимальная скорость сети CAN в соответствие с протоколом равна 1 Mbit/sec. При скорости в 1 Mbit/sec максимальная длина кабеля равна примерно 40 метрам. Ограничение на длину кабеля связано с конечной скоростью света и механизмом побитового арбитража (во время арбитража все узлы сети должны получать текущий бит передачи одновременно, те сигнал должен успеть распространится по всему кабелю за единичный отсчет времени в сети. Соотношение между скоростью передачи и максимальной длиной кабеля приведено в таблице:
скорость передачи | максимальная длина сети |
1000 Кбит/сек | 40 метров |
500 Кбит/сек | 100 метров |
250 Кбит/сек | 200 метров |
125 Кбит/сек | 500 метров |
10 Кбит/сек | 6 километров |
Разъемы для сети CAN до сих пор НЕ СТАНДАРТИЗОВАНЫ. Каждый протокол высокого уровня обычно определяет свой тип разъемов для CAN-сети.
Error Detection
There are five types of CAN error can introduce on CAN-BUS by receiver and transmitter node-
- Bit error
- Stuff error
- CRC error
- Acknowledgment error
- Form Error
Bit Error(Introduce By Transmitter)
As I discussed in Bit Monitoring chapter, Every transmitter node reads back its transmitted bit from CAN line along with other ECUs But if it will not get read bit same as it transmitted then transmitted node stop the further transmission and introduce an error frame on CAN line. This error is known as bit error.
Сначала немного о том, что же такое эта шина и как она выглядит:
Шина данных CAN – это обычная «витая пара», вот как на фото справа. Это специально скрученный двухжильный провод.
К этой витой паре подключены различные блоки управления – их называют «пользователи». Передача данных идет одновременно по двум проводам этой «витой пары». Важно знать, что логические уровни шины имеют зеркальное отображение: если по одному проводу передается уровень логического «нуля», то по другому проводу одновременно передается уровень логической «единицы».
Почему используется двухпроводная схема передачи данных:
- для стабильности распознавания ошибок
- для увеличения и повышения надёжности работы по передаче данных
Предположим, что пик напряжения возникнет только на одном проводе (например, вследствии проблем по электромагнитной совместимости).
И тогда блоки-приёмники могут идентифицировать это как ошибку и проигнорировать данный пик напряжения.
Если же произойдет короткое замыкание или обрыв одного из двух проводов, то благодаря интегрированной программно-аппаратной концепции надёжности произойдёт переключение в режим работы по однопроводной схеме, и повреждённая передающая линия использоваться не будет.
Так вот, продолжим о «уменьшении количества соединений между устройствами шины CAN»:
- Провода от датчиков проводятся только к ближайшему блоку управления, который преобразует измеренные значения в пакет данных и передаёт его на шину данных CAN.
- Уменьшение количества штекерных соединений
- Уменьшение количества контактных выводов на блоках управления
- Сигналами с одного датчика (например, с датчика температуры охлаждающей жидкости) могут воспользоваться различные системы
Пакет данных шины CAN
А сейчас давайте посмотрим, что представляет из себя «пакет данных» шины CAN. Он состоит из семи последовательных полей (отрезков).
На приведенном внизу рисунке показано восемь полей, последнее Intermission– «Пауза между пакетами данных» и оно не входит в Data Frame:
Цифры в каждом поле показывают количество битов, используемых в каждом сообщении (пакете данных).
Описание полей пакета данных<
Start of Frame
Маркирует начало сообщения (стартов, бит) и синхронизирует все модули шины.
Arbitration Field
Это поле состоит из идентификатора адреса в 11 бит и 1 контрольного бита и запрос (Remote Transmission Request-Bit).
Этот контрольный бит маркирует пакет как Data Frame (фрейм сообщения) или как Remote Frame (фрейм запроса) без байтов данных.
Control Field (управл. биты)
Поле управления (6 бит) содержит бит IDE (Identifier Extension Bit) для распознавания стандартного и расширенного формата, резервный бит для последующих расширений и — в последних 4 битах — количество байтов данных, заложенных в Data Field (поле данных).
Data Field (данные)
Поле данных может содержать от 0 до 8 байт данных. Сообщение по шине данных CAN длиной 0 байт используется для синхронизации распределённых процессов
CRC Field (контрольное поле)
Поле CRC (Cyclic-Redundancy-Check Field) содержит 16 бит и служит для контрольного распознавания ошибок при передаче данных.
АСК Field (подтверждение приема)
Поле АСК (Acknowledgement Field) содержит сигнал квитирования всех блоков-приёмников, получивших сообщение по шине данных CAN без ошибок (квитирование — подтверждение приема, отправка квитанции — управляющее сообщение или сигнал, выдаваемые в ответ на принятое сообщение).
End of Frame (конец фрейма)
Маркирует конец пакета данных
Intermission (интервал)
Интервал между двумя пакетами данных. Интервал должен составлять не менее 3 битов. После этого любой блок управления может передавать следующий пакет данных.
IDLE (режим покоя)
Если ни один блок управления не передаёт сообщений, то шина данных CAN остается в режиме покоя до передачи следующего пакета данных.
Прием и передача данных
Шина данных CAN является двунаправленной шиной — любой из подключённых блоков может, как передавать, так и принимать сообщения.
На приведенном выше рисунке слово Dashboard можно заменить на привычное (разговорное и чаще применяемое) «Шлюз».
К примеру на некоторых автомобилях, шлюзом между быстрой и медленной шиной является панель приборов (Ауди,Фольксваген), у Мерседеса функции шлюза выполняет EZS (замок зажигания), хотя сама панель работает в двух сетях, для отображения как салонной, так и моторной информации.
На следующих поколениях автомобилей с 2002 года начали использовать отдельный блок ZGW (центральный интерфейс), который выполняет функции шлюза, хранит кодировки комплектации авто и через него работает диагностика по CAN шине (именно по «чистому» CAN – без к-линий).
Шины данных CAN существуют с различными скоростями передачи данных и их иногда называют «быстрая шина» (High-Speed-CAN) и «медленная шина» (Low- Speed-CAN).
Например, High-Speed-CAN – это шина двигателя, АКПП и т.п., имеет скорость передачи данных 500 Кбит
Low-Speed-CAN — это шины для управления стеклоподъемниками, кондиционером и т.п. , со скоростью передачи данных 100 Кбит.
Порядок и формат передачи и приёма сообщений пользователями определён в протоколе обмена данных.
Существенным отличительным признакомшины данных CAN по сравнению с другими шинными системами, базирующимися на принципе абонентской адресации, является соотнесённая с сообщением адресация.
- каждому сообщению по шине данных CAN присваивается его постоянный адрес (идентификатор), маркирующий содержание этого сообщения (например: температура охлаждающей жидкости).
- протокол шины данных CAN допускает передачу до 2048 различных сообщений, причём адреса с 2033 по 2048 являются постоянно закреплёнными. Объём данных одного сообщения по шине данных CAN составляет 8 байт.
Блок-приёмник обрабатывает только те сообщения(пакеты данных), которые сохранены в его списке принимаемых по шине данных CAN сообщений (контроль назначения сообщения).
Пакеты данных могут передаваться только в том случае, если шина данных CAN свободна (то есть, если после передачи последнего пакета данных последовал интервал в 3 бита, и никакой из блоков управления не начинает передавать сообщение). При этом логический уровень шины данных является рецессивным (логическая «1»)
Шина данных CAN: РАСШИРЕННЫЕ ВОЗМОЖНОСТИ проведения Диагностики
Так как сигналы с одного датчика (например, датчика температуры, датчика скорости и др.), может использоваться различными системами, то в том случае, если наличие неисправности отображают все использующие данный сигнал системы, неисправным является, как правило, датчик или блок управления, обрабатывающий его сигналы.
Если же сообщение о неисправности поступает только от одной системы, хотя данный сигнал используется и другими системами, то причина неисправности, в большинстве случаев, заключается в обрабатывающем этот сигнал блоке управления или сервомеханизме
Высокий уровень защиты передаваемых данных
Высокий уровень защиты передаваемых данных беспечивается даже при сильных помехах.
При этом обеспечивается высокая скорость передачи данных (до 1 Mbit/s)
За счет чего это достигается:
- Механизм обнаружения ошибок Механизм исправления ошибок
- Сохранение работоспособности при высоком уровне электромагнитных помех
- Распределение приоритетов команд
- Работа в реальном режиме времени
Распознавание ошибок
Помехи при передаче данных могут приводить к возникновению ошибок. Такие ошибки при передаче данных надо распознавать и устранять. Протокол шины данных CAN различает два уровня распознавания ошибок:
- механизмы на уровне Data Frame (фрейм сообщения)
- механизмы на уровне битов
Cyclic-Redundancy-Check:
на основе передаваемого по шине данных CAN сообщения модуль-передатчик рассчитывает контрольные биты, которые передаются вместе с пакетом данных в поле «CRC Field». Модуль-приёмник заново вычисляет эти контрольные биты на основе принятого по шине данных CAN сообщения и сравнивает их с контрольными битами, полученными вместе с этим сообщением.
Frame Check:
Этот механизм проверяет структуру передаваемого фрейма, то есть перепроверяются битовые поля с заданным фиксированным форматом и длина фрейма.
Распознанные функцией Frame Check ошибки обозначаются как ошибки формата.
Механизмы на уровне битов
Мониторинг
Каждый модуль при передаче сообщения отслеживает логический уровень шины данных CAN и на основе этого распознаёт различия между переданным и принятым битом. Благодаря этому обеспечивается надёжное распознавание глобальных и возникающих в блоке-передатчике локальных ошибок по битам.
Bit Stuffing:
В каждом пакете данных между полем «Start of Frame» и концом поля «CRC Field» должно быть не более 5 последовательных битов с одинаковой полярностью. После каждой последовательности из 5 одинаковых битов блок-передатчик добавляет в поток битов один бит с противоположной полярностью. Блоки- приёмники, в свою очередь, удаляют эти биты после приёма сообщения по шине данных CAN.
Механизм устранения ошибок
Если какой-либо модуль шины данных CAN распознаёт ошибку, то он прерывает текущий процесс передачи данных, отправляя сообщение об ошибке. Сообщение об ошибке состоит из 6 доминантных битов.
Благодаря этому сообщению об ошибке все подключённые к шине данных CAN блоки управления оповещаются о возникшей локальной ошибке и, соответственно, игнорируют переданное сообщение.
После короткой паузы все блоки управления снова смогут передавать сообщения по шине данных CAN, причём первым опять будет отправлено сообщение с наивысшим приоритетом (мотор, АКПП и т.п.).
Блок управления, чьё сообщение по шине данных CAN обусловило возникновение ошибки, также начинает повторную передачу своего сообщения (Automatic Repeat Request — автоматический повтор запроса).
ПРИОРИТЕТЫ шины данных CAN
«ПРИНЦИП ПРИОРИТЕТНОСТИ»
Если несколько блоков управления одновременно начинают передавать сообщения, то вступает в силу «принцип приоритетности», согласно которому сообщение по шине данных CAN с наивысшим приоритетом будет передаваться первымбез потери времени или битов (арбитраж доступа к шине данных).
Каждый блок управления, утрачивающий право арбитража, автоматически переключается на приём и повторяет свою попытку отправить сообщение только после того, как шина данных CAN снова освободится.
Кроме пакетов данных существует также пакет запроса определённого сообщения по шине данных CAN. В этом случае блок управления, который может предоставить запрашиваемый пакет данных, реагирует на изданный запрос.
Для обработки данных в режиме реального времени должна быть обеспечена возможность их быстрой передачи. Это предполагает не только наличие линии с высокой физической скоростью передачи данных, но и требует также оперативного предоставления доступа к шине данных CAN, если нескольким блокам управления необходимо одновременно передать сообщения.
В целях разграничения передаваемых по шине данных CAN сообщений по степени срочности для отдельных сообщений предусмотрены различные приоритеты. Угол опережения зажигания, например, имеет очень высокий приоритет, значения пробуксовки — средний, а температура наружного воздуха — низший приоритет. Приоритет, с которым сообщение передаётся по шине данных CAN, определяет идентификатор (адрес) соответствующего сообщения.
Идентификатор, соответствующий меньшему двоичному числу, имеет более высокий приоритет, и наоборот (чем больше нулей в идентификаторе (битов нулевых) тем больше приоритет). Протокол шины данных CAN основывается на двух логических состояниях: биты являются или «рецессивными» (логическая «1» — единица), или «доминантными» (логический «О» — ноль).
Если доминантный бит передаётся как минимум одним модулем шины, то рецессивные биты, передаваемые другими модулями, перезаписываются.
Для примера: Когда несколько блоков управления начинают одновременную передачу данных, то конфликт доступа к шине данных разрешается посредством «побитового арбитража запросов общего ресурса»с помощью соответствующих идентификаторов.
При передаче «поля идентификатора» блок-передатчик после каждого бита проверяет, обладает ли он ещё правом передачи, или уже другой блок управления передаёт по шине данных CAN сообщение с более высоким приоритетом. Если передаваемый первым блоком-передатчиком рецессивный бит перезаписывается доминантным битом другого блока- передатчика, то первый блок-передатчик утрачивает своё право передачи (арбитраж) и становится блоком-приёмником.
Первый блок управления (N 1) утрачивает арбитраж с 3-го бита.
Третий блок управления (N 3) утрачивает арбитраж с 7-го бита.
Второй блок управления (N 2) сохраняет право доступа к шине данных CAN и может передавать свое сообщение.
Другие блоки управления могут передавать свои сообщения по шине данных CAN только после того, как она освободится.
При этом право передачи опять будет предоставляться в соответствии с приоритетностью сообщения по шине данных CAN.
То есть, при использовании этого принципа «приоритетности», на шине данных CAN не должно происходить конфликта, если одновременно несколько устройств выставили различные логические уровни.
Виды существующих шин
(на примере VW, Audi, Opel, Mercedes)
Шина CAN силового агрегата (быстрая шина), позволяющая передавать информацию со скоростью 500 кбит/с. Она служит для связи между блоками управления на линии двигателя и трансмиссии.
Шина CAN системы «Комфорт» (медленная шина), позволяющая передавать информацию со скоростью 100 кбит/с. Она служит для связи между блоками управления, входящими в систему «Комфорт».
Виды шин по классификации Mercedes:
Шина CAN-С – «быстрая» шина силового агрегата.
Шина CAN-B – «медленная», салонная шина «комфорт».
Шина CAN-D – диагностическая шина (используется для диагностики).
В автомобилях, имеющих диагностику по CAN шине, в качестве шлюза всех трёх шин установлен блок ZGW (центральный интерфейс). Это на более современных Мерседесах с 2002 года выпуска.
Цветовая маркировка шин на Mercedes
«Быстрая» шина силового агрегата (500 кб/сек) – зелёный и зелёный с белой полосой.
Шина «комфорт» — коричневый и коричневый с чёрной полосой.
На рисунках в различного рода руководствах и справочниках, провода шин CAN, для наглядности, могут быть обозначены приблизительно таким образом:
Общими для всех систем является следующее:
- Системы выполняют одинаковые предписания по передаче данных, сформулированные в соответствующем протоколе.
- Для передачи сигналов используются два скрученных между собой провода (Twisted Pair),которые эффективно противостоят внешним помехам (например, такая необходимость существует при их расположении в моторном отсеке).
- Один и тот же сигнал передается трансивером блока управления через оба провода шины, но на различных уровнях напряжения; только в дифференциальном усилителе принимающего блока управления формируется единый (разностный и очищенный от помех) сигнал, поступающий на вход шины CAN принимающего блока управления (Шина дифференциальная и работает только за счёт разницы напряжений между линиями, а не между линией и корпусом автомобиля. Многие «тыкаются» относительно «массы» и удивляются:
Искал и нашел 12 вольт на медленной шине относительно кузова, откуда?!! Ведь в спецификациях написано 2,5 — 3,5 вольта?).
Области применения шины данных CAN
(применительно к Mercedes)
Для моторного отсека и салона применяются различные шинные системы CAN, которые отличаются друг от друга скоростью передачи данных.
Скорость передачи по шине данных CAN моторного отсека (CAN-С) составляет 500 Кбит/с, а шина данных CAN салона (CAN-B) вследствие меньшего количества особо срочных сообщений обладает гораздо меньшейскоростью передачи данных — 83 Кбит/с.
Обмен данными между обеими шинными системами осуществляется через так называемые «межсетевые шлюзы», т.е. блоки управления, подключенные к обеим шинам данных.
CAN-C (шина данных CAN моторного отсека)
В оконечном блоке управления с каждой стороны установлен так называемый согласующий резистор шины данных с сопротивлением 120 Ком, подключённый между обеими проводами шины данных.
Шина данных CAN моторного отсека активирована только при включенном зажигании.
CAN-B (шина данных CAN салона)
Некоторые блоки управления, подключённые к шине данных CAN салона, активируются независимо от включения зажигания (например, система центральной блокировки).
Поэтому шина данных салона должна находиться в режиме функциональной готовности даже при выключенном зажигании (то есть, возможность передачи пакетов данных должна быть обеспечена и при выключенном зажигании).
Для максимально возможного снижения энергопотребления в состоянии покоя шина данных CAN переходит в режим «пассивного ожидания» при отсутствии передаваемых пакетов данных и активируется снова только при последующем доступе к ней.
Если в режиме «пассивного ожидания» шины данных CAN салона какой-либо блок управления (например, потолочная блок-панель управления (N70) передаёт сообщение по шине данных CAN, то его принимает только ведущий системный модуль (например, блок управления EZS (N73)
Соответствующий ведущий блок управления сохраняет это сообщение в памяти и посылает сигнал активации («Wake-up») на все блоки управления, подключённые к шине данных CAN салона.
При выполнении активации блок управления (N73) проверяет наличие всех абонентов шины данных CAN, после чего передаёт сохранённое ранее в памяти сообщение.
Топология шины CAN
Схема соединения шины CAN называется «топологией».
Или: «набор определенных правил, по которым к шине подключаются различные устройства».
Она зависит от модели конкретного автомобиля и Производителя.
Например, звездообразная топология запатентованная фирмой Daimler-Benz. Эта топология позволяет уменьшить резонансные проблемы в линии.
CAN контроллеры соединяются с помощью шины, которая имеет как минимум два провода CAN H и CAN L , по которым передаются сигналы при помощи специализированных ИМС приемо-передатчиков. Кроме того, ИМС приемо- передатчиков реализуют дополнительные сервисные функции:
- Регулировка скорости нарастания входного сигнала путем изменением тока на входе.
- Встроенная схема ограничения тока защищает выходы передатчиков от повреждения при возможных замыканиях линий CAN_H и CAN_L с цепями питания , а также от кратковременного повышения напряжения на этих линиях.
- Внутренняя тепловая защита.
- Режим пониженного энергопотребления, в котором приемники продолжают сообщать контроллеру о состоянии шины для того, чтобы при обнаружении на шине информационных сигналов он мог вывести приемопередатчики в нормальный режим работы.
Наиболее широкое распространение получили два типа приемоперадатчиков (трансиверов):
- «High Speed» приемопередатчики (ISO 11898-2),
- «Fault Tolerant» приемопередатчики
Трансиверы, выполненные в соответствии со стандартом
«High-Speed» (ISO11898-2), наиболее просты, дешевы и дают возможность передавать данные со скоростью до 1 Мбит/c.
«Fault-Tolerant» приемопередатчики (не чувствительные к повреждениям на шине) позволяют построить высоконадежную малопотребляющую сеть со скоростями передачи данных не выше 125 кбит/c.
ПРАКТИЧЕСКАЯ РАБОТА
Теперь, когда мы немного ознакомились с понятием «шина данных CAN», можно коротко рассказать о том, как проводилась практическая работа по обнаружению и устранению неисправности шины данных CAN на автомобиле Mercedes ML350 рейстанлинговой модели.
Ошибка была такая:
Этот автомобиль попал в Россию из Америки, был привезен на продажу, дефект оказался непонятным и «плавающим»: «автомобиль может 15-20 минут работать нормально, а потом на панели загорается значок BAS ESP и отключается вся шина данных».
Эти практические занятия проводились по учебному плану «Мастер-класс Mercedes» в компании BrainStorm, занятия проводил Дереновский Максим Васильевич (на фото вверху он слева: снимает разъем моторного блока).
До этого момента автомобиль уже пытались ремонтировать в другой мастерской. Там поменяли «по показаниям» (?) блок BAS ESP, что не помогло устранить неисправность.
Тогда им посоветовали «прокинуть» два провода шины CAN минуя крыло автомобиля.
(Эта неисправность – гниение проводов на этом крыле и выход их из строя, является конструктивно-технологической недоработкой фирмы).
Тоже не помогло. И тогда автомобиль был доставлен на эти практические занятия с целью найти и устранить неисправность.
Для поиска неисправности применили два рекомендуемых метода:
- Проверка шины CAN по сопротивлению
- Поочередное отключение блоков схемы
Проверка по сопротивлениям
Шина представляет собой два провода витой пары.
Образно: «имеет начало и конец», которыми являются какие-либо два блока. В этих конечных блоках находятся согласующие сопротивления («терминаторы»,- разг.), номиналом 120 Ом.
Следовательно:
- Если шина исправна и оконечные блоки подключены, то на шине мы увидим сопротивление 60 Ом (два по 120 в параллель).
- Если есть обрыв на одном из конечных блоков — шина будет звониться 120 Ом, и более 120 Ом, если конечных блоков нет вообще.
Подключенные в параллель блоки мультиметром (по сопротивлению) не контролируются.
В ML350 один из конечных блоков будет моторный, второй, в зависимости от года выпуска, вероятнее всего AAM, EAM или EZS.
Другие проверки
Определение КЗ (короткого замыкания) в шине данных CAN – определенно сложная задача. Как можно поступить:
- Визуально осмотреть провода с целью выявления и определения внешних повреждений
- Расстыковать разъемы блоков управления и проверить, не погнуты ли контактные штифты в одном и втором разъеме, не попали ли туда посторонние предметы (грязь, кусочки проводов и т.д)
- Попробовать локализовать поиск неисправности и разделить шину данных CAN на короткие участки, последовательно проверяя каждый из них
Отключение блоков
Одним из обучаемых было предложено начать проверку с отключения стеклоподъемников: «Он же на CAN «висит».
Неправильно. Стеклоподъемники «висят» на «медленной» шине и даже «если сильно захотят», все-равно «не положат «быструю» шину».
Начали отключать другие блоки по «быстрой» шине. Их достаточно много…
На блоке EGS (управление коробкой), расположеный справа в ногах у водителя, было, как обычно, обнаружено масло.
Именно масло иногда является причиной неисправности этого блока.
Откуда оно там появляется – трудно сказать, но как вариант, — « согласно «эффекта каппилярности» масло из коробки поднимается по проводам и через неплотности уплотнений просачивается и на блок и вовнутрь его, привнося ошибку».
Эта ошибка конструктивная: некачественные уплотнения жгута проводов к соленоидам в коробке АКПП. По жгуту оно и поднимается в электронный блок.
Блок ААМ – тоже оказался исправным.
Кстати, если уж заговорили о нем:
- по причине «программного сбоя», у него часто «слетает» радиоканал ключей зажигания. После «перезаливки» блока работоспособность восстанавливается.
- Может «слететь» роллинг ключей ( автомобиль не запускается, не видит ключа)
Виной «слёта» не только радиоканала , но и роллинга самих ключей , могут быть проблемы с питанием. Прокрутка двигателя на слабом аккумуляторе, плавная «посадка» АКБ на автомобиле , клеммы и т.д.
Но сама шина такой «слёт» не вызовет. Максимум сигнал разрешения запуска от блока ААМ не дойдёт до моторного и не будет включен даже стартер.
Отключение блоков тоже ничего не дало.
Проверили номера блока, которого заменили – все нормально, хотя тут тоже может быть путаница, так как существуют три варианта спецификаций для заказа:
— номер фирмы Mercedes
— номер BOSCH
— внутризаводской номер
Кодировки
Это достаточно важный момент, который нельзя упускать при проведении Диагностики.
Что такое «кодировки» для автомобиля:
Если просто, то это «единый язык, на котором блоки управления могут «разговаривать» между собой.
И так как автомобиль пришел из другой мастерской, а нам вообще неизвестна его история «жизни и ремонта», то проверять пришлось все кодировки.
И узнали, что в приборном щитке было прописано, что «BAS не интегрирован в ESP».
Сделали наоборот – «BAS интегрирован в ESP», перезапустили систему управления и ошибка С1020 перестала появляться.
Какой можно сделать вывод: причиной неисправности С1020 на данном автомобиле явилась неправильно закодированная комплектация автомобиля.
Однако не стоит считать, что «ошибка по CAN» является простойи её можно быстро найти и быстро устранить.
Как раз наоборот.
Как говорят специалисты: «Это «головняк» и разобраться с ним можно только при отличном знании «психологии Mercedes».
Это на бумаге и в этой статье вся работа по определению неисправности уложилась в несколько строчек.
В жизни все намного труднее, сложнее и длиннее…
ШОПИН А.В
© Легион-Автодата
Информационный центр компании BrainStorm
Апрель 2009 г.
Комментарии к статье: http://forum.autodata.ru/7/12832/
Вас также может заинтересовать:
Диагностика и ремонт: CAN — шина
Шина CAN системы «Комфорт»
Шина CAN — это страшно?
Промышленная сеть реального времени CAN представляет собой сеть с общей средой передачи данных. Это означает, что все узлы сети одновременно принимают сигналы передаваемые по шине. Невозможно послать сообщение какому-либо конкретному узлу. Все узлы сети принимают весь трафик передаваемый по шине. Однако, CAN-контроллеры предоставляют аппаратную возможность фильтрации CAN-сообщений.
Каждый узел состоит из двух составляющих. Это собственно CAN контроллер, который обеспечивает взаимодействие с сетью и реализует протокол, и микропроцессор (CPU).
Рис. 1. Топология сети CAN.
CAN контроллеры соединяются с помощью дифференциальной шины, которая имеет две линии — CAN_H (can-high) и CAN_L (can-low), по которым передаются сигналы. Логический ноль регистрируется, когда на линии CAN_H сигнал выше, чем на линии CAN_L. Логическая единица — в случае когда сигналы CAN_H и CAN_L одинаковы (отличаются менее чем на 0.5 В). Использование такой дифференциальной схемы передачи делает возможным работу CAN сети в очень сложных внешних условиях. Логический ноль — называется доминантным битом, а логическая единица — рецессивным. Эти названия отражают приоритет логической единицы и нуля на шине CAN. При одновременной передаче в шину лог. нуля и единицы, на шине будет зарегестрирован только логический ноль (доминантный сигнал), а логическая единица будет подавлена (рецессивный сигнал).
Типы сообщений сети CAN.
Данные в CAN передаются короткими сообщениями-кадрами стандартного формата. В CAN существуют четыре типа сообщений:
- Data Frame
- Remote Frame
- Error Frame
- Overload Frame
Data Frame — это наиболее часто используемый тип сообщения. Он состоит из следующих основных частей:
- поле арбитража (arbitration field) определяет приоритет сообщения в случае, когда два или более узлов одновременно пытаются передать данные в сеть. Поле арбитража состоит в свою очередь из:
- для стандарта CAN-2.0A, 11-битного идентификатора + 1 бит RTR (retransmit)
- для стандарта CAN-2.0B, 29-битного идентификатора + 1 бит RTR (retransmit)
Следует отметить, что поле идентификатора, несмотря на свое название никак не идентифицирует само по себе ни узел в сети, ни содержимое поля данных. Для Data кадра бит RTR всегда выставлен в логический ноль (доминантный сигнал).
- поле данных (data field) содержит от 0 до 8 байт данных
- поле CRC (CRC field) содержит 15-битную контрольную сумму сообщения, которая используется для обнаружения ошибок
- слот подтверждения (Acknowledgement Slot) (1 бит), каждый CAN-контроллер, который правильно принял сообщение посылает бит подтверждения в сеть. Узел, который послал сообщение слушает этот бит, и в случае если подтверждение не пришло, повторяет передачу. В случае приема слота подтверждения передающий узел может быть уверен лишь в том, что хотя бы один из узлов в сети правльно принял его сообщение.
Рис. 2. Data frame стандарта CAN 2.0A.
Remote Frame — это Data Frame без поля данных и с выставленным битом RTR (1 — рецессивные бит). Основное предназначение Remote кадра — это инициация одним из узлов сети передачи в сеть данных другим узлом. Такая схема позволяет уменьшить суммарный трафик сети. Однако, на практике Remote Frame сейчас используется редко (например, в DeviceNet Remote Frame вовсе не используется).
Error Frame — это сообщение которое явно нарушает формат солобщения CAN. Передача такого сообщения приводит к тому, что все узлы сети регистрируют ошибку формата CAN-кадра, и в свою очередь автоматически передают в сеть Error Frame. Результатом этого процесса является автоматическая повторная передача данных в сеть передающим узлом. Error Frame состоит из поля Error Flag, которое состоит из 6 бит одинакового значения (и таким образом Error frame нарушает проверку Bit Stuffing, см. ниже), и поля Error Delimiter, состоящее из 8 рецессивных битов. Error Delimiter дает возможность другим узлам сети обнаружив Error Frame послать в сеть свой Error Flag.
Overload Frame — повторяет структуру и логику работы Error кадра, с той разницей, что он используется перегруженным узлом, который в данный момент не может обработать поступающее сообщение, и поэтому просит при помощи Overload-кадра о повторной передаче данных. В настоящее время Overload-кадр практически не используется.
Контроль доступа к среде передачи (побитовый арбитраж).
Поле арбитража CAN-кадра используется в CAN для разрешения коллизий доступа к шине методом не деструктивного арбитража. Суть метода не деструктивного арбитража заключается в следующем. В случае, когда несколько контроллеров начинают одновременную передачу CAN кадра в сеть, каждый из них сравнивает, бит, который собирается передать на шину с битом, который пытается передать на шину конкурирующий контроллер. Если значения этих битов равны, оба контроллера передают следующий бит. И так происходит до тех пор, пока значения передаваемых битов не окажутся различными. Теперь контроллер, который передавал логический ноль (более приоритетный сигнал) будет продолжать передачу, а другой (другие) контроллер прервёт свою передачу до того времени, пока шина вновь не освободится. Конечно, если шина в данный момент занята, то контроллер не начнет передачу до момента её освобождения.
Рис. 3. Побитовый арбитраж на шине CAN.
Методы обнаружения ошибок.
CAN протокол определяет пять способов обнаружения ошибок в сети:
- Bit monitoring
- Bit stuffing
- Frame check
- ACKnowledgement Check
- CRC Check
Bit monitoring — каждый узел во время передачи битов в сеть сравнивает значение передаваемого им бита со значением бита которое появляется на шине. Если эти значения не совпадают, то узел генерирует ошибку Bit Error. Естественно, что во время арбитража на шине (передача поля арбитража в шину) этот механизм проверки ошибок отключается.
Bit stuffing — когда узел передает последовательно в шину 5 бит с одинаковым значением, то он добавляет шестой бит с противоположным значением. Принимающие узлы этот дополнительный бит удаляют. Если узел обнаруживает на шине больше 5 последовательных бит с одинаковым значением, то он генерирует ошибку Stuff Error.
Frame Check — некоторые части CAN-сообщения имеют одинаковое значение во всех типах сообщений. Т.е. протокол CAN точно определяет какие уровни напряжения и когда должны появляться на шине. Если формат сообщений нарушается, то узлы генерируют ошибку Form Error.
ACKnowledgement Check — каждый узел получив правильное сообщение по сети посылает в сеть доминантный (0) бит. Если же этого не происходит, то передающий узел регистрирует ошибку Acknowledgement Error.
CRC Check — каждое сообщение CAN содержит CRC сумму, и каждый принимающий узел подсчитывает значение CRC для каждого полученного сообщения. Если подсчитанное значение CRC суммы, не совпадает со значением CRC в теле сообщения, принимающий узел генерирует ошибку CRC Error.
Механизм ограничения ошибок (Error confinement).
Каждый узел сети CAN, во время работы пытается обнаружить одну из пяти возможных ошибок. Если ошибка обнаружена, узел передает в сеть Error Frame, разрушая тем самым весь текущий трафик сети (передачу и прием текущего сообщения). Все остальные узлы обнаруживают Error Frame и принимают соответствующие действия (сбрасывают принятое сообщение). Кроме того, каждый узел ведет два счетчика ошибок: Transmit Error Counter (счетчик ошибок передачи) и Receive Error Counter (счетчик ошибок приема). Эти счетчики увеличиваются или уменьшаются в соответствие с несколькими правилами. Сами правила управления счетчиками ошибок достаточно сложны, но сводятся к простому принципу, ошибка передачи приводит к увеличению Transmit Error счетчика на 8, ошибка приема увеличивает счетчик Receive Error на 1, любая корректная передача/прием сообщения уменшают соответствующий счетчик на 1. Эти правила приводят к тому, что счетчик ошибок передачи передающего узла увеличивается быстрее, чем счетчик ошибок приема принимающих узлов. Это правило соответствует предположению о большой вероятности того, что источником ошибок является передающий узел.
Каждый узел CAN сети может находится в одном из трех состояний. Когда узел стартует он находится в состоянии Error Active. Когда, значение хотя бы одного из двух счетчиков ошибок превышает предел 127, узел переходит в состояние Error Passive. Когда значение хотя бы одного из двух счетчиков превышает предел 255, узел переходит в состояние Bus Off.
Узел находящийся в состоянии Error Active в случае обнаружения ошибки на шине передает в сеть Active Error Flags. Active Error Flags сотстоит из 6 доминантных бит, поэтому все узлы его регистрируют. Узел в состоянии Passive Error передает в сеть Passive Error Flags при обнаружении ошибки в сети. Passive Error Flags состоит из 6 рецессивных бит, поэтому остальные узлы сети его не замечают, и Passive Error Flags лишь приводит к увеличению Error счетчика узла. Узел в состоянии Bus Off ничего не передает в сеть (не только Error кадры, но вообще никакие другие).
Адресация и протоколы высокого уровня
В CAN не существует явной адресации сообщений и узлов. Протокол CAN нигде не указывает что поле арбитража (Identification field + RTR) должно использоваться как идентификатор сообщения или узла. Таким образом, идентификаторы сообщений и адреса узлов могут находится в любом поле сообщения (в поле арбитража или в поле данных, или присутствовать и там, и там). Точно также протокол не запрещает использовать поле арбитража для передачи данных.
Утилизация поля арбитража и поля данных, и распределение адресов узлов, идентификаторов сообщений и приоритетов в сети является предметом рассмотрений так называемых протоколов высокого уровня (HLP — Higher Layer Protocols). Название HLP отражает тот факт, что протокол CAN описывает только два нижних уровня эталонной сетевой модели ISO/OSI, а остальные уровни описываются протоколами HLP.
Рис. 4. Логическая структура протокола CAN.
Существует множество таких высокоуровневых протоколов. Наиболее распространенные из них это:
- DeviceNet
- CAL/CANopen
- SDS
- CanKingdom
Физичекий уровень протокола CAN
Физический уровень (Physical Layer) протокола CAN определяет сопротивление кабеля, уровень электрических сигналов в сети и т.п. Существует несколько физических уровней протокола CAN (ISO 11898, ISO 11519, SAE J2411).
В подавляющем большинстве случаев используется физический уровень CAN определенный в стандарте ISO 11898. ISO 11898 в качестве среды передачи определяет двухпроводную дифференциальную линию с импедансом (терминаторы) 120 Ом (допускается колебание импеданса в пределах от 108 Ом до 132 Ом. Физический уровень CAN реализован в специальных чипах — CAN приемо-передатчиках (transceivers), которые преобразуют обычные TTL уровни сигналов используемых CAN-контроллерами в уровни сигналов на шине CAN. Наиболее распространенный CAN приемо-передатчик — Phillips 82C250, который полностью соответствует стандарту ISO 11898.
Махимальная скорость сети CAN в соответствие с протоколом равна 1 Mbit/sec. При скорости в 1 Mbit/sec максимальная длина кабеля равна примерно 40 метрам. Ограничение на длину кабеля связано с конечной скоростью света и механизмом побитового арбитража (во время арбитража все узлы сети должны получать текущий бит передачи одновременно, те сигнал должен успеть распространится по всему кабелю за единичный отсчет времени в сети. Соотношение между скоростью передачи и максимальной длиной кабеля приведено в таблице:
скорость передачи | максимальная длина сети |
1000 Кбит/сек | 40 метров |
500 Кбит/сек | 100 метров |
250 Кбит/сек | 200 метров |
125 Кбит/сек | 500 метров |
10 Кбит/сек | 6 километров |
Разъемы для сети CAN до сих пор НЕ СТАНДАРТИЗОВАНЫ. Каждый протокол высокого уровня обычно определяет свой тип разъемов для CAN-сети.
Error Detection
There are five types of CAN error can introduce on CAN-BUS by receiver and transmitter node-
- Bit error
- Stuff error
- CRC error
- Acknowledgment error
- Form Error
Bit Error(Introduce By Transmitter)
As I discussed in Bit Monitoring chapter, Every transmitter node reads back its transmitted bit from CAN line along with other ECUs But if it will not get read bit same as it transmitted then transmitted node stop the further transmission and introduce an error frame on CAN line. This error is known as bit error.
Note:
- If bit mismatch detected during Arbitration field or ACK then transmitter neither looks it as bit error nor introduce any error frame because as per the CAN standard these fields has defined functionality.
- CRC Delimeter, ACK and EOF are also fixed length fields in CAN frame so it will also not be the part of bit error frame execution if more than five consecutive bits found.
Stuff Error(Introduce By Receiver)
As I discussed in Bit Stuffing chapter, More than 5 consecutive bits of the same polarity in CAN frame between the start of Frame(SOF) to CRC field is considered as a faulty frame on CAN Bus and it signaled as stuff error on CAN line.
CRC Error(Introduce By Receiver)
The transmitter transmits CRC of transmitted data at CRC field of CAN frame and receivers also calculate CRC on received data. If the receiver found Calculated CRC is different from received CRC at CRC field then receiver signaled it as CRC error and introduce an error frame on CAN line.
ACK Error(Introduce By Transmitter)
After Transmission of CRC field of CAN frame Transmitter send ACK (a recessive bit) and receiver makes it dominant as a part of acknowledgment to the transmitter. During readback, transmitter found the dominant bit and consider it as receiver acknowledgment and if it reads a recessive bit then transmitter signaled it as ACK error and introduce an error frame.
Form Error(Introduce By Receiver)
As per CAN Frame Format, there are some fields of fixed length and format like CRC Delimeter, ACK Delimeter, EOF ,InterFrame Spaceand if it is detected corrupted at receiver side then it signaled as Form Error and Node will introduce an error frame on CAN line.
Error Confinement Mechanism
In CAN network Every node is very honest. if any node transmits/receive continuous faulty frame then it will disconnect itself from CAN network after a threshold limit if fault not recovered. To decide this threshold every Node has two error counters: Transmit error Counter(TEC) and Receive Error Counter(REC) to keep the track of error generated because of above-discussed situations. On the basis of these counter, Nodes are categories in three error state-
- Active Error state(When TEC<=127 and REC<=127)
- Passive Error state( When TEC>127 or REC>127 )
- Bus-Off State(When TEC>255)
Active Error State
A CAN Node enters into Active Error State when TEC<=127 and REC<=127 In This State Node can participate in all CAN activity like –
A node can Transmit all type of Frames like Data Frame, Remote Frame, Overload Frame, and active Error Frame(6-12 Dominant bit)
Passive Error State
A CAN Node enters into Passive Error State when TEC<=127 or REC<=127. This state still has a chance to come back in error-free state.In This State a Node still can participate in all CAN activity like –
- A node can Transmit all type of Frames like Data Frame, Remote Frame, Overload Frame, but Passive Error Frame(6-12 Recessive bit)
- A node can come back to in error active state if it starts transmission of the correct frames and its counter value comes under 127.
Bus-Off State
A CAN Node enters into Bus-Off State When TEC>255 . In this state CAN node will be removed from CAN network and now it will no longer available on CAN network to participate in any CAN activity.
What are Error Active, Error Passive, and Bus off of CAN Bus?
Just to give a little background to the answer:
In order to prevent malfunctioning nodes from disturbing, or even blocking, an entire system, the CAN protocol implements a sophisticated fault confinement mechanism. The CAN protocol is intended to be orthogonal, i.e. all nodes address faults in the same manner. Fault confinement is provided where each node constantly monitors its performance with regard to successful and unsuccessful message transactions. A Transmit Error Counter (TEC) and a Receive Error Counter (REC) create a metric for communication quality based on historic performance. Each node will act on its own bus status based on its individual history. As a result, a graceful degradation allows a node to disconnect itself from the bus i.e. stop transmitting. This means that a permanently faulty device will cease to be active on the bus (go into Bus Off state), but communications between other nodes can
continue unhindered. If the bus media is severed, shorted or suffers from some other failure mode the ability to continue communications is dependent upon the condition and the physical interface used.
Fault confinement is a checking mechanism that makes it possible to distinguish between short disturbances (e.g. switching noise from a nearby power cable couples into the transmission media) and permanent failures (e.g. a node is malfunctioning and disturbs the bus).
Manipulation of the error counters is asymmetric. On a successful transmission, or reception, of a message, the respective error counter is decremented if it had not been at zero. In the case of a transmit or receive error the counters are incremented, but by a value greater than the value they would be decrement by following a successful message transaction.
If a node detects a local error condition (e.g. due to local conducted noise, application software, etc.), its resulting error flag (primary error flag) will subsequently cause all other nodes to respond with an error flag too (secondary error flags). It is important that a distinction is made between the nodes that detected an error first and the nodes which responded to the primary error flag. If a node transmits an active error frame, and it monitors a dominant bit after the sixth bit of its error flag, it considers itself as the node that has detected the error first. In the case where a node detects errors first too
often, it is regarded as malfunctioning, and its impact to the network has to be limited. Therefore, a node can be in one of three possible error states:
Error active
Both of its error counters are less than 128. It takes part fully in bus communication and signals an error by transmission of an active error frame.This consists of sequence of 6 dominant bits followed by 8 recessive bits, all other nodes respond with the appropriate error flag, in response to the violation of the bit stuffing rule.
Error passive
A node goes into error passive state if at least one of its error counters is greater than 127. It still takes part in bus activities, but it sends a passive error frame only, on errors. Furthermore, an error passive node has to wait an additional time (Suspend Transmission Field, 8 recessive bits after Intermission Field) after transmission of a message, before it can initiate a new data transfer. The primary passive error flag consists of 6 passive bits and thus is “transparent” on the bus and will not “jam” communications.
Bus Off
If the Transmit Error Counter of a CAN controller exceeds 255, it goes into the bus off state. It is disconnected from the bus (using internal logic) and does not take part in bus activities anymore. In order to reconnect the protocol controller, a so-called Bus Off recovery sequence has to be executed. This usually involves the re-initialization and configuration of the CAN controller by the host system, after which it will wait for 128 * 11 recessive bit times before it commences communication.
-
When a receiver detects an error, the REC will be increased by 1, except when the detected error was a Bit Error during the sending of an Active error Flag or an Overload Flag.
-
When a receiver detects a dominant bit as the first bit after sending an Error Flag, the REC will be increased by 8.
-
When a transmitter sends an Error Flag, the TEC is increased by 8. Exception 1: If the transmitter is Error Passive and detects an ACK Error because of not detecting a dominant ACK and does not detect a dominant bit while sending its Passive Error Flag. Exception 2: If the transmitter sends an Error Flag because a Stuff Error occurred during arbitration, and should have been recessive, and has been sent as recessive but monitored as dominant.
-
If the transmitter detects a Bit Error while sending an Active Error Flag or an Overload Frame, the TEC is increased by 8.
-
If a receiver detects a Bit Error while sending an Active Error Flag or an Overload Flag, the REC is increased by 8.
-
Any node tolerates up to 7 consecutive dominant bits after sending an Active Error Flag, Passive Error Flag or Overload Flag. After detecting the fourteenth consecutive dominant bit (in case of an Active Error Flag or an Overload Flag) or after detecting the eighth consecutive dominant bit following a Passive Error Flag, and after each sequence of additional eight consecutive dominant bits, ever y transmitter increases its TEC by 8 and every receiver increases its REC by 8.
-
After successful transmission of a frame (getting ACK and no error until EOF is finished), the TEC is decreased by 1 unless it was already 0.
-
After the successful reception of a frame (reception without error up to the ACK Slot and the successful sending of the ACK bit), the REC is decreased by 1, if it was between 1 and 127. If the REC was 0, it stays 0, and if it was greater than 127, then it will be set to a value between 119 and 127.
-
A node is Error Passive when the TEC equals or exceeds 128, or when the REC equals or exceeds 128. An error condition letting a node become Error Passive causes the node to send an Active Error Flag.
-
A node is Bus Off when the TEC is greater than or equal to 256.
-
An Error Passive node becomes Error Active again when both the TEC and the REC are less than or equal to 127.
-
A node which is Bus Off is permitted to become Error Active (no longer Bus Off) with its error counters both set to 0 after 128 occurrence of 11 consecutive recessive bits have been monitored on the bus.