Socket
Oct 24 2005, 04:51
Вопросик в следующем - использую CAN интерфейс.
Контроллер - AT90CAN128
CAN - трансивер - PCA82C250
Написал софт по посылке- приему CAN кадров. В отладчике все работает нормально. При проверке на железе никакого сигнала на Tx_CAN (связь контроллера с отладчиком) не наблюдается.
Вопрос- с точки зрения схемотехники интерфейса обязятелен ли второй абонент???
Для проверки наличия сигнала на выводе Tx_CAN второе устройство не
обязательно.Если вы выставили флаг на передачу, то контроллер начнет
передавать данные после того как определит , что линия свободна и будет передавать пока не получит ack.Главное чтобы Rx_CAN был
подтянут к +5В.Если контроллер слышит свой сигнал, то вы должны увидеть
весь протокол, если нет , то будут на выводе Tx_CAN просто короткие
импульсы большой скважности.
Socket
Oct 24 2005, 05:20
Ясно...спасибо..
Получается, что не подятгивая к 5 Вольтам Rx_CAN даже SOf (Start of Bit ) не увидишь?
Если драйвер шины 82С250 подключен правильно и к нему нет
претензий, то причина в программировании микроконтроллера.
Существенно.К выводам 82С250 CANH и CANL надо подключить 120 Ом.
Socket
Oct 24 2005, 07:53
Хм.странно! Повесили на RX_CAN 5 вольт, щупали осцилографом - единица висит, но с TX_can все равно ничего не вываливается на драйвер шины, если до подтягивания RX_CAn там висело 2.5 вольта, теперь висит 5 волбт и все тут !)
5 вольт - это правильно.Я про это говорил если без драйвера.Если
25С250 исправна, то можно и не подтягивать.Чтобы 25С250 работала,
надо подключить резистор 120 Ом.
Если на Rx лог.1 , а на Tx (микроконтроллера) нет импульсов, то
программа микроконтроллера.
Socket
Oct 24 2005, 11:09
Все нормально...на RX висит единица, а с Tx вываливаются импульсы большой скважности - страт бит пытается отправить
Теперь подключить правильно 82С250 и пойдет протокол.
Посмотрел ,в исходном состоянии на RxCAN-3,5 вольта.На
TxCAN-4вольта.
Успехов.
san822
Oct 26 2005, 07:43
Господа!
У меня тоже есть вопрос про CAN .
Можете прочитать его перейдя по ссылке
http://forum.electronix.ru/index.php?showt...362entry59362.
Цитата(Socket @ Oct 24 2005, 16:09)
Все нормально...на RX висит единица, а с Tx вываливаются импульсы большой скважности - страт бит пытается отправить
Должен буть не старт -бит а полный кадр.
А вот теперь нужен второй абонент на шлейфе...
Подскажите.. у драйвера 82C250 минимальная скорость передачи данных ограничена или нет? И какого номинала должен быть резистор Rs, который цепляется к 8 ног. Осциллографом смотрим на TX_CAN и на RX_CAN, на TX импульс 50мкс на RX импульс 6мкс, как будто чем-то ограничена ширина импульса? Может кто сталкивался с такой проблемой?
Цитата(Igor42 @ Nov 9 2005, 17:25)

Подскажите.. у драйвера 82C250 минимальная скорость передачи данных ограничена или нет? И какого номинала должен быть резистор Rs, который цепляется к 8 ног. Осциллографом смотрим на TX_CAN и на RX_CAN, на TX импульс 50мкс на RX импульс 6мкс, как будто чем-то ограничена ширина импульса? Может кто сталкивался с такой проблемой?
Ограничений нет.
Номинал Rs зависит от скорости. Поставь 1К или вообще на землю посади 8-ю ногу.
Igor42
Nov 14 2005, 08:36
Разобрались оказывается трансивер не так припаяли... все заработало..
Socket
Nov 18 2005, 10:39
А вот еще такой вопросик в даташите это как -то в скользь упомянуто -
можно ли программно вывести CAN узел из состояние BAS OFF, т.е. заставить его вновь и вновб тестировать линию связи на предмет обнаружения ее востановления!
используемый контроллер AT90can128
Цитата(Socket @ Nov 18 2005, 15:39)

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

Господа!
Кто-нибудь может разместить на форуме программы на Си,
реализующие обмен по CAN-интерфейсу?
На все подобное добро тут места не хватит...
В инете просто море подобных вещей, устанешь перебирать.
Приведу одну сслку:
http://www.vscp.org/ И для С166 думаю можно найти...
san822
Jan 27 2006, 12:06
Цитата(Alechin @ Jan 26 2006, 19:37)

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

Это имеет значение, т. к. если в сети достаточно большое число контроллеров, то придётся сделать усложнённую программу(надо будет менять ID, продумать их распределение и т. д.).
- "Одношлейфовая" сеть на драйверах типа TJA1050 ограничивается их нагрузочной способностью - около 100 узлов, теоретическое ограничение - разрядность ID.
- Распределение ID зависит от его разрядности, 11/29 бит.
- У контроллера может быть несколько ID (для разных типов сообщений).
- В ID можно "вставлять данные" для увеличения количества данных в сообщении или уменьшения времени передачи - только ID, часть бит в котором выделены под данные.
- "Менять ID" приемных слотов не стоит, чревато потерей данных, их надо настраивать при старте контроллера или системы.
Так что думать надо в любом случае...
san822
Jan 31 2006, 12:55
Есть у меня вопрос связанный с отладкой программы
для CAN-интерфейса в среде разработки Keil.
Представте себе два прибора с CAN-контроллерами, один из которых функционирует в обычном режиме, а другой в отладочном, т. е. с использованием монитора.
Первый непрерывно передаёт информацию.
Просматривая ход программы во втором, замечаю, что в буфер сообщения постоянно что-то записывается(т. е. контроллер "живёт своей жизнью" не обращая внимание на точки останова ?) и получается, что при его чтении получаю не нужный массив данных, а его куски. В чём дело ? Может мои подозрения ошибочны ?
dmitry-tomsk
Jan 31 2006, 13:08
Поделитесь, пожалуйста, каким отладчиком в Keil пользуютесь. Тоже занимаюсь отладкой сети на AT89C51CC03 в Keil c помощью ISD51. Виснет через каждые 2 минуты, прерывания CAN вообще перестают с ним работать, приходится через опрос флага!
san822
Jan 31 2006, 13:27
Использую Keil Monitor-166 Driver(Monitor Configuration - Monitor in ROM).
Отлаживаю программу для CAN-контроллера встроенного в МК C167 Infineon.
dmitry-tomsk
Jan 31 2006, 13:46
Остаётся только завидовать

. Flashmon так и не удалось настроить, останов не работал совсем. Может у кого получилось использовать Flashmon для СС03?
Цитата(dmitry-tomsk @ Jan 31 2006, 18:46)

Остаётся только завидовать

. Flashmon так и не удалось настроить, останов не работал совсем. Может у кого получилось использовать Flashmon для СС03?
Не пойму чему завидовать...
ИМХО: Подглядывалка в виде монитора не панацея при отладке, тем более в реальном времени т.к. ни чем не лучше обычного симулятора. В реальном времени даже аппаратные отладочные средства зачастую бессильны.
Сформируйте "свою" и "читаемую" информацию, направьте в свободный последовательный интерфейс и читайте простым терминалом, толку будет больше.
dmitry-tomsk
Feb 1 2006, 21:22
К сожалению, текстовыми сообщениями не обойтись. А вот без отладчика CC03 сложно было бы использовать вообще. Документация на него ужасная, лучше самому изучить изменение регистров на реальном железе в реальной программе.
Цитата(dmitry-tomsk @ Feb 2 2006, 02:22)

К сожалению, текстовыми сообщениями не обойтись.
Обойтись можно двумя кнопками и двумя лампочками
Цитата
А вот без отладчика CC03 сложно было бы использовать вообще. Документация на него ужасная, лучше самому изучить изменение регистров на реальном железе в реальной программе.
Зачем же вы взяли такой дорогой МК да еще и без документации?!
Изучать поведение регистров надо в специальной программе, если уж на то пошло. Изучили, записали и вперед.
А в реальной программе все нюансы можно выгребать долго, т.к. тонкости могут встречаться в нескольких местах, накладываться друг на друга, да и сама "реальная программа" может быть создана с принципиальными ошибками т.к. разрабатывалась по ошибочной документации.
Мне удалось отладить свою программу благодаря
наличию светодиодов у программируемого прибора.
Alechin
Feb 2 2006, 16:26
А какие проблемы с CC03?
У меня все с первого раза заработало, и дока по нему достаточная.
glory_m@n
May 10 2006, 14:16
Кому-нибудь приходилось реализовывать XCP (universal measurment and calibration protocol) для CAN или CCP (CAN calibration protocol) для контроллеров?
Velund
Aug 12 2006, 19:25
Вопрос к уважаемой публике...
Есть 2-канальная CAN плата от IXXAT. С ней в комплекте единственное что есть - совсем примитивный терминал (minimon) который держит 1 канал (на выбор). И убог до крайности.
Может быть кто нибудь знает какой нибудь более продвинутый софт (работающий через их VCI драйвер), который можно надыбать без финансовых вливаний? ;-) Речь даже не о протокольном анализаторе, а о терминале с возможностью фильтровать сообщения, логгировать отфильтрованное с фиксацией времени приема и потом "проигрывать" записанное в том же временнОм темпе.
Цитата
Может быть кто нибудь знает какой нибудь более продвинутый софт (работающий через их VCI драйвер), который можно надыбать без финансовых вливаний? ;-) Речь даже не о протокольном анализаторе, а о терминале с возможностью фильтровать сообщения, логгировать отфильтрованное с фиксацией времени приема и потом "проигрывать" записанное в том же временнОм темпе
Для чего нужно? Для автомобиля?
Цитата(Velund @ Aug 12 2006, 23:25)

Вопрос к уважаемой публике...
Есть 2-канальная CAN плата от IXXAT. С ней в комплекте единственное что есть - совсем примитивный терминал (minimon) который держит 1 канал (на выбор). И убог до крайности.
Может быть кто нибудь знает какой нибудь более продвинутый софт (работающий через их VCI драйвер), который можно надыбать без финансовых вливаний? ;-) Речь даже не о протокольном анализаторе, а о терминале с возможностью фильтровать сообщения, логгировать отфильтрованное с фиксацией времени приема и потом "проигрывать" записанное в том же временнОм темпе.
Без финансовых вливаний (с) такого софта ненайти.Единственное что подходит это CAN Analizer фирмы IXXAT но я его безрезультатно ищу уже года три.А демо версия укоцаная и нелечица.
Остается вариант написания своего софта благо VCI V2 и V3 написаны очень неплохо и легко программируются.Я к примеру пошел по пути написания софта для своих IXXAT плат с использованием Labview.
Velund
Aug 18 2006, 19:23
Цитата(Седой @ Aug 14 2006, 20:29)

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

CAN - трансивер - PCA82C250T.
Написал программу по приему CAN кадров.
На интерфейсе сидит еще одно устройство-абонент(уже готовое), шлет моему устройству запросы.
Мой девайс не хочет ничего принимать. Короче говоря, после достижения счетчиком ошибок приемника значения 128, контроллер переходит в режим BUSOFF. В чем может быть косяк?
От неправильного выбора скорости до неправильного соединения шлейфа.
Попробуй передать одно и тоже обоими устройствами и посмотри скопом на выводах TX у обоих устройств, должна быть одинаковая картинка. На выводах RX должна быть одинаковая картинка всегда.
Цитата(spf @ Oct 8 2007, 21:15)

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

Вопрос к уважаемой публике...
Есть 2-канальная CAN плата от IXXAT. С ней в комплекте единственное что есть - совсем примитивный терминал (minimon) который держит 1 канал (на выбор). И убог до крайности.
Может быть кто нибудь знает какой нибудь более продвинутый софт (работающий через их VCI драйвер), который можно надыбать без финансовых вливаний? ;-) Речь даже не о протокольном анализаторе, а о терминале с возможностью фильтровать сообщения, логгировать отфильтрованное с фиксацией времени приема и потом "проигрывать" записанное в том же временнОм темпе.
незнаю насчет продвинутого софта но есть самописаный мною
Нажмите для просмотра прикрепленного файлаправда до фильтров руки не дошли (пока не надо) да и не придумал как красиво сделать
куча недоделок и также принимаются замечания, есть мысли развивать его
но туда нужны библиотеки QtCore4.dll и QtGui4.dll мож еще какие. вообщем beta -1
Интересны отзывы
Andrew2000
Apr 4 2008, 22:09
Цитата(wangan @ Apr 4 2008, 17:46)

незнаю насчет продвинутого софта но есть самописаный мною ... есть мысли развивать его
а исходники положите, если не сложно, а то плата валяется в столе - может и пригодится...
Цитата
но туда нужны библиотеки QtCore4.dll и QtGui4.dll мож еще какие. вообщем beta -1
Интересны отзывы
Вы его мелкософтом собирали?
.dll от 4.3.3 не подошли (MinGW)
Цитата(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
Apr 29 2008, 09:05
обнаружен баг при загрузки шины на 100 процентов программа загружает проц PC тоже почти до 100%
Dog Pawlowa
May 2 2008, 07:44
Цитата(wangan @ Apr 29 2008, 12:05)

обнаружен баг при загрузки шины на 100 процентов программа загружает проц PC тоже почти до 100%
Это не баг, это фича разработчика системы
Цитата(Dog Pawlowa @ May 2 2008, 10:44)

Это не баг, это фича разработчика системы

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

не поддержка кирилицы во время считывания через класс QSetting из ini файла (мож кто то подскажет как)
с qt не работал, но есть подозрение если приложение не unicode, то нужно выставить локаль setlocale(LC_CTYPE,".ACP");
ну или так setlocale(LC_ALL,'russian');
Старые проблемы пофиксены, добавлена функция запрос-ответ и краткое описание настроек.
Для проги нужны QtCore4.dll и QtGui4.dll Жду отзывов.
стоп с новыми дравами комп виснет разбераюсь..
исправлено, косяк мой, но на старых дровах работало так что не виноватая оно само
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.