Аппаратная реализация CAN-протокола в ядре 2.6.27.

 
0
 
Linux/Unix
ava
Severyanin | 23.03.2009, 06:10
Добрый день. Прошу прощения, если мой вопрос покажется глупым. В процессе сборуи ядра 2.6.27.7 наткнулся на то, что в нем присутствуют модули, написанные русскими разработчиками, для работы с промышленными протоколами - CAN, I2C, 1-wire. У меня возник вопрос, как реализованы аппаратно эти протоколы? По исходникам сам не разобрался, я достаточно слабо знаю архитектуру Линукса. Не могли бы вы объяснить, каким образом аппаратно реализованы CAN и 1-wire, через какие порты работают. Заранее спасибо
Ответы (4)
ava
rsm | 29.03.2009, 21:57 #
Заглавие треда срубает наповал своей бессмысленностью smile Давай все-таки отделим теплое от мягкого, сиречь аппаратную часть от программной :wink

Цитата (Severyanin @ 23.3.2009, 08:10 findReferencedText)
У меня возник вопрос, как реализованы аппаратно эти протоколы

Сам протокол как таковой описывается стандартом, который можно либо найти в Инете, либо купить в бумажном виде. Аппаратная реализация может быть различной в зависимости от производителя железяки. Пример: сетевые карты Ethernet - протокол один, а карточек огромное количество.
Чтобы узнать принцип действия протокола, достаточно почитать стандарт на него. Чтобы узнать какими конкретно аппаратными средствами (микросхемами, резисторами и пр.) реализован протокол, нужно запросить эту информацию у производителя железяки. Если, конечно, тот захочет ею поделиться...

Цитата (Severyanin @ 23.3.2009, 08:10 findReferencedText)
через какие порты работают

Это зависит от конкретной реализации конкретной железяки. Возвращаясь к примеру с Ethernet - в ядро Linux включено изрядное количество драйверов для сетевых плат, каждый из которых заточен под конкретную модель (или серию моделей) платы.
Если нужно работать с какой-то одной конкретной железякой, следует взять готовый (или написать свой по спецификациям от производителя железки) драйвер и дальше управлять им. Если же нужно вообще в целом работать с протоколом вне зависимости от конкретной железяки, следует подняться на уровень выше драйверов и манипулировать единым для них (драйверов сетевых плат) интерфейсом. Описание которого можно отыскать в книгах по разработке ядра Linux, а так же непосредственно в исходниках ядра.

Надеюсь, теперь стало немного яснее и ты сможешь сформировать вопрос более точно и корректно smile
ava
Severyanin | 01.04.2009, 08:19 #
я вполне ясно и четко представляю себе аппаратную и программную реализацию этих протоколов на промышленных контроллерах, не раз соединял по нему железки. Теперь переформулированный вопрос)))). В ядре Линукса есть модуль для работы с CAN и 1-wire. Так вот, каким образом этот протокол реализован на стандартной материнской плате с камнем 86 архитектуры, который в принципе не предназначен для управления в режиме реального времени?

Добавлено позднее:
Вернее, не как реализован, а как может быть реализован
ava
rsm | 02.04.2009, 01:21 #
Цитата (Severyanin @ 1.4.2009, 10:19 findReferencedText)
каким образом этот протокол реализован на стандартной материнской плате с камнем 86 архитектуры

Почему же обязательно х86? Linux поддерживает изрядное количество всеразличных аппаратных платформ.

Цитата (Severyanin @ 1.4.2009, 10:19 findReferencedText)
не как реализован, а как может быть реализован

В теории ядро чуть-чуть поддерживает "мягкое" планирование реального времени. Есть возможность сделать его немного жестче, применив RTAI. Выкинуть из ядра все лишнее (особенно USB!), добавить в ядро RTAI и "допилить" драйвер конкретного девайса чтобы он работал с использованием RTAI. Что же касается железа (платформа x86), то здесь все действительно грустно - время сильно "плавает" даже на целиком и полностью RT-шной QNX.
ava
Severyanin | 08.04.2009, 07:58 #
Цитата


В теории ядро чуть-чуть поддерживает


Как я понимаю, тут ключевое слово - чуть-чуть?))))
Спасибо за подробное разъяснение и ссылку
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
  rsm ava  Severyanin
advanced
Отправить