Jump to content

    

Большое число программных прерываний в ОС Linux при приеме информации по интерфейсу CAN на AM3517

Здравствуйте. Уже месяц бьюсь над такой-же проблемой.

Контроллер Freescale на плате iMX6 Marsboard.

При скорости 1Mbit и 18% загрузке шины (~2.3к сообщений в секунду) потери пакетов составляют стабильно 2,83-2,87%.

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

Share this post


Link to post
Share on other sites
вы неправильно считаете загрузку шины. в силу специфики арбитража при наличии нескольких устройств на шине CAN пакеты размазаны по времени не равномерно, а идут непрерывными склеенными пачками. и те стандартные драйверы что я видел способны легко терять следующий пакет пока обрабатывают предыдущий.

Вы правы, я не правильно высказался. 2.3к пакетов в секунду мне показывает программа мониторинга шины, она сама считает загрузку. Только вот время между пакетами с точностью 100мс выдает((

 

Может вы сможете посоветовать в каком направлении мне смотреть для того что бы драйвер смог разбирать сообщения максимально быстро? В данный момент я пытаюсь прикрутить к нему циклический буфер, но пока ничего не получается.

А еще получается так, чо при одной и той же конфигурации устройств на шине, при перезагрузке моей платы я могу наблюдать 2,8% потерь, а могу и 0,3%. Но чаще 2,8%.

Share this post


Link to post
Share on other sites

Чтобы не начинать похожую тему напишу сюда.

 

Разыскиваю материалы с анализом производительности драйвера Can4linux

Нагуглил исследования производительности драйверов SocketCan и LinCAN а вот исследований Can4linux не нашел.

Сейчас мы используем SocketCan хочется перейти на что-то более производительное.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this