Использование устройств PCI или PCIe


22

Можно ли использовать какой-то адаптер или даже припаять устройство к плате Raspberry Pi для поддержки устройств PCI или PCI Express? Я думаю о небольших устройствах, таких как сетевые карты или звуковые карты. Я не думаю, что будет достаточно напряжения для запуска чего-либо, например, тюнера или видеокарты.


PCi express не может быть и речи, так как скорость шины слишком велика для ARM, плюс ее слишком широкий (слишком много входов / выходов) PCI может быть возможен, но бесполезен
Piotr Kula

Вы могли бы столкнуться с огромными проблемами с узким местом, это не может быть сделано.

Что ж, использование выводов ввода-вывода, вероятно, все равно будет быстрее, чем USB. А как насчет использования ISA, EISA или VESA? Я знаю, что они старые, но у них все еще более низкие тактовые частоты, и не так много новых. Или как насчет создания собственного интерфейса?

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

Ответы:


8

Я сомневаюсь, что это возможно. Вам понадобится какой-то мост и что-то, чтобы соединить его.

Не знаю, зачем вам это нужно, в USB можно подключить сетевые карты / звуковые карты / тюнеры и многое другое

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


Существует один убедительный вариант использования ... реализация двухдиапазонного маршрутизатора 802.11ac на основе Pi, который безупречно работает в режиме AP (или, вообще говоря, вообще работает в режиме AP). Существует несколько сетевых адаптеров USB 802.11n, которые, по слухам, могут работать в режиме AP, если вы полностью насыщаете шину USB, но на практике, если вы действительно хотите работать в режиме AP должным образом, вам нужна шина PCI-e. чтобы предоставить вам доступ к микросхеме почти в реальном времени, или вам придется переместить всю логику, связанную с точкой доступа, на другой конец шины USB (подключив сами микросхемы 802.11ac в основной полосе непосредственно к главному Pi).
Bitbang3r

1
Принуждение или нет, вы ограничены узкими местами ввода / вывода в и из ЦП. Помните, что это довольно старый, оптимизированный по стоимости чип.
Джон Ла Рой

6

Нет, это невозможно. Raspberry Pi основан на низкобюджетной плате SoC, которая имеет только шину USB, поэтому к ней невозможно подключить карту PCI или PCIe. Ни один адаптер не может быть сделан.


Есть так называемые разъемы PCI-e USB only?
danger89

@ danger89 Извините, я не могу получить ваш вопрос.
SileNT

6

Самый быстрый буфер GPIO, который может быть адресован на данный момент, составляет 5,4 МГц, но большинство библиотек адресации имеют максимальную частоту около 70 кГц: http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed/

Спецификация PCIe работает на частоте 100 МГц (частота регулируется до 200 МГц). http://www.ni.com/white-paper/3767/en/

Может быть способ принудительно установить обратно совместимый режим на PCIe и уменьшить его до старой частоты PCI на 33 МГц, что может означать некоторое перекрытие в частотных диапазонах с обширной буферизацией. Тем не менее, PCIe имеет гораздо более широкую битовую ширину, чем GPIO, и для правильной адресации требуется огромный объем программной инфраструктуры, чего у шины GPIO на Pi просто нет. PCI и PCIe - это больше, чем просто интерфейсы, они включают в себя собственные (сложные) промежуточные протоколы связи, которые вам придется каким-то образом эмулировать.

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

Это должно быть сделано? Ну, по сути, вы пытаетесь соединить быструю шину беспроводной / PCIe с более медленным Pi. Это то, что USB-шина Pi уже делает, и делает это неплохо, плюс она делает это изначально и полностью поддерживается.

Попытка запустить PCI / PCIe на Pi будет по сути заново изобретать колесо, и это будет очень сложно. Это может быть интересным учебным упражнением, если у вас есть несколько свободных месяцев, учитывая, что, скорее всего, вы врежетесь в стену и не сможете двигаться вперед в любой момент. Звучит исключительно не выгодно для меня. ;-)


1
Если вы решите продолжить, всегда есть следующее: pinouts.ru/Slots/pci_express_pinout.shtml Обратите внимание, что вашей основной проблемой будет тактовая частота, а не ширина интерфейса. Да, некоторые карты PCIe / PCIx имеют много контактов. Нет, не все делают, и многим не нужны огромные распиновки. Есть несколько очень маленьких 1x карт. Поскольку тактовая частота составляет 2,5 Гбит / с, вам нужен какой-то интерфейс буферизации с большим объемом памяти, и я не уверен, что процессор Пи способен воспроизводить такое количество данных, учитывая, что вы не собираетесь работает в режиме реального времени.
Йогсодот

1

Плата PCIE2RASPI может соединять плату PCIE (мини или стандартную) с CycloneIV GX Fpga с сигналами ввода-вывода платы ввода-вывода Raspberry. Отрезая контакты питания на жатке, он может быть прикреплен плоским кабелем к Raspberry исторических. Fpga на мини-PCIe хосте является конечной точкой, обладающей возможностью главной цели, фактически она позволяет Raspberry читать или записывать память ПК.

Посмотрите на: http://www.geb-enterprise.com/PRODUCTS/Mini_PCIe_to_Raspberry.html http://www.geb-enterprise.com/PRODUCTS/PCIe_Standard_PC_CARD.html


1
Когда вы предлагаете один из ваших продуктов, вы должны четко указать это в своем ответе.
Стив Робиллард

1

На самом деле это может быть возможно путем использования ВСЕХ контактов GPIO, затем мультиплексирования половины из них в одну выходную линию (PCIe x1) на частоте 100 МГц и демультиплексирования входной линии в другую половину. Я прочитал по той же ссылке (первой), которая указана в ответе yogsodoth, что нативный код C может работать на частоте около 22 МГц с помощью оптимизатора -O3. (Просто помните, что логические переключатели уровня являются обязательными. ) Программное обеспечение будет еще более болезненным для интерфейса, поскольку PCIe изначально не поддерживается ...


0

Может быть, контакты GPIO могут подключаться к чему-то, что может адресовать PCIx? Это будет означать большой взлом, и вопрос в том. Как быстро можно считывать данные с выводов GPIO.


1
Не достаточно быстро.
Jivings

Согласовано - не достаточно быстро, и это должно быть в режиме реального времени. Linux не в реальном времени.
Петр Кула

-1

Нет, это невозможно. Аппаратное обеспечение Gpio не предназначено для работы на скоростях PCI.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.