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

 
 
> Реализовать 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
Ответов
syoma
сообщение Jul 26 2010, 15:45
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Привет. Если кому интересно.
Короче запустил я этот CANfestival на STM32F103. Заняло это дело 2 месяца подходов к компьютеру и чтения документации и аж 2 дня на перелопачивание драйверов на CAN контроллер и таймер. Исходники могу выложить.
Аж сам удивился, но буквально при первой компиляции эта штука запустилась и начала генерить heartbit и даже реагировать на NMT команды.
На следующий день запустил PDO обмен - тоже работает без проблем. Несмотря на приличную навороченность (стек занял 20кБ места в МК) стек пока выглядит довольно стабильно. Работает все - и SDO и PDO и NMT сервисы (на слэйве).
Вчера даже получилость прикрутить к нему запись параметров во FLASH, а-ля EEPROM. Правда не все скопом, а для заданных объектов при записи.
2 Штуки мне очень понравились по сравнению с CanOpenNode.
1. Во-первых тут есть редактор eds файлов (правда хитро устанавливается, но вполне сносно) который позволяет создать профиль своего устройства и затем по этой информации генерирует .с и .h файлы для стека и сам .eds файл. Работает очень не плохо. Созданные файлы просто копируются в проэкт и перекомпилируются, а eds файл скармливается программе - монитору CANopen шины. О ней дальше внизу.
2. Во-вторых CANfestival имеет намного более развитые возможности. Например программа пользователя общается со стеком только через глобальные переменные, которые являются объектами словаря. При приходе нового PDO переменные сами собой обновляются. При изменении переменной программой - нужно только выполнить функцию послыки PDO и CANfestival сам определит, какая переменная в какой PDO пойдет и нужно ли его слать. Даже по таймеру все работает.
В общем я доволен пока.
Кстати насчет программы. Есть такой сайт: http://www.canwizard.de Там можно скачать одноименную программу.
Она хоть и предназначена для лифтов, но достаточна полезна и для простых CANopen сетей. Она позволяет подключаться к CANopen сети, искать узлы, читать eds файлы, генерить NMT и LSS команды, общаться с любыми узлами по SDO протоколу и т.д. Даже софт по сети обновлять может. Правда лог файлы она не ведет. Единственное ограничение, что бесплатная версия может работать толька максимум с тремя узлами. Поддерживает она Vector, Ixxat, Peak адаптеры.
Go to the top of the page
 
+Quote Post
Forger
сообщение Jul 28 2010, 16:25
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(syoma @ Jul 26 2010, 19:45) *
Короче запустил я этот CANfestival на STM32F103. Заняло это дело 2 месяца подходов к компьютеру и чтения документации и аж 2 дня на перелопачивание драйверов на CAN контроллер и таймер. Исходники могу выложить....

Было бы очень интересно взглянуть и сравнить!


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
syoma
сообщение Aug 2 2010, 08:05
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата(Forger @ Jul 28 2010, 18:25) *
Было бы очень интересно взглянуть и сравнить!

Дык чего там сравнивать - взял исходники на CANконтроллер и Таймер со всем известной библиотеки FWlib от ST. Все остальное - родное CANfestivalевское.
Ладно, исходники дров выложу вечером, так как я еще туда кучу всего приделал, чего в CANfestivale не было - запись и чтение параметров из EEPROM - приделал пример эмуляции от ST. Еще добавил управление светодиодиками по DS303-3.
Единственное - обработка Heartbeat в CANfestival не очень реализована - добавил обработчик ошибки по Heartbeatу.

Вот что хочется изменить - не нравится мне функция посылки сообщений от ST - в F103 есть всего три буффера, и если они полны, то новое сообщение можно потерять. Я думаю - либо сделать посылку блокируещей - чтобы все ждали пока сообщение отошлется, либо добавить FIFO буфер побольше.

Go to the top of the page
 
+Quote Post
Forger
сообщение Aug 2 2010, 08:38
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(syoma @ Aug 2 2010, 12:05) *
Вот что хочется изменить - не нравится мне функция посылки сообщений от ST - в F103 есть всего три буффера, и если они полны, то новое сообщение можно потерять. Я думаю - либо сделать посылку блокируещей - чтобы все ждали пока сообщение отошлется, либо добавить FIFO буфер побольше.

Я тоже сталкивался с этой проблемой. Решил применением программного FIFO как на передачу и на прием заодно.

Ну, а щас сделано у меня по-другому: использование RTOS позволило использовать ее встроенные сервисы для работы очередями сообщений. А обертка вокруг них создана на базе smart pointer (только C++). Теперь не нужно беспокоиться за валидность указателя на очередное сообщение: если хоть кто-то его еще использует, оно лежит в буфере. А как только все, кому нужно было сообщения, "отстали" от него - это сообщение автоматом освобождается из очереди. Работает изумительно! Оптимизатор компилятора прекрасно работает, удаляя, казалось бы, избыток кода.


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
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
|- - 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   Добрый день! Не хотел плодить новые ветки и ре...   Feb 18 2011, 12:37
|- - Ruslan1   вы очень все внятно разложили по полочкам Мой оп...   Feb 18 2011, 14:39
- - 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 Текстовая версия Сейчас: 19th July 2025 - 03:34
Рейтинг@Mail.ru


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