QUOTE (adnega @ Mar 18 2016, 15:49)

Смотрите, передать 8 или 9 байт в RS-485 разницы принципиальной нет. А в CAN разница между передачей 8 и >8 байт существенна.
По поводу детерминизма. В RS-485 уж если вы отправили символ в передатчик, то через длительность байта можете отправлять следующий (грубо).
В CAN записали посылку в мэйлбокс и ждите когда он отправится. При возникновении ошибки пакет может автоматически переотправляться,
как и в случае потери арбитража. Т.е. время отправки (успешно или неуспешно) зависит уже и от линии, и от других узлов, и от ID пакета.
если отвечать по вашей логике то все совсем не так как вы думаете
если стоит просто записать в порт то вы правы
если цель переслать данные то все совем не так
в 485 вам надо сначала получить доступ к шине и договориться со всеми остальными что вы сейчас будете чтото передавать по шине
и это чтото будет занимать шину определенное число байт. что существенно медленнее чем это же самое делает в CAN
чтобы послать в 485 вы записываете в порт - в can ровно точно также толкьо в порт можно записать сразу до 8 байт
формально получается CAN проще - тут не надо ждать когда чтото отправится чтобы записать следующее, работая через прерывания в 485 вы съедаете ресурсы и тормозите очень сильно если вдруг возникнет более приоритетное прерывание и вы для того чтобы послать следующий байт потеряете кучу времени если вообще его получите
теперь гарантирование отправления даже внутри одного микроконтроллера конкурирует по ID и вы всегда можете отправить высокоприоритетное сообщение прервав обмен(вклинившись между передачей пакетов) по шине - что 485 невозможно в принципе
как то не вижу причин обсудать все это тут - если вы почитаете про can то все это становится совершенно очевидно и не требует никакого обсуждения
а уж про синхронизацию - выполнять ее аппаратно в CAN или программно в 485 - я даже не знаю как такое обсуждать?
если я вас не убедил - то извините
вот если вы говорите о том что послать 1 байт и принять его в системе 1 мастер по 485 - то да это получится быстрее чем в CAN
об этом даже и говорить не стоит 485 тут выше всяких похвал. вот только нельзя быть уверенным -
1 что ваш байт ктото принял
2 что ваш байт принят ровно таким каким вы его посылали
не находите что это довольно призрачно ебыстродействие?
но оно действительно для 485 будет быстрее
еще такой момент - в CAN устройства фильтруют пакеты и это позволяет производить передачу на скоростях гораздо выше чем может обрабатывать устройство
что я имею ввиду
может быть очень быстрый процессор и куча дохлых процессоров и вот этот мощный может пересылать с высоким быстродействием пакеты, а дохлые возьмут только те пакеты которые им принадлежат
в 485 все должны принимать все байты и это существенно ограничиваетскорость