Шрифт
Выбор оптимального соотношения между скоростью передачи сигнала по CAN-протоколу и длиной кабеля
Play

Выбор оптимального соотношения между скоростью передачи сигнала по CAN-протоколу и длиной кабеля

Ключевой особенностью протокола CAN является вопрос о разрешении конфликта на шине, когда более чем один узел пытается передать данные через общую шину. CAN использует побитовый арбитраж для выбора узла, который должен продолжить передачу сигнала. Поскольку узлы анализируют каждый бит и обязаны уступить передачу сообщениям с более высоким приоритетом, их время отклика должно быть достаточно коротким, чтобы прекратить ее и предотвратить повреждение следующего бита. В статье, являющейся переводом [1], анализируется это ограничение, чтобы получить приемлемое время задержки и длину кабеля.

Обычно только один узел пытается в определенный момент времени установить связь через общую CAN-шину. Мы рассмотрим сеть из двух узлов и обобщим выводы в отношении сети с большим количеством узлов. На рисунке 1 проиллюстрирован принцип ее работы. Поначалу оба узла находятся в рецессивном состоянии, в котором на шину не поступает разностный сигнал (см. рис. 1а). При установлении связи узел А инициирует CAN-сообщение с доминантным битом.

Сигнал передачи данных (TXD) CAN-приемопередатчика является логическим нулем, который побуждает адаптер-усилитель дифференциальной линии сгенерировать дифференциальный сигнал на линиях шины (см. рис. 1б). Приемник в узле А принимает этот сигнал и выдает логический нуль на выводе принятых данных (RXD). На кабеле, представляющем собой витую пару, устанавливается дифференциальное напряжение, как показано на рисунках 1в и 1г. Дифференциальный сигнал достигает узла В, а приемник в этом узле также выдает логическую единицу на RXD (см. рис. 1д). В этой точке узлу В известно, что А приступил к передаче CAN-сообщения и, следовательно, узел В не начнет передачу, до тех пор пока А не закончит передавать сообщение. Следует заметить, что узел В не мгновенно узнает о том, что А начал передачу сообщения, т.к. на распространение сигнала от А к В требуется некоторое время. Совокупная задержка в этом случае является суммой задержки при распространении сигнала через приемопередатчик (а также соответствующую гальваническую развязку и буферные цепи) в узле А, задержки передачи по кабелю и задержки распространения по приемопередатчику, гальванической развязке и буферным цепям В. На первый взгляд, складывается впечатление, что эта односторонняя задержка является важным временным ограничением, необходимым для того, чтобы узел В не конфликтовал с сообщениями от А. Как видно из анализа Случая 2, это не совсем так.

В следующем сценарии (см. рис. 2) предполагается, что узел А инициирует сообщение, а спустя короткое время узел В инициирует сообщение с более высоким приоритетом. Как и прежде, поначалу оба узла находятся в рецессивном режиме (см. рис. 2а), затем А инициирует сообщение (см. рис. 2б). На кабеле вновь устанавливается дифференциальное напряжение. Прежде чем сигнал достигнет приемника в узле В, он инициирует сообщение с доминантным битом (см. рис. 2в). В этот момент оба узла передают доминантные биты, и оба их получают (см. рис. 2г), но ни один из узлов не знает о том, что другой активен. Поскольку в рассматриваемом случае у узла А сообщение имеет более низкий приоритет, в определенный момент времени этот узел выдает рецессивный бит, установив сигнал TXD равным нулю (см. рис. 2д). При этом для сигнала RXD шина по-прежнему остается в доминантном состоянии благадаря активности узла В.

Анализируя гипотетическую ситуацию с помощью полученных на практике значений задержек, можно лучше понять эти временные требования. Предположим, что в случае с сетью из двух узлов суммарная односторонняя задержка составляет 200 нс, скорость передачи сигналов — 1 Мбит/с, или максимально возможная в соответствии со стандартом ISO 11898-2. Таким образом, время прохождения бита равно 100 нс. Эта ситуация схожа со Случаем 2, за исключением того, что второй бит от узла В является нулевым (рецессивным) в соответствии с приоритетом сообщения от узла А. (В Случае 2 у узла В был второй доминантный бит, указывавший на более высокий приоритет сообщения).

На рисунке 3 узел А начинает передачу сообщения в момент времени t = 0, передавая доминантный бит на шину (см. рис. 3б). Как и в случае на рисунке 2, возможна ситуация, когда узел В начнет передачу в момент времени t = 199 нс до того, как получит сигнал от А (см. рис. 3в). Ни один из узлов не знает о том, что другой тоже активен, пока узел А не переключится в рецессивное состояние в начале передачи второго бита в момент времени t = 1000 нс. Узел В затем переключается в рецессивное состояние в начале передачи второго бита в момент времени t = 1199 нс. После еще одной односторонней задержки этот рецессивный сигнал достигает узла А в момент времени t = 1399 нс. Только после этого узел А прочтет сигнал RXD и убедится в том, что представлено истинное состояние сети.

Следует заметить, что только спустя время, равное двум односторонним задержкам, узел А отличит Случай 3 от 2. Благодаря схеме побитового арбитража, применяемой в CAN-протоколе, двусторонняя задержка должна с запасом укладываться во временной бюджет одиночного бита, в данном случае — в 1000 нс. Иначе узел может приступить к передаче третьего бита, прежде чем завершится арбитраж второго.

Исходя из того, что значение двусторонней задержки является определяющим параметром, CAN устанавливает программируемую задержку распространения (PROP_SEG) как часть каждого бита, обеспечивая достаточно длительное время ожидания, прежде чем приступить к выборке данных шины. Описание расчета PROP_SEG выходит за рамки данной статьи, но следует заметить, что он учитывает двустороннюю задержку и частоту синхронизации локальной системы. На практике PROP_SEG ограничивает точку выборки сигнала значением около 5/6 или менее от суммарного времени прохождения бита, чтобы учесть другие сегменты сети, т.е. двусторонняя задержка ограничивается некоторой частью времени прохождения бита.CAN-стандарт определяет задержку распространения сигнала в кабеле величиной 5 нс/м, а максимальную длину кабеля — 40 м при передаче сигнала со скоростью 1 Мбит/с. Если время передачи одного бита равно 1000 нс, точке выборки (установленной PROP_SEG) соответствует значение 850 нс. Односторонняя задержка в кабеле составляет 200 нс (400 нс — двухсторонняя задержка), т.е. около 450 нс остается на суммарную задержку приемопередатчика и соответствующих цепей.В документации производителей приемопередатчиков CAN часто указывается значение времени задержки в петле, равное сумме задержек передатчика и приемника. Поскольку в расчете двустороннего прохождения сигнала учитываются два приемопередатчика, у каждого из них время задержки в петле должно быть равным 225 нс или менее для 40-м шины и скорости передачи 1 Мбит/с. Если в приемопередатчик входят дополнительные компоненты, например изоляции или защиты, общий бюджет должен предусмотреть также задержку сигнала на этих элементах. Даже у высокоскростных оптопар, как правило, односторонняя задержка составляет 40 нс и более, а сигнал в прямом и обратном направлениях должен пройти через четыре оптопары. В результате допустимая длина кабеля CAN-систем с использованием оптоизоляции значительно уменьшается (или увеличивается время прохождения бита). При скорости 1 Мбит/с задержки, вызванные использованием быстрых оптопар, снижают допустимую длину кабеля в соответствии с уравнением Lсниж. = 1/2∙4∙40 нс/(5 нс/м) = 16 м. График на рисунке 4 иллюстрирует, как на оптимальное соотношение между скоростью передачи сигнала и длиной кабеля влияет задержка сигнала в приемопередатчике. Задержка в приемопередатчике (включая задержку в гальванической развязке, компонентах преобразования уровня и защиты) имеет особое значение при скоростях передачи сигнала 500 Кбит/с и выше.

Высокоскоростной CAN-приемо­передатчик с гальванической развязкой на диоксиде кремния в едином корпусе (ISO1050) уже предлагается на рынке. Благодаря тому, что суммарное время задержки в петле в худшем случае составляет менее 210 нс (включая прохождение сигнала по передатчику, приемнику и двум каналам гальванической развязки), его можно снизить и упростить расчет времени передачи сигнала для изолированных CAN-решений. Кроме того, имеется возможность реализовать функцию преобразования уровня напряжения с 3,3 В контроллера до 5 В CAN-приемопередатчика без дополнительной задержки.Разумеется, следует учитывать и другие параметры при проектировании оптимальной системы, с точки зрения выбора скорости передачи сигнала и длины кабеля. Нагрузка, межузловой интервал и длина ответвлений являются существенными факторами, обеспечивающими качество передачи сигнала и помехозащищенность системы [2].

Для иллюстрации сказанного рассмотрим лабораторную установку с двумя изолированными CAN-узлами и 50-м кабелем. Ожидается, чтот задержка прохождения сигнала по кабелю составит 250 нс в каждом направлении, задержка в петле изолированного приемопередатчика — около 150 нс, что является стандартным значением для устройства ISO1050. Таким образом, как видно из рисунка 5, в узле А задержка составляет около 800 нс после старта бита.

При передаче со скоростью 1 Мбит/с и при указанном значении точки выборки сигнала имеется достаточный запас времени до того, как закончится бит. Таким образом, благодаря быстрым приемопередатчикам длина кабеля может достигать более 40 м.

При использовании CAN-протокола связи во множестве приложений разработчикам требуется оценить соотношение между временными ограничениями и длиной кабеля. Каждый компонент сигнальной цепи вносит свой вклад в общий временной бюджет, поэтому для надежной связи требуется учесть суммарную задержку в прямом и обратном направлениях. Использование быстрых приемопередатичков типа ISO1050 обеспечивает своевременную передачу сигнала.

📎📎📎📎📎📎📎📎📎📎