Jump to content

    
Sign in to follow this  
volod_ua

CAN Network

Recommended Posts

А для чего вам нужен CAN ?

сколько устройств будет на шине, какая скорость нужна, какие данные будут пердаваться?

 

можно и свой протокол, если будут только ваши устройства сидеть.

 

Мы используем свой простокол, потому что много устройств сидит на шине и на каждом разнородные данные, трафик довольно большой и надо бъеденять в одном пакете данные от разных функций. стандартные протоколы это не позволяют.

 

На CAN128 CAN отлично рабоатет и довольно удобная реализация!

Share this post


Link to post
Share on other sites

А девайсов будет гдето до 128 ...да можеш поделеся как обрабативать ошибки тоисть что немогу понять как определить что msg не пошол или что случилось с шиной...так вроде начал писать свой протокол тоже всьо ок...а вот только с ошибками немогу розобраться кто за что должен отвечать...да тоже использую At90Can128 хорошоя штучка

Share this post


Link to post
Share on other sites
А девайсов будет гдето до 128 ...да можеш поделеся как обрабативать ошибки тоисть что немогу понять как определить что msg не пошол или что случилось с шиной...так вроде начал писать свой протокол тоже всьо ок...а вот только с ошибками немогу розобраться кто за что должен отвечать...да тоже использую At90Can128 хорошоя штучка

 

CAN достаточно надежная шина. поэтому в реализации лучше учитивать то что ошибок практически не будет.

 

Обработка ошибок довольно проста.

1. Надо псати состояние шины в общем (ERROR PASSIVE, BUS OFF), для простоты можно пасти только BUS OFF и например перегружать контроллер в этом случае.

 

2. Ошибки на прием пакета я игнорирую (пусть разбирается контроллер который посылал пакет)

 

3. При отправке (проще использовать только один майл бокс на отправку) надо установить таймаут и елси пакет не отправился (скорее всего не куому принимать) надо тромознуть отправку, когда майлбокс освободится можно узнать произошла отправка или нет.

 

И если нужен полный контроль всех данных то надо надо в протоколе предусмотреть пакет подтверждения получения

Share this post


Link to post
Share on other sites

Хорошо а ошибки арбитража тоисть когда два посилают одновремена... кто за етим следит ...само железо...да зачем нужен пакет TX_REMOTE и чем он отличається...

Share this post


Link to post
Share on other sites
Хорошо а ошибки арбитража тоисть когда два посилают одновремена... кто за етим следит ...само железо...да зачем нужен пакет TX_REMOTE и чем он отличається...

 

Да за арбитражем, следит железо.

 

TX_REMOTE это как бы запрос на данные, просто контроллер может отправить сам пакет с таким же ID в ответ на запрос, если есть такой майл бокс сконфигирурованный на автоматический ответ. (например есть ацп скалдывает данные в майлбокс, как клиенту понадобятся данные идет запрос, контроллер автоматически отправляет ответ)

 

Ремот фреймы хорошит для пассивной системы, которая по запросу работает и если данные в пакетах не объеденяются. присовил каждой функцее свой ID и нужны данные отапрвляешь REMOTE фрейм с данным ID

 

 

 

Новообще если трафик напряженный, на мой взгляд проще REMOTE фреймы не использовать, а пердавать данные по событию.

Share this post


Link to post
Share on other sites
Хорошо а ошибки арбитража тоисть когда два посилают одновремена... кто за етим следит ...само железо...да зачем нужен пакет TX_REMOTE и чем он отличається...

Матчасть нужно знать ;-)

Желательно спецификацию почитать, хотябы для общего представления о том что применяете.

 

http://www.can-cia.de

Кое-что на русском есть на http://www.gaw.ru

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this