| Автор |
Съобщение |
|
dan
Ранг: Форумен бог
Регистриран на: Вто Май 29, 2007 2:23 pm Мнения: 3714 Местоположение: Високо в планината
|
 CAN общи въпроси
Във връзка с темата за матрично свързване на платки се чудех дали да не го направя с CAN, на когото обаче познавам само физическия интерфейс. Та първият ми въпрос е от много общо естество - лесно ли се подкарва, конкретно на майкрочипски контролери (dsPIC33 серията например). От доста време не съм писал нищо за микроконтролери, но преди няколко пъти съм им дописвал errata на някои техни чепове, а за това проектче не си струва да се разхождам из поляна с мотики.
Вторият ми въпрос е: до колко е възможно синхронизирането на процеси. Примерно ако изпратя броудкаст команда за семплиране на аналогови канали, тази команда може ли да се дешифрира от хардуера на кана и директно да ме вкара в прекъсване. От там нататък латентността мога сам да си преценя дали ме устройва.
_________________ Хайде де!
|
| Вто Ное 17, 2020 6:57 pm |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
 Re: CAN общи въпроси
Това е въпрос на имплементация на CAN. И във всички имплементации, които са минавали през ръцете ми, отговорът е: Да. Периферния CAN модул в почти всички имплементации може да се конфигурира да филтрира съобщенията от бъс-а по ID. И да ги праща в съответно за това ID, FIFO. Съответно можеш да конфигурираш прекъсване при получено съобщение във FIFO-то. Синхронизирането обаче обикновено се прави по Глобален часовник, което също е въпрос на имплементация - софтуерна в този случай. Разбира се не изключвам всякакъв друг фолклор, който просто ползва физическия слой на CAN, плюс каквото са отпуснали от Микрочеп-а.
_________________ Най-опасният враг на истината и свободата е мнозинството.
|
| Вто Ное 17, 2020 9:14 pm |
|
 |
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 1:59 pm Мнения: 3867 Местоположение: Габрово
|
 Re: CAN общи въпроси
Прецизната синхронизация не му е по силите на кан-а - ако е минала арбитрацията новото съобщение ще трябва да изчака докато се довърши предишното, дори да е с по-висок приоритет. Мисля че в CAN-FD имаше допълнение по темата, ама да не те излъжа. Ако по друга линия има шедюлинг на времето и си гарантираш че никой не предава в тоя момент, ще стане. Смислените контролери съхраняват и таймстамп на съобщението, което би трябвало да ти даде суб-микросекундна точност, дори и да не се пънеш да реагираш безусловно бързо на прекъсването.
|
| Сря Ное 18, 2020 5:09 pm |
|
 |
|
lcr
Ранг: Форумен бог
Регистриран на: Пон Май 12, 2014 11:49 pm Мнения: 4394 Местоположение: София
|
 Re: CAN общи въпроси
Ако един CAN контролер (примерно MCP2515 в normal mode) прати съобщение, което не се припознава от никой в мрежата, ще получи ли acknowledge и ако не получи, ще предава ли съобщението отново?
|
| Вто Ное 24, 2020 12:38 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: CAN общи въпроси
Нямам идея от CAN, но не ми звучи логично да получи акнолидж. Пък дали ще предава до утре - сигурно се задава от ЗКУ-то.
|
| Вто Ное 24, 2020 2:21 pm |
|
 |
|
lcr
Ранг: Форумен бог
Регистриран на: Пон Май 12, 2014 11:49 pm Мнения: 4394 Местоположение: София
|
 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)
|
| Вто Ное 24, 2020 2:35 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: CAN общи въпроси
Да , май грешно разсъждаваме И аз го прочетох това след поста, и май ще предава пак...освен ако не е програмирано за One-Shot Mode (т.3.4)
|
| Вто Ное 24, 2020 2:43 pm |
|
 |
|
lcr
Ранг: Форумен бог
Регистриран на: Пон Май 12, 2014 11:49 pm Мнения: 4394 Местоположение: София
|
 Re: CAN общи въпроси
One shot mode не ми върши работа, защото, ако бъде загубен арбитража, съобщението няма да бъде предадено. Това, което целя е, дадено съобщение да се предава само веднъж или краен брой пъти в случай, че няма ACK за него.
|
| Вто Ное 24, 2020 2:50 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: CAN общи въпроси
Е, явно ще усложниш обработките, ама изглежда ще получиш АСК от някой слушател, aко шината е в ред.
|
| Вто Ное 24, 2020 3:12 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: CAN общи въпроси
Това се пресъздава лесно само с един дивайс на линията. На осцилоскоп се забелязват данни постоянно след първоначално предаване на пакет.
|
| Чет Ное 26, 2020 12:56 am |
|
 |
|
lcr
Ранг: Форумен бог
Регистриран на: Пон Май 12, 2014 11:49 pm Мнения: 4394 Местоположение: София
|
 Re: CAN общи въпроси
Това е ясно, тествал съм го и е така, както казваш. Въпросът беше, ако освен предаващата точка има поне още една, но съобщението не я касае - дали тя ще прати ack. До този момент стана ясно, че - да.
|
| Чет Ное 26, 2020 10:29 am |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: CAN общи въпроси
CAN пакетът има само Source Address, няма Destination Address. Така че, всеки пакет касае всяка точка.
|
| Съб Ное 28, 2020 8:58 pm |
|
 |
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 1:59 pm Мнения: 3867 Местоположение: Габрово
|
 Re: CAN общи въпроси
Къде го тоя сорс адрес в кан съобщението? Няма такива неща там.
|
| Вто Дек 01, 2020 12:04 am |
|
 |
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 1:59 pm Мнения: 3867 Местоположение: Габрово
|
 Re: CAN общи въпроси
Да, праща ако види валиден пакет, нищо че не е за него. Дали е за него или не се разбира по-навътре според настроените филтри, докато ацк-то идва от по-ниско ниво. Ако е сам на бъса започва да праща безкрайно докато някой не му го потвърди. Има броячи за error passive режим.
|
| Вто Дек 01, 2020 12:07 am |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: CAN общи въпроси
Недей заблуждава хората с празни приказки.
|
| Вто Дек 01, 2020 2:46 pm |
|
|