Применение интерфейсов CAN и RS485 для связи с контроллерами Arduino

Автор Михаил Кольга, Суббота, Апрель 09, 2022, 00:06:25

« предыдущая тема - следующая тема »
Вниз

Михаил Кольга

Суббота, Апрель 09, 2022, 00:06:25 Последнее редактирование: Четверг, Апрель 21, 2022, 06:30:03 от Михаил Кольга
Исполнитель: Кольга Михаил Анатольевич, студент гр. 041
Руководитель - Русинов В.Л., руководитель СКБ "Промышленная робототехника и автоматизация"

Оба интерфейсных протокола -- RS 485 (стандарт физического уровня для асинхронного интерфейса) и CAN (Controller Area Network -- стандарт промышленной сети, ориентированный, прежде всего, на объединение в единую сеть различных исполнительных устройств и датчиков) -- существуют еще с середины 1980 х годов, когда они были впервые представлены в качестве стандартов для организации каналов связи.
Оба стандарта определяют уровни приемопередатчиков, которые представлены на диаграмме (рис. 1) для стороны передачи.
Оба протокола имеют дифференциальный выходной сигнал. Выход RS485 представляет собой классический дифференциальный сигнал, в котором один сигнал является инвертированным, или зеркальным отражением другого. Выход A -- неинвертирующая линия, а выход B -- инвертирующая линия. Дифференциальный диапазон +1,5…+5 В равен логической 1 или значению, а пределы -1,5…-5 В -- логическому 0 или пробелу. Сигнал с уровнем, лежащим в диапазоне -1,5…+1,5 В, считается как неопределенный. Важно отметить, что когда RS485 не используется, то его выход пребывает в состоянии высокого импеданса.
У шины CAN выходной дифференциальный сигнал несколько иной. Так, здесь предусмотрено два выхода в виде CANH- и CANL-линий данных, которые являются отражением друг друга (рис. 1) и представляют собой инвертированную логику. В доминирующем состоянии (бит нуля, используемый для указания приоритета сообщения) CANH-CANL определяются как 0, когда напряжение на них составляет +1,5…+3 В. В рецессивном состоянии (1 бит и состоянии незанятой шины) сигнал драйвера определяется как логическая 1, когда дифференциальное напряжение находится в диапазоне -120…+12 мВ или в приближении к нулю.

Рис. 1. Сравнение допустимых уровней выходных дифференциальных сигналов драйверов RS 485 и CAN
Для стороны приемника стандарт RS485 определяет входной дифференциальный сигнал, когда он находится в пределах ±200 мВ…+5 В. Для CAN входной дифференциальный сигнал составляет +900 мВ…+3 В, а рецессивный режим находится в диапазоне -120…+500 мВ. Когда шина пребывает в режиме ожидания или когда не загружена и трансивер находится в рецессивном состоянии, напряжения на линиях CANH и CANL должны быть в рамках 2-3 В.
Как RS485, так и CAN имеют необходимый технологический запас по уровням распознавания для работы в приложениях, в которых сигнал может быть ослаблен из-за характеристик и качества используемого кабеля (экранированного или неэкранированного) и длины кабелей, что может сказаться на емкости подключения системы. Для сравнения допустимых уровней входных дифференциальных сигналов со стороны приемника RS485 и CAN следует обратиться к рис. 2.
Рис. 2. Сравнение допустимых уровней входных дифференциальных сигналов для RS 485 и CAN со стороны приемника
Кроме того, оба стандарта имеют нагрузочные согласующие резисторы с одинаковым значением 120 Ом, устанавливаемые на концах линии. Эти резисторы необходимы, чтобы обеспечить согласование линии связи по волновому сопротивлению линии передачи и тем самым избежать отражения сигнала. Другие технические характеристики, такие как скорость передачи данных и количество допустимых узлов, носят информационный характер, а не являются строгими требованиями, подлежащими обязательному выполнению. Для удовлетворения нужд рынка большинство выпускаемых RS485- и CAN-трансиверов превышает стандартную скорость передачи данных и допустимое количество узлов. Например, интегральный полудуплексный трансивер RS485 индустриального класса из микросхемы MAX22500E от компании Maxim достиг скорости в 100 Мбит/с. А новый стандарт CAN-FD, ISO 11898-2:2016, хотя и определяет временные характеристики для скоростей 2 и 5 Мбит/с, но не ограничивает скорость передачи данных значением 5 Мбит/с. CAN-трансиверы превысят требования своего стандарта так же, как и приемопередатчики RS485. Что касается устойчивости к синфазному сигналу, параметр CMR (Common-Mode Range, диапазон синфазных напряжений) для RS485 составляет -7…+12 В и для CAN -2…+7 В.
Однако многим приложениям требуется более высокая производительность в части CMR, что относится к обоим типам рассматриваемых интерфейсов. Это связано с тем, что они в основном используются для многоузловых шин, а их узлы могут иметь источники питания с разными силовыми трансформаторами или кабели находиться в непосредственной близости к оборудованию с достаточно мощными переменными электромагнитными полями, способными повлиять на заземление между узлами системы. Таким образом, учитывая множество самых различных приложений, работающих в жестких условиях индустриальной среды, часто требуется более высокая устойчивость CMR, выходящая за пределы стандартных уровней -7…+12 В.
Для решения этой проблемы существуют приемопередатчики RS485 и CAN нового поколения, которые имеют значительно более широкий диапазон устойчивости к воздействию синфазной помехи, а именно до ±25 В. На диаграмме, приведенной на рис. 3, представлен флуктуирующий диапазон синфазного сигнала для приемопередатчика RS485. Несмотря на то, что сигнал синфазного напряжения растет вверх и вниз, пока уровень синфазного напряжения (VCM) находится в пределах допустимого диапазона, он не влияет на дифференциальный сигнал шины и приемник способен принимать и распознавать сигнал на линии без ошибок. Диаграмма на рис. 3 показывает допустимый диапазон изменения синфазного сигнала для RS485.

Рис. 3. Пояснение параметра CMR на примере трансивера RS 485
Еще одна особенность, присущая как приемопередатчикам CAN, так и RS485, -- защита от сбоев. Устройства с защитой от ошибок имеют внутреннюю цепь защиты от воздействия повышенного напряжения на выходы драйвера входа приемника. Это необходимо, чтобы уберечь устройства от случайных коротких замыканий между локальным источником питания и линиями передачи. В данном направлении микросхемы компании Maxim занимают лидирующее положение в отрасли. Они, как, например, широко используемая и в настоящее время MAX13041, гарантируют уровни защиты от сбоев до ±80 В и даже с некоторым дополнительным запасом до полного пробоя и выхода цепи защиты из строя . Причем важно то, что этот уровень защиты гарантируется независимо от того, подано питание на трансивер или он обесточен.
Среди основных причин того, почему в индустриальных приложениях предпочтение отдается CAN-, а не RS485трансиверам, следует назвать и способ обработки сообщений на шине. В мультиузловой системе, используемой для общения с микропроцессором RS485, могут быть случаи, когда несколько сообщений отправляются одновременно. Что иногда приводит к коллизиям, иначе известным как конкуренция. Если подобное происходит, состояние шины может оказаться неверным или неопределенным, что вызовет ошибки данных. Кроме того, такая конкуренция может повредить или ухудшить параметры производительности, когда несколько трансиверов RS485 на шине находятся в одном, а один приемопередатчик -- в противоположном состоянии. Тогда от одиночного передатчика RS485 может потребоваться довольно значительный ток, который, вероятно, вызовет отключение микросхемы из-за превышения максимально допустимой температуры или даже приведет к необратимому повреждению системы. Здесь CANbus по сравнению с протоколом RS485 имеет большое преимущество. С помощью CANbus удается разрешить проблему передачи нескольких сообщений на линии путем ранжирования каждого из них.

Рис. 4. Формат кадра передачи данных CAN  
Перед тем как приступить к работе по проектированию системы, инженеры назначают разные уровни задач. Ранее упоминалось, что CAN имеет доминантное и рецессивное состояние. Во время передачи сообщение с более высоким назначенным доминантным состоянием «выигрывает» конкуренцию и будет продолжать передачу, в то время как другие узлы с более низким приоритетом будут видеть доминирующий бит и прекратят передавать данные. Этот метод называется арбитражем, где сообщения приоритетны и принимаются в порядке их статуса. Узел, который проигрывает в результате более низкого назначенного приоритета, повторно отправит свое сообщение, когда его уровень окажется доминирующим. Это продолжается для всех узлов, пока они не выполнят передачу. На рис. 4 более подробно рассмотрен формат кадра данных сообщения в протоколе CAN. Эта временная диаграмма и таблица 1 наглядно демонстрируют, где и как происходит арбитраж.



Арбитраж разрешается во время передачи идентификатора, пример данной ситуации показан в таблице 2. Вне зависимости от топологии сети, даже с новым стандартом CAN-FD, фаза арбитража ограничена скоростью передачи 1 Мбит/с. Но фаза поля данных ограничена только характеристиками приемопередатчика, то есть она может проходить намного быстрее.



Помимо арбитража, уровень канала передачи данных (уровень 2 модели OSI) также способствует повышению надежности всей системы CAN в целом. На этом уровне сообщение кадра неоднократно проверяется на предмет точности и наличия ошибок. Если сообщение получено с ошибками, отправляется кадр ошибки. Он содержит флаг ошибки (Error Flag), который состоит из 6 бит одинакового значения (таким образом нарушая правило вставки битов) и разграничителя ошибки (Error Delimiter), состоящего из 8 рецессивных бит.
Подводя итог, можно сделать краткий вывод: если рассматривать системы «точка-точка», требующие высокой скорости обмена данными, то здесь, благодаря более высокой скорости и простому кадру, несомненно в выигрыше оказывается интерфейс RS485. Но в мультиузловых системах с возможными коллизиями и на скоростях не выше 1 Мбит/с явное преимущество остается за CAN, особенно при организации связи в системе оборудования, работающего в жестких условиях индустриальной среды, в широком диапазоне рабочих температур (для упомянутого ранее MAX13041 -40…+125 °С) и при высоком уровне внешних воздействий, не говоря уже о его «родном поле деятельности» -- автомобильной и транспортной сферах.

ran

Well, now we'll been to use the CAN,
But no the cars to use for them.
Then, now we'll been to use the wires
Without them there's no our flying.

Вверх