Форум Микро-Чип

Форум Микро-Чип (http://www.microchip.su/index.php)
-   Общетехнические вопросы (http://www.microchip.su/forumdisplay.php?f=8)
-   -   Вопрос про CAN (http://www.microchip.su/showthread.php?t=18511)

petrd 24.06.2019 10:00

Вопрос про CAN
 
Попросили протестировать эмбеддерское устройство на предмет не работающей как задумано шины CAN. Устройство состоит из основного блока и приставки. Основное устройство работает в режиме прием-передача, дополнительное только на прием. Трансиверы TJA1050 в обычном включении. Основное устройство при включении начинает непрерывно слать пакеты в шину и если находит (??) устройство, то перестает "активничать" на шине и переходит в режим передачи импульсов раз в минуту. Активность на шине и трансиверах смотрю осциллографом. На мой вопрос разработчику, "как так-то без ответа от приставки блок видит, что подключено устройство" он ответил, что основной блок как-то видит стоящий молча драйвер и послал меня читать про CAN. Читать-то почитаю, но найду ли я там что-то об этом? Есть большие сомнения.

Возможно ли такое? Что скажете?

Daniil 24.06.2019 12:15

Re: Вопрос про CAN
 
Принимающее устройство подтвердит прием на уровне CAN, а передающее устройство распознает успешную доставку сообщения.

petrd 24.06.2019 13:22

Re: Вопрос про CAN
 
Цитата:

Сообщение от Daniil (Сообщение 241001)
Принимающее устройство подтвердит прием на уровне CAN

Каким образом? Мне не понятно.
Поясню - на выводе TXD трансивера приемника всегда висит "1" и другого мне там обнаружить не удалось, хотя он и подключен к выводу МК.

Daniil 24.06.2019 14:25

Re: Вопрос про CAN
 
(ACK Check). Принятые кадры подтверждаются всеми приемниками: каждый узел, получив правильное сообщение, посылает в сеть доминантный бит (0). Если передатчик не получил никакого подтверждения, то это может означать, что приемники обнаружили ошибку (искажено поле АСК), либо приемники вообще отсутствуют в сети. Возникает ошибка подтверждения (ACK Error).


Скорее всего обмен идет с ошибками, поэтому и нет подтверждения.

petrd 24.06.2019 14:36

Re: Вопрос про CAN
 
Цитата:

Сообщение от Daniil (Сообщение 241005)
(ACK Check). Принятые кадры подтверждаются всеми приемниками: каждый узел, получив правильное сообщение, посылает в сеть доминантный бит (0). Если передатчик не получил никакого подтверждения, то это может означать, что приемники обнаружили ошибку (искажено поле АСК), либо приемники вообще отсутствуют в сети. Возникает ошибка подтверждения (ACK Error).
Скорее всего обмен идет с ошибками, поэтому и нет подтверждения.

Спасибо, тоже с этим разобрался. Сразу после переданного фрейма от основного устройства идет поле уведомления о приеме ACK длиной в 2 бита, первый из них 0, второй 1, которое выставляет приемник, если он принял фрейм без ошибок. Говоря в самом первом своем посте - "как так-то без ответа от приставки блок видит, что подключено устройство" имелась ввиду активность на входе TXD трансивера, которая там не наблюдается никогда. Делаю вывод - устройство не работает на уровне МК, программная ошибка, несовпадение скоростей и т.д. Т.е. вопросы к разработчику.


Часовой пояс GMT +3, время: 11:37.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot