реклама на сайте
подробности

 
 
4 страниц V  « < 2 3 4  
Reply to this topicStart new topic
> Ошибки при обмене по протоколу CAN 2.0B в многопроцессорной системе
Dog Pawlowa
сообщение Oct 2 2008, 12:40
Сообщение #46


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Fledgling @ Oct 2 2008, 14:17) *
Как такое возможно? Кадр передается по шине со скоростью 1МБит/сек порядка 100 мкс (примерно), а ассемблерная процедура приема успевает считать гораздо быстрее (просто посчитали количество инструкций, посмотрели сколько времени выолняется каждая, например MOV выполняется за 2 такта - 50 наносекунд). Значит до прихода следующего кадра уже точно слот №15 (приемник) освободится? или я ошибаюсь?

Ошибаетесь принципиально.
Вы почему-то считаете время от начала первого кадра до начала второго. Но нужно считать от конца приема первого до начала приема второго! То есть время не сотни мкс, а в лучшем случае одна-две!
Ну поймите же - речь идет о промежутке времени, когда первое сообщение ПРИНЯЛОСЬ и тут НАЧИНАЕТ передаваться второе. Ему некуда приниматься - буфер занят, прерывание не успевает обработаться за это время.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
spf
сообщение Oct 2 2008, 13:16
Сообщение #47


Странник
****

Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051



Цитата(Dog Pawlowa @ Oct 2 2008, 18:40) *
Но нужно считать от конца приема первого до начала приема второго! То есть время не сотни мкс, а в лучшем случае одна-две!

Не вводите людей в заблуждение.
Буфер можно обрабатывать до завершения прихода следующего. Иначе бы ничего вообще не работало. Такой CAN ни кто бы не мог использовать. Даже в UARTе обработать надо не до начала поступления следующего, а до завершения передачи.


Цитата(Dog Pawlowa @ Oct 2 2008, 18:40) *
Ну поймите же - речь идет о промежутке времени, когда первое сообщение ПРИНЯЛОСЬ и тут НАЧИНАЕТ передаваться второе. Ему некуда приниматься - буфер занят, прерывание не успевает обработаться за это время.

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


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Oct 3 2008, 06:29
Сообщение #48


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(spf @ Oct 2 2008, 16:16) *
Не вводите людей в заблуждение.
Буфер можно обрабатывать до завершения прихода следующего. Иначе бы ничего вообще не работало. Такой CAN ни кто бы не мог использовать. Даже в UARTе обработать надо не до начала поступления следующего, а до завершения передачи.
Сообщение складывается в буфер только после того, как будет завершена операция передачи (причем без ошибок) и выполнена фильтрация по ID.

У нас, наверное, разная терминология.
Я использовал слово буфер как набор регистров, осуществяющих прием или передачу. Напрмер, в MCP2515 два буфера на прием и три на передачу.
"The MCP2515 has three transmit and two receive buffers, two acceptance masks ( one for each receive buffer)..."
Насколько я понял, автор использует один буфер на прием сообщений от двух источников.

В таком контексте использования этого слова тоже возражения?


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
spf
сообщение Oct 3 2008, 07:24
Сообщение #49


Странник
****

Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051



Цитата(Dog Pawlowa @ Oct 3 2008, 12:29) *
У нас, наверное, разная терминология.
Я использовал слово буфер как набор регистров, осуществяющих прием или передачу. Напрмер, в MCP2515 два буфера на прием и три на передачу.
"The MCP2515 has three transmit and two receive buffers, two acceptance masks ( one for each receive buffer)..."
Насколько я понял, автор использует один буфер на прием сообщений от двух источников.

В таком контексте использования этого слова тоже возражения?

Специально не изучал MCP2515, ну думаю все регистры буферов приема и отправления выполняют роль именно буферов. Т.к. MCP2515 еще более сложный случай - забрать из регистров можно по SPI, время общения по которому много больше, чем прямое обращение к регистрам встроенного интерфейса.
Операция приема НЕ задействует регистры слотов, в приемный буфер(слот я бы его назвал) данные складываются после успешного завершения сеанс передачи сообщения по шине.


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Oct 3 2008, 08:34
Сообщение #50


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(spf @ Oct 3 2008, 10:24) *
Операция приема НЕ задействует регистры слотов, в приемный буфер(слот я бы его назвал) данные складываются после успешного завершения сеанс передачи сообщения по шине.

Да, посмотрел даташит... подзабыл маленько... sad.gif Действительно есть буфер сборки сообщения.
Тогда сдаюсь.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post

4 страниц V  « < 2 3 4
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 20:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01377 секунд с 7
ELECTRONIX ©2004-2016