Segment 3 January 2, 2011 Posted January 2, 2011 · Report post Вопрос заключается в следующем: будут ли ошибки, если на шину будет передаваться одинаковое сообщение с разных узлов одновременно? То есть если с N устройств передается одинаковое сообщение, то оно пройдет как одно? Quote Share this post Link to post Share on other sites More sharing options...
galjoen 0 January 3, 2011 Posted January 3, 2011 · Report post Если точно одновременно, то, конечно, никаких ошибок не будет. Но если будут передавать все, то ACK никто не пошлёт. А от чего у вас такие странные вопросы возникают? Quote Share this post Link to post Share on other sites More sharing options...
Andrew2000 0 January 4, 2011 Posted January 4, 2011 · Report post Как раз все наоборот. Под "одинаковым" понимается одинаковый ID и, возможно, разные данные? Тогда при одновременной передаче арбитраж никто не выигрывает, а ошибка будет, т.к. данные разные (даже если и одинаковые, биты могут "разъехаться" по времени к концу телеграммы). А вот если верхним протоколом выдача телеграмм с одинаковым ID но с разных узлов четко разнесена по времени - проблем никаких. Quote Share this post Link to post Share on other sites More sharing options...
Segment 3 January 7, 2011 Posted January 7, 2011 · Report post Одинаковый ID и данные. Спасибо. Скоро проверю в железе, просто интересно. Quote Share this post Link to post Share on other sites More sharing options...
galjoen 0 January 9, 2011 Posted January 9, 2011 · Report post даже если и одинаковые, биты могут "разъехаться" по времени к концу телеграммы Если кварцы одинаковые, то не разъёдутся - всего около 100 бит то, всё сообщение. Quote Share this post Link to post Share on other sites More sharing options...
Ruslan1 2 January 25, 2011 Posted January 25, 2011 · Report post Вопрос заключается в следующем: будут ли ошибки, если на шину будет передаваться одинаковое сообщение с разных узлов одновременно? То есть если с N устройств передается одинаковое сообщение, то оно пройдет как одно? Неа, не будет ошибок. На случай если они полностью одинаковое передают- то откуда ж ошибке вообще взятся, а если разъедутся - то в силу принципа неразрушающего контроля шины никаких ошибок не будет. Данная ситуация (много слейвов одновременно одинаковое передают) заложена например в CANopen LSS протокол- там такие одинаковые ответы обязательно будут. И ничего, работает :) Quote Share this post Link to post Share on other sites More sharing options...
juray 0 February 2, 2011 Posted February 2, 2011 · Report post Так ведь неразрушающий арбитраж не распространяется на поле данных. Quote Share this post Link to post Share on other sites More sharing options...
Ruslan1 2 February 4, 2011 Posted February 4, 2011 · Report post Так ведь неразрушающий арбитраж не распространяется на поле данных. Ух ты, а я действительно не заметил. Надо будет еще раз более вдумчиво спецификацию почитать, я пробежав по диагонали понял что этот арбитраж работает в течении передачи всего CAN пакета :( Ну тогда конечно могут коллизии быть, если это действительно так. Я только один проект с кэном делал. в сети было 10 устройств плюс LSS мастерб пользовал LSS fastscan (тож самописный). могу сказать что пакеты принимались четко. битых пакетов в линии не видел (я мониторил CAN шину третьим устройством и скидывал данные в лог). Но тут коллизия факт совпадения факторов, я мог прросто ее не дождаться или не заметить. Quote Share this post Link to post Share on other sites More sharing options...
juray 0 February 5, 2011 Posted February 5, 2011 · Report post Вот как это сформулировано в спецификациях Боша и 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. " Quote Share this post Link to post Share on other sites More sharing options...
Andrew2000 0 February 6, 2011 Posted February 6, 2011 · Report post 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. " Так оно и понятно, чего данные просить если они вот уже полезли... Quote Share this post Link to post Share on other sites More sharing options...
zksystem 0 February 7, 2011 Posted February 7, 2011 · Report post На неделе буду проводить эксперимент, выводить сообщения на дисплей Opel Astra теми же ID что и штатная магнитола, только чаще, заодно и проверим, будут ли коллизии с магнитолой. Только в моем случае поля данных будут отличными от даннх магнитолы. Quote Share this post Link to post Share on other sites More sharing options...
Ruslan1 2 February 8, 2011 Posted February 8, 2011 · Report post На неделе буду проводить эксперимент, выводить сообщения на дисплей Opel Astra теми же ID что и штатная магнитола, только чаще, заодно и проверим, будут ли коллизии с магнитолой. А как узнаете что коллизия произошла? я так понимаю некорректное сообщение (плохая CRC) будет похоронено аппаратным кэн-контроллером без участия программиста. Quote Share this post Link to post Share on other sites More sharing options...
zksystem 0 February 9, 2011 Posted February 9, 2011 · Report post А как узнаете что коллизия произошла? я так понимаю некорректное сообщение (плохая CRC) будет похоронено аппаратным кэн-контроллером без участия программиста. Подключаюсь фирменным адаптером от IXXAT Quote Share this post Link to post Share on other sites More sharing options...
Linker 1 March 17, 2011 Posted March 17, 2011 · Report post Вопрос заключается в следующем: будут ли ошибки, если на шину будет передаваться одинаковое сообщение с разных узлов одновременно? То есть если с N устройств передается одинаковое сообщение, то оно пройдет как одно? Если несколько узлов попытаются отправить совершенно одинаковые пакеты, то произойдет следующее: в фазе арбитража (биты идентификатора+RTR) никто не выиграет арбитраж, передача пакета прекратится всеми узлами и они отпустят шину. До передачи байтов данных и CRC дело не дойдет. Эти попытки могут повторяться бесконечно. Потому нельзя допускать наличие узлов с одинаковыми идентификаторами на шине. Quote Share this post Link to post Share on other sites More sharing options...
Andrew2000 0 March 17, 2011 Posted March 17, 2011 · Report post ... в фазе арбитража (биты идентификатора+RTR) никто не выиграет арбитраж, передача пакета прекратится всеми узлами и они отпустят шину ... Это на каком основании? Quote Share this post Link to post Share on other sites More sharing options...