Съдържание: Обща информация ↓ Предимства ↓ Формат на пакета данни ↓ Приоритети ↓ Пример ↓ Разпознаване на грешки ↓ Механизми на ниво рамка на данни ↓ Механизми на битово ниво ↓ Отстраняване на неизправности ↓ Типове CAN шини ↓
Обща информация
Редът за обмен на данни чрез CAN шина
B - Сензор 1
CAN — Компютърна комуникационна шина
M — Изпълнителни елементи I – III (сервомеханизми)
N — Блокове за управление/контролери I – V
Съвременните превозни средства използват няколко CAN мрежови шини за обмен на данни (Controller Area Network) между модули/блокове за управление на различни системи и контролери на изпълнителни механизми на превозни средства (вижте илюстрацията по-горе).
Автобусът е пълен дуплекс (или просто дуплекс), тези. Всяко свързано към него устройство може едновременно да получава и предава съобщения.
Сигналът от чувствителния елемент на съответната информация (сензор) се изпраща до най-близкия контролен блок, който го обработва и предава на CAN шината за обмен на данни.
Всяко управляващо устройство, свързано към CAN шината за данни, може да прочете този сигнал, да изчисли управляващите параметри въз основа на него и да управлява сервото на задвижващия механизъм.
Предимства
С конвенционална кабелна връзка на електрически и електронни устройства се осъществява директна връзка между всеки контролен блок и всички сензори и изпълнителни механизми, от които той получава резултати от измерванията или които управлява.
Усложняването на системата за управление води до прекомерна дължина или брой кабелни линии.
В сравнение със стандартното окабеляване, шината за данни осигурява:
- Намаляване на броя на кабелите. Проводниците от сензорите се удължават само до най-близкия контролен блок, който преобразува измерените стойности в пакет данни и ги предава към CAN шината;
- Актуаторът може да се управлява от всеки управляващ блок, който получава съответния пакет данни през CAN шината и въз основа на него изчислява стойността на управляващото действие върху серво механизма;
- Подобряване на електромагнитната съвместимост;
- Намаляване на броя на щепселните връзки и намаляване на броя на контактните клеми на блоковете за управление;
- Загуба на тегло;
- Намаляване на броя на сензорите, т.к сигнали от един сензор (например от сензора за температура на охлаждащата течност) може да се използва от различни системи;
- Подобряване на диагностичните възможности. защото сигнали от един сензор (например сигнал за скорост) се използват от различни системи, тогава ако се генерира съобщение за повреда от всички системи, използващи този сигнал, дефектният обикновено е сензорът или контролният блок, който обработва неговите сигнали. Ако съобщението за грешка идва само от една система, въпреки че този сигнал се използва и от други системи, тогава причината за грешката най-често е в блока за управление на обработката или сервомеханизма;
- Висока скорост на трансфер на данни – възможно е до 1 Mbit/s с максимална дължина на линията 40 m.
- По една и съща линия могат да се предават последователно няколко съобщения.
Шината за данни CAN се състои от двужилен кабел, направен под формата на усукана двойка. Всички устройства са свързани към тази линия (блокове за управление на устройството).
(Текстът е цитиран от уебсайта източник: «Toyotaman.ru»)
Предаването на данни се извършва с дублиране по двата проводника и логическите нива на шината за данни са огледални (тоест, ако ниво на логическа нула (0) се предава по един проводник, тогава ниво на логическа единица (1) се предава по другия проводник и обратно).
Схемата за двупроводно предаване се използва по две причини: за контрол на грешки и като основа за надеждност.
Ако скок на напрежението възникне само на един проводник, например поради проблеми с електромагнитната съвместимост (EMC), тогава приемащите модули може да идентифицират това като грешка и да игнорират пика.
При късо съединение или прекъсване на един от двата проводника на CAN шината, благодарение на интегрираната софтуерна и хардуерна система за надеждност, се извършва превключване към еднопроводен режим на работа. Повреденият далекопровод вече не се използва.
Редът и форматът на данните, предавани и получавани от потребителите (абонати) съобщенията са дефинирани в протокола за обмен на данни.
Основна отличителна черта на CAN шината за данни в сравнение с други шинни системи, базирани на принципа на адресиране на абонати, е адресирането, свързано със съобщенията.
Това означава, че на всяко съобщение, предадено по шината, се присвоява собствен постоянен адрес (идентификатор), маркиране на съдържанието на това съобщение (например: температура на охлаждащата течност). Протоколът на CAN шина за данни позволява предаването на до 2048 различни съобщения, като адресите от 2033 до 2048 са постоянно зададени.
Обемът на данните в едно съобщение на CAN шина е 8 байта.
Блокът на приемника обработва само тези съобщения (пакети данни), които се съхраняват в неговия собствен идентификационен списък (контрол на приемливостта).
Пакетите данни могат да се предават само ако CAN шината е свободна (т.е., ако след последния пакет данни е последвал 3-битов интервал и нито едно от управляващите устройства не започне да предава съобщение). В този случай логическото ниво на шината за данни трябва да е рецесивно (логическа "1").
Ако няколко управляващи блока започнат да предават съобщения едновременно, влиза в сила принципът на приоритета, според който съобщението с най-висок приоритет ще бъде предадено първо без загуба на време или битове (арбитраж на заявки за достъп до споделената шина за данни).
Всяко управляващо устройство, което загуби правото си на арбитраж, автоматично превключва на получаване и се опитва да изпрати съобщението си отново, веднага щом шината за данни отново се освободи.
В допълнение към пакетите с данни се използват и пакети за заявка на конкретно съобщение през CAN шината за данни; на такава заявка отговаря управляващият блок, който може да предостави исканата информация.
Формат на пакета данни
В нормален режим на предаване пакетите данни имат следните конфигурации на блок (кадър):
- Data Frame (рамка на съобщение) за предаване на съобщения през CAN шината за данни (например: температура на охлаждащата течност);
- Remote Frame (рамка за заявка) за да поискате съобщения през CAN шината за данни от друго управляващо устройство;
- Error Frame (рамка за грешка), всички свързани управляващи блокове се уведомяват, че е възникнала грешка и последното съобщение по CAN шината за данни е невалидно.
Протоколът на CAN шина за данни поддържа два различни формати на съобщения на CAN шина за данни, които се различават само по дължината на идентификатора:
- Стандартен формат;
- Разширен формат.
Понастоящем само стандартният формат се използва в системите за обмен на данни на системите за управление на превозни средства.
Формат на рамката

Всеки кадър от съобщения, предавани през CAN шината, се състои от седем последователни полета (вижте илюстрацията по-горе):
- Start of Frame (начален бит): Маркира началото на съобщение и синхронизира всички модули;
- Arbitration Field (идентификатор и заявка): Това поле се състои от 11-битов идентификатор (адрес) и 1 контролен бит (Remote Transmission Request-Bit). Този контролен бит маркира рамката като рамка с данни (рамка с данни) или като отдалечена рамка (рамка за отдалечена заявка) без байтове данни;
- Control Field (контролни битове): Контролното поле (6 бита) съдържа IDE бита (Identifier Extension Bit) за разпознаване на стандартния и разширения формат, резервен бит за последващи разширения и - в последните 4 бита - броя на байтовете данни, съдържащи се в полето за данни (поле за данни);
- Data Field (данни): Поле за данни може да съдържа от 0 до 8 байта данни; съобщение на CAN шина за данни с дължина 0 байта се използва за синхронизиране на разпределени процеси;
- CRC Field (контролно поле): CRC поле (Cyclic-Redundancy-Check Field) съдържа 16 бита и се използва за откриване на контролни грешки по време на предаване;
- ACK Field (потвърждение за приемане): ACK поле (Acknowledgement Field) съдържа сигнал, потвърждаващ приемането на всички приемни устройства, които са получили съобщение през CAN шината без грешки;
- End of Frame (край на рамката): Маркира края на пакет с данни;
- Intermission (интервал): Интервал между две пакети данни. Интервалът трябва да бъде не по-малко от 3 бита. След това всеки блок за управление може да се прехвърля на следващия пакет от данни;
- IDLE (режим на почивка): Ако нито едно управляващо устройство не предава съобщения, CAN шината остава в неактивен режим до предаването на следващия пакет данни.
Приоритети
За да се обработват данни в реално време, трябва да е възможно да се предават бързо.
Това не само изисква линия с висока физическа скорост на предаване на данни, но също така изисква бърз достъп до общата CAN шина, ако няколко контролни блока трябва да предават съобщения едновременно.
За да се разграничат съобщенията, предавани по CAN шината за данни според тяхната степен на спешност, са предвидени различни приоритети за отделните съобщения.
Моментът на запалване, например, има най-висок приоритет, стойностите на приплъзване имат среден приоритет, а температурата на външния въздух е с най-нисък приоритет.
Приоритетът, с който едно съобщение се предава по CAN шината, се определя от идентификатора (адреса) на съответното съобщение.
Идентификаторът, съответстващ на по-малкото двоично число, има по-висок приоритет и обратно.
Протоколът на CAN шината за данни се основава на две логически състояния: битовете са или "рецесивни" (логически "1"), или "доминиращи" (логически "0"). Ако доминиращ бит се предава от поне един модул, тогава рецесивните битове, предавани от други модули, се презаписват.
Пример
Ако няколко управляващи блока едновременно започнат да предават данни, конфликтът за достъп до общата шина за данни се разрешава чрез "побитов арбитраж на общи заявки за ресурси" с помощта на съответните идентификатори.
При предаване на полето на идентификатора предавателното устройство проверява след всеки бит дали все още има право да предава или друго управляващо устройство вече предава съобщение с по-висок приоритет по шината.
Блокове за управление

Първият контролен блок (NI) губи арбитраж от бит 3.
Третият контролен блок (N III) губи арбитраж от 7-ия бит.
Второто управляващо устройство (N II) запазва правата за достъп до CAN шината за данни и може да предава своето съобщение.
Ако рецесивният бит, предаден от първия предавателен блок, бъде презаписан от доминиращия бит на друг предавателен блок, тогава първият предавателен блок губи правото си да предава (арбитраж) и става приемен блок (вижте илюстрацията по-горе).
Други контролни модули ще се опитат да предадат своите съобщения през CAN шината за данни едва след като тя отново е свободна. В този случай правото на прехвърляне отново ще бъде предоставено в съответствие с приоритета на съобщението по CAN шината за данни.
Разпознаване на грешки
Смущенията могат да причинят грешки при предаването на данни. Такива грешки, които възникват по време на предаване, трябва да бъдат разпознати и коригирани. Протоколът на CAN шина за данни прави разлика между две нива на разпознаване на грешки:
- Механизми на ниво рамка на данни (рамка с данни);
- Механизми на битово ниво.
Механизми на ниво рамка на данни
Cyclic-Redundancy-Check
Въз основа на съобщението, предадено по CAN шината за данни, предавателят изчислява контролни битове, които се предават заедно с пакета данни в полето "CRC поле" (контролни суми). Получаващият модул преизчислява тези контролни битове въз основа на съобщението, получено през CAN шината за данни, и ги сравнява с контролните битове, получени с това съобщение.
Frame Check
Този механизъм проверява структурата на предавания блок (кадър), т.е. препроверяват се битовите полета с даден фиксиран формат и дължината на кадъра.
Грешките, открити от функцията за проверка на рамката, се маркират като грешки във форматирането.
Механизми на битово ниво
Мониторинг
Всеки модул следи логическото ниво на CAN шината за данни при предаване на съобщение и определя разликите между предадените и получените битове. Това гарантира надеждно разпознаване на глобални и локални битови грешки, възникващи в предавателното устройство.
Bit Stuffing
Във всеки кадър с данни между полето "Start of Frame" и краят на полето "CRC Field" трябва да бъде не повече от 5 последователни бита с еднаква полярност.
След всяка последователност от 5 идентични бита, блоковият предавател добавя един бит с обратна полярност към битовия поток.
Приемниците изчистват тези битове след получаване на съобщение по CAN шината за данни.
Отстраняване на неизправности
Ако някой модул на CAN шина за данни открие грешка, той прекъсва текущия процес на пренос на данни, като изпраща съобщение за грешка. Съобщението за грешка се състои от 6 доминиращи бита.
Благодарение на съобщението за грешка, всички управляващи устройства, свързани към CAN шината за данни, се уведомяват за възникналата локална грешка и съответно игнорират съобщението, предадено преди това.
След кратка пауза всички управляващи блокове отново ще могат да предават съобщения по CAN шината за данни, като първо се изпраща отново съобщението с най-висок приоритет.
Блокът за управление, чието съобщение на CAN шина за данни е причинило грешката, също започва да препредава своето съобщение (функция за автоматично повторение).
Типове CAN шини
За различни зони на управление се използват различни CAN шини. Те се различават един от друг по скоростта на пренос на данни.
Скоростта на предаване на CAN шина за данни в зоната "двигател и шаси" (CAN-C) е 125 kbit/s, докато CAN шина за данни "Interior" (CAN-B) е проектирана за скорост на предаване на данни от само 83 kbit/s поради по-малкия брой особено спешни съобщения.
Обменът на данни между две шинни системи се осъществява чрез така наречените "интернетрежови шлюзове", т.е. контролни блокове, свързани към двете шини за данни.
D2B оптична шина (Digital Daten-Bus) данни, приложени към областта "Аудио/Комуникации/Навигация". Оптичният кабел може да предава значително повече информация от медната кабелна шина.
CAN C – бус "Двигател и шаси"
В крайния блок за управление от всяка страна е монтиран така нареченият терминален резистор на шина за данни със съпротивление 120 Ohm, свързан между двата проводника на шина за данни.
CAN шината за данни на двигателното отделение се активира само при включено запалване.
Повече от 7 контролни блока могат да бъдат свързани към CAN-C шината.
CAN-B – автобус "Салон"
Някои контролни блокове, свързани към CAN шината за данни на купето, се активират независимо от това дали запалването е включено (например: система с единично заключване).
Следователно CAN шината за данни на купето трябва да бъде в режим на функционална готовност, дори когато запалването е изключено, което означава, че възможността за предаване на пакети данни трябва да бъде осигурена дори когато запалването е изключено.
За да се намали максимално консумацията на ток в покой, CAN шината за данни, когато няма данни, необходими за предаване, преминава в пасивен режим на готовност и се активира отново само при следващия достъп до нея.
Ако някой контролен блок е в пасивен режим на готовност на CAN шината за данни на купето (например единичен контролен модул за заключване) предава съобщение през него, тогава само основният системен модул го получава (електронен ключ за запалване, EZS/EIS). Модул EZS запазва това съобщение в паметта и изпраща сигнал за активиране (Wake-up) на всички блокове за управление, които са свързани към шината CAN-V.
Когато е активиран, EZS проверява за присъствието на всички потребители на CAN шина за данни и след това предава предварително съхраненото съобщение.
Повече от 20 контролни блока могат да бъдат свързани към CAN-B шината.
