МОЖЕТ общаться вопросы
Я начал этот путь, потому что у меня есть драйвер CAN в uCLinux, который я рассматриваю. Я новичок в CAN в целом, поэтому я провел небольшое исследование об этом, и я наткнулся на вопрос, на который я не нашел ответа.
Если CAN является последовательным интерфейсом, а CANopen не имеет "мастера шины", то как протокол CAN обрабатывает неизбежные коллизии данных на шине? Если никто не определяет, когда вы можете отправлять сообщения, при наличии достаточного количества устройств и времени должны быть отправленные сообщения, которые конфликтуют.
Это довольно простой вопрос, так что, возможно, я нашел ответ и просто не понял его... Если кто-нибудь может дать ответ / пример, это было бы здорово.
1 ответ
Это делается через CSMA/CD. Сигнал CAN - это провод И логика. Таким образом, меньший идентификатор сообщения может иметь более высокий приоритет на основе конкуренции с логикой AND.