реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Самопальный CAN драйвер, на транзисторах
Brain13
сообщение Aug 28 2011, 01:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 28-08-09
Пользователь №: 52 078



Есть счетчики Меркурий, у них используется CAN драйвер на линии USART. Необходимо с ним связаться.
Собрал схему с драйвером sn65hvd1040-q1. Но у него есть логика против "закусывания" линии(timeout). Это означает, что если предать по USART'у 0x00 на скорости 9600, срабатывает защита и передача прерывается.

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

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

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

Подскажите, пожалуйста, насколько работоспособны данные схемы?
Может у кого-нибудь есть рабочие схемы?
Go to the top of the page
 
+Quote Post
Forger
сообщение Aug 28 2011, 16:11
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



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

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

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


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
sysel
сообщение Aug 28 2011, 16:27
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 3-07-07
Пользователь №: 28 852



Может там не CAN, а RS-485 ?
Тогда и с USART всё сходиться.
Go to the top of the page
 
+Quote Post
Brain13
сообщение Aug 29 2011, 04:27
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 28-08-09
Пользователь №: 52 078



Цитата
Надо же какой маразм! Это ж нужно было догадаться - ежика скрестить с бегемотом

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

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

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

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

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

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

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

Так кто-нибудь расскажет про работоспособность приведенных схем? Или, может, есть свои, рабочие?
Go to the top of the page
 
+Quote Post
Forger
сообщение Aug 29 2011, 05:46
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



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

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

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

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

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

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

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


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
KRS
сообщение Aug 29 2011, 13:15
Сообщение #6


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(sysel @ Aug 28 2011, 20:27) *
Может там не CAN, а RS-485 ?
Тогда и с USART всё сходиться.

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


Go to the top of the page
 
+Quote Post
Brain13
сообщение Aug 29 2011, 17:26
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 28-08-09
Пользователь №: 52 078



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

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

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

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

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

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

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

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

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

P.S.: Извините пожалуйста, но можно ли услышать что-нибудь по поводу темы "как сделать драйвер?", а не обсуждения по поводу "а зачем козе баян?" и "чем думали разработчики?"(собственно, дабы этого не было, я и расписал все в первом абзаце).
Go to the top of the page
 
+Quote Post
galjoen
сообщение Aug 29 2011, 19:35
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Brain13 @ Aug 29 2011, 21:26) *
Используют логику USART, физику CAN.

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

А по теме - нужно просто поставить драйвер без ограничения длительности доминанты, например, PCA82C250.
Go to the top of the page
 
+Quote Post
Brain13
сообщение Aug 31 2011, 05:06
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 28-08-09
Пользователь №: 52 078



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

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

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

Все же хочется узнать, реально ли сделать на рассыпухе драйвер дешевле покупного? Обычный драйвер стоит порядка 60-80 рублей. Впринципе имеет смысл делать такой если цена будет около 30р. Характеристики небольшие: 19200 бод, электрическая совместимость, длина линии 10-20см, 1-2 устройства на линии.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Aug 31 2011, 07:26
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Brain13 @ Aug 31 2011, 09:06) *
Характеристики небольшие: 19200 бод, электрическая совместимость, длина линии 10-20см, 1-2 устройства на линии.

Тогда обычный RS-485 драйвер в "J1708 включении" работать будет. А он рублей 15 стОит. Ну ещё инвертор на транзисторе и 2-х резисторах, например, придётся сгородить.
Странно, что изготовители счётчика у себя так не сделали - была бы стандартная J1708 шина, по защитам то же, что CAN. И к тому же дешевле.
Go to the top of the page
 
+Quote Post
Brain13
сообщение Aug 31 2011, 10:35
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 28-08-09
Пользователь №: 52 078



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


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

Всем спасибо, за помощь.
Go to the top of the page
 
+Quote Post
Samum 095
сообщение Sep 3 2011, 05:36
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 201
Регистрация: 24-09-04
Из: Братислава
Пользователь №: 712



Продается SI9200EY. Стоит 1,5 евро в Farnell и в Mouser.
Go to the top of the page
 
+Quote Post
Brain13
сообщение Sep 3 2011, 12:54
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 28-08-09
Пользователь №: 52 078



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


С Mouser не работал, а у фарнела очень большой минимальный заказ(по крайней мере если через терру).
Go to the top of the page
 
+Quote Post
Samum 095
сообщение Sep 24 2011, 06:51
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 201
Регистрация: 24-09-04
Из: Братислава
Пользователь №: 712



Если через меня то мин заказ у Фарнелл = 1 штуке
Go to the top of the page
 
+Quote Post
Doka
сообщение Nov 27 2015, 08:45
Сообщение #15


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



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

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



--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 22:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.0151 секунд с 7
ELECTRONIX ©2004-2016