|
Реализовать CANOpen на CAN МК Freescale DSP56F805, Разобрался с аппартным CAN, надо накрутить поверх CANOpen |
|
|
|
Aug 6 2009, 07:15
|
Группа: Участник
Сообщений: 14
Регистрация: 3-03-09
Пользователь №: 45 602

|
В этом МК есть аппаратный CAN интерфейс. С ним я разобрался, вот только могу пользоваться им лишь для связи с другим таким же МК. А мне требуется интегрироваться в сетку с протоколом CANOpen. Вопрос: Возможно ли такое выполнить ? И как ? Очень нужны базовые примеры и документы. Сам я пока лопачу документацию. Но без вашего опыта буду долго возиться. Уважаемое сообщество, прошу помощи.
|
|
|
|
|
 |
Ответов
|
Feb 18 2011, 12:37
|

Частый гость
 
Группа: Свой
Сообщений: 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 и объектом словаря?
Просьба - разъясните мне "на пальцах", я не смог найти ответы на свои вопросы из спецификаций.
|
|
|
|
|
Feb 18 2011, 14:39
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
вы очень все внятно разложили по полочкам  Мой опыт разработки кэн-приложения был таков: Исходники 1) использовал CANopenNode. У меня тоже PIC-процессор, но другой. Но переписывать ничего не пришлось, забегало сразу. 2) там же редактор словаря, мощная штука, без этого загнулся бы. Но нужен FireFox. 3) даже автора нашел на каком-то форуме, на письма очень быстро отвечает Документация по протоколам 1) протоколы запросил прямо на их сайте (www.can-cia.org) при регистрации. Любопытно, они очень внимательно проверяют чего там в регистрации им пишут. Мне прислали запрос, почему указанный мной почтовый адрес не совпадает с адресом, написанном на указанном мной www сайте. Для ускорения позвонил им голосом, объяснил, через 10 минут все выслали  2) советую посмотреть также профили, если подойдет готовый- то меньше придумывать придется. 3) ну конечно и дополнительно неофициально гуляющими версиями документации пользовался. 4) посмотрите аппноты, мне помогло: http://www.microcontrol.net/en/know-how/canopen.html5) еще цикл статей "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)?
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|