Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Хитрый проект с CAN шиной
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Controller Area Network (CAN)
sysel
Здравствуйте!

Ведётся работа над созданием довольно масштабного проекта системы управления (не нашей фирмой).
Основная идея - объединение разнотипных плат ввода-вывода, устройств приёма и генерации сигналов в рамках одной телекоммуникационной стойки (19 дюймов 6U, евромеханика). Планируется что все устройства до 256 узлов будут общаться по одной CAN шине.
Нам предлагают адаптировать свою продукцию, чтоб она работала в этой стойке и работала с этим CAN-ом.


Идеология такая:
Физическая среда - витая пара.
Идентификатор устройства определяется положением его в стойке (на бек плате запаяны соответствующие перемычки).
Арбитр выдаёт пакет начала обмена. Все устройства (256 штук) должны выдать в шину пакеты данных (сразу же после приёма пакета от арбитра). Причем предполагается, что вопрос арбитража должен решаться самой шиной. Предполагаемая скорость работы 500 кБит/сек. Обмены без привлечения протоколов высокого уровня. Пакеты от устройств 4-6 байт, что укладывается в размер одной посылки.


Есть подозрения, что идея гнилая из-за:
1) руководитель проекта напоминает специалиста по освоению бюджетов.
2) большое число устройств на шине. разработчики выкопали драйвер TJA1051, который как-бэ должен сдюжить.
3) скорость 500 кБит
4) подозрительная идея свалить весь арбитраж на возможности CAN (типа пусть все 256 устройств одновременно начнут вещать, а там как-нибудь между собой разберутся)
5) хотят чтобы все устройства были гальванически развязаны от шины. Причем предполагают использовать связку ADUM14xx + TJA1051.


Вопрос собственно:
Жизнеспособна ли данная идея?

У нас есть опыт работы с CAN на таких скоростях, но число абонентов - менее 10. Проверить реализуемость идеи с 256 устройствами нет возможности.

Не хотелось бы ввязываться в проект который обречен, ибо потом ещё можем крайними оказаться.
Сергей Борщ
2) Адресное поле 11 битов в худшем случае. Значит разработчики допускали наличие 2048 устройств. Если вы о нагрузочной способности - то надо читать даташит драйвера.
3) По спецификации может быть и больше
4) Вообще-то это одна из основных "фишек" CAN. Зачем наворачивать еще что-то поверх?
5) Ну I2C же как-то развязывают. Здесь доминантный и рецессивный уровни формируются по тем же правилам. Не вижу принципиальных препятствий. А если драйвер поставить на неразвязанной стороне - то вообще все решается "в лоб".
AlexandrY
Цитата(Сергей Борщ @ Nov 17 2010, 13:19) *
2) Адресное поле 11 битов в худшем случае. Значит разработчики допускали наличие 2048 устройств. Если вы о нагрузочной способности - то надо читать даташит драйвера.
3) По спецификации может быть и больше
4) Вообще-то это одна из основных "фишек" CAN. Зачем наворачивать еще что-то поверх?
5) Ну I2C же как-то развязывают. Здесь доминантный и рецессивный уровни формируются по тем же правилам. Не вижу принципиальных препятствий. А если драйвер поставить на неразвязанной стороне - то вообще все решается "в лоб".


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

Но 256 устройств на такой скорости на одной ветке явный перебор. Там по емкости драйвер такую линию не потянет. Надо сегментировать линию повторителями.

Потом помнить что доступ всех устройств к шине может занять при заданных параметрах до 40 мс.
Т.е. если трафик от более приоритетных идентификаторов более плотный, то менее приоритетные идентификаторы вообще могут быть не высланы.
garry_
задача для кана классическая, делал подобное , идеологически все работотать будет, только побейте свою сеть кан на две минимум а лучше на 4 сети (драйвер не потянет такое кол-во устройств),
работать будет железно
sysel
Цитата(garry_ @ Nov 17 2010, 16:11) *
задача для кана классическая, делал подобное , идеологически все работотать будет, только побейте свою сеть кан на две минимум а лучше на 4 сети (драйвер не потянет такое кол-во устройств),
работать будет железно


Можно ли делать повторители сращиванием "попка к попке" (RX1 -> TX2, RX2 -> TX1) драйверов шины? Как себя в этом случае поведёт CAN (драйвер же вносит задержку) ?

Какой драйвер обеспечивает максимальную нагрузочную способность ?

Можно ли обойтись ISO1050 ?
galjoen
Цитата(sysel @ Nov 17 2010, 16:47) *
Можно ли делать повторители сращиванием "попка к попке" (RX1 -> TX2, RX2 -> TX1) драйверов шины? Как себя в этом случае поведёт CAN (драйвер же вносит задержку) ?

Зачем там могут понадобиться повторители? Что вы вообще под этим термином подразумеваете? (RX1 -> TX2, RX2 -> TX1) - это защёлка, которая сработает как только придёт первая же доминанта. Вы бы хоть что-нибудь про CAN почитали, прежде чем такое писать.

Там CAN хабы нужны. Но с ними не всё гладко...
sysel
Цитата(galjoen @ Nov 17 2010, 17:57) *
Зачем там могут понадобиться повторители? Что вы вообще под этим термином подразумеваете? (RX1 -> TX2, RX2 -> TX1) - это защёлка, которая сработает как только придёт первая же доминанта. Вы бы хоть что-нибудь про CAN почитали, прежде чем такое писать.

Там CAN хабы нужны. Но с ними не всё гладко...


Простите, чущь сморозил. С CANом работал, но до повторителей и хабов дело не доходило. Устройств мало на шине было, ISO1050 отлично справлялся.
galjoen
Цитата(sysel @ Nov 17 2010, 18:13) *
до повторителей и хабов дело не доходило

Ну так почитайте про CAN хабы. В этой ветке обсуждалось.
Mos
1. идея авнтюрная. опытный образец будет работать на ура - промышленный нет;
2. больше 40 узлов - утопия;
3. хабов не бывает.
Forger
Цитата(Mos @ Apr 1 2011, 13:44) *
3. хабов не бывает.


Бывают (см. в конце): http://www.compeljournal.ru/enews/2009/5/6
eurol
Цитата(Mos @ Apr 1 2011, 14:44) *
2. больше 40 узлов - утопия;


Почему больше 40 - утопия?
Если все в одной стойке, то запросто будет работать.
У нас по четыре и больше стойки в одну сеть объединены - работают себе вполне.
Правда, то ли с длиной, то ли с количеством абонентов некая проблема - в одном случае пришлось отрывать одну стойку и вешать отдельной сетью.
syoma
Не знаю, CAN мутить в одной стойке? Он, помоему, не для такого был предназначен.
ИМХО Вам лучше на другие интерфейсы посмотреть. Например сейчас очень развивается EtherCat - там принцип обмена до невозможности простой и даже простой 8-и битник справляется. Мне кажется для стойки - самое оно.
Andrew2000
Цитата(syoma @ Apr 4 2011, 10:53) *
Например сейчас очень развивается EtherCat - там принцип обмена до невозможности простой и даже простой 8-и битник справляется.

???
Очень хотелось бы посмотреть на 8-и битник, с аппаратной поддержкой EtherCat
Пример, пожалуйста
Linker
Цитата(Forger @ Apr 2 2011, 22:31) *
Бывают (см. в конце): http://www.compeljournal.ru/enews/2009/5/6

Похоже, что это просто коммутатор одного модуля CAN процессора на две независемые подсети. Если в момент работы с подсетью CAN1 пройдет сообщение в подсети CAN2, то оно пропадет. Или я ошибаюсь?
Хабы делаются на основе процессоров, у которых на борту по несколько CAN модулей.
Mos
Цитата(Forger @ Apr 2 2011, 18:31) *
Бывают (см. в конце): http://www.compeljournal.ru/enews/2009/5/6


1. на логическом уровне - конечно бывают (это итак понятно);
2. спасибо за ссылку. интересный обзор;
3. вот:

(тынц), стр. 7:

Цитата
Feedback Suppression
The logic unit described in Table 3 constantly ensures that
dominant symbols on one bus line are transmitted to the
other bus line without imposing any priority on either of the
lines. This feature would lead to an “interlock” state with
permanent dominant signal transmitted to both bus lines, if
no extra measure is taken.
Therefore feedback suppression is included inside the
logic unit of the transceiver. This block masks−out reception
on that bus line, on which a dominant is actively transmitted.
The reception becomes active again only with certain delay
after the dominant transmission on this line is finished.


т.е. ничё нового - подобное решение с задержкой включения приёмника (с целью избежания самоблокировки /защёлкивания/) уже не раз обсуждалось на форуме - а вот какая должна быть длительность этой задержки; как она коррелирует со скоростью, с длинами сегментов, с крутизной фронтов...

ИМХО, хабы физ. уровня для КЭНа - сопли и заплатки (не надёжно, короче..)

ещё, 2 eurol,
утопия, потому, что в наших суровых реалиях в проектах самоделкина никто не будет использовать нормальный кабель на 120 ом, Fieldbus-коннекторы (35-70-100 евро/шт) и т.д - плашками прижмут к плате да и всё. (ну кабель ещё ладно, возьмут Profibus лаповский (он типа вообще 160 ом; не понятно на какой частоте измеряли)).
4 шкафа - это метров 100 кабеля (наразделку метров 10 уйдёт)
Forger
Цитата(Mos @ Apr 4 2011, 14:49) *
... интересный обзор;

Спасибо. Приятно слышать - этот обзор я писал, потому и вспомнил sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.