Цитата(rezident @ Mar 3 2009, 22:09)

Это не есть недостаток. Ведомый сообщает, что он работоспособен, а не завис, например. И ведущий к тому же "знает", что линия связи до ведомого не повреждена. А вот если по-вашему делать, то в случае когда будет глобальный абзац (пропало питание на одном из ведомых или группе ведомых), то ведущий узнает об этом лишь постфактум. Когда электричество уже починят и ведомые всей толпой враз попытаются сообщить о том, что у них проблемы были. Или вообще не узнает, если линию обрежут. Постоянный циклический опрос всех ведомых, например, в системах диспетчеризации это типовое/стандартное/необходимое для нормальной работы решение.
У меня всегда одно из событии, случившихса у ведомого, называется "я жив" - подаётся например каждую секунду или так "я жив уже 156.6 секунд". Я как-то забыл об этом написать. Но когда у ведомого случаются более приоритетные события он говорит о них, и при этом считается, что он жив (ватчдог его жизни взводится). В случае CAN - сообщение "я жив" обладает низким приоритетом и совершенно не мешает другим сообщениям. При скорости 125 кбод (а не 1 мбод, как у топикстартера) 64 девайса посылающие сообщения "я жив" каждые 100 милисекунд совершенно не мешают друг-другу. Вообще-то они самоограничивают частоту своих событий, т.е. говорят о них не чаще, чем раз в 20 милисекунд (кроме редких сверхприоритетных). Но такое самоограничение всегда полезно.
К тому-же если в данный момент в сети только 3 устройства, ведущий не будет тратить время на опрос остальных 60-ти. И в сети ОДНОВРЕМЕННО могут находится 64 девайса, а всего их м.б. много больше. Да и за счёт отсутствия собственно пакетов запроса и ожидания (безрезультатного) ответа на них (а м.б. пакет от ведущего был просто повреждён и нужно повторить запрос) ещё трафик уменьшается. Т.е. кругом сплошные преимущества.
Кстати мне кажется, что у топикстартера 1 мбод - это многовато. Возможно это как-раз из-за опроса?
Цитата(rezident @ Mar 3 2009, 22:09)

Угу. Сразу же возникает ограничение, для 1 Мегабит - длина линии CAN не более 25 метров.
Для USART с драйверами CAN длина будет побольше, т.к. там поменьше требования к самоприёму. Практически можно использовать те-же значения, что и у RS485.
2 @Ark
А вот с драйверами RS485 мультимастерность крайне ограничена (из-за неинформативности самоприёма). Я бы даже сказал губительна для реалтайма, т.к. пока девайс не выдаст ВЕСЬ свой пакет он не узнает, что была коллизия. Да и восстановление после коллизий может затянуться. Пример - эзернет.
Подредактировал. Извините за повторы. Около 0.00 всегда интернет затыкается.