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