Что произойдет, если два узла с одинаковыми именами будут использовать один и тот же адрес в j1939?

Если в j1939 два узла с одинаковыми именами будут использовать один и тот же адрес, что произойдет в этой ситуации? будет ли какой-либо из узлов требовать адрес или произойдет ошибка?

3 ответа

С точки зрения сети, нет никакого способа отличить узлы, поскольку они идентифицируют себя как один и тот же объект. Что произойдет, так это то, что первые запросы будут обработаны, а второй будет проигнорирован. Другими словами, это условие гонки, потому что только одно сообщение обрабатывается за один раз в канале данных. К тому времени, когда второй узел попытается запросить тот же адрес, таблица адресов уже занята, и узел позднего запроса не сможет получить уведомление о том, что ему был назначен адрес. Помните, что каждый узел имеет свои собственные внутренние состояния / конфигурацию.

Моя копия спецификации датирована, но я уверен, что это правило не изменилось с 2003 года (SAE J1939-81):

"Производители ECU и интеграторы сетей должны обеспечить уникальность NAME всех CA, предназначенных для передачи в конкретной сети".

Конечно, это, как говорится, конечно, возможно поместить устройства с тем же ИМЯ в один и тот же набор проводов, либо по незнанию или злым умыслом.

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

Возможно, я ошибаюсь, но я думаю, что единственное, что может увидеть CA - это сообщение, поступившее с адреса, который, как он думал, было заявлено, проблема, которую он может даже не проверять.

J1939-81 говорит

«Происходят повторяющиеся конфликты, устройства отключаются от шины BUS OFF. Центры сертификации должны повторить попытку с псевдослучайной задержкой перед попыткой восстановления, а затем вернуться к рисункам 2 и 3».

Другие вопросы по тегам