Segment 3 2 января, 2011 Опубликовано 2 января, 2011 · Жалоба Вопрос заключается в следующем: будут ли ошибки, если на шину будет передаваться одинаковое сообщение с разных узлов одновременно? То есть если с N устройств передается одинаковое сообщение, то оно пройдет как одно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
galjoen 0 3 января, 2011 Опубликовано 3 января, 2011 · Жалоба Если точно одновременно, то, конечно, никаких ошибок не будет. Но если будут передавать все, то ACK никто не пошлёт. А от чего у вас такие странные вопросы возникают? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrew2000 0 4 января, 2011 Опубликовано 4 января, 2011 · Жалоба Как раз все наоборот. Под "одинаковым" понимается одинаковый ID и, возможно, разные данные? Тогда при одновременной передаче арбитраж никто не выигрывает, а ошибка будет, т.к. данные разные (даже если и одинаковые, биты могут "разъехаться" по времени к концу телеграммы). А вот если верхним протоколом выдача телеграмм с одинаковым ID но с разных узлов четко разнесена по времени - проблем никаких. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Segment 3 7 января, 2011 Опубликовано 7 января, 2011 · Жалоба Одинаковый ID и данные. Спасибо. Скоро проверю в железе, просто интересно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
galjoen 0 9 января, 2011 Опубликовано 9 января, 2011 · Жалоба даже если и одинаковые, биты могут "разъехаться" по времени к концу телеграммы Если кварцы одинаковые, то не разъёдутся - всего около 100 бит то, всё сообщение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 14 25 января, 2011 Опубликовано 25 января, 2011 · Жалоба Вопрос заключается в следующем: будут ли ошибки, если на шину будет передаваться одинаковое сообщение с разных узлов одновременно? То есть если с N устройств передается одинаковое сообщение, то оно пройдет как одно? Неа, не будет ошибок. На случай если они полностью одинаковое передают- то откуда ж ошибке вообще взятся, а если разъедутся - то в силу принципа неразрушающего контроля шины никаких ошибок не будет. Данная ситуация (много слейвов одновременно одинаковое передают) заложена например в CANopen LSS протокол- там такие одинаковые ответы обязательно будут. И ничего, работает :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juray 0 2 февраля, 2011 Опубликовано 2 февраля, 2011 · Жалоба Так ведь неразрушающий арбитраж не распространяется на поле данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 14 4 февраля, 2011 Опубликовано 4 февраля, 2011 · Жалоба Так ведь неразрушающий арбитраж не распространяется на поле данных. Ух ты, а я действительно не заметил. Надо будет еще раз более вдумчиво спецификацию почитать, я пробежав по диагонали понял что этот арбитраж работает в течении передачи всего CAN пакета :( Ну тогда конечно могут коллизии быть, если это действительно так. Я только один проект с кэном делал. в сети было 10 устройств плюс LSS мастерб пользовал LSS fastscan (тож самописный). могу сказать что пакеты принимались четко. битых пакетов в линии не видел (я мониторил CAN шину третьим устройством и скидывал данные в лог). Но тут коллизия факт совпадения факторов, я мог прросто ее не дождаться или не заметить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juray 0 5 февраля, 2011 Опубликовано 5 февраля, 2011 · Жалоба Вот как это сформулировано в спецификациях Боша и CiA : "The ARBITRATION FIELD consists of the IDENTIFIER and the RTR-BIT" "the bus access conflict is resolved by bitwise arbitration using the IDENTIFIER. ... If a DATA FRAME and a REMOTE FRAME with the same IDENTIFIER are initiated at the same time, the DATA FRAME prevails over the REMOTE FRAME. " Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrew2000 0 6 февраля, 2011 Опубликовано 6 февраля, 2011 · Жалоба If a DATA FRAME and a REMOTE FRAME with the same IDENTIFIER are initiated at the same time, the DATA FRAME prevails over the REMOTE FRAME. " Так оно и понятно, чего данные просить если они вот уже полезли... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zksystem 0 7 февраля, 2011 Опубликовано 7 февраля, 2011 · Жалоба На неделе буду проводить эксперимент, выводить сообщения на дисплей Opel Astra теми же ID что и штатная магнитола, только чаще, заодно и проверим, будут ли коллизии с магнитолой. Только в моем случае поля данных будут отличными от даннх магнитолы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 14 8 февраля, 2011 Опубликовано 8 февраля, 2011 · Жалоба На неделе буду проводить эксперимент, выводить сообщения на дисплей Opel Astra теми же ID что и штатная магнитола, только чаще, заодно и проверим, будут ли коллизии с магнитолой. А как узнаете что коллизия произошла? я так понимаю некорректное сообщение (плохая CRC) будет похоронено аппаратным кэн-контроллером без участия программиста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zksystem 0 9 февраля, 2011 Опубликовано 9 февраля, 2011 · Жалоба А как узнаете что коллизия произошла? я так понимаю некорректное сообщение (плохая CRC) будет похоронено аппаратным кэн-контроллером без участия программиста. Подключаюсь фирменным адаптером от IXXAT Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Linker 6 17 марта, 2011 Опубликовано 17 марта, 2011 · Жалоба Вопрос заключается в следующем: будут ли ошибки, если на шину будет передаваться одинаковое сообщение с разных узлов одновременно? То есть если с N устройств передается одинаковое сообщение, то оно пройдет как одно? Если несколько узлов попытаются отправить совершенно одинаковые пакеты, то произойдет следующее: в фазе арбитража (биты идентификатора+RTR) никто не выиграет арбитраж, передача пакета прекратится всеми узлами и они отпустят шину. До передачи байтов данных и CRC дело не дойдет. Эти попытки могут повторяться бесконечно. Потому нельзя допускать наличие узлов с одинаковыми идентификаторами на шине. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrew2000 0 17 марта, 2011 Опубликовано 17 марта, 2011 · Жалоба ... в фазе арбитража (биты идентификатора+RTR) никто не выиграет арбитраж, передача пакета прекратится всеми узлами и они отпустят шину ... Это на каком основании? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться