Определение приоритетов
Конфликты могут возникать в сети, когда несколько модулей управления хотят отправить сообщение одновременно. Например, когда водитель нажимает на педаль тормоза одновременно с изменением пассажиром настроек климат-контроля и пассажир на заднем сиденье открывает электростеклоподъемник.
Для безопасного функционирования сообщения должны быть приоритетными. Кроме того, временные задержки, возникающие в случае возникновения ситуации с очередью, должны удерживаться на разумных пределах. Это делается для того, чтобы клиент не испытывал систему как медленную.
Для решения проблем с конфликтами и временными задержками существует приоритетный порядок сообщений, обеспечивающий хорошую функциональность.
Назначение приоритета сообщениям определяется количеством нулей в начале сообщения, причем чем больше нулей, тем выше приоритет.
Приоритизация происходит следующим образом
- Когда сеть доступна, все модули управления с " чем-то сказать " посылают бит один в своем сообщении
- Все модули управления определяют, что было передано по сети
- Если модуль управления передал 0 тем, кто отправил 1 остановить и ждать до следующего раза сеть доступна
- Те, кто передал 0 передают бит два сообщения
- Если модуль управления передал 0 как бит два, те, кто отправил 1, останавливаются и ждут до следующего раза, когда сеть станет доступной и так далее.
Сообщение с наивысшим приоритетом (наибольшее количество нулей в начале) " выигрывает " и отправляется первым.
Конец сообщения - семь нулей. Затем модули управления знают, что сеть доступна и новое сообщение может быть отправлено в приоритетном порядке.