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

 
 
> Интерфейс 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

Сообщений в этой теме
- 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
|||||- - spf   Цитата(shans @ Apr 7 2006, 19:22) SPI, I2...   Apr 9 2006, 11:55
|||||- - shans   Цитата(spf @ Apr 9 2006, 15:55) Цитата(sh...   Apr 11 2006, 10:33
|||||- - ipc   Цитата(shans @ Apr 11 2006, 14:33) Цитата...   Apr 11 2006, 10:44
||||- - =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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


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


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