Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Самопальный CAN драйвер
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Controller Area Network (CAN)
Brain13
Есть счетчики Меркурий, у них используется CAN драйвер на линии USART. Необходимо с ним связаться.
Собрал схему с драйвером sn65hvd1040-q1. Но у него есть логика против "закусывания" линии(timeout). Это означает, что если предать по USART'у 0x00 на скорости 9600, срабатывает защита и передача прерывается.

Нашел драйвер без защиты - SI9200EY фирмы VISHAY. Но дорстать его - проблема.

Появилась идея собрать драйвер самому. Во первых - драйвер будет без защиты, во вторых - можно сделать дешевле покупного. Покопавшись по форуму увидел следующие схемы:
Схема1
Схема2
Как работает 2-я схема вообще не понял.

Необходимо обеспечить скорость 19200 и совместимость по уровням сигналов.

Подскажите, пожалуйста, насколько работоспособны данные схемы?
Может у кого-нибудь есть рабочие схемы?
Forger
Цитата(Brain13 @ Aug 28 2011, 05:17) *
Есть счетчики Меркурий, у них используется CAN драйвер на линии USART.

Надо же какой маразм! Это ж нужно было догадаться - ежика скрестить с бегемотом sm.gif
А какой у них стоит CAN драйвер?

А скажите по-подробнее модель и фирму, кажется я знаю эту контору ....
sysel
Может там не CAN, а RS-485 ?
Тогда и с USART всё сходиться.
Brain13
Цитата
Надо же какой маразм! Это ж нужно было догадаться - ежика скрестить с бегемотом

Я тоже безбожно матерюсь по этому поводу.

Цитата
А какой у них стоит CAN драйвер?

Насколько я понимаю, чтобы обезопаситься от коллизий на линии. Дайвер 485 "сильно" тянет линии и при 0, и при 1. CAN "сильно" тянет только в доминантном состоянии. Поэтому когда одновременно передают несколько CAN'ов ничего не подгорает.

Цитата
А скажите по-подробнее модель и фирму, кажется я знаю эту контору ....

Меркурий 230, фирма ИНКОТЕКС.

Цитата
Может там не CAN, а RS-485 ?

Нет, там именно CAN драйвер. С 485 таких плясок с бубном бы не было.

Так кто-нибудь расскажет про работоспособность приведенных схем? Или, может, есть свои, рабочие?
Forger
Цитата(Brain13 @ Aug 29 2011, 08:27) *
Насколько я понимаю, чтобы обезопаситься от коллизий на линии. Дайвер 485 "сильно" тянет линии и при 0, и при 1. CAN "сильно" тянет только в доминантном состоянии. Поэтому когда одновременно передают несколько CAN'ов ничего не подгорает.

Ну, для этого ставиться не только CAN трансивер, но и CAN контроллер.
И вообще существуют готовые схемные решения для контроля таких коллизий в RS-485.

Цитата
Меркурий 230, фирма ИНКОТЕКС.

Не, это - нет та контора, о которой я подумал.

Цитата
Так кто-нибудь расскажет про работоспособность приведенных схем? Или, может, есть свои, рабочие?

Откройте структурную схема любого CAN трансивера из его даташита - многое станет ясно.

Вообще очень странно, что производитель не дает всей необходимой информации о своем изделии.
Может у них самих и запросить то, что вам нужно - схему интерфейсной части?
KRS
Цитата(sysel @ Aug 28 2011, 20:27) *
Может там не CAN, а RS-485 ?
Тогда и с USART всё сходиться.

может просто логику LIN используют, а физический уровень от CAN взяли! Можно коллизии детектить.


Brain13
Цитата
Ну, для этого ставиться не только CAN трансивер, но и CAN контроллер.
И вообще существуют готовые схемные решения для контроля таких коллизий в RS-485.

Это их проблемы, зачем они используют такие решения. Я просто высказал свое мнение, почему именно так, тем более что где-то(может даже на этом форуме читал о такой же реализации). И задачи именно контроля коллизий, думаю, не стоит: поставили просто чтоб не сгорело.

Цитата
Откройте структурную схема любого CAN трансивера из его даташита - многое станет ясно.

А Вы думаете я их ни разу не видел?

Цитата
Вообще очень странно, что производитель не дает всей необходимой информации о своем изделии.
Может у них самих и запросить то, что вам нужно - схему интерфейсной части?

Далеко не все производители охотно делятся информацией о решениях, примененных в своем изделии.
Схема интерфейсной части проста и понятна: подаем линии USART на CAN драйвер(почему у меня так не получилось см. первый пост).

Цитата
может просто логику LIN используют, а физический уровень от CAN взяли! Можно коллизии детектить.

Используют логику USART, физику CAN.

Третий раз задаю вопрос: Так кто-нибудь расскажет про работоспособность приведенных схем? Или, может, есть свои, рабочие?

P.S.: Извините пожалуйста, но можно ли услышать что-нибудь по поводу темы "как сделать драйвер?", а не обсуждения по поводу "а зачем козе баян?" и "чем думали разработчики?"(собственно, дабы этого не было, я и расписал все в первом абзаце).
galjoen
Цитата(Brain13 @ Aug 29 2011, 21:26) *
Используют логику USART, физику CAN.

Очень хорошее решение.
Пока не было драйверов CAN, для получения такого эффекта приходилось ставить драйверы RS-485, но в другом включении (выход TxD на вход TXE драйвера через инвертор, а TX драйвера на землю) - см. стандарт J1708. Потом для J1708 стали делать спец. драйвера RS-485 (вход TXE инверсный), а потом на базе J1708 разработали CAN.
Но и сейчас у нас работает множество машин (большинство тягачей "американцев" и др.) с шиной (физика) J1708, а протоколом J1587.

А по теме - нужно просто поставить драйвер без ограничения длительности доминанты, например, PCA82C250.
Brain13
Цитата(galjoen @ Aug 29 2011, 23:35) *
А по теме - нужно просто поставить драйвер без ограничения длительности доминанты, например, PCA82C250.

Спасибо за подсказку, его попроще достать чем SI9200EY, сегодня закажу.

Нашел у знакомого 1 драйвер CAN без защит, какой-то китайский, поставил, все заработало.

Все же хочется узнать, реально ли сделать на рассыпухе драйвер дешевле покупного? Обычный драйвер стоит порядка 60-80 рублей. Впринципе имеет смысл делать такой если цена будет около 30р. Характеристики небольшие: 19200 бод, электрическая совместимость, длина линии 10-20см, 1-2 устройства на линии.
galjoen
Цитата(Brain13 @ Aug 31 2011, 09:06) *
Характеристики небольшие: 19200 бод, электрическая совместимость, длина линии 10-20см, 1-2 устройства на линии.

Тогда обычный RS-485 драйвер в "J1708 включении" работать будет. А он рублей 15 стОит. Ну ещё инвертор на транзисторе и 2-х резисторах, например, придётся сгородить.
Странно, что изготовители счётчика у себя так не сделали - была бы стандартная J1708 шина, по защитам то же, что CAN. И к тому же дешевле.
Brain13
Цитата(galjoen @ Aug 31 2011, 11:26) *
Тогда обычный RS-485 драйвер в "J1708 включении" работать будет. А он рублей 15 стОит. Ну ещё инвертор на транзисторе и 2-х резисторах, например, придётся сгородить.


То есть это 2 схема из первого поста? Я кажется разобрался как она работает.
Вход драйвера закорочен на землю, то есть передатчик может либо быть отключенным от линии, либо передавать ноль. Во время передачи лог. 0 по линии USART TX, он передается не на вход драйвера, а через инвертор на ногу разрешения передачи, в этом случае передача разрешена, а драйвер жестко фиксирует CANH к питанию, CANL к земле, что соответствует доминантному состоянию линии. Когда на линии USART TX передается лог. 1, то передатчик выключен и линия сама уравнивает напряжения на CANH и CANL, то есть переходит в рецессивное состояние. А приемник всегда включен и считывает линию даже когда идет передача, то есть мы слышим свое "эхо", что необходимо для работоспособности CAN.
Если я что-то не так понял - поправьте меня.

Всем спасибо, за помощь.
Samum 095
Продается SI9200EY. Стоит 1,5 евро в Farnell и в Mouser.
Brain13
Цитата(Samum 095 @ Sep 3 2011, 09:36) *
Продается SI9200EY. Стоит 1,5 евро в Farnell и в Mouser.


С Mouser не работал, а у фарнела очень большой минимальный заказ(по крайней мере если через терру).
Samum 095
Если через меня то мин заказ у Фарнелл = 1 штуке
Doka
к сожалению, 1я ссылка не работает, а по 2-й схема с драйвером RS-485, не особо пртендующим на оригинальность.
Вопрос вот в чем: как максимально удешевить схему драйвера CAN, если требуется только приём?
Напрашивается ОУ в режиме компаратора (по сути необходимо только приведение уровней к стандартным ТТЛ/КМОП), можно в микрокап нарисовать помоделировать, но может есть и уже готовые опробованные схемы?

Цитата(Brain13 @ Aug 28 2011, 04:17) *
Появилась идея собрать драйвер самому. Во первых - драйвер будет без защиты, во вторых - можно сделать дешевле покупного. Покопавшись по форуму увидел следующие схемы:
Схема1
Схема2
Как работает 2-я схема вообще не понял.

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