Обща информация
Поръчка за обмен на данни с CAN шина
B - Сензор 1
CAN - Комуникационна шина
M - Изпълнителни елементи I - III (серво механизми)
N - Управляващи блокове / контролери I - V
В съвременните автомобили се използват няколко мрежови шини за обмен на данни CAN (Controller Area Network) между модулите/контролните блокове на различни системи и контролерите на задвижващите механизми на автомобила (вижте илюстрацията по-горе).
Шината е пълен дуплекс (или просто пълен дуплекс), т.е. всяко устройство, свързано към него, може едновременно да получава и предава съобщения.
Сигналът от чувствителния елемент на съответната информация (сензор) постъпва в най-близкия управляващ блок, който го обработва и го предава към CAN шината за обмен на данни.
Всяко управляващо устройство, свързано към шината за данни CAN, може да чете този сигнал, да изчисли управляващите параметри въз основа на него и да управлява серво задвижващия механизъм.
Предимства
С обичайното кабелно свързване на електрически и електронни устройства, всеки управляващ блок е директно свързан към всички сензори и задвижващи механизми, от които получава измервания или които управлява.
Усложняването на системата за управление води до прекомерна дължина или множество кабелни линии.
В сравнение със стандартното окабеляване, шината за данни осигурява:
- Намаляване на броя на кабелите. Проводниците от сензорите се изтеглят само до най-близкото управляващо устройство, което преобразува измерените стойности в пакет данни и го прехвърля към CAN шината;
- Всяко управляващо устройство може да управлява задвижващия механизъм, който получава съответния пакет данни през CAN шината и въз основа на него изчислява стойността на управляващото действие върху сервомеханизма;
- Подобряване на електромагнитната съвместимост;
- Намаляване на броя на щепселните връзки и намаляване на броя на контактните щифтове на контролните блокове;
- Загуба на тегло;
- Намаляване на броя на сензорите, т.к сигнали от един сензор (например от сензор за температура на охлаждащата течност) могат да се използват от различни системи;
- Подобрете диагностичните възможности. Защото сигналите на един сензор (например сигнал за скорост) се използват от различни системи, тогава ако съобщение за грешка се издава от всички системи, използващи този сигнал, сензорът или управляващото устройство, което обработва неговите сигнали, обикновено е дефектно. Ако съобщението за грешка идва само от една система, въпреки че този сигнал се използва и от други системи, тогава причината за неизправността най-често е в блока за управление на обработката или сервомеханизма;
- Висока скорост на данни – възможна е до 1 Mbps при максимална дължина на линията 40 m.
- На една и съща линия могат да се предават последователно няколко съобщения.
Шината за данни CAN се състои от двужилен проводник, направен под формата на усукана двойка. Всички устройства (блокове за управление на устройства) са свързани към тази линия.
Предаването на данни се извършва с дублиране на двата проводника и логическите нива на шината за данни се отразяват (тоест, ако по един проводник се предава логическо нулево ниво (0), тогава се предава ниво на логическа единица (1) на другия проводник и обратно).
Двупроводната схема на предаване се използва по две причини: за контрол на грешките и като основа за надеждност.
Ако се появи пик на напрежението само на един проводник, например поради проблеми с електромагнитната съвместимост (EMC), тогава приемните устройства могат да идентифицират това като грешка и да игнорират пика.
В случай на късо съединение или прекъсване на един от двата проводника на CAN шината, благодарение на интегрираната софтуерна и хардуерна система за надеждност, се извършва превключване към еднопроводен режим на работа. Повредена преносна линия вече не се използва.
Редът и форматът на съобщенията, предавани и получени от потребителите (абонатите), се определят в протокола за обмен на данни.
Основната отличителна черта на CAN шината за данни в сравнение с други шинни системи, базирани на принципа на адресиране на абонатите, е адресирането, свързано със съобщението.
Това означава, че на всяко съобщение, предадено по шината, се присвоява постоянен адрес (идентификатор), като се маркира съдържанието на това съобщение (например: температура на охлаждащата течност). Протоколът на шината за данни CAN позволява да се предават до 2048 различни съобщения, като адресите от 2033 до 2048 са постоянно присвоени.
Количеството данни в едно съобщение на CAN шината е 8 байта.
Приемното устройство обработва само онези съобщения (пакети данни), които се съхраняват в неговия собствен идентификационен списък (контрол за допустимост).
Пакетите данни могат да се предават само ако CAN обменната шина е свободна (т.е. ако след последния пакет данни следва интервал от 3 бита и нито един контролен блок не започне да предава съобщение). В този случай логическото ниво на шината за данни трябва да бъде рецесивно (логическа "1").
Ако няколко управляващи блока започнат да предават съобщения едновременно, тогава влиза в сила принципът на приоритет, според който първо ще се предаде съобщението с най-висок приоритет, без да се губи време или битове (арбитраж на заявки за достъп до обща шина за данни).
Всяко управляващо устройство, което губи правото на арбитраж, автоматично ще превключи към получаване и ще се опита да изпрати съобщението си веднага щом шината за данни се освободи отново.
В допълнение към пакетите данни се използват и пакети за заявка на конкретно съобщение по CAN шината за данни; управляващият блок, който може да предостави исканата информация, отговаря на такава заявка.
Формат на пакета с данни
В нормален режим на предаване пакетите данни имат следните блокови (кадърни) конфигурации:
- Рамка от данни (рамка на съобщения) за предаване на съобщения по шината за данни CAN (например: температура на охлаждащата течност);
- Отдалечен кадър (кадър на заявка) за искане на съобщения по CAN шината за данни от друг контролен блок;
- Рамка за грешка, всички свързани управляващи блокове са уведомени, че е възникнала грешка и последното съобщение на CAN шината за данни е невалидно.
Протоколът на CAN шината за данни поддържа два различни формата на рамка за съобщения на CAN шината за данни, които се различават само по дължината на идентификатора:
- Стандартен формат;
- Разширен формат.
Понастоящем в системите за обмен на данни на системите за управление на превозните средства се използва само стандартният формат.
Формат на рамката
Всеки кадър от съобщения, предавани по CAN шината, се състои от седем последователни полета (вижте илюстрацията по-горе):
- Начало на кадър (начален бит): Маркира началото на съобщението и синхронизира всички модули;
- Поле за арбитраж (идентификатор и заявка): Това поле се състои от идентификатор (адрес) от 11 бита и 1 контролен бит (бит за заявка за дистанционно предаване). Този контролен бит маркира рамката като рамка от данни (фрейм от данни) или като отдалечена рамка (кадър на отдалечена заявка) без байтове данни;
- Контролно поле (контролни битове): Контролното поле (6 бита) съдържа IDE бит (разширен бит на идентификатора) за разпознаване на стандартния и разширения формат, резервен бит за последващи разширения и - в последните 4 бита - числото на байтове данни, вградени в полето за данни (поле с данни);
- Поле с данни (данни): Полето с данни може да съдържа от 0 до 8 байта данни; за синхронизиране на разпределените процеси се използва съобщение на шината за данни CAN с дължина 0 байта;
- Поле за CRC (контролно поле): Полето за CRC (поле за проверка на циклично резервиране) съдържа 16 бита и се използва за контролно разпознаване на грешки при предаване;
- Поле ACK (поле за потвърждение): Полето ACK (поле за потвърждение) съдържа сигнала за потвърждение на всички приемни устройства, които са получили съобщение по CAN шината без грешки;
- Край на рамката: Маркира края на пакета данни;
- Пауза: Интервал между два пакета данни. Интервалът трябва да бъде най-малко 3 бита. След това всеки контролен блок може да предаде следващия пакет данни;
- IDLE (режим на празен ход): Ако нито един контролен блок не изпраща съобщения, CAN шината остава в режим на празен ход до предаването на следващия пакет данни.
Приоритети
За да се обработват данни в реално време, трябва да е възможно бързото им прехвърляне.
Това не само изисква връзка с висока физическа скорост на данни, но също така изисква бързо осигуряване на обща CAN шина, ако няколко контролни блока трябва да изпращат съобщения едновременно.
За да се разграничат съобщенията, предавани по CAN шината за данни според степента на спешност, са предвидени различни приоритети за отделните съобщения.
Времето на запалване, например, има най-висок приоритет, стойностите на приплъзване са средни, а външната температура е с най-нисък приоритет.
Приоритетът, с който се предава съобщението по CAN шината, се определя от идентификатора (адреса) на съответното съобщение.
Идентификатор, съответстващ на по-малко двоично число, има по-висок приоритет и обратно.
Протоколът на шината за данни CAN се основава на две логически състояния: Битовете са или "рецесивни" (логическа "1"), или "доминиращи" (логическа "0"). Ако доминиращ бит се предава от поне един модул, тогава рецесивните битове, предавани от други модули, се презаписват.
Пример
Ако няколко управляващи блока започнат предаването на данни едновременно, тогава конфликтът на достъпа до общата шина за данни се разрешава чрез "побитово арбитраж на общи заявки за ресурси" с помощта на съответните идентификатори.
Когато предава полето на идентификатора, предавателят проверява след всеки бит дали все още има право да предава, или дали друг контролен блок вече предава съобщение с по-висок приоритет по шината.
Контролни блокове
Първият контролен блок (NI) губи арбитраж от 3-тия бит.
Третият контролен блок (N III) губи арбитраж от 7-ия бит.
Вторият контролен блок (N II) запазва правото на достъп до CAN шината за данни и може да предава своето съобщение.
Ако рецесивният бит, предаден от първия предавател, бъде презаписан от доминиращия бит на друг предавател, тогава първият предавателен блок губи правото си да предава (арбитраж) и става приемник (вижте илюстрацията по-горе).
Други блокове за управление ще се опитват да предадат своите съобщения по CAN шината за данни само когато тя отново е свободна. В този случай правото на предаване отново ще бъде предоставено в съответствие с приоритета на съобщението по CAN шината за данни.
Откриване на грешки
Смущенията могат да доведат до грешки при предаването на данни. Такива грешки при предаването трябва да бъдат разпознати и коригирани. Протоколът на шината за данни CAN прави разлика между две нива на разпознаване на грешки:
- Механизми на ниво рамка от данни (фрейм от данни);
- Механизми на битово ниво
Механизми на ниво рамка от данни
Циклична-Проверка на излишъка
Въз основа на съобщението, предадено през CAN шината за данни, предавателят изчислява контролни битове, които се предават заедно с пакета данни в полето "CRC Field" (контролни суми). Приемното устройство преизчислява тези контролни битове на базата на съобщението, получено по CAN шината за данни и ги сравнява с контролните битове, получени с това съобщение.
Проверка на рамката
Този механизъм проверява структурата на предавания блок (кадър), тоест битовите полета с даден фиксиран формат и дължината на рамката се проверяват повторно.
Грешките, открити от Frame Check, се маркират като грешки при форматиране.
Механизми на битово ниво
Наблюдение
Всеки модул, когато предава съобщение, следи логическото ниво на CAN шината за данни и определя разликите между предадените и получени битове. Това гарантира надеждно разпознаване на глобални и локални битови грешки, които възникват в предавателния блок.
Пълнеж от битове
Във всеки кадър от данни, между полето "Начало на кадър" и края на полето "CRC Field", трябва да има не повече от 5 последователни бита с еднакъв полярност.
След всяка последователност от 5 идентични бита, блоковият предавател добавя един бит с противоположна полярност към битовия поток.
Приемните устройства изчистват тези битове, след като получат съобщение по CAN шината за данни.
Отстраняване на неизправности
Ако някой модул на CAN шина за данни открие грешка, той прекъсва текущия процес на трансфер на данни, като изпраща съобщение за грешка. Съобщението за грешка се състои от 6 доминиращи бита.
Благодарение на съобщението за грешка, всички управляващи устройства, свързани към CAN шината за данни, се уведомяват за възникнала локална грешка и съответно игнорират по-рано предаденото съобщение.
След кратка пауза всички управляващи устройства отново ще могат да изпращат съобщения по CAN шината за данни, като съобщението с най-висок приоритет се изпраща първо отново.
Контролният блок, чието съобщение на CAN шината за данни е причинило грешката, също започва да предава повторно съобщението си (функция за автоматично повторение).
Типове CAN шини
Различни CAN шини се използват за различни контролни зони. Те се различават един от друг по скорост на пренос на данни.
Скоростта на предаване на CAN шината за данни в зоната "двигател и шаси" (CAN-C) е 125 kbit/s, докато шината за данни "вътрешна" (CAN-B) е проектирана за скорост на предаване на данни само 83 kbit поради по-малкия брой особено спешни съобщения. /с.
Комуникацията между двете шинни системи се осъществява чрез така наречените "шлюзове", т.е. контролни блокове, свързани към двете шини за данни.
За полето "Аудио/Комуникация/Навигация" се използва оптична шина за данни D2B (Digital Daten-Bus). Оптичният кабел може да предава значително по-голямо количество информация от шината с меден кабел.
CAN C - автобус "Двигател и шаси"
От всяка страна на блока за управление на терминала е монтиран т. нар. крайно съпротивление на шината за данни със съпротивление 120 Ω и е свързано между двата проводника на шината за данни.
Шината за данни CAN в двигателното отделение е активна само при включено запалване.
Повече от 7 управляващи модула могат да бъдат свързани към CAN-C шината.
CAN-B - вътрешна шина
Някои блокове за управление, свързани към CAN шината за данни на купето, се активират независимо от включеното запалване (например: система за единично заключване).
Следователно CAN шината за данни на купето трябва да работи дори при изключено запалване, което означава, че възможността за предаване на пакети данни трябва да бъде осигурена дори при изключено запалване.
За да се намали максимално консумацията на ток в покой, CAN шината за данни, при липса на данни, необходими за предаване, преминава в режим на пасивен режим на готовност и се активира отново само при следващото влизане в нея.
Ако контролен блок (например модул за управление на единична ключалка) изпрати съобщение по CAN шината за данни на купето в пасивен режим на готовност, само основният системен модул (електронна ключалка за запалване, EZS/EIS) го получава. Модулът EZS запазва това съобщение в паметта и изпраща сигнал за активиране (събуждане) до всички управляващи устройства, свързани към CAN-B шината.
Когато е активиран, EZS проверява за всички потребители на CAN шина за данни и след това предава предварително съхраненото съобщение.
Повече от 20 управляващи модула могат да бъдат свързани към CAN-B шината.