| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| CAN общи въпроси http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=17629 |
Страница 1 от 2 |
| Автор: | dan [ Вто Ное 17, 2020 6:57 pm ] |
| Заглавие: | CAN общи въпроси |
Във връзка с темата за матрично свързване на платки се чудех дали да не го направя с CAN, на когото обаче познавам само физическия интерфейс. Та първият ми въпрос е от много общо естество - лесно ли се подкарва, конкретно на майкрочипски контролери (dsPIC33 серията например). От доста време не съм писал нищо за микроконтролери, но преди няколко пъти съм им дописвал errata на някои техни чепове, а за това проектче не си струва да се разхождам из поляна с мотики. Вторият ми въпрос е: до колко е възможно синхронизирането на процеси. Примерно ако изпратя броудкаст команда за семплиране на аналогови канали, тази команда може ли да се дешифрира от хардуера на кана и директно да ме вкара в прекъсване. От там нататък латентността мога сам да си преценя дали ме устройва. |
|
| Автор: | Zdrav [ Вто Ное 17, 2020 9:14 pm ] | |||||||||
| Заглавие: | Re: CAN общи въпроси | |||||||||
Това е въпрос на имплементация на CAN. И във всички имплементации, които са минавали през ръцете ми, отговорът е: Да. Периферния CAN модул в почти всички имплементации може да се конфигурира да филтрира съобщенията от бъс-а по ID. И да ги праща в съответно за това ID, FIFO. Съответно можеш да конфигурираш прекъсване при получено съобщение във FIFO-то. Синхронизирането обаче обикновено се прави по Глобален часовник, което също е въпрос на имплементация - софтуерна в този случай. Разбира се не изключвам всякакъв друг фолклор, който просто ползва физическия слой на CAN, плюс каквото са отпуснали от Микрочеп-а. |
||||||||||
| Автор: | gicho [ Сря Ное 18, 2020 5:09 pm ] |
| Заглавие: | Re: CAN общи въпроси |
Прецизната синхронизация не му е по силите на кан-а - ако е минала арбитрацията новото съобщение ще трябва да изчака докато се довърши предишното, дори да е с по-висок приоритет. Мисля че в CAN-FD имаше допълнение по темата, ама да не те излъжа. Ако по друга линия има шедюлинг на времето и си гарантираш че никой не предава в тоя момент, ще стане. Смислените контролери съхраняват и таймстамп на съобщението, което би трябвало да ти даде суб-микросекундна точност, дори и да не се пънеш да реагираш безусловно бързо на прекъсването. |
|
| Автор: | lcr [ Вто Ное 24, 2020 12:38 pm ] |
| Заглавие: | Re: CAN общи въпроси |
Ако един CAN контролер (примерно MCP2515 в normal mode) прати съобщение, което не се припознава от никой в мрежата, ще получи ли acknowledge и ако не получи, ще предава ли съобщението отново? |
|
| Автор: | stefan63 [ Вто Ное 24, 2020 2:21 pm ] |
| Заглавие: | Re: CAN общи въпроси |
Нямам идея от CAN, но не ми звучи логично да получи акнолидж. Пък дали ще предава до утре - сигурно се задава от ЗКУ-то. |
|
| Автор: | lcr [ Вто Ное 24, 2020 2:35 pm ] |
| Заглавие: | Re: CAN общи въпроси |
И аз така разсъждавам, но от написаното в чаршафа на контролера, леко се обърквам: Any node that has received an error-free frame Acknowledges the correct reception of the frame by sending back a dominant bit (regardless of whether the node is configured to accept that specific message or not) |
|
| Автор: | stefan63 [ Вто Ное 24, 2020 2:43 pm ] |
| Заглавие: | Re: CAN общи въпроси |
Да , май грешно разсъждаваме И аз го прочетох това след поста, и май ще предава пак...освен ако не е програмирано за One-Shot Mode (т.3.4) |
|
| Автор: | lcr [ Вто Ное 24, 2020 2:50 pm ] |
| Заглавие: | Re: CAN общи въпроси |
One shot mode не ми върши работа, защото, ако бъде загубен арбитража, съобщението няма да бъде предадено. Това, което целя е, дадено съобщение да се предава само веднъж или краен брой пъти в случай, че няма ACK за него. |
|
| Автор: | stefan63 [ Вто Ное 24, 2020 3:12 pm ] |
| Заглавие: | Re: CAN общи въпроси |
Е, явно ще усложниш обработките, ама изглежда ще получиш АСК от някой слушател, aко шината е в ред. |
|
| Автор: | relsys [ Чет Ное 26, 2020 12:56 am ] | |||||||||
| Заглавие: | Re: CAN общи въпроси | |||||||||
Това се пресъздава лесно само с един дивайс на линията. На осцилоскоп се забелязват данни постоянно след първоначално предаване на пакет. |
||||||||||
| Автор: | lcr [ Чет Ное 26, 2020 10:29 am ] | |||||||||
| Заглавие: | Re: CAN общи въпроси | |||||||||
Това е ясно, тествал съм го и е така, както казваш. Въпросът беше, ако освен предаващата точка има поне още една, но съобщението не я касае - дали тя ще прати ack. До този момент стана ясно, че - да. |
||||||||||
| Автор: | relsys [ Съб Ное 28, 2020 8:58 pm ] | ||||||||||||||||||
| Заглавие: | Re: CAN общи въпроси | ||||||||||||||||||
CAN пакетът има само Source Address, няма Destination Address. Така че, всеки пакет касае всяка точка. |
|||||||||||||||||||
| Автор: | gicho [ Вто Дек 01, 2020 12:04 am ] |
| Заглавие: | Re: CAN общи въпроси |
Къде го тоя сорс адрес в кан съобщението? Няма такива неща там. |
|
| Автор: | gicho [ Вто Дек 01, 2020 12:07 am ] | |||||||||
| Заглавие: | Re: CAN общи въпроси | |||||||||
Да, праща ако види валиден пакет, нищо че не е за него. Дали е за него или не се разбира по-навътре според настроените филтри, докато ацк-то идва от по-ниско ниво. Ако е сам на бъса започва да праща безкрайно докато някой не му го потвърди. Има броячи за error passive режим. |
||||||||||
| Автор: | relsys [ Вто Дек 01, 2020 2:46 pm ] | |||||||||
| Заглавие: | Re: CAN общи въпроси | |||||||||
Недей заблуждава хората с празни приказки. |
||||||||||
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|