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

 
 
> Интерфейс CAN, Принципы обмена по протоколу CAN
denwill
сообщение Mar 24 2006, 11:10
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 21-03-06
Пользователь №: 15 438



Здравствуйте уважаемые разработчики!

Прочитал много информации по данной теме:
-http://www.microchip.ru/files/d-sheets-rus/an713.pdf
-http://www.gaw.ru/html.cgi/txt/interface/can/start.htm
-Спецификации CAN 2.0 A и CAN 2.0 B
-Документация на AT90CAN128
-http://electronix.ru/forum/index.php?showtopic=12898&hl=CAN
-и др.
Но к сожалению так и не смог понять логику работы интерфейса!
Как например, раздать идентификаторы устройствам (приоритеты данных от этих устройств одинаковые)?
Как передать данные конкретному устройству (нужен ли для этого remote frame, и если да, то какой идентификатор передается в этом фрейме)?

Расчитываю на Ваш совет! Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
shans
сообщение Apr 7 2006, 09:21
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 26
Регистрация: 21-12-05
Пользователь №: 12 486



Только начал разбираться с CAN-интерфейсом, что-т не догоняю: обязательно ли использование трансиверов? Или возможно подключение без них?
Go to the top of the page
 
+Quote Post
ipc
сообщение Apr 7 2006, 09:49
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 553
Регистрация: 30-03-05
Из: Санкт Петербург
Пользователь №: 3 793



Цитата(shans @ Apr 7 2006, 13:21) *
Только начал разбираться с CAN-интерфейсом, что-т не догоняю: обязательно ли использование трансиверов? Или возможно подключение без них?

Да обязательно.Необходимо для преобразования уровней CAN контроллера к уровням физической линии.
Go to the top of the page
 
+Quote Post
shans
сообщение Apr 7 2006, 11:03
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 26
Регистрация: 21-12-05
Пользователь №: 12 486



Так насколько я понял, физический уровень не оговорен, т.е. почему бы уровням линии не совпадать с уровнями контроллера?
Go to the top of the page
 
+Quote Post
ipc
сообщение Apr 7 2006, 11:10
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 553
Регистрация: 30-03-05
Из: Санкт Петербург
Пользователь №: 3 793



Цитата(shans @ Apr 7 2006, 15:03) *
Так насколько я понял, физический уровень не оговорен, т.е. почему бы уровням линии не совпадать с уровнями контроллера?

Если в системах на базе RS-232 это может и прокатит но вот в RS-485 и CAN(который использует похожую физическую линию) нет.Во первых потому что это шинные интерфейсы(т.е подразумевается что устройств будет больше двух) а главное то что в обычно используемой физической линии CAN нет состояний 0/1 а есть доминантное и рецесивное.
Если кратко то эти состояния неравноценны(как 0 и 1) и когда одно устройство выставляет рецесивное состояние другое устройство может задавить его доминантным чем и достигается контроль передачи и неразрушающий арбитраж.Вот эта фича и обеспечивается драйвером.
Как это делается в других физических линиях(оптика и блютуз) мало понятно но скорее всего идет эмуляция привычной CANу физической линии.
Go to the top of the page
 
+Quote Post
shans
сообщение Apr 7 2006, 11:40
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 26
Регистрация: 21-12-05
Пользователь №: 12 486



Цитата(ipc @ Apr 7 2006, 15:10) *
Цитата(shans @ Apr 7 2006, 15:03) *

Так насколько я понял, физический уровень не оговорен, т.е. почему бы уровням линии не совпадать с уровнями контроллера?

Если в системах на базе RS-232 это может и прокатит но вот в RS-485 и CAN(который использует похожую физическую линию) нет.Во первых потому что это шинные интерфейсы(т.е подразумевается что устройств будет больше двух) а главное то что в обычно используемой физической линии CAN нет состояний 0/1 а есть доминантное и рецесивное.
Если кратко то эти состояния неравноценны(как 0 и 1) и когда одно устройство выставляет рецесивное состояние другое устройство может задавить его доминантным чем и достигается контроль передачи и неразрушающий арбитраж.Вот эта фича и обеспечивается драйвером.
Как это делается в других физических линиях(оптика и блютуз) мало понятно но скорее всего идет эмуляция привычной CANу физической линии.


Ну а если объединить по монтажному "И"? Вполне получаем доминантный и рецессивный уровень. А стоимость реализации значительно ниже. Понятно, что с уровнями под стандарт ISO 11898 не попадаем, но это уже другой вопрос. Извиняюсь, если задаю бестолковые вопросы smile.gif, просто хочу уяснить преимущества решения с использованием трансиверов.
Go to the top of the page
 
+Quote Post
ipc
сообщение Apr 7 2006, 11:50
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 553
Регистрация: 30-03-05
Из: Санкт Петербург
Пользователь №: 3 793



Цитата(shans @ Apr 7 2006, 15:40) *
Цитата(ipc @ Apr 7 2006, 15:10) *

Цитата(shans @ Apr 7 2006, 15:03) *

Так насколько я понял, физический уровень не оговорен, т.е. почему бы уровням линии не совпадать с уровнями контроллера?

Если в системах на базе RS-232 это может и прокатит но вот в RS-485 и CAN(который использует похожую физическую линию) нет.Во первых потому что это шинные интерфейсы(т.е подразумевается что устройств будет больше двух) а главное то что в обычно используемой физической линии CAN нет состояний 0/1 а есть доминантное и рецесивное.
Если кратко то эти состояния неравноценны(как 0 и 1) и когда одно устройство выставляет рецесивное состояние другое устройство может задавить его доминантным чем и достигается контроль передачи и неразрушающий арбитраж.Вот эта фича и обеспечивается драйвером.
Как это делается в других физических линиях(оптика и блютуз) мало понятно но скорее всего идет эмуляция привычной CANу физической линии.


Ну а если объединить по монтажному "И"? Вполне получаем доминантный и рецессивный уровень. А стоимость реализации значительно ниже. Понятно, что с уровнями под стандарт ISO 11898 не попадаем, но это уже другой вопрос. Извиняюсь, если задаю бестолковые вопросы smile.gif, просто хочу уяснить преимущества решения с использованием трансиверов.

Ну так уж и дешевле.Эти драйверы стоят копейки а вот тянуть на километр такую линию(в моем случае трех вольтовую) будет очень забавно.думаю что фронты завалятся в корягу метра через два.Драйвер кроме всего прочего защищает процессор от помех и буферизирует сигналы да и то каждый имеет ограниченную нагрузочную способность(количество узлов в сети).Кроме того сигнал на выходе парафазный и заточен под длинные линии и эффекты связанные с задержками и переотражениями в сети.
Go to the top of the page
 
+Quote Post
=AK=
сообщение Apr 7 2006, 11:58
Сообщение #8


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(ipc @ Apr 7 2006, 21:20) *
думаю что фронты завалятся в корягу метра через два.

LIN работает при помощи открытых коллекторов, т.е. по монтажному ИЛИ. При 20 кбод на 40 м работает.
Далласовский 1-wire тоже использует открытые коллекторы. Даллас пишет - то 700 м.
Go to the top of the page
 
+Quote Post
spf
сообщение Apr 7 2006, 12:07
Сообщение #9


Странник
****

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



Цитата(=AK= @ Apr 7 2006, 17:58) *
Цитата(ipc @ Apr 7 2006, 21:20) *
думаю что фронты завалятся в корягу метра через два.

LIN работает при помощи открытых коллекторов, т.е. по монтажному ИЛИ. При 20 кбод на 40 м работает.
CAN на 40 метрах может работать в полный рост - 1Мбод при родном драйвере, это в _50_ раз быстрее...


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
ipc
сообщение Apr 7 2006, 12:18
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 553
Регистрация: 30-03-05
Из: Санкт Петербург
Пользователь №: 3 793



Цитата(spf @ Apr 7 2006, 16:07) *
Цитата(=AK= @ Apr 7 2006, 17:58) *
Цитата(ipc @ Apr 7 2006, 21:20) *
думаю что фронты завалятся в корягу метра через два.

LIN работает при помощи открытых коллекторов, т.е. по монтажному ИЛИ. При 20 кбод на 40 м работает.
CAN на 40 метрах может работать в полный рост - 1Мбод при родном драйвере, это в _50_ раз быстрее...

Кстати где то читал что есть драйверы позволяющие тянуть CAN более чем на километр(если незапамятовал то до пяти) и работать на скорости более мегабита правда при уж совсем децких расстояниях.

Цитата(shans @ Apr 7 2006, 16:12) *
Ну не такие уж копейки, а на километр мне тянуть не нужно, всего несколько метров. Собственно я сам за использование драйверов, дабы не создавать себе же лишние проблемы. Однако, как водится, на любой дополнительный корпус смотрят косо, и его использование нужно мотивировать smile.gif

Ну тогда неправильно выбран интерфейс.CAN это полевая шина(название говорит само за себя) и предназначен для распределения девайсов в пространстве.Тут подошел бы ethеrnet(благо он сильно подешевел и в виде XPortа нетребует вобще никакой разработки) или вобще чтонибудь децкое типа SPI,I2c или нахудой конец проверенный веками RS-485.
Go to the top of the page
 
+Quote Post
shans
сообщение Apr 7 2006, 13:22
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 26
Регистрация: 21-12-05
Пользователь №: 12 486



Цитата(ipc @ Apr 7 2006, 16:18) *
Цитата(spf @ Apr 7 2006, 16:07) *

Цитата(=AK= @ Apr 7 2006, 17:58) *
Цитата(ipc @ Apr 7 2006, 21:20) *
думаю что фронты завалятся в корягу метра через два.

LIN работает при помощи открытых коллекторов, т.е. по монтажному ИЛИ. При 20 кбод на 40 м работает.
CAN на 40 метрах может работать в полный рост - 1Мбод при родном драйвере, это в _50_ раз быстрее...

Кстати где то читал что есть драйверы позволяющие тянуть CAN более чем на километр(если незапамятовал то до пяти) и работать на скорости более мегабита правда при уж совсем децких расстояниях.

Цитата(shans @ Apr 7 2006, 16:12) *
Ну не такие уж копейки, а на километр мне тянуть не нужно, всего несколько метров. Собственно я сам за использование драйверов, дабы не создавать себе же лишние проблемы. Однако, как водится, на любой дополнительный корпус смотрят косо, и его использование нужно мотивировать smile.gif

Ну тогда неправильно выбран интерфейс.CAN это полевая шина(название говорит само за себя) и предназначен для распределения девайсов в пространстве.Тут подошел бы ethеrnet(благо он сильно подешевел и в виде XPortа нетребует вобще никакой разработки) или вобще чтонибудь децкое типа SPI,I2c или нахудой конец проверенный веками RS-485.


SPI, I2C не катят однозначно, а вот RS-485 тоже рассматривается как один из вариантов. Насчет полевой шины: интерфейс был изначально разработан для автомобильных дел. Сомневаюсь, что там километры шины smile.gif
Go to the top of the page
 
+Quote Post
spf
сообщение Apr 9 2006, 11:55
Сообщение #12


Странник
****

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



Цитата(shans @ Apr 7 2006, 19:22) *
SPI, I2C не катят однозначно, а вот RS-485 тоже рассматривается как один из вариантов.

Яйцо с курицей не сравнивайте cranky.gif
RS485 - физический уровень.
CAN - два уровня OSI.(аппаратный арбитраж, фильтрация пакетов и т.п.)


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
shans
сообщение Apr 11 2006, 10:33
Сообщение #13


Участник
*

Группа: Свой
Сообщений: 26
Регистрация: 21-12-05
Пользователь №: 12 486



Цитата(spf @ Apr 9 2006, 15:55) *
Цитата(shans @ Apr 7 2006, 19:22) *
SPI, I2C не катят однозначно, а вот RS-485 тоже рассматривается как один из вариантов.

Яйцо с курицей не сравнивайте cranky.gif
RS485 - физический уровень.
CAN - два уровня OSI.(аппаратный арбитраж, фильтрация пакетов и т.п.)


А вот так и сравниваю. CAN в любом случае нужно привязывать к физическому уровню, а RS485 к программной реализации. Да и не только это. Вот и смотрю, во что выльется решение в целом в том и другом случае. Предложите свой подход - рассмотрю и его.
Go to the top of the page
 
+Quote Post
ipc
сообщение Apr 11 2006, 10:44
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 553
Регистрация: 30-03-05
Из: Санкт Петербург
Пользователь №: 3 793



Цитата(shans @ Apr 11 2006, 14:33) *
Цитата(spf @ Apr 9 2006, 15:55) *

Цитата(shans @ Apr 7 2006, 19:22) *
SPI, I2C не катят однозначно, а вот RS-485 тоже рассматривается как один из вариантов.

Яйцо с курицей не сравнивайте cranky.gif
RS485 - физический уровень.
CAN - два уровня OSI.(аппаратный арбитраж, фильтрация пакетов и т.п.)


А вот так и сравниваю. CAN в любом случае нужно привязывать к физическому уровню, а RS485 к программной реализации. Да и не только это. Вот и смотрю, во что выльется решение в целом в том и другом случае. Предложите свой подход - рассмотрю и его.

Ну CAN положим тоже надо привязывать к программной реализации и это будет посложнее чем протоколы базирующиеся на RS-485.
Я думаю что его использование обосновано только если присутствует один или больше из нижеперечисленных факторов.
1.Нужны сравнительно большие скорости
2.Нужно тащить данные на расстояние првышающее 10 метров
3.В сети нужна мультимастерность
4.Выбранные аппаратные средства имеют его(CAN) на борту бесплатно
5.Существует проблема с помехами
6.Есть желание(установка руководства) неиспользовать малоперспективные(нерасширяемые,слабомасштабируемые или просто подходящие впритык) и уходящие в прошлое программно аппаратные средства.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- denwill   Интерфейс CAN   Mar 24 2006, 11:10
- - ipc   Интерфейс работает предельно просто.Принцип переда...   Mar 24 2006, 13:39
- - spf   Цитата(denwill @ Mar 24 2006, 16:10) Как ...   Mar 24 2006, 15:00
||||- - ipc   Цитата(=AK= @ Apr 7 2006, 15:58) Цитата(i...   Apr 7 2006, 12:06
||||- - =AK=   Цитата(spf @ Apr 7 2006, 21:37) CAN на 40...   Apr 7 2006, 12:23
||||- - ipc   Цитата(=AK= @ Apr 7 2006, 16:23) Цитата(s...   Apr 7 2006, 12:27
|||- - shans   Ну не такие уж копейки, а на километр мне тянуть н...   Apr 7 2006, 12:12
||- - spf   Цитата(shans @ Apr 7 2006, 17:40) Ну а ес...   Apr 7 2006, 12:02
|- - spf   Цитата(shans @ Apr 7 2006, 17:03) Так нас...   Apr 7 2006, 11:56
- - ipc   Вобщето машина это нетолько запорожец а автобусы и...   Apr 7 2006, 13:34
- - dormouse   "Если сравнивать RS-485 c CAN" - то это...   Apr 12 2006, 18:40
- - ipc   Ну во первых не три проводка а два.А в остальном я...   Apr 13 2006, 04:29
- - dormouse   Все-таки решительно надо иметь земляной провод в и...   Apr 13 2006, 14:28
|- - spf   Цитата(dormouse @ Apr 13 2006, 20:28) to:...   Apr 13 2006, 16:54
- - dormouse   Продолжаю разбираться с CiA 301. Меня смутил поряд...   Apr 13 2006, 20:39
|- - spf   Цитата(dormouse @ Apr 14 2006, 02:39) либ...   Apr 14 2006, 03:08
- - ipc   ЦитатаВсе-таки решительно надо иметь земляной пров...   Apr 14 2006, 05:07
- - ДДН   Цитата(ipc @ Apr 14 2006, 09:07) К сожале...   Aug 22 2006, 11:48
- - ipc   Цитата(ДДН @ Aug 22 2006, 15:48) Цитата(i...   Aug 22 2006, 11:57
- - Andrew2000   Цитата(ipc @ Aug 22 2006, 15:57) Цитата(Д...   Aug 22 2006, 14:32
|- - ipc   Цитата(Andrew2000 @ Aug 22 2006, 18:32) Ц...   Aug 23 2006, 04:37
- - ДДН   Цитата(ipc @ Aug 22 2006, 15:57) Сейчас п...   Aug 23 2006, 07:26


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

 


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


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