1

Тема: Как реализовать прием данных с двух адресов в can?

Добрый вечер! Решили начать использовать canny7 для установки автосигнализаций в нашей компании. Но столкнулись с проблемой которая нигде у вас не описанна. Как реализовать прием информации с двух разных адресов can-шины. Например один адрес 0*10004001 и второй адрес 0*10004002 или canny7 может работать только с одним адресом в can шине? Заранее спасибо.

2

Re: Как реализовать прием данных с двух адресов в can?

http://forum.canny.ru/files/oldpic/b9c68727-45e1-4ef8-92c6-125c51b51835.jpg

3

Re: Как реализовать прием данных с двух адресов в can?

А откуда взять CAN ERL? Как его посчитать? Спасибо за подробный ответ!!!!

4

Re: Как реализовать прием данных с двух адресов в can?

Спасибо, что проиллюстировали подход. Отмечу лишь, что на вашей диаграмме проверяется, возможно, излишне много параметров входящего сообщеня. Возможно, в данном конкретном случае, не требуется анализа типа (STD / EXT), длины и точного содержания каждого байта. Наиболее распространена в моей практике ситуация, где достаточно проверить ID и какой-то конкретный бит какого-либо байта.

5

Re: Как реализовать прием данных с двух адресов в can?

А возможна и более простая диаграмма? Я думал что точное значение можно получить проверяя все параметры. И каким образом получить значение can erl

6

Re: Как реализовать прием данных с двух адресов в can?

Можно вообще не проверять длину, тоесть не ставить блок ERL, можно не проверять содержимое посылки... или не проверять какието отдельные байты (например проверять только D2 D3 если остальные байты посылки не важны)... достаточно исключить лишние блоки.
Строго говоря в примере указан прием посылок строго определенной длины и содержимого (длина 8 байт содержимое заполнено нулями).

7

Re: Как реализовать прием данных с двух адресов в can?

Значит блок erl указывает длину адреса, я правильно понял?

8

Re: Как реализовать прием данных с двух адресов в can?

0x8008 - расширеный идентификатор длина сообщения 8 байт
0x8007 - расширеный идентификатор длина сообщения 7 байт
....
первая восьмерка это признак расширенного идентификатора. В инструкции к среде разработке все очень продробно описано.

9

Re: Как реализовать прием данных с двух адресов в can?

Регистр принятого сообщения CAN ERL, помимо числа байт в принятом сообщении 0...8 в младших битах, содержит в своих старших битах информацию о специальных признаках сообщения: бит 15 - признак EXT и бит 14 признак RTR. Где EXT = 1 при приеме сообщения в расширенном формате, EXT = 0 при стандартном формате сообщения; RTR = 1 при приеме удаленного запроса данных, RTR = 0 при приеме обычного сообщения.

10

Re: Как реализовать прием данных с двух адресов в can?

А если адрес имеет буквенно цифровой формат?

11

Re: Как реализовать прием данных с двух адресов в can?

Полагаю, что вам потребуются базовые сведения о системах счисления: двоичной, шестнадцатеричной и десятичной. В сети много материалов на эту тему, например: http://skolkobudet.ru/publ/5-1-0-20

12

Re: Как реализовать прием данных с двух адресов в can?

Ок. Спасибо огромное, я обязательно почитаю эту информацию!!! Спасибо огромное за столь развернутые ответы!!!!