1. Обзор протокола CAN
1.1 Происхождение и развитие протокола CAN
Протокол CAN был впервые предложен немецкой компанией Bosch в 1983 году с целью решения проблем связи в автомобильной электронной системе. С развитием технологий протокол CAN постепенно широко используется в промышленном управлении, медицинском оборудовании, умном доме и других областях.
1.2 Характеристики протокола CAN
Протокол CAN имеет следующие характеристики:
- Управление несколькими-ведущими устройствами: протокол CAN поддерживает одновременную связь нескольких узлов, что повышает-время работы и надежность системы.
- Широковещательная связь: протокол CAN использует широковещательный метод связи, все узлы могут получать отправленные данные.
- Не-неразрушающий арбитраж. Когда два или более узлов отправляют данные одновременно, протокол CAN обеспечивает правильную передачу данных через механизм арбитража.
- Обнаружение и обработка ошибок. Протокол CAN имеет функции обнаружения и обработки ошибок, которые позволяют своевременно обнаруживать и обрабатывать ошибки в процессе связи.
2. Компоненты кадра сообщения CAN
Кадр сообщения CAN — это основная единица передачи данных в протоколе CAN, и его компоненты следующие:
2.1 Стартовый бит кадра
Стартовый бит кадра является первым битом кадра сообщения и используется для идентификации начала кадра сообщения.
2.2 Арбитражная сфера
Поле арбитража используется для определения приоритета отправляемых данных. В протоколе CAN длина арбитражного поля составляет 11 или 29 бит, что соответствует стандартному и расширенному кадрам соответственно. Чем меньше значение арбитражного поля, тем выше приоритет.
2.3 Поле управления
Поле управления состоит из бита запроса удаленной передачи (RTR) и бита расширения идентификатора (IDE). Бит RTR используется для определения того, является ли кадр данных удаленным кадром или кадром данных, а бит IDE используется для определения того, является ли кадр стандартным или расширенным кадром.
2.4 Поле данных
Поле данных используется для хранения фактических передаваемых данных. Длина поля данных составляет 0–8 байт для стандартных кадров и 0–64 байта для расширенных кадров.
2.5 Проверить поле
Поле контрольной суммы состоит из контрольной суммы циклическим избыточным кодом (CRC) и разделителя CRC, который используется для определения наличия ошибок в данных во время передачи, а также разделителя CRC, который идентифицирует конец контрольной суммы CRC.
2.6 Поле ответа
Поле ответа состоит из слота ответа и определителя ответа. Слот ответа используется для получения ответа от узла, и определитель ответа идентифицирует конец поля ответа.
2.7 Конечный-бит-кадра
Бит конца--кадра — это последний бит кадра сообщения, который используется для идентификации конца кадра сообщения.
3. Функции канального уровня
Уровень канала передачи данных — это второй уровень эталонной модели OSI, который в основном отвечает за надежную передачу данных поверх физического уровня. Функции канального уровня включают в себя:
3.1 Синхронизация кадров
Синхронизация кадров — одна из основных функций канального уровня, которая используется для обеспечения того, чтобы передающие и принимающие узлы могли правильно идентифицировать начало и конец информационного кадра.
3.2 Контроль ошибок
Контроль ошибок — еще одна важная функция уровня канала передачи данных, включая обнаружение и исправление ошибок. Протокол CAN использует проверку циклическим избыточным кодом (CRC) для обнаружения ошибок и обеспечения целостности данных.
3.3 Управление потоком
Управление потоком используется для предотвращения слишком быстрой отправки данных передающим узлом для обработки принимающим узлом. Уровень канала передачи данных обеспечивает надежную передачу данных, контролируя скорость отправки данных.
3.4 Контроль доступа
Контроль доступа — еще одна ключевая функция уровня канала передачи данных, которая используется для координации связи между несколькими узлами. В протоколе CAN контроль доступа реализуется посредством механизма не-неразрушающего арбитража, обеспечивающего правильную передачу данных.
4. Применение кадров сообщений CAN на канальном уровне.
4.1 Синхронизация кадров
В кадрах сообщений CAN бит начала кадра и бит конца кадра используются для достижения синхронизации кадров. Передающий узел идентифицирует начало кадра сообщения, отправляя стартовый бит кадра, а принимающий узел синхронизирует кадр, обнаруживая стартовый бит кадра.
4.2 Контроль ошибок
CRC поля контрольной суммы используется для контроля ошибок в кадре сообщения CAN. Передающий узел генерирует CRC на основе данных и добавляет его в поле данных перед отправкой данных. После получения данных принимающий узел пересчитывает контрольную сумму CRC и сравнивает ее с полученной контрольной суммой CRC, чтобы обнаружить любую ошибку в данных.
4.3 Управление потоком
В протоколе CAN управление потоком в основном реализуется посредством механизма арбитража. Когда два или более узлов отправляют данные одновременно, протокол CAN определяет приоритет с помощью механизма арбитража, чтобы обеспечить надежную передачу данных.
4.4 Контроль доступа
В протоколе CAN контроль доступа в основном реализуется посредством механизма не-неразрушающего арбитража. Когда два или более узлов отправляют данные одновременно, протокол CAN определяет приоритет отправленных данных путем сравнения значения арбитражного поля. Узел с более высоким приоритетом может продолжать отправлять данные, в то время как узел с более низким приоритетом должен дождаться, пока узел с более высоким приоритетом завершит отправку данных.




