Краткий обзор протокола CAN. Часть II
Вернуться к статьям октября 27, 2020 По материалам компании Kvaser
Продолжение статьи I части.
Эта статья не претендует на полноту и абсолютную точность сведений, указанных в ней, и предназначена для ознакомления с протоколом CAN.
Содержание статьи
• Шина CAN – Введение.
• Сообщения CAN.
• Физические уровни CAN.
• Разъемы CAN.
• Тактовая синхронизация CAN.
• Обработка ошибок CAN.
Разъемы CAN
Для разъемов CAN стандартов не существует! Обычно, каждый (!) протокол более высокого уровня (Higher Layer Protocol) описывает один или несколько предпочтительных типов разъемов.
• 9–контактный DSUB, предложен CiA;
• 5–контактный Mini–C и/или Micro–C, используется DeviceNet и SDS;
• 6–контактный Deutsch разъем, предложенный CANHUG для транспортных гидравлических систем.
Разъемы CAN
Данное назначение контактов разъема рекомендовано CiA и фактически является промышленным стандартом.
1 | - | Резерв |
2 | CAN_L | Линия шины CAN_L (доминантная низкая) |
3 | CAN_GND | Заземление CAN |
4 | - | Резерв |
5 | (CAN_SHLD) | Опционально: экран CAN |
6 | (GND) | Опционально: заземление CAN |
7 | CAN_H | Линия шины CAN_H (доминантная высокая) |
8 | - | Резерв (линия ошибок) |
9 | CAN_V+ | Опционально: питание |
Для пользователей продукции KVASER: Пожалуйста заметьте, что специфическое употребление этих контактов в кабелях KVASER DRVcan описано в документе LAPcan Hardware Guide, который можно скачать на сайте компании.
Если питание подается, оно должно быть в диапазоне +7..+13 В, 100 мA. Модули оснащены разъемом типа «папа» и должны соединять внутри контакты 3 и 6.
Нумерация контактов действительна для разъема типа «папа„, при взгляде со стороны разъема, или для разъема типа “мама», при взгляде со стороны распайки. – Чтобы запомнить расположение контактов, заметьте, что контакт CAN_LOW имеет МЕНЬШИЙ (LOW) номер, а CAN_HIGH – БОЛЬШИЙ (HIGH).
5-контактный Mini–C
Используется как DeviceNet , так и SDS , и является совместимым для этих двух протоколов.
Контакт | Функция | Цвет DeviceNet |
1 | Экран | Неизолированный |
2 | V+ | Красный |
3 | V- | Черный |
4 | CAN_H | Белый |
5 | CAN_L | Синий |
Модули оснащены разъемами типа «папа». Подаваемое напряжение 24 В ±1%
6-контактный Deutsch DT04-6P
Рекомендован CANHUG для использования в транспортных гидравлических системах
Разъемы на модулях типа «папа», разъемы шины – «мама». На данный момент нет никаких рекомендаций по вопросу подачи питания.
Контакт |
Функция |
Рекомендованный цвет кабеля |
1 | «Минус» питания |
Черный |
2 | CAN_H | Белый |
3 | Опционально: заземление сигнала | Желтый |
4 | Опционально: запуск | Серый |
5 | «Плюс» питания | Красный |
6 | CAN_L | Синий |
Тактовая синхронизация CAN
Схема бита
Каждый бит, передаваемый по шине CAN, разделяется, для нужд тактовой синхронизации, как минимум на 4 части (кванта). Часть логически делится на 4 группы или сегмента:
• сегмент синхронизации
• сегмент воспроизведения
• сегмент фазы 1
• сегмент фазы 2
Схема бита данных шины CAN:
Сегмент синхронизации, который всегда имеет длину в один квант, используется для синхронизации тактовых частот. Ожидается, что край бита появится здесь при смене данных на шине.
Сегмент воспроизведения нужен для компенсации задержки на линиях шины.
Сегменты фазы могут быть сокращены (сегмент фазы 1) или удлинены (сегмент фазы 2), если это потребуется для сохранения синхронизованности тактовых частот.
Уровни шины замеряются на границе между сегментом фазы 1 и сегментом фазы 2.
Большинство контроллеров CAN также обеспечивают возможность трехкратного замера на протяжении одного бита. В таком случае, замер происходит на границах двух квантов, предшествующих точке замера и результат зависит от мажоритарного декодирования (это верно как минимум в случае 82527).
Тактовая синхронизация
Для того, чтобы регулировать встроенный в чип генератор тактовых частот шины, контроллер CAN может сократить или удлинить бит на целое число квантов. Максимальное количество таких временных поправок бита определяется параметром «ширина скачка синхронизации» (Synchronization Jump Width, SJW).
Жесткая синхронизация происходит при переходе стартового бита от рецессивного к доминантному. Отсчет времени прохождения бита начинается заново с этой границы.
Повторная синхронизация происходит когда край бита не попадает в сегмент синхронизации сообщения. Один из сегментов фазы укорачивается или удлиняется на некоторое количество квантов, зависящее от ошибки фазы сигнала; максимальное количество используемых квантов определяется параметром «ширина скачка синхронизации» (Synchronization Jump Width, SJW).
Вычисление регистра тактовой синхронизации
Большинство контроллеров CAN позволяют программисту осуществлять настройку тактовой синхронизации используя следующие параметры:
• Значение предварительного делителя тактовой частоты
• Количество квантов перед точкой замера
• Количество квантов после точки замера
• Количество квантов в «ширина скачка синхронизации» (Synchronization Jump Width, SJW)
Обычно для этих целей выделяется два регистра: btr0 и btr1. Однако они могут слегка различаться у разных контроллеров, поэтому внимательно читайте инструкцию.
В контроллерах 82c200 и SJA1000, производства NXP (ранее Philips), раскладка регистра выглядит приблизительно так:
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
btr0 | SJW1 | SJW0 | BRP5 | BRP4 | BRP3 | BRP2 | BRP1 | BRP0 |
btr1 | SAM | TSEG22 | TSEG21 | TSEG20 | TSEG13 | TSEG12 | TSEG11 |
TSEG10 |
• BRP0. .BRP5 устанавливают значение предварительного делителя тактовой частоты
• SJW0..SJW1 устанавливают длину SJW
• TSEG10..TSEG13 устанавливают количество квантов перед точкой замера (стартовый бит не включен)
• TSEG20..TSEG22 устанавливают количество квантов после точки замера
• SAM при установке значения 1 производится три замера, при установке значения 0 – один замер
Примечание: реальные значения этих параметров несколько отличаются от значений, вписанных в регистр.
Пример: если сигнал генератора, подаваемый на SJA1000, имеет частоту 16 МГц, и мы желаем получить скорость передачи 250 кбит/с, с точкой замера в районе 62% всего бита, и SJW равным 2 квантам, мы можем установить –
BRP = 4, что дает продолжительность кванта 2 × 4 / 16000000 с = 500 нс, и
TSEG1 = 5, что дает 5 квантов перед точкой замера, и
TSEG2 = 3, что дает 3 кванта после точки замера.
Каждый бит будет содержать 5 + 3 = 8 квантов, что даст нам желаемую скорость передачи 1 / (8 × 500 нс) = 250 кбит/с. Значения регистра должны быть следующими:
btr0= |
(SJW – 1) * 64 + (BRP -1) = (2-1)*64 + (4-1) = 67 = 0×43 |
btr1= |
SAM * 128 + (TSEG2 – 1)* 16 + (TSEG1 – 1) = 0×128 + (3-1)*16 + (4-1) = («4» потому, что стартовый бит не включен) 35 = 0×23 |
Точка замера в районе 5/8 = 62.5% бита.
Обработка ошибок CAN
Как CAN обрабатывает ошибки
Обработка ошибок встроена в протокол CAN и очень важна для производительности системы CAN. Обработка ошибок нацелена на обнаружение ошибок в сообщениях, передающихся по шине CAN, чтобы передатчик мог повторно выслать неверно принятое сообщение. Каждый CAN–контроллер на шине будет пытаться обнаружить ошибку в сообщении. Если ошибка найдётся, обнаруживший её узел будет передавать флаг ошибки, таким образом разрушая трафик шины. Другие узлы обнаружат ошибку, вызванную флагом ошибки (если еще не обнаружили оригинальную ошибку) и предпримут соответствующие действия, т.е. отбракуют текущее сообщение.
Каждый узел обслуживается двумя счетчиками ошибок: счетчиком ошибок передачи (Transmit Error Counter) и счетчиком ошибок приёма (Receive Error Counter). Существуют правила, регламентирующие повышение и/или понижение значения этих счетчиков. По существу, передатчик определяет повышение числа сбоев в счетчике ошибок передачи быстрее, нежели слушающие узлы увеличат значения своих счетчиков ошибок передачи. Это потому, что есть немалая вероятность, что сбой именно в передатчике! Когда значение любого счетчика ошибок превышает определенную величину, узел сначала становится Error Passive – это значит, что он не будет активно разрушать трафик шины при обнаружении ошибки; а затем Bus Off – это значит, что узел вообще не будет принимать участия в передаче данных по шине.
При помощи счетчиков ошибок узел CAN может не только обнаруживать сбои, но и ограничивать ошибки.
Механизмы обнаружения ошибок
Протокол CAN описывает не менее пяти различных способов обнаружения ошибок. Два из них работают на уровне бита, а остальные три – на уровне сообщения.
1.Мониторинг битов (Bit Monitoring).
2.Вставка битов (Bit Stuffing).
3.Проверка кадра (Frame Check).
4.Проверка распознавания (Acknowledgement Check).
5.Проверка циклической избыточности (Cyclic Redundancy Check).
Мониторинг бита
Каждый передатчик шины CAN осуществляет мониторинг (т.е. повторное прочтение) переданного уровня сигнала. Если уровень прочитанного бита отличается от уровня переданного, подается сигнал ошибки бита (Bit Error). (Роста бита ошибок в процессе разрешения конфликтов не происходит.) Вставка битов
После того как узел передаст пять непрерывно следующих друг за другом битов одного уровня, он добавит к исходящему потоку битов шестой бит, противоположного уровня. Получатели будут удалять этот дополнительный бит. Это делается для предупреждения появления излишнего количества компонентов DC на шине, но также дает получателям дополнительную возможность обнаружения ошибок: если по шине передается более пяти непрерывно следующих друг за другом битов одного уровня, подается сигнал ошибки вставки.
Проверка кадра
Некоторые части сообщения CAN имеют фиксированный формат, т.е. стандарт четко определяет, какие уровни должны произойти и когда. (Эти части – ограничитель CRC (CRC Delimiter), ограничитель ACK (ACK Delimiter), конец кадра (End of Frame), а также пауза (Intermission), однако для них существуют дополнительные специализированные правила проверки на ошибки. ) Если контроллер CAN обнаружит неверное значение в одном из этих полей, он подаст сигнал ошибки формы (Form Error).
Проверка распознавания
Ожидается, что все узлы шины, которые получили сообщение корректно (независимо от того, было ему это сообщение «интересно» или нет), отправят доминантный уровень в так называемой области распознавания (Acknowledgement Slot) кадра. Передатчик будет передавать рецессивный уровень. Если передатчик не сможет обнаружить доминантный уровень в области распознавания, он подаст сигнал ошибки распознавания (Acknowledgement Error).
Проверка циклической избыточности
Каждое сообщение содержит 15–битную контрольную сумму циклической избыточности (Cyclic Redundancy Checksum, CRC), и любой узел, обнаруживший что CRC в сообщении отличается от посчитанного им, подаст сигнал ошибки CRC (CRC Error).
Механизмы ограничения ошибок
Каждый контроллер CAN шины будет пытаться обнаружить описанные выше ошибки в каждом сообщении. Если ошибка обнаружится, нашедший её узел передаст флаг ошибки, таким образом разрушая передачу данных по шине. Другие узлы обнаружат ошибку, вызванную флагом ошибки (если они ещё не обнаружили оригинальную ошибку) и предпримут соответствующее действие, т.е. сбросят текущее сообщение.
Каждый узел обслуживают два счетчика ошибок: счетчик ошибок передачи и счетчик ошибок приема. Существуют правила, описывающие условия повышения и/или понижения значений этих счетчиков. По существу, передатчик, обнаруживший сбой, повышает значение своего счетчика ошибок передачи быстрее, чем слушающие узлы повысят значения своих счетчиков ошибок приема. Это потому, что есть большая вероятность, что сбоит сам передатчик!
Узел начинает работу в режиме Error Active. Когда значение любого из двух счетчиков ошибок превысит 127, узел перейдет в состояние Error Passive, а когда значение счетчика ошибок передачи превысит 255, узел перейдёт в состояние Bus Off.
• Узел в режиме Error Active при обнаружении ошибки будет передавать флаги активной ошибки (Active Error Flags).
• Узел в режиме Error Passive при обнаружении ошибки будет передавать флаги пассивной ошибки (Passive Error Flags).
• Узел в режиме Bus Off не будет передавать ничего.
Правила повышения и понижения значений счетчиков ошибок довольно сложные, но принцип прост: ошибка передачи добавляет 8 пунктов, а ошибка прием – 1 пункт. Правильно переданные и/или принятые сообщения вызывают понижение значения счетчика(ов).
Пример (слегка упрощенный): Представим, что у узла A плохой день. Всякий раз, когда A пытается передать сообщение, происходит сбой (не важно, по какой причине). При каждом сбое значение счетчика ошибок передач увеличивается на 8 пунктов и передается флаг активной ошибки. Затем он пытается послать сообщение ещё раз.. и всё повторяется.
Когда значение счетчика ошибок передачи превысит 127 пунктов (т.е. после 16 попыток), узел A перейдёт в режим Error Passive. Разница в том, что теперь он будет передавать флаги пассивной ошибки. Флаг пассивной ошибки содержит 6 рецессивных битов и не будет нарушать передачу других данных по шине – поэтому другие узлы не услышат жалобы A на ошибки шины. Однако A продолжит повышать значение счетчика ошибок передачи. Когда он превысит 255 пунктов, узел A окончательно сдастся и перейдет в режим Bus Off.
Что другие узлы думают об узле A? – После каждого флага активной ошибки, переданного узлом A, остальные узлы повышают значения своих счетчиков пассивной ошибки на 1 пункт. За всё то время, что потребуется узлу A для перехода в режим Bus Off, значения счетчиков ошибок получения остальных узлов не превысят границы Error Passive, т.е. 127. Это значение будет уменьшаться на 1 пункт при каждом корректном получении сообщения. Однако узел А будет оставаться в режиме Bus Off.
Большинство контроллеров CAN будут предоставлять биты статуса (и соответствующие прерывания) для двух состояний:
• «Предупреждение об ошибке» (Error Warning) – значение одного или обеих счетчиков ошибок превысило 96 пунктов
• Bus Off, как описано выше.
Некотрые, но не все (!), контроллеры также предоставляют бит для состояния Error Passive. Немногие контроллеры также предоставляют прямой доступ к счетчикам ошибок.
Привычка контроллеров CAN автоматически переотправлять сообщения при возникновении ошибок иногда может раздражать. На рынке имеется как минимум один контроллер (SJA1000 от Philips), поддерживающий полное ручное управление обработкой ошибок.
Режимы сбоев шины
Стандарт ISO 11898 перечисляет несколько режимов сбоев кабеля шины CAN:
1.CAN_H прерван
2.CAN_L прерван
3.CAN_H короткозамкнутый на напряжение батаре
4.CAN_L короткозамкнутый на землю
5.CAN_H короткозамкнутый на землю
6.CAN_L короткозамкнутый на напряжение батареи
7.CAN_L короткозамкнутый на провод
8. CAN_H и CAN_L прерваны в одном и том же месте
9.Потеря соединения с оконечной нагрузкой сети
Для сбоев 1–6 и 9 «рекомендовано», чтобы шина сохраняла работоспособность путём снижения соотношения сигнал/шум (S/N), а в случае сбоя 8 – чтобы исходная подсистема сохранила работоспособность. Для сбоя 7 существует «опциональная» возможность сохранения работоспособности путём снижения соотношения сигнал/шум (S/N).
На практике система CAN, построенная на приемопередатчиках типа 82C250, не сохранит работоспособность при сбоях 1–7, а при сбоях 8–9 может как сохранить, так и не сохранить.
Существуют «устойчивые к сбоям» драйверы, такие как TJA1053, способные обрабатывать все сбои. Обычно за эту устойчивость приходится платить ограничением максимальной скорости; для TJA1053 она составляет 125 кбит/с.
По материалам компании Kvaser . С оригинальными текстами на английском языке можно ознакомиться на сайте компании Kvaser , перейдя по этой ссылке .
инструкции:соединение-по-шине-can [База знаний “Гидролого”]
Расстановка точек над соединением по шине контроллеров SmartWeb и Kromschröder E8.
Внимание!
Контроллеры SmartWeb и Kromschröder E8 соединяются по шине CAN, к этому соединению есть определенные требования.
Если эти требования не выполнять, то может быть система будет работать.
Но, если что-то не работает, то прежде всего надо убедиться, что требования соблюдены
Топология
Все участники сети (в т.ч. SmartWeb, Kromschröder E8, Datalogger, Caleon и TM-E8) должны быть соединены друг с другом последовательно, в линейной топологии.
“Звездой”, “кругом”, “паутинкой” соединять нельзя.
Ответвления
Ответвления от основной “линии” длиной до 3 м — допустимы. Общая длина проводов не должна превышать 500 м.
Терминирующий резистор
На обоих концах линии должен быть терминирующий резистор 120 Ом, между проводами H и L.
На контроллерах SmartWeb резистор можно вставить в свободный парный порт шины CAN.
На контроллерах Kromschröder E8 резистор можно включить или выключить, используя настройку ТЕХНИК – СХЕМА – ИЗОЛ ШИНЫ.
Особенности:
SmarWeb S/L/X — можно воткнуть резистор в свободный парный порт шины.
DataLogger — можно воткнуть резистор в свободный парный порт шины или включить резистор замыканием соответствующего джампера на плате.
Kromschröder E8.0634 — по умолчанию этот резистор программно включен
Kromschröder E8.1124 — по умолчанию этот резистор программно выключен
Lago FB, BM8 — нет возможности включить резистор. Либо устанавливать вручную, либо не ставить их в конце линии
TM-E8 — резистор установлен на плате и выключить его нельзя, поэтому TM-E8 обязательно должен быть на конце линии.
Рекомендуемая схема подключения следующая: SmartWeb S/L/X — DataLogger — TM-E8
или E8. 0634 — E8.1124 — Lago FB — BM8 — TM-E8
Защита CAN-шины
Несмотря на то, что европейские производители не устанавливают защиту CAN-шины от всплесков напряжения на свои контроллеры, на практике в России это точно лучше делать. Для этого, воспользуйтесь модулем защиты CAN-Z.
Этот модуль также можно использовать и в качестве терминирующего резистора.
Кабели
Нельзя прокладывать витую пару в непосредственной близости от кабелей 220 В.
Использовать для соединения витую пару пятой категории, толщиной AWG 24.
При использовании FTP Cat. 5e или STP Cat. 5e, оплетку или экран кабеля, а также неиспользованные провода, надо заземлять на одном конце кабеля.
Иначе, если не заземлить или заземлить на двух концах, будет хуже.
При использовании UTP Cat. 5e, оплетки нет и заземлять ничего не надо, результат хороший, можно рекомендовать для несложных условий.
При использовании кабеля витой пары с двумя или четырьмя витыми парами, необходимо использовать только одну из них для шины данных.
Соединять витую пару вместе и использовать как единый провод недопустимо!
Соединение “звездой”
Если “звезды” не избежать, то можно использовать следующую схему.
Так как обычно используется кабель с 4-мя витыми парами, можно использовать одну из них для прохода сигнала “туда”, а вторую для прохода сигнала “обратно”.
Таким образом, можно сохранить линейную топологию даже при физически проложенном кабеле “звездой”.
Ножевой микроразъем SmartWeb
На контроллерах SmartWeb обычно нет клемм для подключения CAN-проводов, вместо них там парный ножевой микроразъем.
Поэтому, в комплекте с каждым контроллером SmartWeb идет небольшой кусок провода, обжатого таким микроразъемом с одной стороны и свободными концами с другой стороны.
Для соединения контроллеров используйте следующую схему:
Ножевой микроразъем для CAN (2шт)
Провод CAN (в комплекте)
Витая пара
Белый — CAN H
Коричневый — CAN L
Винтовые или пружинные клеммы
Кроме того, желательно найти на контроллере слаботочный минус (GND) и объединить этот минус с другими контроллерами сети CAN, отдельным проводом.
Клеммы Kromschröder
Полюсы “+” и “-” на клемме шины данных Кромшредера нужны только для питания Lago FB и BM8, но лучше всегда их прокладывать вместе с CAN-шиной, для объединения минусов и усиления питания на клемме «+».
“+” и “-” можно прокладывать по соседней витой паре с шиной данных.
Диагностика
При проблемах проверьте следующее:
Проложен ли кабель последовательно, не звездой, нет ли веток длиннее 3 м.
Есть ли на концах кабеля терминирующие резисторы
Нет ли каких-то лишних резисторов на шине, не на концах, а в середине. Всего на шине должно быть два резистора, не больше, не меньше.
Соединены ли все контроллеры между собой также и по слаботочному минусу, т.е. всего должно быть проложено как минимум три провода – CAN H, CAN L, GND. В некоторых случаях найти GND на приборе сложно, тогда допускается не соединять этот провод.
Желательно, а если выходит из строя CAN-шина, то и обязательно – использовать защитные платы CAN-Z на каждом отдельном контроллере без встроенной защиты в сети CAN.
Мост CAN-Ethernet-CAN
Вы можете объединить несколько групп контроллеров SmartWeb, находящихся в разных CAN-сетях, одной локальной сетью Ethernet. Для этого в каждой группе должно находиться по одному контроллеру DataLogger (или SmartWeb X).
Соответственно, такие контроллеры DataLogger должны находиться в одной сети Ethernet. В настройках DataLogger должна быть включена опция «Режим CAN-UDP моста».
Такая функция может пригодиться в том случае, когда нет возможности проложить кабель для шины данных CANbus, чтобы соединить контроллеры SmartWeb.
Пример
Например, требуется соединить два контроллера (две группы) SmartWeb при помощи радиоканальной связи. В этом случае потребуется два Wi-Fi-маршрутизатора.
Установите их в местах соединения контроллеров SmartWeb. Убедитесь, что эти маршрутизаторы могут быть соединены по Wi-Fi.
Разные маршрутизаторы имеют разную мощность радиосигнала, и, соответственно, разную дальность действия. В некоторых случаях для усиления сигнала может потребоваться дополнительное оборудование. Подключите к маршрутизаторам по одному контроллеру DataLogger. В свою очередь, к ним подключите контроллеры SmartWeb.
Аналогично можно объединить контроллеры SmartWeb уже имеющейся на объекте проводной локальной сетью Ethernet.
Стандарты распиновки шины CAN DB9
\$\начало группы\$Существует два стандарта распиновки DB9, когда речь идет о шине CAN.
Кажется, это промышленная версия. Я видел это в ПЛК и частотно-регулируемых приводах.
- 7 – CAN-H
- 2 – CAN-L
- 3 – Земля
- 6 – Земля
- 9 – ВБАТ
Кажется, автомобильный. Единственное место, где я его видел, это кабели OBD2-DB9.
- 3 – CAN-H
- 5 – CAN-L
- 1 – Земля
- 2 – Земля
- 9 – ВБАТ
Откуда берутся эти стандарты, особенно автомобильные? Глядя на щит CAN Arduino от seed studio и spark fun, у них есть как распиновка, так и перемычки для пайки для переключения между ними.
- банка
- db9
«CAN в автоматизации» (CiA) — это ассоциация, которая пытается стандартизировать CAN в промышленных условиях. Они публикуют документы по различным частям сетей CAN и протоколам, связанным с CAN. Пример:
CiA 303-1 версия 1.9.0
Рекомендация. Часть 1. Назначение кабелей и контактов разъема
Описание
В этом документе представлены рекомендации по проектированию устройств и сетей для физического уровня CANopen. Кроме того, в нем содержатся рекомендации по выбору кабелей и разъемов для использования в системах CANopen.
Многие документы, опубликованные CiA, можно загрузить с их веб-сайта. К сожалению, не все.
По моему опыту, в промышленной среде поставщики продуктов автоматизации обычно придерживаются таких документов, потому что хотят быть совместимыми с другими продуктами.
Откуда в автомобильном мире распиновка разъема, я не знаю. Я подозреваю, что один из крупных поставщиков начал именно так, а остальные просто последовали за ним. Может быть, есть и какая-то стандартизация, но я сомневаюсь, что мы сможем легко получить доступ к таким документам.
\$\конечная группа\$ \$\начало группы\$В автомобильной промышленности каждый интерфейс или другое устройство с DB9 также использует 7 и 2. Квасер, Вектор, Пик… все. Только какой-то 2 битный китаец с алибабы (типа ардуино и пис) почему-то кажется имеет адские 3+5 нестандартные.
\$\конечная группа\$ 1Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя электронную почту и парольОпубликовать как гость
Электронная почтаТребуется, но никогда не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
raspberry pi – совместимость с системой CAN BUS? от DB9 до M12
спросил
Изменено 1 месяц назад
Просмотрено 5к раз
\$\начало группы\$У меня есть СИСТЕМА CAN с 5-контактным штекерным разъемом M12, который действует как сенсорный процессор. Работает от 12 вольт. Я пытаюсь накормить эту систему системой Raspberry Pi B, используя эту плату CAN BUS: http://bit.ly/1ZGsf2E.
Я обнаружил, что M12 имеет эту распиновку:
Raspberry имеет разъем DB9 с такой распиновкой:
Если я измерю напряжение на штекере m12, используя контакт 3 в качестве земли, я получу 2,5 В на контакте 4 и 0,05 В на контакте 5. и 9 вольт на контакте 2.
Мне интересно, правильно ли я делаю, чтобы соединить разъем DB9, CAN_H и CAN_L вместе, CAN_GRND и контакт 9 от DB9 (CAN_V+) с контактом 2 CAN_V+ на M12. Я спрашиваю себя, не столкнусь ли я с проблемами, потому что Pi работает на 5 В, а процессор CAN на 12 В. Кроме того, если они на самом деле совместимы, так как у меня есть гораздо больше доступных контактов на DB9.сторона.
- raspberry-pi
- банка
Чтобы расширить ответ Марко, вы должны подключить сигналы CAN_GND, CAN_H и CAN_L на разъеме DE-9 к соответствующим входам на разъеме M12. Если у вас нет гальванической развязки на экране CAN-шины, вы также можете безопасно подключить контакт GND на разъеме DE-9 к CAN_GND, ничего не сломав, если хотите.
Вы должны , а не соединять сигналы CAN_V+ друг с другом, так как в документации по шине CAN не ясно, может ли он принимать питание на контакте CAN_V+, особенно при напряжении 9В.
Шина CAN зависит только от подключенных шинных линий (CAN_H и CAN_L) и заземления (CAN_GND) — узлам не обязательно использовать общую шину питания. Возможно, вы захотите измерить напряжение на контакте DB9 CAN_V+, чтобы определить, обеспечивает ли он собственную шину 5 В для своего трансивера или ему нужно питание 5 В извне.
\$\конечная группа\$ \$\начало группы\$CAN_H идет к CAN_H, CAN_L идет к CAN_L, CAN_GND идет к CAN_GND.
\$\конечная группа\$Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя адрес электронной почты и парольОпубликовать как гость
Электронная почтаТребуется, но никогда не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.