Из того, что я знаю, CAN на физическом уровне в «рецессивном» состоянии просто позволяет подтягиванию/вытягиванию выполнять свою работу.
Означает ли это, что время нарастания теоретически меньше, чем у приемопередатчика RS-485?
А по поводу шумоподавления по RS-485 и CAN? Оба используют дифференциальную шину, но опять же CAN полагается только на резисторы для обеспечения «рецессивного» сигнала.
Читая некоторые статьи, большинство, если не все, указывают RS-485 как 1200 м при 100 кбит/с, тогда как CAN обычно указывает максимум 40 м на более медленных скоростях (я читал только одну, в которой говорилось о сетях CAN с более длинной шиной). линии). И даже эти документы CAN кажутся более конкретными в отношении использования экранированных пар, где RS-485 кажется более «расслабленным» с UTP .
Является ли RS-485 более надежным и быстрым для длинных шин, чем CAN?
Да, я знаю, что теоретически один из них является одним ведущим, а другой — несколькими ведущими, но для меня это не так, поскольку TDMA можно использовать для реализации хорошего мультиведущего на RS-485, посылая сигнал синхронизации от «ведущего» ( его можно назвать скорее источником синхронизации, чем мастером), время от времени, а слот просто используется для получения доступа к шине.
1 Да, я знаю, что CAN изначально разрабатывался для автомобильного рынка, поэтому расстояние не имеет большого значения, но сегодня он, кажется, используется и в промышленной автоматизации, где RS-485, я думаю, «доминирует».
2 Я видел заметки о том, что RS-485 более экспансивный, чем CAN. Ну, это действительно не то, что я понимаю. Основные «популярные» микроконтроллеры имеют UART, тогда как небольшая часть имеет контроллеры CAN, а внешние контроллеры CAN трудно достать или они дороги.
CAN может развивать скорость до 1 Мбит/с на шинах длиной до нескольких десятков метров. Пассивное состояние на самом деле не замедляет передачу сигналов. В общей сложности 60 Ом стягивают линии вместе, что позволит им делать это довольно быстро. Я посмотрел на биты на шине CAN с помощью прицела, и края были красивыми и прочными в обоих направлениях. Подумайте о том факте, что пассивное состояние по-прежнему приводит шину в движение, как если бы она была закорочена, но импеданс привода соответствует характеристическому импедансу кабеля. Преднамеренный драйвер будет иметь такой же импеданс, так что на самом деле нет никакой разницы.
Что ограничивает длину шины CAN на практике, так это то, что сигнал должен проходить туда и обратно между двумя самыми удаленными узлами за доли битового времени. Это необходимо для работы механизма обнаружения столкновений.
RS-485 и CAN действительно находятся в двух разных лигах. RS-485 дает вам электрическую спецификацию для многоабонентской шины, вот и все. CAN определяет целые сообщения с идентификаторами и байтами данных, контрольной суммой, управляющей информацией, обнаружением коллизий, обнаружением некоторых ошибок и обработкой ошибок, а также полным использованием полосы пропускания при высокой нагрузке, и все это в настоящей одноранговой сети. Кроме того, этот плюс автоматический повтор отправки встроен в аппаратное обеспечение ряда недорогих микроконтроллеров.
Теоретически вы могли бы реализовать что-то подобное, используя RS-485 в качестве базовой шины, но правильно настроить все детали протокола для надежной работы во всех крайних случаях далеко не так просто, как думают некоторые люди.
Джон Ю
Диего С Насименто
Джон Ю