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

 
 
> Реализовать CANOpen на CAN МК Freescale DSP56F805, Разобрался с аппартным CAN, надо накрутить поверх CANOpen
Phantom_
сообщение Aug 6 2009, 07:15
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 3-03-09
Пользователь №: 45 602



В этом МК есть аппаратный CAN интерфейс. С ним я разобрался, вот только могу пользоваться им лишь для связи с другим таким же МК.
А мне требуется интегрироваться в сетку с протоколом CANOpen.
Вопрос: Возможно ли такое выполнить ? И как ? Очень нужны базовые примеры и документы.
Сам я пока лопачу документацию. Но без вашего опыта буду долго возиться.
Уважаемое сообщество, прошу помощи.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
slimjack
сообщение Feb 18 2011, 12:37
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 199
Регистрация: 28-02-06
Из: Днепропетровск
Пользователь №: 14 792



Добрый день!
Не хотел плодить новые ветки и решил написать сюда, т.к. похоже тут собрались знатоки CANopen.
Не ругайте сильно (возможно будут глупые вопросы), но очень хочется получить простое, доступное объяснение основ CANopen. Я перерыл форум, почитал стандарты, читал статьи, но все равно как-то все смутно. Правда я не разглядывал исходники (CANfestival и CANopenNode).
Попытаюсь объяснить как я понимаю CANopen, попутно задавая вопросы в непонятных местах.


Итак, пользовательское приложение не видит сеть напрямую - оно видит словарь обектов, который представляет собой массив переменных, которые связаны с параметрами, допустим, технологического процесса (температуры, токи и т.д.), а также с параметрами настройки режимов работы самого устройства. Т.е. (как я понимаю) часть словаря - личные данные конкретного устройства, а другая часть - общие данные всей сети (т.е. такие же данные могут находиться и в словаре другого устройства). Т.о. пользовательскому приложению не нужно знать о существовании сети, оно просто берет данные из словаря (например, чтоб узнать текущую влажность воздуха) или записывает данные в словарь (например, давление масла, если это давление измеряется непосредственно данным устройством). Перемещением данных между словарями занимается CANopen.
Обмен между словарями производится посредством сетевых объектов PDO и SDO.
PDO сообщения могут переносить до 8 байт полезной информации и используются для передачи данных о тех. процессе. PDO являются широковещательными сообщениями. Источником (производителем) PDO должно быть устройство которое непосредственно вычисляет или измеряет какой-то параметр, входящий в PDO. Каждый PDO имеет свой уникальный идентификатор (именно он и указывается в качестве идентификатора в сообщении CAN). Т.о. устройство измеряет какие-то параметры и пишет их в словарь. В этом же словаре хранится информация о том, какие данные, в каком порядке и в какое PDO нужно упаковать. Также для каждого PDO существуют правила отправки в сеть (по времени, по изменению, по синхроимпульсу и т.д.). Если выполняется условие отправки, CANopen упаковывает данные со словаря в PDO и отправляет их в сеть. Другие устройства в сети, если они настроены на прием данного PDO (определяется по идентификатору), принимают это PDO и распихивают его содержмое по словарю в определенные ячейки. Теперь вопрос: для чего разделяются PDO на входящие и исходящие (Rx Tx)? Правильно ли я понял, что идентификатор PDO не подразумевает привязки к устройству (т.е. в нем отсутствует информация, о том кто именно в сети отправил PDO)?

Если требуется передать какую-то часть словаря размером более 8 байт, необходимо применять SDO сообщения.
Существует два типа SDO (для передачи информации и для подтверждения). В виду необходимости подтверждения SDO подразумевает только соединение точка-точка. Через SDO одновременно передается только один объект словаря (а в PDO можно несколько), но он может быть большим (более 8 байт).
Дальше у меня практически одни вопросы.
1. При передаче SDO, что из себя представляет идентификатор сообщения? Есть ли в нем адрес конкретного устройства?
2. Какое отношение приложение имеет к SDO?
3. Как устанавливается связь между SDO и объектом словаря?

Просьба - разъясните мне "на пальцах", я не смог найти ответы на свои вопросы из спецификаций.
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Feb 18 2011, 14:39
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



вы очень все внятно разложили по полочкам sm.gif

Мой опыт разработки кэн-приложения был таков:

Исходники
1) использовал CANopenNode. У меня тоже PIC-процессор, но другой. Но переписывать ничего не пришлось, забегало сразу.
2) там же редактор словаря, мощная штука, без этого загнулся бы. Но нужен FireFox.
3) даже автора нашел на каком-то форуме, на письма очень быстро отвечает

Документация по протоколам
1) протоколы запросил прямо на их сайте (www.can-cia.org) при регистрации. Любопытно, они очень внимательно проверяют чего там в регистрации им пишут. Мне прислали запрос, почему указанный мной почтовый адрес не совпадает с адресом, написанном на указанном мной www сайте. Для ускорения позвонил им голосом, объяснил, через 10 минут все выслали sm.gif
2) советую посмотреть также профили, если подойдет готовый- то меньше придумывать придется.
3) ну конечно и дополнительно неофициально гуляющими версиями документации пользовался.
4) посмотрите аппноты, мне помогло: http://www.microcontrol.net/en/know-how/canopen.html
5) еще цикл статей "CAN basics", 8 частей : http://www.can-cia.de/index.php?id=66 ( от "CAN basics: CAN in Automation history and CAN, part 1 of 8" до "CAN basics: Traffic control, part 8 of 8")

Внутрь исходников практически не лазил, по мелочам под себя дорисовывал (ну и LSS протокол написал). Как результат- от запроса документации до сдачи пилот-проекта прошел месяц (вместе с железом). Супербыстро, учитывая что до этого ничего с кэном я вообще не делал.

Цитата(slimjack @ Feb 18 2011, 14:37) *
Правильно ли я понял, что идентификатор PDO не подразумевает привязки к устройству (т.е. в нем отсутствует информация, о том кто именно в сети отправил PDO)?

ага.

Я не пользовал SDO, про это не подскажу. А Вы уверены что оно Вам надо (SDO)?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Phantom_   Реализовать CANOpen на CAN МК Freescale DSP56F805   Aug 6 2009, 07:15
- - Седой   Цитата(Phantom_ @ Aug 6 2009, 13:15) В эт...   Aug 9 2009, 18:06
- - AlexandrY   CANopen так с бодуна не делается. Помимо стека с р...   Aug 9 2009, 19:12
- - Phantom_   Спасиб за мнение. На данный момент смотрю в сторон...   Aug 12 2009, 08:20
|- - Forger   Цитата(Phantom_ @ Aug 12 2009, 12:20) На ...   Aug 29 2009, 18:49
|- - syoma   Цитата(Forger @ Aug 29 2009, 20:49) Но, г...   May 14 2010, 07:19
|- - Forger   ЦитатаПоэтому есть пара вопросов. 1. Я так понял ч...   May 15 2010, 05:07
|- - syoma   Цитата(Forger @ May 15 2010, 07:07) CANop...   May 15 2010, 19:24
|- - Forger   ЦитатаЯ не имел ввиду со стороны стека, а как обст...   May 16 2010, 07:27
|- - garry_   Цитата(Forger @ May 16 2010, 11:27) ... О...   May 17 2010, 12:45
|- - Forger   Цитата(garry_ @ May 17 2010, 16:45) А у к...   May 17 2010, 17:20
- - syoma   Так все-таки CANopenNode или CANfestival? Что лучш...   Nov 5 2009, 08:12
- - Serega   По мне так CANopenNode будет попроще в реализации ...   Nov 9 2009, 07:58
- - syoma   Я имел ввиду, конечно контроллер. Например STM32F....   Nov 9 2009, 20:00
- - Serega   А что такое CANpie?   Nov 16 2009, 15:18
- - syoma   Я вот смотрю, что вы с STM32 работаете. Я тоже соб...   May 17 2010, 09:13
- - syoma   Спасибо за ответ Цитата5 тыр. коробка USB-CAN 15 ...   May 18 2010, 06:48
|- - Forger   ЦитатаАга, значит Вы еще и CANopen модуль к анализ...   May 18 2010, 08:53
|- - Marathon   Цитата(Forger @ May 18 2010, 12:53) Цит...   May 18 2010, 13:42
|- - Forger   ЦитатаДанная "софтина" является бесплатн...   May 18 2010, 18:43
|- - Седой   Цитата(Forger @ May 19 2010, 00:43) Что ж...   May 19 2010, 14:24
|- - garry_   Цитата(Седой @ May 19 2010, 18:24) C чего...   May 19 2010, 14:55
|- - syoma   Цитата(Седой @ May 19 2010, 16:24) см. ht...   May 20 2010, 07:14
|- - garry_   Цитата(syoma @ May 20 2010, 11:14) IMHO -...   May 20 2010, 07:15
- - repairDV   Можно вопрос чуть-чуть в сторону от темы. Я, вообщ...   May 18 2010, 22:53
|- - Forger   Цитата(repairDV @ May 19 2010, 02:53) Мож...   May 19 2010, 04:40
- - repairDV   MC56F8037 Freescale. Насколько я знаю, там к CAN н...   May 19 2010, 07:11
|- - Forger   ЦитатаMC56F8037 Freescale. Заходите на сайте Frees...   May 19 2010, 07:29
- - syoma   Привет. Если кому интересно. Короче запустил я эт...   Jul 26 2010, 15:45
|- - Forger   Цитата(syoma @ Jul 26 2010, 19:45) Короче...   Jul 28 2010, 16:25
||- - syoma   Цитата(Forger @ Jul 28 2010, 18:25) Было ...   Aug 2 2010, 08:05
||- - Forger   Цитата(syoma @ Aug 2 2010, 12:05) Вот что...   Aug 2 2010, 08:38
|- - DmitryDI   Цитата(syoma @ Jul 26 2010, 19:45) Привет...   Aug 5 2010, 12:04
|- - Minti   Цитата(syoma @ Jul 26 2010, 17:45) Привет...   Jun 28 2011, 14:06
|- - EvgeniyR   Цитата(syoma @ Jul 26 2010, 18:45) Привет...   Feb 5 2014, 12:29
- - syoma   Цитатаобертка вокруг них создана на базе smart poi...   Aug 3 2010, 08:08
|- - Forger   Цитата(syoma @ Aug 3 2010, 12:08) К сожал...   Aug 3 2010, 10:15
- - syoma   ЦитатаЕсли с контролер в мастер шлеца PDO, то как ...   Aug 6 2010, 06:56
- - slimjack   ЦитатаА Вы уверены что оно Вам надо (SDO)? В сети ...   Feb 18 2011, 15:13
|- - Forger   Цитата(slimjack @ Feb 18 2011, 18:13) По ...   Feb 19 2011, 15:27
- - slimjack   Все равно не понял на счет PDO. ЦитатаУ каждого уз...   Feb 19 2011, 21:06
|- - Forger   Цитата(slimjack @ Feb 20 2011, 00:06) Зна...   Feb 20 2011, 06:17
- - slimjack   ЦитатаЕсли вам не нравиться или не понятна логично...   Feb 20 2011, 08:39
- - syoma   ЦитатаCANopen изначально проектировался для ОДНОГО...   Feb 21 2011, 08:17
|- - Forger   Цитата(syoma @ Feb 21 2011, 11:17) Откуда...   Feb 21 2011, 19:55
- - slimjack   Спасибо! Похоже, что уже для меня все стало яс...   Feb 21 2011, 09:51
- - syoma   ЦитатаНо четыре PDO железно зафиксированы за одним...   Feb 21 2011, 21:29
|- - Forger   ЦитатаНе железно, а назначены ему по умолчанию. Их...   Feb 22 2011, 06:32
- - syoma   ЦитатаВ них из 11 бит cobID 7 отводятся под номер ...   Feb 22 2011, 07:55
|- - Forger   ЦитатаИз этих параметорв только SDO и NMT сообщени...   Feb 22 2011, 08:40
- - slimjack   А что если узел с одним nodeID будет использовать ...   Feb 22 2011, 10:29
- - syoma   ЦитатаА что если узел с одним nodeID будет использ...   Feb 22 2011, 10:44
- - slimjack   Т.е. 512 PDO одного направления - это чисто такая ...   Feb 22 2011, 11:41
|- - Forger   Цитата(slimjack @ Feb 22 2011, 14:41) у о...   Feb 22 2011, 11:54
- - slimjack   Цитата1 бит - направление PDO (RPDO или TPDO) Не п...   Feb 22 2011, 12:41
|- - Forger   Цитата(slimjack @ Feb 22 2011, 15:41) Не ...   Feb 22 2011, 14:15
- - syoma   ЦитатаТ.е. 512 PDO одного направления - это чисто ...   Feb 22 2011, 14:28
- - slimjack   Ну теперь все ясно! Спасибо за разъяснения все...   Feb 22 2011, 15:18
- - syoma   Смотрите это сообщение: http://electronix.ru/forum...   Feb 23 2011, 07:51
- - GreyM   Цитата(syoma @ Feb 22 2011, 14:44) Беспла...   Apr 7 2011, 09:25
- - Minti   E-MAIL не правильно написал и кнопку корректироват...   Jun 28 2011, 16:59
- - yanvasiij   Раз уж здесь собрались все знатоки CANopen, то спр...   Jan 20 2012, 15:42
|- - Forger   Цитата(yanvasiij @ Jan 20 2012, 19:42) Кт...   Jan 20 2012, 18:06
|- - yanvasiij   Цитата(Forger @ Jan 20 2012, 23:06) Да, з...   Jan 21 2012, 17:53
|- - Forger   Цитата(yanvasiij @ Jan 21 2012, 21:53) Ск...   Jan 21 2012, 19:14
|- - yanvasiij   Цитата(Forger @ Jan 22 2012, 00:14) Стран...   Jan 21 2012, 19:40
- - yanvasiij   Блин, да че такое?! Уже все весь мануал изрыл....   Jan 23 2012, 11:59
|- - Forger   Цитата(yanvasiij @ Jan 23 2012, 15:59) Бл...   Jan 23 2012, 14:39
- - yanvasiij   Могут ли ошибки в проекте быть причиной не сохнран...   Jan 24 2012, 06:53
|- - Forger   Цитата(yanvasiij @ Jan 24 2012, 10:53) Мо...   Jan 24 2012, 07:10
- - yanvasiij   Проверил уже на трех машинах, нигде сохранить не п...   Jan 24 2012, 07:12
|- - Forger   Цитата(yanvasiij @ Jan 24 2012, 11:12) Пр...   Jan 24 2012, 10:12
- - yanvasiij   выкладываю xdd файл, иначе никак )   Jan 24 2012, 11:36
|- - Forger   Цитата(yanvasiij @ Jan 24 2012, 15:36) вы...   Jan 24 2012, 13:10
- - yanvasiij   Проблема решена! Собака порылась в названиях д...   Jan 25 2012, 04:27
- - yanvasiij   Теперь у меня вопрос по самому протоколу. PDO, кот...   Jan 25 2012, 09:59
|- - Forger   Цитата(yanvasiij @ Jan 25 2012, 13:59) Те...   Jan 25 2012, 11:48
- - yanvasiij   Проблема как раз таки в непонимании TFMа. Просто с...   Jan 25 2012, 12:38
|- - Forger   Цитата(yanvasiij @ Jan 25 2012, 16:38) Пр...   Jan 25 2012, 12:51
- - spectral1989   здравствуйте! ковыряю CanFestival. подскажите ...   Aug 28 2012, 03:57
- - spectral1989   с gnosis.xml.pickle разобрался, установил либу. но...   Aug 28 2012, 05:43
- - spectral1989   продвинулся еще чуток. файл objdictgen.py преобраз...   Aug 29 2012, 11:15
- - Maks455   Здравствуйте. 2 недели назад начал изучать CANopen...   Nov 7 2012, 18:40
- - syoma   Если устройство реагирует на NMT и шлет Heartbeat,...   Nov 8 2012, 07:33
- - Maks455   В том то и дело, что есть только CAN анализатор, и...   Nov 8 2012, 10:58
- - syoma   Какой CAN анализатор?   Nov 8 2012, 11:21
- - Maks455   Microchip CAN BUS Analyzer.   Nov 8 2012, 12:20
|- - syoma   Цитата(Maks455 @ Nov 8 2012, 14:20) Micro...   Nov 8 2012, 13:52
- - spectral1989   ЦитатаПечально отлаживать протокол, не имея хотя б...   Nov 9 2012, 01:27
- - syoma   Я исходники вроде ж здесь выкладывал.   Mar 5 2014, 09:47
- - VAlex999   Добрый вечер. Тема прошлая, но всё же может у кого...   Aug 24 2018, 21:26


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:50
Рейтинг@Mail.ru


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