Индивидуалните управляващи блокове са свързани в мрежа помежду си и могат да обменят данни.
Автобусът е двупосочен, т.е. всяко свързано към него устройство може да получава и предава съобщения.
Сигналът от чувствителния елемент (сензор) постъпва в най-близкия контролен блок, който го обработва и предава на CAN шината за данни.
Всеки управляващ блок, свързан към CAN шината за данни, може да прочете този сигнал, да изчисли стойността на управляващото действие въз основа на него и да управлява серво задвижващия механизъм.
CAN шинна комуникация
- B - Сензор 1
- CAN - Шина за данни
- М — Изпълнителни елементи I-III (серво механизми)
- N - Контролни блокове (контролери) IV
Предимства
С обичайното кабелно свързване на електрически и електронни устройства, всеки управляващ блок е директно свързан към всички сензори и изпълнителни механизми, от които получава измервания или които управлява.
Усложняването на системата за управление води до прекомерна дължина или множество кабелни линии.
В сравнение със стандартното окабеляване, шината за данни осигурява:
- Намалете броя на кабелите. Проводниците от сензорите се изтеглят само до най-близкия контролен блок, който преобразува измерените стойности в пакет данни и ги прехвърля към CAN шината.
- Всеки управляващ блок може да управлява задвижващия механизъм, който получава съответния пакет данни през CAN шината и на негова база изчислява стойността на управляващото въздействие върху сервомеханизма.
- Подобряване на електромагнитната съвместимост.
- Намаляване на броя на щепселните връзки и намаляване на броя на контактните щифтове на контролните блокове.
- Загуба на тегло.
- Намаляване на броя на сензорите, защото сигналите от един сензор (например от сензора за температура на охлаждащата течност) могат да се използват от различни системи.
- Подобряване на диагностичните възможности. защото сигналите на един сензор (например сигнал за скорост) се използват от различни системи, тогава ако се издаде съобщение за грешка от всички системи, използващи този сигнал, сензорът или контролният блок, който обработва неговите сигнали, обикновено е дефектен. Ако съобщението за грешка идва само от една система, въпреки че този сигнал се използва и от други системи, тогава причината за неизправността най-често е в блока за управление на обработката или сервомеханизма.
- Висока скорост на данни - възможна до 1 Mbps с максимална дължина на линията от 40 м. В момента скоростите на данни за превозни средства варират от 83 Kbps до 500 Kbps.
- Множество съобщения могат да се изпращат последователно на един и същи ред.
Шината за данни CAN се състои от двужилен проводник, направен под формата на усукана двойка. Всички устройства (блокове за управление на устройства) са свързани към тази линия.
Прехвърлянето на данни се извършва с дублиране на двата проводника и логическите нива на шината за данни се отразяват (т.е. ако логическо нулево ниво се предава по единия проводник, тогава логическо едно ниво се предава по другия проводник и обратно обратно).
Схемата за двупроводно предаване се използва по две причини: за откриване на грешки и като основа за надеждност.
Ако скок на напрежението възникне само на един проводник (например, поради проблеми с EMC (електромагнитна съвместимост), тогава приемните модули могат да идентифицират това като грешка и да игнорират този пик на напрежението.
Ако има късо съединение или прекъсване на един от двата проводника на CAN шината за данни, тогава благодарение на интегрираната хардуерна и софтуерна система за надеждност ще има превключване в режим на работа с един проводник. Повреден електропровод няма да се използва.
Редът и форматът на съобщенията, предавани и получавани от потребителите (абонатите), се определят в протокола за обмен на данни.
Съществена отличителна черта на CAN шината за данни в сравнение с други шинни системи, базирани на принципа на адресиране на абонати, е адресирането, свързано със съобщенията.
Това означава, че на всяко съобщение по CAN шината за данни се присвоява постоянен адрес (идентификатор), маркиращ съдържанието на това съобщение (например: температура на охлаждащата течност). Протоколът на CAN шина за данни позволява предаването на до 2048 различни съобщения, като адресите от 3 до 2048 са постоянно фиксирани.
Количеството данни в едно съобщение по CAN шината за данни е 8 байта.
Приемникът обработва само тези съобщения (пакети данни), които са съхранени в неговия списък със съобщения, получени чрез CAN шината за данни (проверка за приемане).
Пакетите данни могат да се предават само ако CAN шината за данни е свободна (т.е. ако след последния пакет данни е последвал интервал от 3 бита и нито едно управляващо устройство не започне да предава съобщение).
В този случай логическото ниво на шината за данни трябва да е рецесивно (логическа "1").
Ако няколко контролни блока започнат да предават съобщения едновременно, тогава влиза в сила принципът на приоритета, според който съобщението по CAN шината за данни с най-висок приоритет ще бъде предадено първо без загуба на време или битове (арбитраж на заявки за достъп до обща шина за данни).
Всяко управляващо устройство, което губи правото на арбитраж, автоматично ще превключи към получаване и ще се опита отново да изпрати съобщението си веднага щом CAN шината за данни се освободи отново.
В допълнение към пакетите данни има и пакет заявка за конкретно съобщение по CAN шината за данни.
В този случай контролният блок, който може да предостави заявения пакет данни, отговаря на това искане.
Формат на пакета данни
В нормален режим на предаване пакетите данни имат следните блокови конфигурации (рамки):
- Рамка с данни (рамка на съобщение) за предаване на съобщения по CAN шината за данни (например: температура на охлаждащата течност).
- Отдалечена рамка (кадър за заявка) за заявка на съобщения по CAN шината за данни от друго управляващо устройство.
- Рамка за грешка (рамка за грешка) всички свързани контролни модули се уведомяват, че е възникнала грешка и последното съобщение по CAN шината за данни е невалидно.
Протоколът на CAN шина за данни поддържа два различни формати на съобщения на CAN шина за данни, които се различават само по дължината на идентификатора:
- стандартен формат;
- разширен формат.
В момента се използва стандартният формат.
Пакетът данни за предаване на съобщения по CAN шината за данни се състои от седем последователни полета:
- Начало на рамка (начален бит): Маркира началото на съобщението и синхронизира всички модули.
- Арбитражно поле (идентификатор и заявка): Това поле се състои от идентификатор (адрес) от 11 бита и 1 контролен бит (бит за заявка за дистанционно предаване). Този контролен бит маркира пакета като Data Frame (кадър на съобщение) или като Remote Frame (кадър на заявка) без байтове данни.
- Контролно поле (контролни битове): Контролното поле (6 бита) съдържа IDE бит (бит за разширение на идентификатора) за разпознаване на стандартен и разширен формат, резервен бит за последващи разширения и - в последните 4 бита - броя на байтовете данни, вградени в полето за данни (поле за данни).
- Поле с данни (данни): Полето с данни може да съдържа от 0 до 8 байта данни. Съобщение на CAN шината за данни с дължина 0 байта се използва за синхронизиране на разпределени процеси.
- CRC поле (поле за проверка): Полето CRC (Cyclic-Redundancy-Check Field) съдържа 16 бита и се използва за проверка на откриването на грешка при предаване.
- Поле ACK (Поле за потвърждение): Полето ACK (Поле за потвърждение) съдържа сигнала за потвърждение на всички приемни устройства, които са получили съобщение по CAN шината без грешки.
- End of Frame: Маркира края на пакета с данни.
- Прекъсване (интервал): Интервалът между два пакета данни. Интервалът трябва да бъде поне 3 бита. След това всяко управляващо устройство може да предаде следващия пакет данни.
- IDLE (режим на покой): Ако нито едно управляващо устройство не изпраща съобщения, CAN шината остава в неактивен режим до изпращането на следващия пакет данни.
Приоритети
За да се обработват данни в реално време, трябва да е възможно бързото им прехвърляне.
Това не само изисква връзка с висока физическа скорост на предаване на данни, но също така изисква бързо осигуряване на обща CAN шина, ако няколко контролни блока трябва да изпращат съобщения едновременно.
За да се разграничат съобщенията, предавани по CAN шината за данни според степента на спешност, са предвидени различни приоритети за отделните съобщения.
Моментът на запалване, например, има най-висок приоритет, стойностите на приплъзване са средни, а външната температура е с най-нисък приоритет.
Приоритетът, с който едно съобщение се предава по CAN шината, се определя от идентификатора (адреса) на съответното съобщение.
Идентификатор, съответстващ на по-малко двоично число, има по-висок приоритет и обратно.
Протоколът на CAN шината за данни се основава на две логически състояния: Битовете са или "рецесивни" (логически "1"), или "доминиращи" (логически "0"). Ако доминиращ бит се предава от поне един модул, тогава рецесивните битове, предавани от други модули, се презаписват.
Пример
Ако няколко контролни блока започнат едновременно предаване на данни, тогава конфликтът на достъп до общата шина за данни се разрешава чрез "битов арбитраж на общи заявки за ресурси" с помощта на съответните идентификатори.
При предаване на полето за идентификатор трансмитерът проверява след всеки бит дали все още има право да предава или друг контролен блок вече предава съобщение с по-висок приоритет по CAN шината за данни.
Ако рецесивният бит, предаден от първия предавател, бъде презаписан от доминиращия бит на друг предавател, тогава първият предавател губи правото си да предава (арбитраж) и става приемник.
Първият контролен блок (NI) губи арбитраж от 3-тия бит.
Третият контролен блок (N III) губи арбитраж от 7-ия бит.
Второто управляващо устройство (N II) запазва правото на достъп до CAN шината за данни и може да предава собствено съобщение.
Други управляващи устройства ще се опитат да предадат своите съобщения по CAN шината за данни само когато тя отново е свободна. В този случай правото на предаване отново ще бъде предоставено в съответствие с приоритета на съобщението по CAN шината за данни.
Откриване на грешка
Смущенията могат да доведат до грешки при предаването на данни. Такива грешки при предаване трябва да се разпознават и коригират. Протоколът на CAN шина за данни прави разлика между две нива на разпознаване на грешки:
- механизми на ниво Data Frame (рамка на съобщение);
- механизми на битово ниво.
Механизми на ниво Data Frame
Cyclic-Redundancy-Check:
Въз основа на съобщението, предадено през CAN шината за данни, предавателят изчислява контролни битове, които се предават заедно с пакета данни в полето "CRC поле" (контролни суми). Приемникът преизчислява тези контролни битове на базата на съобщението, получено през CAN шината за данни и ги сравнява с контролните битове, получени с това съобщение.
Проверка на рамка:
Този механизъм проверява структурата на предавания блок (кадър), т.е. битовите полета с даден фиксиран формат и дължината на кадъра се проверяват отново.
Грешките, открити от Frame Check, се маркират като грешки във форматирането.
Механизми на битово ниво
Наблюдение:
Всеки модул при предаване на съобщение следи логическото ниво на CAN шината за данни и определя разликите между предадените и получените битове. Това гарантира надеждно разпознаване на глобални и локални битови грешки, които възникват в предавателя.
Напълване с битове:
Във всеки пакет от данни, между полето "Начало на рамка" и края на полето "CRC поле", не трябва да има повече от 5 последователни бита с еднаква полярност.
След всяка последователност от 5 идентични бита, блоковият предавател добавя един бит с обратна полярност към битовия поток.
Приемниците изчистват тези битове след получаване на съобщение по CAN шината за данни.
Отстраняване на неизправности
Ако който и да е модул на CAN шина за данни открие грешка, той ще прекъсне текущия процес на пренос на данни, като изпрати съобщение за грешка. Съобщението за грешка се състои от 6 доминиращи бита.
Благодарение на съобщението за грешка, всички управляващи устройства, свързани към CAN шината за данни, се уведомяват за възникнала локална грешка и съответно игнорират предварително предаденото съобщение.
След кратка пауза всички управляващи блокове отново ще могат да предават съобщения по CAN шината за данни, като първо се изпраща отново съобщението с най-висок приоритет.
Контролният блок, чието съобщение по CAN шината за данни е причинило грешката, също започва да препредава своето съобщение (функция за автоматично повторение).
Типове CAN шини
За различни зони на управление се използват различни CAN шини. Те се различават един от друг по скоростта на пренос на данни.
Скоростта на предаване по CAN шината за данни в областта на двигателя и шасито (CAN-C) е 125 kbit/s, докато вътрешната CAN шина за данни (CAN-B) е проектирана само за 83 kbit поради по-малкия брой особено спешни съобщения. /С.
Обменът на данни между двете шинни системи се осъществява чрез така наречените "шлюзове", т.е. контролни блокове, свързани към двете шини за данни.
За полето "Аудио/Комуникация/Навигация" се използва оптична шина за данни D2B (Digital Daten-Bus). Кабелът с оптични влакна може да предава значително по-голямо количество информация от шина с меден кабел.
Коментари на посетители