|
CAN transceiver на 512 устройств |
|
|
|
Jun 18 2008, 12:33
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 29-09-06
Из: Зеленорад
Пользователь №: 20 810

|
Здравствуйте! Возникла проблема. Необходимо подключить к CAN-шине 512 устройств. В настоящее время используем трансивер TJA1050, но он позволяет подключать только до 128 устройств. Скорость работы - 1,0 Мбит/с, расстояния - несколько метров. Подскажите плиз микросхему (если конечно такая существует), которая помогла бы решить проблему. Заранее благодарен!
|
|
|
|
|
Jun 19 2008, 08:27
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 29-09-06
Из: Зеленорад
Пользователь №: 20 810

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

Группа: Участник
Сообщений: 24
Регистрация: 29-09-06
Из: Зеленорад
Пользователь №: 20 810

|
идея по поводу использования повторителя рассматривалась но не подошла из-за жестких ограничений на время задержки сигнала хотя если ничего не найдем придется делать повторитель
|
|
|
|
|
Jun 19 2008, 09:19
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(Niger @ Jun 18 2008, 18:33)  Здравствуйте! Возникла проблема. Необходимо подключить к CAN-шине 512 устройств. Хорошее число, круглое  Цитата В настоящее время используем трансивер TJA1050, но он позволяет подключать только до 128 устройств. Скорость работы - 1,0 Мбит/с, расстояния - несколько метров. При скорости мегабит длина шины CAN может составлять порядка 30 метров. При подключении 512 устройств нужно будет порезать кабель на 5-сантиметровые кусочки. Вы вообще, как себе это представляете? Или озвучте более полно условия задачи. Цитата(редактор @ Jun 19 2008, 15:15)  А если попробовать оптоизолировать всех абонентов от шины Есть оптопары с пропускной способностью до 10 мбод (например HCPL2631 2 канала) Изолировать что от чего? Драйвер от витой пары? Так драйвер и нужен специально чтобы в качестве среды передачи использовать витую пару. Контроллер от драйвера? Увеличится задержка сигнала в оптопарах, соответственно либо добпустимая длина кабеля между крайними узлами уменьшится, либо нужно будет понизить скорость передачи.
--------------------
Пасу котов...
|
|
|
|
|
Jun 19 2008, 09:30
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 29-09-06
Из: Зеленорад
Пользователь №: 20 810

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

Странник
   
Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051

|
Цитата(Niger @ Jun 19 2008, 15:30)  сейчас у нас система построена следующим образом: 2 параллельные шины каждая работает на скорости 500 кбит шины проходят внутри блоков по кросс-плате в каждом блоке 8 устройств блоки также соединены между собой витой парой по 30 см макс. соответственно сейчас работает 16 блоков
в новой разработке необходимо увеличить кол-во устройств в 2 раза ну и желательно увеличить скорость до 1 мбит по каждой шине Скорость вы поднимаете т.к. вам не хватает пропускной способности при увеличении количества устройств. Это понятно. Но надо ли такое на самом деле? Всем ли устройствам надо слышать всех? Может увеличить количество шлейфов и не ломать голову? Драйверов CAN на такие количества абонентов шины не существует не только по электрическим соображениям, но и по практическим. Иметь столько устройств на шине не удобно с точки зрения обеспечения реального времени, для чего собственно и делался CAN. Может вам стоит сделать что-то типа хаба или свичера на МК с несколькими интерфейсами? Сейчас имеются МК с 4 и 6 интерфесами на борту. PS: Поисками подобных решений вы загоняете себя в угол. ИМХО. Видимо стоит решать задачу не в лоб, а найти более универсально решение. Может вообще попробовать посмотреть в сторону других интерфейсов, FlexRay м.б.
--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
|
|
|
|
|
Jun 19 2008, 19:36
|
Группа: Новичок
Сообщений: 1
Регистрация: 1-11-06
Пользователь №: 21 882

|
Цитата(spf @ Jun 19 2008, 20:31)  Скорость вы поднимаете т.к. вам не хватает пропускной способности при увеличении количества устройств. Это понятно. Но надо ли такое на самом деле? Всем ли устройствам надо слышать всех? Может увеличить количество шлейфов и не ломать голову? Драйверов CAN на такие количества абонентов шины не существует не только по электрическим соображениям, но и по практическим. Иметь столько устройств на шине не удобно с точки зрения обеспечения реального времени, для чего собственно и делался CAN.
Может вам стоит сделать что-то типа хаба или свичера на МК с несколькими интерфейсами? Сейчас имеются МК с 4 и 6 интерфесами на борту.
PS: Поисками подобных решений вы загоняете себя в угол. ИМХО. Видимо стоит решать задачу не в лоб, а найти более универсально решение. Может вообще попробовать посмотреть в сторону других интерфейсов, FlexRay м.б. Подскажите плиз МК с 4-6 интерфейсами CAN Заранее благодарен
|
|
|
|
|
Jun 20 2008, 06:24
|
Частый гость
 
Группа: Свой
Сообщений: 89
Регистрация: 31-10-06
Пользователь №: 21 829

|
Цитата(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 устройств... выглядят очень не корректно...
|
|
|
|
|
Jun 20 2008, 12:10
|

Странник
   
Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051

|
Цитата(SWAMP @ Jun 20 2008, 01:36)  Подскажите плиз МК с 4-6 интерфейсами CAN LPC2194JBD64 LPC2194JBD144 MB91F469GAPB MB91F467BAPMC SJA2020HL-622 SJA2020HL-623
--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
|
|
|
|
|
Jul 7 2008, 10:32
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(navy2000 @ Jun 30 2008, 10:54)  Делал объединение нескольких CAN драйверов на основной плате по TTL-уровням. Только устройство из одной подсети не сможет передать сообщение в другую подсеть. Ограничения по архитектуре, однако. С другой стороны, ни один из широкораспространенных HLP не обеспечивает адресацию >64 устройств. Мне кажется, явно надуманная задача. Такое количество сложных устройств в такой компактной куче. Аффтар, что за применение?
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Jul 8 2008, 08:40
|
Местный
  
Группа: Свой
Сообщений: 203
Регистрация: 17-07-06
Пользователь №: 18 874

|
Цитата Только устройство из одной подсети не сможет передать сообщение в другую подсеть. Ограничения по архитектуре, однако. Не понял, что вы имели в виду. Именно для этого все и делалось. Попробую пояснить еще раз. Объединение подсетей производится по TTL уровням на одной плате и подключаются они к одному CAN-контроллеру. Поэтому, если хоть один из абонентов из любой ветки поставит доминанту, то она будет на приеме у всех других. То есть, сеть логически представляет из себя моноканал. А физически, к каждому передатчику подключено нужное количество приемников. У меня было объединено 16 каналов на одной плате и до 32 абонентов в канале. Для примера кусочек очень упрощенной схемы.
Эскизы прикрепленных изображений
|
|
|
|
|
Jul 10 2008, 07:14
|
Частый гость
 
Группа: Свой
Сообщений: 89
Регистрация: 31-10-06
Пользователь №: 21 829

|
Вы не могли бы пояснить следующий момент в работе приведённой схемы: Возьмём драйвер DD36; предположим, ему на TxD подана "1"; в его сети одно из устройств (назовём его А) выставило "доминанту", тогда на его (DD36) выходе RxD образуется "0". При этом линия, подтянутая к +5V_CAN через R152 опустится в "0" и подаст его ("0") на TxD всех драйверов. Таким образом, все они выставят у себя на шинах "доминанту", в том числе и DD36. А теперь, когда узел А перестал выставлять "доминанту" в своём сегменте, на шине всё равно должна остаться "доминанта", потому, что её УЖЕ удерживает DD36. Иными словами, драйвер принял "доминанту", выставил же её, видит её и выставляет...  Или я не верно Вас понял?
|
|
|
|
|
Jul 16 2008, 05:56
|
Частый гость
 
Группа: Свой
Сообщений: 89
Регистрация: 31-10-06
Пользователь №: 21 829

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