Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CAN - интерфейс
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Controller Area Network (CAN)
Страницы: 1, 2
Socket
Вопросик в следующем - использую CAN интерфейс.
Контроллер - AT90CAN128
CAN - трансивер - PCA82C250
Написал софт по посылке- приему CAN кадров. В отладчике все работает нормально. При проверке на железе никакого сигнала на Tx_CAN (связь контроллера с отладчиком) не наблюдается.
Вопрос- с точки зрения схемотехники интерфейса обязятелен ли второй абонент???
upc2
Для проверки наличия сигнала на выводе Tx_CAN второе устройство не
обязательно.Если вы выставили флаг на передачу, то контроллер начнет
передавать данные после того как определит , что линия свободна и будет передавать пока не получит ack.Главное чтобы Rx_CAN был
подтянут к +5В.Если контроллер слышит свой сигнал, то вы должны увидеть
весь протокол, если нет , то будут на выводе Tx_CAN просто короткие
импульсы большой скважности.
Socket
Ясно...спасибо..
Получается, что не подятгивая к 5 Вольтам Rx_CAN даже SOf (Start of Bit ) не увидишь?
upc2
Если драйвер шины 82С250 подключен правильно и к нему нет
претензий, то причина в программировании микроконтроллера.
upc2
Существенно.К выводам 82С250 CANH и CANL надо подключить 120 Ом.
Socket
Хм.странно! Повесили на RX_CAN 5 вольт, щупали осцилографом - единица висит, но с TX_can все равно ничего не вываливается на драйвер шины, если до подтягивания RX_CAn там висело 2.5 вольта, теперь висит 5 волбт и все тут !)
upc2
5 вольт - это правильно.Я про это говорил если без драйвера.Если
25С250 исправна, то можно и не подтягивать.Чтобы 25С250 работала,
надо подключить резистор 120 Ом.
Если на Rx лог.1 , а на Tx (микроконтроллера) нет импульсов, то
программа микроконтроллера.
Socket
Все нормально...на RX висит единица, а с Tx вываливаются импульсы большой скважности - страт бит пытается отправить
upc2
Теперь подключить правильно 82С250 и пойдет протокол.
Посмотрел ,в исходном состоянии на RxCAN-3,5 вольта.На
TxCAN-4вольта.
Успехов.
san822
Господа!
У меня тоже есть вопрос про CAN .
Можете прочитать его перейдя по ссылке http://forum.electronix.ru/index.php?showt...362&#entry59362.
spf
Цитата(Socket @ Oct 24 2005, 16:09)
Все нормально...на RX висит единица, а с Tx вываливаются импульсы большой скважности - страт бит пытается отправить
*


Должен буть не старт -бит а полный кадр.

А вот теперь нужен второй абонент на шлейфе...
Igor42
Подскажите.. у драйвера 82C250 минимальная скорость передачи данных ограничена или нет? И какого номинала должен быть резистор Rs, который цепляется к 8 ног. Осциллографом смотрим на TX_CAN и на RX_CAN, на TX импульс 50мкс на RX импульс 6мкс, как будто чем-то ограничена ширина импульса? Может кто сталкивался с такой проблемой?
spf
Цитата(Igor42 @ Nov 9 2005, 17:25) *
Подскажите.. у драйвера 82C250 минимальная скорость передачи данных ограничена или нет? И какого номинала должен быть резистор Rs, который цепляется к 8 ног. Осциллографом смотрим на TX_CAN и на RX_CAN, на TX импульс 50мкс на RX импульс 6мкс, как будто чем-то ограничена ширина импульса? Может кто сталкивался с такой проблемой?


Ограничений нет.
Номинал Rs зависит от скорости. Поставь 1К или вообще на землю посади 8-ю ногу.
Igor42
Разобрались оказывается трансивер не так припаяли... все заработало..
Socket
А вот еще такой вопросик в даташите это как -то в скользь упомянуто -
можно ли программно вывести CAN узел из состояние BAS OFF, т.е. заставить его вновь и вновб тестировать линию связи на предмет обнаружения ее востановления!
используемый контроллер AT90can128
spf
Цитата(Socket @ Nov 18 2005, 15:39) *
А вот еще такой вопросик в даташите это как -то в скользь упомянуто -
можно ли программно вывести CAN узел из состояние BAS OFF, т.е. заставить его вновь и вновб тестировать линию связи на предмет обнаружения ее востановления!
используемый контроллер AT90can128


Должны быть такие средства, надо штудировать доку по реализации CAN в этом МК.
Но не обязательно после вывода из BUS_OFF будут продолжены попытки передачи, ее надо инициировать.
san822
Господа!
Кто-нибудь может разместить на форуме программы на Си,
реализующие обмен по CAN-интерфейсу?
Особенно интересуют варианты
для 16-разрядных МП фирм ST и Infineon.
Хочется посмотреть как эту задачу решают другие программисты.
Alechin
Для 16-ти битников у меня нет, но могу дать драйвера для 51 (с внешним SJA1000 и внутренним CC03).
Но там и так все просто - положил в буфер, запустил передачу. Либо - разрешил прием, ждеш готовности, считываешь сообщение из буфера - проще не куда.
spf
Цитата(san822 @ Jan 26 2006, 17:47) *
Господа!
Кто-нибудь может разместить на форуме программы на Си,
реализующие обмен по CAN-интерфейсу?

На все подобное добро тут места не хватит...
В инете просто море подобных вещей, устанешь перебирать.
Приведу одну сслку:
http://www.vscp.org/

И для С166 думаю можно найти...
san822
Цитата(Alechin @ Jan 26 2006, 19:37) *
Для 16-ти битников у меня нет, но могу дать драйвера для 51 (с внешним SJA1000 и внутренним CC03).
Но там и так все просто - положил в буфер, запустил передачу. Либо - разрешил прием, ждеш готовности, считываешь сообщение из буфера - проще не куда.



А сколько в этом проекте CAN-конроллеров подключено в сеть ?
Alechin
Цитата
А сколько в этом проекте CAN-конроллеров подключено в сеть ?

А что, это может иметь значение?
У нас цифровая коммутационная станция с внутристанционной сигнализацией по CAN (т.е. внутри одного каркаса) - модулей десяток-полтора, скорость мегабит.
Плюс система мониторинга - тут уже метров несколько десятков отвод (для перехода в PC - преобразователь CAN-USB).
Плюс еще по электровозу (другая разработка) - там тоже пара десятков устройств на шине.
Да еще всякое.
san822
Это имеет значение, т. к. если в сети достаточно большое число контроллеров, то придётся сделать усложнённую программу(надо будет менять ID, продумать их распределение и т. д.).
spf
Цитата(san822 @ Jan 30 2006, 15:04) *
Это имеет значение, т. к. если в сети достаточно большое число контроллеров, то придётся сделать усложнённую программу(надо будет менять ID, продумать их распределение и т. д.).

- "Одношлейфовая" сеть на драйверах типа TJA1050 ограничивается их нагрузочной способностью - около 100 узлов, теоретическое ограничение - разрядность ID.
- Распределение ID зависит от его разрядности, 11/29 бит.
- У контроллера может быть несколько ID (для разных типов сообщений).
- В ID можно "вставлять данные" для увеличения количества данных в сообщении или уменьшения времени передачи - только ID, часть бит в котором выделены под данные.
- "Менять ID" приемных слотов не стоит, чревато потерей данных, их надо настраивать при старте контроллера или системы.

Так что думать надо в любом случае...
san822
Есть у меня вопрос связанный с отладкой программы
для CAN-интерфейса в среде разработки Keil.
Представте себе два прибора с CAN-контроллерами, один из которых функционирует в обычном режиме, а другой в отладочном, т. е. с использованием монитора.
Первый непрерывно передаёт информацию.
Просматривая ход программы во втором, замечаю, что в буфер сообщения постоянно что-то записывается(т. е. контроллер "живёт своей жизнью" не обращая внимание на точки останова ?) и получается, что при его чтении получаю не нужный массив данных, а его куски. В чём дело ? Может мои подозрения ошибочны ?
dmitry-tomsk
Поделитесь, пожалуйста, каким отладчиком в Keil пользуютесь. Тоже занимаюсь отладкой сети на AT89C51CC03 в Keil c помощью ISD51. Виснет через каждые 2 минуты, прерывания CAN вообще перестают с ним работать, приходится через опрос флага!
san822
Использую Keil Monitor-166 Driver(Monitor Configuration - Monitor in ROM).
Отлаживаю программу для CAN-контроллера встроенного в МК C167 Infineon.
dmitry-tomsk
Остаётся только завидовать sad.gif. Flashmon так и не удалось настроить, останов не работал совсем. Может у кого получилось использовать Flashmon для СС03?
spf
Цитата(dmitry-tomsk @ Jan 31 2006, 18:46) *
Остаётся только завидовать sad.gif . Flashmon так и не удалось настроить, останов не работал совсем. Может у кого получилось использовать Flashmon для СС03?

Не пойму чему завидовать...
ИМХО: Подглядывалка в виде монитора не панацея при отладке, тем более в реальном времени т.к. ни чем не лучше обычного симулятора. В реальном времени даже аппаратные отладочные средства зачастую бессильны.

Сформируйте "свою" и "читаемую" информацию, направьте в свободный последовательный интерфейс и читайте простым терминалом, толку будет больше.
dmitry-tomsk
К сожалению, текстовыми сообщениями не обойтись. А вот без отладчика CC03 сложно было бы использовать вообще. Документация на него ужасная, лучше самому изучить изменение регистров на реальном железе в реальной программе.
spf
Цитата(dmitry-tomsk @ Feb 2 2006, 02:22) *
К сожалению, текстовыми сообщениями не обойтись.
Обойтись можно двумя кнопками и двумя лампочками wink.gif
Цитата
А вот без отладчика CC03 сложно было бы использовать вообще. Документация на него ужасная, лучше самому изучить изменение регистров на реальном железе в реальной программе.
Зачем же вы взяли такой дорогой МК да еще и без документации?!

Изучать поведение регистров надо в специальной программе, если уж на то пошло. Изучили, записали и вперед.
А в реальной программе все нюансы можно выгребать долго, т.к. тонкости могут встречаться в нескольких местах, накладываться друг на друга, да и сама "реальная программа" может быть создана с принципиальными ошибками т.к. разрабатывалась по ошибочной документации.
san822
Мне удалось отладить свою программу благодаря
наличию светодиодов у программируемого прибора.
Alechin
А какие проблемы с CC03?
У меня все с первого раза заработало, и дока по нему достаточная.
glory_m@n
Кому-нибудь приходилось реализовывать XCP (universal measurment and calibration protocol) для CAN или CCP (CAN calibration protocol) для контроллеров?
Velund
Вопрос к уважаемой публике...

Есть 2-канальная CAN плата от IXXAT. С ней в комплекте единственное что есть - совсем примитивный терминал (minimon) который держит 1 канал (на выбор). И убог до крайности.

Может быть кто нибудь знает какой нибудь более продвинутый софт (работающий через их VCI драйвер), который можно надыбать без финансовых вливаний? ;-) Речь даже не о протокольном анализаторе, а о терминале с возможностью фильтровать сообщения, логгировать отфильтрованное с фиксацией времени приема и потом "проигрывать" записанное в том же временнОм темпе.
Седой
Цитата
Может быть кто нибудь знает какой нибудь более продвинутый софт (работающий через их VCI драйвер), который можно надыбать без финансовых вливаний? ;-) Речь даже не о протокольном анализаторе, а о терминале с возможностью фильтровать сообщения, логгировать отфильтрованное с фиксацией времени приема и потом "проигрывать" записанное в том же временнОм темпе


Для чего нужно? Для автомобиля?
ipc
Цитата(Velund @ Aug 12 2006, 23:25) *
Вопрос к уважаемой публике...

Есть 2-канальная CAN плата от IXXAT. С ней в комплекте единственное что есть - совсем примитивный терминал (minimon) который держит 1 канал (на выбор). И убог до крайности.

Может быть кто нибудь знает какой нибудь более продвинутый софт (работающий через их VCI драйвер), который можно надыбать без финансовых вливаний? ;-) Речь даже не о протокольном анализаторе, а о терминале с возможностью фильтровать сообщения, логгировать отфильтрованное с фиксацией времени приема и потом "проигрывать" записанное в том же временнОм темпе.

Без финансовых вливаний (с) такого софта ненайти.Единственное что подходит это CAN Analizer фирмы IXXAT но я его безрезультатно ищу уже года три.А демо версия укоцаная и нелечица.
Остается вариант написания своего софта благо VCI V2 и V3 написаны очень неплохо и легко программируются.Я к примеру пошел по пути написания софта для своих IXXAT плат с использованием Labview.
Velund
Цитата(Седой @ Aug 14 2006, 20:29) *
Для чего нужно? Для автомобиля?



Нет. Для отладки взаимодействия между своими поделками, к автомобильным вопросам мало отношения имеющим. Уж больно хорошо приоритетный механизм доступа к шине нам подошел, за это его и "полюбили".

А вот как раз что то для мониторинга автомобильных дел с поддержкой VCI я видел, с 30-дневной полнофункциональной демо-версией. Но это не то, что надо.

А вот терминала с легкими наворотами, который похоже есть в родном анализаторе - нигде не видно. Но там цена совершенно неподъемная, если покупать.
Angle
У меня такая проблема - тоже использую CAN интерфейс.
Контроллер - AT91SAM7A3
CAN - трансивер - PCA82C250T.
Написал программу по приему CAN кадров.
На интерфейсе сидит еще одно устройство-абонент(уже готовое), шлет моему устройству запросы.
Мой девайс не хочет ничего принимать. Короче говоря, после достижения счетчиком ошибок приемника значения 128, контроллер переходит в режим BUSOFF. В чем может быть косяк?
spf
Цитата(Angle @ Oct 8 2007, 20:06) *
CAN - трансивер - PCA82C250T.
Написал программу по приему CAN кадров.
На интерфейсе сидит еще одно устройство-абонент(уже готовое), шлет моему устройству запросы.
Мой девайс не хочет ничего принимать. Короче говоря, после достижения счетчиком ошибок приемника значения 128, контроллер переходит в режим BUSOFF. В чем может быть косяк?

От неправильного выбора скорости до неправильного соединения шлейфа.
Попробуй передать одно и тоже обоими устройствами и посмотри скопом на выводах TX у обоих устройств, должна быть одинаковая картинка. На выводах RX должна быть одинаковая картинка всегда.
Angle
Цитата(spf @ Oct 8 2007, 21:15) *
От неправильного выбора скорости до неправильного соединения шлейфа.
Попробуй передать одно и тоже обоими устройствами и посмотри скопом на выводах TX у обоих устройств, должна быть одинаковая картинка. На выводах RX должна быть одинаковая картинка всегда.

При попытке передачи на выводах и RX и TX у контроллера отлаживаемого устройства присутствуют последовательности коротких импульсов большой скважности - это не похоже на передаваемое сообщение. Резистор 120 Ом установлен на шине.
Может быть дело в драйвере PCA82C250 ?
wangan
Цитата(Velund @ Aug 12 2006, 22:25) *
Вопрос к уважаемой публике...

Есть 2-канальная CAN плата от IXXAT. С ней в комплекте единственное что есть - совсем примитивный терминал (minimon) который держит 1 канал (на выбор). И убог до крайности.

Может быть кто нибудь знает какой нибудь более продвинутый софт (работающий через их VCI драйвер), который можно надыбать без финансовых вливаний? ;-) Речь даже не о протокольном анализаторе, а о терминале с возможностью фильтровать сообщения, логгировать отфильтрованное с фиксацией времени приема и потом "проигрывать" записанное в том же временнОм темпе.


незнаю насчет продвинутого софта но есть самописаный мною Нажмите для просмотра прикрепленного файла
правда до фильтров руки не дошли (пока не надо) да и не придумал как красиво сделать
куча недоделок и также принимаются замечания, есть мысли развивать его
но туда нужны библиотеки QtCore4.dll и QtGui4.dll мож еще какие. вообщем beta -1
Интересны отзывы
Andrew2000
Цитата(wangan @ Apr 4 2008, 17:46) *
незнаю насчет продвинутого софта но есть самописаный мною ... есть мысли развивать его

а исходники положите, если не сложно, а то плата валяется в столе - может и пригодится...
Цитата
но туда нужны библиотеки QtCore4.dll и QtGui4.dll мож еще какие. вообщем beta -1
Интересны отзывы

Вы его мелкософтом собирали?
.dll от 4.3.3 не подошли (MinGW)
wangan
Цитата(Andrew2000 @ Apr 5 2008, 01:09) *
а исходники положите, если не сложно, а то плата валяется в столе - может и пригодится...

Вы его мелкософтом собирали?
.dll от 4.3.3 не подошли (MinGW)


я не поклоник опенсоурсной идеологии
собирал vs2005, библиотеки стоят 4.3.1.0
вот поновее версия с фильтрами на добавление и на удаление Нажмите для просмотра прикрепленного файла
известные недоделки: не поддержка кирилицы во время считывания через класс QSetting из ini файла (мож кто то подскажет как) т.к. на qt первая прога
так же не нравится что количество сообщений о ненайденом устройстве равно количеству окон (т.к они независимые). Пока нет привязки к типу соединения USB\PCI т.к нехочится использовать GUID виндовый для определения типа, да GUID PCI карты нет. Также нет поддержки динамического подключения\отключения устройства (USB) с сохранением работоспособности.
wangan
обнаружен баг при загрузки шины на 100 процентов программа загружает проц PC тоже почти до 100%
Dog Pawlowa
Цитата(wangan @ Apr 29 2008, 12:05) *
обнаружен баг при загрузки шины на 100 процентов программа загружает проц PC тоже почти до 100%

Это не баг, это фича разработчика системы biggrin.gif
wangan
Цитата(Dog Pawlowa @ May 2 2008, 10:44) *
Это не баг, это фича разработчика системы biggrin.gif

понятно что такая загрузка не допустима но так сразу можно увидеть проблемы

да нет прога ведет себя отвратно: жрет память, жрет процессорное время, принятые пакеты как будто одинаковые хотя данные в шине инкрементируются, после прерывания полной загрузки шины нормальная работа PC не вознобновляется (выделенная память не уменьшается, загрузка падает только до 50 проц)
WiseAlex
Цитата(wangan @ Apr 7 2008, 05:18) *
не поддержка кирилицы во время считывания через класс QSetting из ini файла (мож кто то подскажет как)

с qt не работал, но есть подозрение если приложение не unicode, то нужно выставить локаль setlocale(LC_CTYPE,".ACP");
ну или так setlocale(LC_ALL,'russian');
wangan
Старые проблемы пофиксены, добавлена функция запрос-ответ и краткое описание настроек.
Для проги нужны QtCore4.dll и QtGui4.dll Жду отзывов.
wangan
стоп с новыми дравами комп виснет разбераюсь..
wangan
исправлено, косяк мой, но на старых дровах работало так что не виноватая оно само lol.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.