|
Интерфейс CAN, Принципы обмена по протоколу CAN |
|
|
|
Mar 24 2006, 11:10
|
Группа: Новичок
Сообщений: 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, и если да, то какой идентификатор передается в этом фрейме)?
Расчитываю на Ваш совет! Спасибо.
|
|
|
|
|
 |
Ответов
|
Apr 7 2006, 09:21
|
Участник

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

|
Только начал разбираться с CAN-интерфейсом, что-т не догоняю: обязательно ли использование трансиверов? Или возможно подключение без них?
|
|
|
|
|
Apr 7 2006, 11:03
|
Участник

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

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

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

|
Цитата(shans @ Apr 7 2006, 15:03)  Так насколько я понял, физический уровень не оговорен, т.е. почему бы уровням линии не совпадать с уровнями контроллера? Если в системах на базе RS-232 это может и прокатит но вот в RS-485 и CAN(который использует похожую физическую линию) нет.Во первых потому что это шинные интерфейсы(т.е подразумевается что устройств будет больше двух) а главное то что в обычно используемой физической линии CAN нет состояний 0/1 а есть доминантное и рецесивное. Если кратко то эти состояния неравноценны(как 0 и 1) и когда одно устройство выставляет рецесивное состояние другое устройство может задавить его доминантным чем и достигается контроль передачи и неразрушающий арбитраж.Вот эта фича и обеспечивается драйвером. Как это делается в других физических линиях(оптика и блютуз) мало понятно но скорее всего идет эмуляция привычной CANу физической линии.
|
|
|
|
|
Apr 7 2006, 11:40
|
Участник

Группа: Свой
Сообщений: 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 не попадаем, но это уже другой вопрос. Извиняюсь, если задаю бестолковые вопросы  , просто хочу уяснить преимущества решения с использованием трансиверов.
|
|
|
|
|
Apr 7 2006, 11:50
|

Знающий
   
Группа: Свой
Сообщений: 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 не попадаем, но это уже другой вопрос. Извиняюсь, если задаю бестолковые вопросы  , просто хочу уяснить преимущества решения с использованием трансиверов. Ну так уж и дешевле.Эти драйверы стоят копейки а вот тянуть на километр такую линию(в моем случае трех вольтовую) будет очень забавно.думаю что фронты завалятся в корягу метра через два.Драйвер кроме всего прочего защищает процессор от помех и буферизирует сигналы да и то каждый имеет ограниченную нагрузочную способность(количество узлов в сети).Кроме того сигнал на выходе парафазный и заточен под длинные линии и эффекты связанные с задержками и переотражениями в сети.
|
|
|
|
|
Apr 7 2006, 12:07
|

Странник
   
Группа: Свой
Сообщений: 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_ раз быстрее...
--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
|
|
|
|
|
Apr 7 2006, 12:18
|

Знающий
   
Группа: Свой
Сообщений: 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)  Ну не такие уж копейки, а на километр мне тянуть не нужно, всего несколько метров. Собственно я сам за использование драйверов, дабы не создавать себе же лишние проблемы. Однако, как водится, на любой дополнительный корпус смотрят косо, и его использование нужно мотивировать  Ну тогда неправильно выбран интерфейс.CAN это полевая шина(название говорит само за себя) и предназначен для распределения девайсов в пространстве.Тут подошел бы ethеrnet(благо он сильно подешевел и в виде XPortа нетребует вобще никакой разработки) или вобще чтонибудь децкое типа SPI,I2c или нахудой конец проверенный веками RS-485.
|
|
|
|
|
Apr 7 2006, 13:22
|
Участник

Группа: Свой
Сообщений: 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)  Ну не такие уж копейки, а на километр мне тянуть не нужно, всего несколько метров. Собственно я сам за использование драйверов, дабы не создавать себе же лишние проблемы. Однако, как водится, на любой дополнительный корпус смотрят косо, и его использование нужно мотивировать  Ну тогда неправильно выбран интерфейс.CAN это полевая шина(название говорит само за себя) и предназначен для распределения девайсов в пространстве.Тут подошел бы ethеrnet(благо он сильно подешевел и в виде XPortа нетребует вобще никакой разработки) или вобще чтонибудь децкое типа SPI,I2c или нахудой конец проверенный веками RS-485. SPI, I2C не катят однозначно, а вот RS-485 тоже рассматривается как один из вариантов. Насчет полевой шины: интерфейс был изначально разработан для автомобильных дел. Сомневаюсь, что там километры шины
|
|
|
|
Сообщений в этой теме
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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|