![]() |
|
Модераторы: ZeeLax, powerfox |
![]()
|
|
| Severyanin |
|
|||
![]() Исследователь ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 31.7.2007 Где: Россия, Омск Репутация: нет Всего: 9 |
Добрый день. Прошу прощения, если мой вопрос покажется глупым. В процессе сборуи ядра 2.6.27.7 наткнулся на то, что в нем присутствуют модули, написанные русскими разработчиками, для работы с промышленными протоколами - CAN, I2C, 1-wire. У меня возник вопрос, как реализованы аппаратно эти протоколы? По исходникам сам не разобрался, я достаточно слабо знаю архитектуру Линукса. Не могли бы вы объяснить, каким образом аппаратно реализованы CAN и 1-wire, через какие порты работают. Заранее спасибо
-------------------- "Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл "Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов |
|||
|
||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 1 Всего: 62 |
Заглавие треда срубает наповал своей бессмысленностью
Сам протокол как таковой описывается стандартом, который можно либо найти в Инете, либо купить в бумажном виде. Аппаратная реализация может быть различной в зависимости от производителя железяки. Пример: сетевые карты Ethernet - протокол один, а карточек огромное количество. Чтобы узнать принцип действия протокола, достаточно почитать стандарт на него. Чтобы узнать какими конкретно аппаратными средствами (микросхемами, резисторами и пр.) реализован протокол, нужно запросить эту информацию у производителя железяки. Если, конечно, тот захочет ею поделиться... Это зависит от конкретной реализации конкретной железяки. Возвращаясь к примеру с Ethernet - в ядро Linux включено изрядное количество драйверов для сетевых плат, каждый из которых заточен под конкретную модель (или серию моделей) платы. Если нужно работать с какой-то одной конкретной железякой, следует взять готовый (или написать свой по спецификациям от производителя железки) драйвер и дальше управлять им. Если же нужно вообще в целом работать с протоколом вне зависимости от конкретной железяки, следует подняться на уровень выше драйверов и манипулировать единым для них (драйверов сетевых плат) интерфейсом. Описание которого можно отыскать в книгах по разработке ядра Linux, а так же непосредственно в исходниках ядра. Надеюсь, теперь стало немного яснее и ты сможешь сформировать вопрос более точно и корректно |
|||
|
||||
| Severyanin |
|
|||
![]() Исследователь ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 31.7.2007 Где: Россия, Омск Репутация: нет Всего: 9 |
я вполне ясно и четко представляю себе аппаратную и программную реализацию этих протоколов на промышленных контроллерах, не раз соединял по нему железки. Теперь переформулированный вопрос)))). В ядре Линукса есть модуль для работы с CAN и 1-wire. Так вот, каким образом этот протокол реализован на стандартной материнской плате с камнем 86 архитектуры, который в принципе не предназначен для управления в режиме реального времени?
Добавлено через 57 секунд Вернее, не как реализован, а как может быть реализован -------------------- "Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл "Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов |
|||
|
||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 1 Всего: 62 |
Почему же обязательно х86? Linux поддерживает изрядное количество всеразличных аппаратных платформ. В теории ядро чуть-чуть поддерживает "мягкое" планирование реального времени. Есть возможность сделать его немного жестче, применив RTAI. Выкинуть из ядра все лишнее (особенно USB!), добавить в ядро RTAI и "допилить" драйвер конкретного девайса чтобы он работал с использованием RTAI. Что же касается железа (платформа x86), то здесь все действительно грустно - время сильно "плавает" даже на целиком и полностью RT-шной QNX. |
|||
|
||||
| Severyanin |
|
|||
![]() Исследователь ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 31.7.2007 Где: Россия, Омск Репутация: нет Всего: 9 |
Как я понимаю, тут ключевое слово - чуть-чуть?)))) Спасибо за подробное разъяснение и ссылку -------------------- "Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл "Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов |
|||
|
||||
![]()
|
| Правила форума "Linux/UNIX: Hardware" | |
|
|
В этом форуме предпочтительны вопросы на следующие темы:
Вопросы мобильной разработки тут Вопросы о настройке системы (например разбивка и форматирование диска, настройка сети) сюда не относятся. Чтобы получить наибольшую пользу от данного раздела, убедитесь, что вы четко сформулировали свой вопрос и привели точные данные о конфигурации компьютера, а так же указали версию драйвера, версию ОС и версию ядра.
За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу). В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим. Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | *NIX и Hardware | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |