Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CAN transceiver на 512 устройств
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Controller Area Network (CAN)
Niger
Здравствуйте!
Возникла проблема. Необходимо подключить к CAN-шине 512 устройств. В настоящее время используем трансивер TJA1050, но он позволяет подключать только до 128 устройств.
Скорость работы - 1,0 Мбит/с, расстояния - несколько метров.
Подскажите плиз микросхему (если конечно такая существует), которая помогла бы решить проблему.
Заранее благодарен!
Mos
ты вообще имееш представление о том, что такое КЭН, ШИНА, ВИТАЯ ПАРА ???

Видимо это особенность нашего времени, что web-программисты лезут во все отрасли программирования и техники.
Niger
Цитата(Mos @ Jun 19 2008, 09:46) *
ты вообще имееш представление о том, что такое КЭН, ШИНА, ВИТАЯ ПАРА ???

Видимо это особенность нашего времени, что web-программисты лезут во все отрасли программирования и техники.


Да я представляю что такое CAN. В настоящее время постоянно работаю с данным интерфейсом.
Вашего вопроса я вообще то не понял.
Проблема, о которой я написал, заключается в том что трансивер физического уровня CAN не позволяет подключать более 128 устройств.
Если я ошибаюсь просветите. Заранее благодарен
редактор
Можно попробовать собрать повторитель типа такого

128-4 абонентов
[CAN BUS] <-->[DRV]<-->[DRV]<-->[CAN BUS] 127 абонентов
.....
<-->[DRV]<-->[DRV]<-->[CAN BUS] 127 абонентов

но могут возникнуть проблемы в канале, т.к увеличиться задержка сигнала. Может быть придется скорость понизить
С интерфейсом работаем недавно, поэтому есть сомнения в том что получиться.
Niger
идея по поводу использования повторителя рассматривалась
но не подошла из-за жестких ограничений на время задержки сигнала
хотя если ничего не найдем придется делать повторитель
редактор
А если попробовать оптоизолировать всех абонентов от шины
Есть оптопары с пропускной способностью до 10 мбод (например HCPL2631 2 канала)
Andy Mozzhevilov
Цитата(Niger @ Jun 18 2008, 18:33) *
Здравствуйте!
Возникла проблема. Необходимо подключить к CAN-шине 512 устройств.

Хорошее число, круглое smile.gif

Цитата
В настоящее время используем трансивер TJA1050, но он позволяет подключать только до 128 устройств.
Скорость работы - 1,0 Мбит/с, расстояния - несколько метров.

При скорости мегабит длина шины CAN может составлять порядка 30 метров.
При подключении 512 устройств нужно будет порезать кабель на 5-сантиметровые кусочки.
Вы вообще, как себе это представляете? Или озвучте более полно условия задачи.


Цитата(редактор @ Jun 19 2008, 15:15) *
А если попробовать оптоизолировать всех абонентов от шины
Есть оптопары с пропускной способностью до 10 мбод (например HCPL2631 2 канала)

Изолировать что от чего?
Драйвер от витой пары? Так драйвер и нужен специально чтобы в качестве среды передачи использовать витую пару.
Контроллер от драйвера? Увеличится задержка сигнала в оптопарах, соответственно либо добпустимая длина кабеля между крайними узлами уменьшится, либо нужно будет понизить скорость передачи.
Niger
сейчас у нас система построена следующим образом:
2 параллельные шины каждая работает на скорости 500 кбит
шины проходят внутри блоков по кросс-плате
в каждом блоке 8 устройств
блоки также соединены между собой витой парой по 30 см макс.
соответственно сейчас работает 16 блоков

в новой разработке необходимо увеличить кол-во устройств в 2 раза
ну и желательно увеличить скорость до 1 мбит по каждой шине
spf
Цитата(Niger @ Jun 19 2008, 15:30) *
сейчас у нас система построена следующим образом:
2 параллельные шины каждая работает на скорости 500 кбит
шины проходят внутри блоков по кросс-плате
в каждом блоке 8 устройств
блоки также соединены между собой витой парой по 30 см макс.
соответственно сейчас работает 16 блоков

в новой разработке необходимо увеличить кол-во устройств в 2 раза
ну и желательно увеличить скорость до 1 мбит по каждой шине

Скорость вы поднимаете т.к. вам не хватает пропускной способности при увеличении количества устройств. Это понятно.
Но надо ли такое на самом деле?
Всем ли устройствам надо слышать всех?
Может увеличить количество шлейфов и не ломать голову?
Драйверов CAN на такие количества абонентов шины не существует не только по электрическим соображениям, но и по практическим. Иметь столько устройств на шине не удобно с точки зрения обеспечения реального времени, для чего собственно и делался CAN.

Может вам стоит сделать что-то типа хаба или свичера на МК с несколькими интерфейсами?
Сейчас имеются МК с 4 и 6 интерфесами на борту.

PS: Поисками подобных решений вы загоняете себя в угол.
ИМХО. Видимо стоит решать задачу не в лоб, а найти более универсально решение.
Может вообще попробовать посмотреть в сторону других интерфейсов, FlexRay м.б.
SWAMP
Цитата(spf @ Jun 19 2008, 20:31) *
Скорость вы поднимаете т.к. вам не хватает пропускной способности при увеличении количества устройств. Это понятно.
Но надо ли такое на самом деле?
Всем ли устройствам надо слышать всех?
Может увеличить количество шлейфов и не ломать голову?
Драйверов CAN на такие количества абонентов шины не существует не только по электрическим соображениям, но и по практическим. Иметь столько устройств на шине не удобно с точки зрения обеспечения реального времени, для чего собственно и делался CAN.

Может вам стоит сделать что-то типа хаба или свичера на МК с несколькими интерфейсами?
Сейчас имеются МК с 4 и 6 интерфесами на борту.

PS: Поисками подобных решений вы загоняете себя в угол.
ИМХО. Видимо стоит решать задачу не в лоб, а найти более универсально решение.
Может вообще попробовать посмотреть в сторону других интерфейсов, FlexRay м.б.


Подскажите плиз МК с 4-6 интерфейсами CAN
Заранее благодарен
Mos
Цитата(Niger @ Jun 19 2008, 11:27) *
Да я представляю что такое CAN.
...трансивер физического уровня CAN не позволяет подключать более 128 устройств...


Цитата(Niger @ Jun 19 2008, 11:27) *
Если я ошибаюсь просветите.


Тут дело даже не в том, что ты ошибаешся или НЕ ошибаешся на счёт 128-и устройств. Изначально вопрос поставлен очень не корректно (отсюда и ответная реакция).
Если ты почитаеш 2-ю,3-ю, и т.д. страницы даташита (а не только первую) то у тебя может сформироваться понятие о том:
1) почему именно 128 и почему это очень условно;
2) что такое волновой импеданс кабеля и для чего нужны терминаторы;
3) что такое ВХОДНОЕ СОПРОТИВЛЕНИЕ драйвера (а точнее, его активный эквивалент; т.е. по постоянному току);
4) и наконец, самое главное, что такое НАГРУЗОЧНАЯ СПОСОБНОСТЬ ДРАЙВЕРА.

если сопоставить характеристики, приведённые в 2), 3) и 4), то можно найти зависимость между волновым импедансом кабеля и кол-вом трансиверов на шине.

Например, если Z = 120 ом, то N=128; если оно Z = 100 ом, то N = 44.
N (Z) = ((Z*Rdiff/45)-2*Rdiff)/Z

Легко заметить, что при колве трансиверв более 300 требуемый импеданс уходит в бесконечность т. е. 512 это даже теоретически не достижимое кол-во.

Теперь ты полнял, что посты типа:

Здравствуйте!
Возникла проблема. Необходимо подключить к CAN-шине 512 устройств...

выглядят очень не корректно...
spf
Цитата(SWAMP @ Jun 20 2008, 01:36) *
Подскажите плиз МК с 4-6 интерфейсами CAN

LPC2194JBD64
LPC2194JBD144
MB91F469GAPB
MB91F467BAPMC
SJA2020HL-622
SJA2020HL-623
galjoen
Цитата(Niger @ Jun 19 2008, 13:30) *
в каждом блоке 8 устройств

Вот на каждом блоке и поставьте 1 драйвер CAN, а внутри блока соедините без драйверов - просто на логике. Вроде получается, что вам нужно 1шт. 8И и 8шт. 2И (эти 8шт. 2И необязательно).
navy2000
Делал объединение нескольких CAN драйверов на основной плате по TTL-уровням. Такой, импровизированный разветвитель. Причем, технология CAN сохранялась. То есть, если хоть в одной ветке доминанта, то она будет устанавливаться и в других. С точки зрения CAN-контроллера, все абоненты находятся в одной сети, а с точки зрения каждого CAN-драйвера, он подключен только к части всех абонентов и поэтому требования по нагрузочной способности удовлетворяются. Но, конечно скорости были очень далеки от предельно возможных. Но в сети работало до 300 абонентов.
Dog Pawlowa
Цитата(navy2000 @ Jun 30 2008, 10:54) *
Делал объединение нескольких CAN драйверов на основной плате по TTL-уровням.

Только устройство из одной подсети не сможет передать сообщение в другую подсеть. Ограничения по архитектуре, однако.
С другой стороны, ни один из широкораспространенных HLP не обеспечивает адресацию >64 устройств.

Мне кажется, явно надуманная задача. Такое количество сложных устройств в такой компактной куче.
Аффтар, что за применение? smile.gif
navy2000
Цитата
Только устройство из одной подсети не сможет передать сообщение в другую подсеть. Ограничения по архитектуре, однако.

Не понял, что вы имели в виду. Именно для этого все и делалось.
Попробую пояснить еще раз.
Объединение подсетей производится по TTL уровням на одной плате и подключаются они к одному CAN-контроллеру. Поэтому, если хоть один из абонентов из любой ветки поставит доминанту, то она будет на приеме у всех других. То есть, сеть логически представляет из себя моноканал. А физически, к каждому передатчику подключено нужное количество приемников.
У меня было объединено 16 каналов на одной плате и до 32 абонентов в канале.
Для примера кусочек очень упрощенной схемы.
Mos
Вы не могли бы пояснить следующий момент в работе приведённой схемы:

Возьмём драйвер DD36; предположим, ему на TxD подана "1"; в его сети одно из устройств (назовём его А) выставило "доминанту", тогда на его (DD36) выходе RxD образуется "0". При этом линия, подтянутая к +5V_CAN через R152 опустится в "0" и подаст его ("0") на TxD всех драйверов. Таким образом, все они выставят у себя на шинах "доминанту", в том числе и DD36.

А теперь, когда узел А перестал выставлять "доминанту" в своём сегменте, на шине всё равно должна остаться "доминанта", потому, что её УЖЕ удерживает DD36.

Иными словами, драйвер принял "доминанту", выставил же её, видит её и выставляет... smile.gif

Или я не верно Вас понял?
navy2000
Ваши рассуждения не лишены здравого смысла. Я не могу объяснить, почему не наблюдал защелкивания. Возможно, потому, что это было не серийное изделие, а лишь один экземпляр и то не активно используемый. Но идея считаю вполне реализуемая. Предложите свой способ объединения лишенный перечисленных вами недостатков.
Mos
Идея вполне реализуемая, но не вполне жизнеспособная...

Нет способа разветвления CAN на физическом уровне; нужно делать повторители на более высоких логических уровнях; например, можно поставить несколько CAN-контроллеров и подключить их всех высокоскоростным интерфейсом (например, параллельным) к главному контроллеру.
Второй способ - объединение сегментов логическими повторителями.

А идея не рабочая вот почему:
тынц
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.