|
|
  |
Самопальный CAN драйвер, на транзисторах |
|
|
|
Aug 28 2011, 01:17
|
Участник

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

|
Есть счетчики Меркурий, у них используется CAN драйвер на линии USART. Необходимо с ним связаться. Собрал схему с драйвером sn65hvd1040-q1. Но у него есть логика против "закусывания" линии(timeout). Это означает, что если предать по USART'у 0x00 на скорости 9600, срабатывает защита и передача прерывается. Нашел драйвер без защиты - SI9200EY фирмы VISHAY. Но дорстать его - проблема. Появилась идея собрать драйвер самому. Во первых - драйвер будет без защиты, во вторых - можно сделать дешевле покупного. Покопавшись по форуму увидел следующие схемы: Схема1Схема2Как работает 2-я схема вообще не понял. Необходимо обеспечить скорость 19200 и совместимость по уровням сигналов. Подскажите, пожалуйста, насколько работоспособны данные схемы? Может у кого-нибудь есть рабочие схемы?
|
|
|
|
|
Aug 28 2011, 16:11
|

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

|
Цитата(Brain13 @ Aug 28 2011, 05:17)  Есть счетчики Меркурий, у них используется CAN драйвер на линии USART. Надо же какой маразм! Это ж нужно было догадаться - ежика скрестить с бегемотом  А какой у них стоит CAN драйвер? А скажите по-подробнее модель и фирму, кажется я знаю эту контору ....
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Aug 29 2011, 04:27
|
Участник

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

|
Цитата Надо же какой маразм! Это ж нужно было догадаться - ежика скрестить с бегемотом Я тоже безбожно матерюсь по этому поводу. Цитата А какой у них стоит CAN драйвер? Насколько я понимаю, чтобы обезопаситься от коллизий на линии. Дайвер 485 "сильно" тянет линии и при 0, и при 1. CAN "сильно" тянет только в доминантном состоянии. Поэтому когда одновременно передают несколько CAN'ов ничего не подгорает. Цитата А скажите по-подробнее модель и фирму, кажется я знаю эту контору .... Меркурий 230, фирма ИНКОТЕКС. Цитата Может там не CAN, а RS-485 ? Нет, там именно CAN драйвер. С 485 таких плясок с бубном бы не было. Так кто-нибудь расскажет про работоспособность приведенных схем? Или, может, есть свои, рабочие?
|
|
|
|
|
Aug 29 2011, 05:46
|

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

|
Цитата(Brain13 @ Aug 29 2011, 08:27)  Насколько я понимаю, чтобы обезопаситься от коллизий на линии. Дайвер 485 "сильно" тянет линии и при 0, и при 1. CAN "сильно" тянет только в доминантном состоянии. Поэтому когда одновременно передают несколько CAN'ов ничего не подгорает. Ну, для этого ставиться не только CAN трансивер, но и CAN контроллер. И вообще существуют готовые схемные решения для контроля таких коллизий в RS-485. Цитата Меркурий 230, фирма ИНКОТЕКС. Не, это - нет та контора, о которой я подумал. Цитата Так кто-нибудь расскажет про работоспособность приведенных схем? Или, может, есть свои, рабочие? Откройте структурную схема любого CAN трансивера из его даташита - многое станет ясно. Вообще очень странно, что производитель не дает всей необходимой информации о своем изделии. Может у них самих и запросить то, что вам нужно - схему интерфейсной части?
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Aug 29 2011, 17:26
|
Участник

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

|
Цитата Ну, для этого ставиться не только CAN трансивер, но и CAN контроллер. И вообще существуют готовые схемные решения для контроля таких коллизий в RS-485. Это их проблемы, зачем они используют такие решения. Я просто высказал свое мнение, почему именно так, тем более что где-то(может даже на этом форуме читал о такой же реализации). И задачи именно контроля коллизий, думаю, не стоит: поставили просто чтоб не сгорело. Цитата Откройте структурную схема любого CAN трансивера из его даташита - многое станет ясно. А Вы думаете я их ни разу не видел? Цитата Вообще очень странно, что производитель не дает всей необходимой информации о своем изделии. Может у них самих и запросить то, что вам нужно - схему интерфейсной части? Далеко не все производители охотно делятся информацией о решениях, примененных в своем изделии. Схема интерфейсной части проста и понятна: подаем линии USART на CAN драйвер(почему у меня так не получилось см. первый пост). Цитата может просто логику LIN используют, а физический уровень от CAN взяли! Можно коллизии детектить. Используют логику USART, физику CAN. Третий раз задаю вопрос: Так кто-нибудь расскажет про работоспособность приведенных схем? Или, может, есть свои, рабочие? P.S.: Извините пожалуйста, но можно ли услышать что-нибудь по поводу темы "как сделать драйвер?", а не обсуждения по поводу "а зачем козе баян?" и "чем думали разработчики?"(собственно, дабы этого не было, я и расписал все в первом абзаце).
|
|
|
|
|
Aug 29 2011, 19:35
|
Знающий
   
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Aug 31 2011, 05:06
|
Участник

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

|
Цитата(galjoen @ Aug 29 2011, 23:35)  А по теме - нужно просто поставить драйвер без ограничения длительности доминанты, например, PCA82C250. Спасибо за подсказку, его попроще достать чем SI9200EY, сегодня закажу. Нашел у знакомого 1 драйвер CAN без защит, какой-то китайский, поставил, все заработало. Все же хочется узнать, реально ли сделать на рассыпухе драйвер дешевле покупного? Обычный драйвер стоит порядка 60-80 рублей. Впринципе имеет смысл делать такой если цена будет около 30р. Характеристики небольшие: 19200 бод, электрическая совместимость, длина линии 10-20см, 1-2 устройства на линии.
|
|
|
|
|
Aug 31 2011, 07:26
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(Brain13 @ Aug 31 2011, 09:06)  Характеристики небольшие: 19200 бод, электрическая совместимость, длина линии 10-20см, 1-2 устройства на линии. Тогда обычный RS-485 драйвер в "J1708 включении" работать будет. А он рублей 15 стОит. Ну ещё инвертор на транзисторе и 2-х резисторах, например, придётся сгородить. Странно, что изготовители счётчика у себя так не сделали - была бы стандартная J1708 шина, по защитам то же, что CAN. И к тому же дешевле.
|
|
|
|
|
Aug 31 2011, 10:35
|
Участник

Группа: Участник
Сообщений: 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. Если я что-то не так понял - поправьте меня. Всем спасибо, за помощь.
|
|
|
|
|
Sep 3 2011, 12:54
|
Участник

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

|
Цитата(Samum 095 @ Sep 3 2011, 09:36)  Продается SI9200EY. Стоит 1,5 евро в Farnell и в Mouser. С Mouser не работал, а у фарнела очень большой минимальный заказ(по крайней мере если через терру).
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|