Jump to content

    

Ограничение времени доминанта в CAN.

Recommended Posts

galjoen

Если одно из устройств по причине ошибки выставит 0 на TxCAN, то вся CAN сеть повиснет. Я понимаю, что от этого защищает Bus Off и WatchDog и т.п. Но если процессор собьётся/сгорит/(без питания останется), он может установить порты так, что выход, соответствующий TxCAN, станет 0 выдавать. От этого можно защитится аппаратно. Для ограничения времени существования доминантного уровня понадобятся 2 диода, 2 резистора и конденсатор. Можно и транзисторы/компараторы использовать конечно. В любом случае затраты небольшие, но и вероятность срабатывания защиты крайне мала. Хотя последствия тяжёлые могут быть.

Кто-нибудь такую защиту у себя делает?

Share this post


Link to post
Share on other sites

galjoen
Это делает приемопередатчик, например TJA1040, TJA1050, MCP2551 и т.д (см. Dominant TimeOut).

У меня приёмопередатчик PCA82C251 (контроллер AT90CAN128) так там ничего про ограничение доминантного уровня не написано. Или я не понял? А ограничение должно ведь от скорости приёма/передачи зависеть. У PCA82C251 можно только фронты завалить.

Но если у других приёмопередатчиков такое есть, а у моего нет (я не проглядел) - наверное имеет смысл на дискретных элементах сделать? Или лучше приёмопередатчик у которого это есть поставить? Как у них с доступностью/ценой/надёжностью?

Share this post


Link to post
Share on other sites

Седой

Я бы поставил другой.

PCA82C251 - из серии первого поколения приемопередатчиков от NXP, TJAXXXX - более новые. Кроме NXP есть большая серия передатчиков у TI. С доставабельностью проблем нет (например Компел).

Share this post


Link to post
Share on other sites

galjoen
Я бы поставил другой.

'Седой' спасибо. Теперь ищу на какой заменить. MSP2551 хорошо подходит, но похоже экзотика - никто не продаёт (или плохо искал). Склонялся к TJA1040/1050, но у них фронт завалить нельзя (или я не понял). У меня скорость 125 кбит, поэтому хотелось-бы что-то с возможностью заваливания фронта/с уже заваленным фронтом.

Не подскажите где ещё покопать?

Share this post


Link to post
Share on other sites

-=Sergei=-
'Седой' спасибо. Теперь ищу на какой заменить. MSP2551 хорошо подходит, но похоже экзотика - никто не продаёт (или плохо искал). Склонялся к TJA1040/1050, но у них фронт завалить нельзя (или я не понял). У меня скорость 125 кбит, поэтому хотелось-бы что-то с возможностью заваливания фронта/с уже заваленным фронтом.

Не подскажите где ещё покопать?

 

ATA6660, 5559ИН14У. Можно фронты заваливать.

Share this post


Link to post
Share on other sites

syoma

Вот у Texas Instruments новые появились SN65HVD1040 и HVD1050.

Защита от доминантного состояния у них есть, но завал фронтов не регулируется. 1050 пропагандируется как Low EMC emissions.

Share this post


Link to post
Share on other sites

galjoen
ATA6660, 5559ИН14У. Можно фронты заваливать.

У них ограничения времени доминанта нет и завал фронтов не регулируется. Ни каких преимуществ перед PCA82C251 я не нашёл (м.б. плохо искал).

Вот у Texas Instruments новые появились SN65HVD1040 и HVD1050.

Защита от доминантного состояния у них есть, но завал фронтов не регулируется. 1050 пропагандируется как Low EMC emissions.

Про TJA1050 тоже так написано. Но мне это кажется рекламой. У них завал фронтов на максимальную скорость передачи рассчитан - 1000000. А при 125000 фронты жел-но заваливать в 8 раз больше, чем при 1000000 - ЕМС в 8 раз меньше генеритоваться будет (или в 64?).

Если где MSP2551 покупать не найду или чего другого не найду - так и придётся ограничитель времени доминанта на рассыпухе лепить. А так не хочется, в наше-то время. Хотя и у него можно ограничение времени на 125000 настроить - хоть какое-то преимущество.

Share this post


Link to post
Share on other sites

galjoen
Посмотрите в Тритоне - вроде MCP2551 есть - http://www.trt.ru/Stock.php?Manf=3

Спасибо 'Седой' - есть там и в других местах. Я оказывается не MCP2551, а MSP2551 искал. Сглючило что-то у меня, зациклился - бывает. А вот pdf почему-то нашёл. Но попутно много нового-интересного узнал. Видимо иногда ошибаться полезно!

Всем спасибо за ответы.

Share this post


Link to post
Share on other sites

sobr
К своей. А что есть какая-то разница?

Конечно, есть...

Мне известно по крайней мере 3 разновидности драйверов, различаются они своими электрическими характеристиками.

1. TJA1040(tja1041,MCP2551,PCA82C251,tja1050)-High speed CAN transceiver

2. TJA1054(TJA1053)-Fault-tolerant CAN transceiver

2. TLE6255(AU5790)-Single wire CAN transceiver

Первая группа CANL-2.5v-0v CANH - 2.5v-5v sleep CANL-5v CANH -0v

Вторая группа CANL-5v-0v CANH - 0v-5v sleep CANL-12v CANH -0v

Третья группа CANL-Отсутствует как таковой CANH - 0v-5v sleep CANH -0v Пробуждение 0v-12v

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

Если своя шина создается я бы использовал вторую группу, но в твоем случае скорость 125000 это предельная скорость для второй группы по этому надо выбирать первую, хотя... в автомобиле Peugeot сотоят TJA1054 и работaют на 125000... так что, я бы наверное так и сделал...

Share this post


Link to post
Share on other sites

syoma

Если уж заговорили о MCP2551, то кто-то может тыкнуть в его характеристику Common-Mode CAN-Bus Operational Voltage?

Я чего-то в даташите не нашел.

 

1. TJA1040(tja1041,MCP2551,PCA82C251,tja1050)-High speed CAN transceiver

2. TJA1054(TJA1053)-Fault-tolerant CAN transceiver

2. TLE6255(AU5790)-Single wire CAN transceiver

Насколько я понимаю первые и вторые при нормальном сотоянии линии и скоростях до 125кбит прекрасно уживутся между собой.

А третьи вообще продставляют собой девайсы, которые вообще работают с другим типом физической линии - Single wire CAN, соответствуют другой спецификации и соответственно в сеть с первыми двумя не включаются.

Share this post


Link to post
Share on other sites

sobr
А третьи вообще продставляют собой девайсы, которые вообще работают с другим типом физической линии - Single wire CAN, соответствуют другой спецификации и соответственно в сеть с первыми двумя не включаются.

Первые и вторые тоже...

Проверено, работоспособность будет только частичная. High speed подключенные к Fault-tolerant шине могут ее читать но передавать в шину у них получается через... короче, почти не получается. Fault-tolerant подключенные к High speed шине даже читают 1 из 10 сообщений. Fault-tolerant подключенные к Single wire шине могут и читать и передавать, только если на шине устройства перейдут в Sleep он их не сможет разбудить. Нет смысла создавать себе проблемы, когда можно использовать тот же драйвер, что уже стоит в шине. Первая и вторая группа легко достоваема в РФ. Третью под заказ привозят.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.