CAN или Controller Area Network е двужична полудуплексна високоскоростна серийна мрежова технология. По принцип се използва при комуникация между различни устройства в ниско радиус, например в автомобил. Протоколът CAN е протокол CSMA-CD / ASM или арбитражи за откриване на сблъсък с множествен достъп в протокола за приоритет на съобщението. CSMA гарантира, че всеки възел трябва да изчака за даден период, преди да изпрати каквото и да е съобщение. Откриването на сблъсък гарантира, че сблъсъкът се избягва чрез избиране на съобщенията въз основа на предписания им приоритет.
Той осигурява скорост на сигнализиране от 125kbps до 1 Mbps. Той осигурява 2048 различни идентификатори на съобщения.
Той е стандарт ISO-11898 и използва 7-слойния модел за взаимосвързаност на отворени системи.
История:
Той е разработен от Робърт Бош през 1982 г. и официално пуснат от Детройтското общество на автомобилните инженери през 1986 г. Първият автомобил, интегриращ CAN автобус, е произведен от Mercedes Benz през 1992 г.
Архитектура по ISO 11898:

Източник на изображението - термино
Пластовата архитектура се състои от три слоя
- Приложен слой : Той взаимодейства с операционната система или приложението на CAN устройството.
- Слой за връзка към данни : Той свързва действителните данни с протокола по отношение на изпращане, получаване и валидиране на данни.
- Физически слой : Представлява действителния хардуер.
Стандартният CAN кадър се състои от следните битове:
Стандартният CAN кадър се състои от следните битове:
- SOF - Начало на Fr аме. Съобщението започва от този момент.
- Идентифицирайте : Той решава приоритета на съобщението. По-ниска двоична стойност, по-висока е приоритетът. Това е 11 бита.
- RTR - Заявка за дистанционно предаване. Доминиращо е, когато се изисква информация от друг възел. Всеки възел получава заявката, но само този възел, чийто идентификатор съвпада с този на съобщението, е задължителният възел. Всеки възел получава и отговора. Z
- ТУК - Единично разширение за идентификация. Ако е доминиращ, това означава, че се предава стандартен CAN идентификатор без разширение.
- R0 - запазен бит.
- DLC - Код за дължина на данните. Той определя дължината на изпращаните данни. Това е 4 бита
- Данни - Могат да се предават до 64 бита данни.
- CRC - Проверка на цикличността. Той съдържа контролната сума (брой предадени битове) на предходните данни на приложението за откриване на грешки.
- АЛАС - Признавам. Това е за 2 бита. Доминиращо е, ако се получи точно съобщение.
- EOF - край на кадъра. Той маркира края на рамката на консерва и деактивира пълненето на битове.
- IFS - Интер рамково пространство. Той съдържа времето, необходимо на контролера за преместване на правилно приетия кадър в правилното му положение.
5 Различни видове съобщения са:
- Рамка за данни : Състои се от произволно поле, поле за данни, поле CRC и полета за потвърждение.
- Отдалечена рамка : Иска за предаване на данни от друг възел. Тук битът RTR е рецесивен.
- Рамка за грешка : Предава се при откриване на грешка.
- Рамка за претоварване : Използва се за осигуряване на забавяне между съобщенията. Предава се, когато възлите станат твърде заети.
- Валидна рамка : Съобщението е валидно, ако полето EOF е рецесивно. В противен случай съобщението се предава отново.
CAN Физически слой:
CAN автобус

Източник на изображението - digital.ni
Състои се от двупроводна последователна връзка CAN_H и CAN_L и нивата на напрежението им едно спрямо друго определят дали се предава 1 или 0. Това е диференциална сигнализация. Токът, протичащ във всяка сигнална линия, е равен, но противоположен по посока, което води до ефект на анулиране на полето, който е ключ към ниските нива на шум. Това осигурява балансирана диференциална сигнализация, която намалява шумовото свързване и позволява висока скорост на предаване по проводниците. Обикновено проводниците са усукани двойки кабели с дължина на шината 40 m и максимум 30 възли. Това е екраниран или неекраниран кабел с характерен импеданс от 120 ома.
МОЖЕ ДА ПРИЕМАТЕЛ:
CAN за превозни средства от Hugo Provencher. Двата проводника CANH и CANL са при нормално 2.5V, определени от двата транзистора и източника на напрежение 2.5V. По принцип разликата между двата проводника винаги трябва да бъде 0. Управлението на драйвера определя напрежението, приложено към проводниците CANH и CANL. Когато и двата транзистора провеждат, напрежението на 1ултранзистор и диодът е 1.5V, което прави CANH проводника да изтегли до 3.5V. Спадът на напрежението през 2ndтранзистор и диодът е 1V, което прави кабела CANL да се изтегли до 1,5V. Диодите се използват за защита от високо напрежение. Приемникът е дискриминаторна верига, която дава изход 1, когато двата входа CANH и CANL са еднакви и изход 0, ако двата входа са различни. Доминиращият блок TXD се използва за защита от земна повреда и блокът за термично изключване деактивира управлението на драйвера, ако диодите и транзисторите се прегреят.
Предимства на CAN:
- Това намалява окабеляването, тъй като е разпределено управление и това гарантира подобряване на производителността на системата.
- Много производители на CAN чипове осигуряват слоя за връзка с данни и физическия слой, свързан с чипа и всичко, което разработчикът на софтуер трябва да направи, е само да разработи кодирането на приложението.
- Той осигурява възможност за работа в различни електрически среди и осигурява безшумно предаване.
- Претоварването на трафика се елиминира, тъй като съобщенията се предават въз основа на техния приоритет и това позволява на цялата мрежа да изпълни ограниченията във времето.
- Той осигурява предаване без грешки, тъй като всеки възел може да проверява за грешки по време на предаването на съобщението и да изпраща рамката за грешка.
CAN Работен пример:
Областната мрежа на контролера има огромно приложение както в промишлеността, така и в автомобилите. Едно от основните приложения е свързано с комуникацията между различните устройства в превозното средство. Друг може да бъде сред различни микроконтролери, да предположим за откриване на парола, използвани за изпълнение на всякакви изисквания като отваряне на заключена врата с помощта на парола или включване на крушка и т.н.

Схема на мрежата на контролера
Основното приложение се състои от 3 микроконтролера, комуникиращи помежду си с помощта на два проводника, както в CAN мрежа. 1улмикроконтролерът е свързан с клавиатура, 2ndс LCD, а третият със зумер и реле, работещо с лампа. Когато в клавиатурата се въведе парола, 2ndмикроконтролерът действа като приемник и приема предаденото съобщение бит по бит от 1улпредавател и показва съобщението на LCD дисплея. Когато се предаде цялото съобщение, 2ndмикроконтролерът прави проверката и ако паролата е грешна, той изпраща сигнал до 3rdмикроконтролер, който от своя страна изпраща зумер е включен с този сигнал. Когато паролата е правилна, 3rdмикроконтролерът включва релето, което от своя страна включва лампата.