Сообщения в CAN
Сообщение состоит из следующих частей:
• кода опознавания ("Идентификатор"), который дает сведения об идентификации и приоритете сообщения
• информационных данных (значение, информация и т.д.)
• общей суммы для проверки, правильно ли поступило сообщение
• конечного сигнала, который обозначает конец сообщения
Полное сообщение CAN обозначается как рамка сигнала.
Приоритет
В сети могут возникнуть конфликты, если несколько модулей попытаются одновременно передать сообщения. Это может быть, например, в случае, когда водитель тормозит, передний пассажир одновременно с этим изменяет настройку системы кондиционирования, а пассажир на заднем сиденье включает электрические стеклоподъемники. Чтобы обеспечить надежную работу, сообщения должны иметь разный приоритет. Кроме того, задержки, которые возникают вследствие определения приоритета, должны удерживаться в таких пределах, чтобы клиент по возможности вообще ничего не заметил.
Чтобы избежать конфликтов и задержек и обеспечить безупречное функционирование, существует установленная последовательность сообщений.
Приоритет сообщения определяется по количеству нулей в начале сообщения: чем больше нулей, тем выше приоритет.
Определение приоритета происходит следующим образом:
• При доступной сети все модули, которые должны передать сообщение, посылают первый бит своего сообщения.
• Все модули регистрируют передаваемые по сети сигналы.
• Если один из модулей отправил ноль, модули которые отправили единицу ждут, пока сеть снова станет доступна.
• Модули с нулем оправляют второй бит своего сообщения.
• Если один из модулей отправил ноль в качестве второго бита, модули с единицей ждут, пока сеть снова станет доступна и т.д.
Сообщение с самым высоким приоритетом, т.е. с наибольшим количеством нулей в начале, отправляется первым.
Конец сообщения состоит из семи нулей. Таким образом модули распознают, что сеть снова свободна и что они могут отправлять новые сообщения в соответствии с их приоритетом.
Два типа сообщений
Существует два типа сообщений в системе:
• Периодические сообщения отправляются регулярно и передают мгновенный статус параметра. Они используются для информации, которая часто меняется, например, сигналы скорости.
• Сообщения, связанные с событиями, отправляются только, если выполнены определенные условия. Они используются для информации, которая поступает реже, например, открытие или закрытие окна.
Сообщения могут содержать в себе бит обновления, по которому определяется, насколько "новым" является сообщение.
Система исходит из того, что сообщения поступают на приемный модуль, и сигналы подтверждения приема не отправляются. Ответы отправляются только на прямые вопросы других модулей.
С другой стороны приемный модуль "знает", как часто он должен получать определенное сообщение о статусе. Если сообщение не поступает, приемный модуль может запустить программу аварийной работы и/или сохранить код неисправности (DTC)
Совместимость
Модули должны общаться на одном языке и быть совместимыми друг с другом. Поэтому применяется стандартизированный протокол обмена данными.
Язык модулей содержится в конфигурации сигнала. Если конфигурация сигнала одного модуля не соответствует конфигурации других модулей, модуль может не отвечать на запросы. Поэтому все модули должны иметь совместимую конфигурацию сигнала.
Чтобы проверить это, многофункциональный электронный модуль (GEM) посылает по шине CAN идентификационный номер конфигурации своего сигнала. Другие модули сравнивают этот номер со своим собственным номером. Если идентификация не совпадает, модуль сохраняет в памяти код неисправности (DTC). Конфигурация сигнала меняется в случайном порядке, чтобы можно было добавлять новые сообщения и удалять старые.