logo
Лекции СКМ

3.4. Канальний рівень Саn.

Канальний рівень CAN складається з двох підрівнів: LLC і MAC (див. табл. 3.1). Нижче описані тільки головні ідеї, покладені в основу їх функціонування.

У CAN-мережі жоден з вузлів не має адреси. Замість цього повідомлення посилаються «всім», але містять ідентифікатор, який описує сенс посиланих даних. Відповідно до цього ідентифікатора будь-який вузол мережі може прийняти це повідомлення, якщо воно необхідне пристрою для функціонування. Повідомлення приймається вузлом, якщо його ідентифікатор проходить через фільтр повідомлень, наявний в кожному вузлі.

У CAN-мережі гарантується, що повідомлення буде прийнято будь-яким з вузлів в один і той же час або не буде прийнято жодним з них. Це досягається завдяки широкомовній передачі і використаним методом підтвердження прийому повідомлень.

Коли мережа вільна, будь-який вузол може почати передачу повідомлення. Але кожне повідомлення має свій пріоритет при отриманні доступу до шини. Тому передачу може здійснити тільки один пристрій — той, яке містить повідомлення з найвищим пріоритетом.

Боротьба за доступ до шини відбувається таким чином. Якщо два або більше пристрої виявили, що лінія вільна і почали передачу повідомлень одночасно, то конфлікт вирішується шляхом побітового порівняння ідентифікатора передаваного повідомлення із станом лінії. В процесі арбітражу (врегулювання конфлікту) кожен пристрій порівнює логічний рівень передаваного біта з логічним рівнем на шині. Якщо ці рівні однакові, пристрої продовжують передавати наступний біт ідентифікатора. Якщо приймач пристрою показує, що на шині домінантний рівень, а передавач в цей же час передає рецесивний рівень, то пристрій відразу припиняє передачу даного повідомлення. Такий механізм арбітражу гарантує, що ні інформація, ні час не будуть втрачені.

Повідомлення в CAN передаються за допомогою фреймів (блоків даних). Використовується два різних формати фреймів, які розрізняються довжиною поля ідентифікатора: стандартний фрейм з ідентифікатором завдовжки 11 біт і розширений фрейм з довжиною ідентифікатора 29 біт.

Існує чотири різні типи фреймів:

•DATA FRAME (фрейм даних) переносить дані від передавача до приймача;

•REMOTE FRAME (дистанційний фрейм, фрейм виклику) передається одним з пристроїв для того, щоб отримати від іншого пристрою дані у форматі DATE FRAME з тим же ідентифікатором, що і в REMOTE FRAME;

Фрейм даних складається з наступних полів (рис.3.3): початок фрейма, поле арбітражу, поле контролю, поле даних, поле контрольної суми CRC, поле повідомлення про прийом і поле кінця фрейма. Поле даних може мати нульову довжину.

Рис. 3.3. Структура фрейму даних

Простір між фреймами представлений рецесивним станом шини (яке відповідає високому рівню на рис. 3.3, оскільки CAN-передавачі інвертують логічні рівні). Тільки при рецесивному стані шини пристрій може почати передачу фрейма.