Menggunakan PCI atau Perangkat PCIe

22

Apakah mungkin menggunakan semacam adaptor, atau bahkan menyolder suatu perangkat ke papan Raspberry Pi untuk mendukung PCI atau perangkat PCI express? Saya sedang memikirkan perangkat yang lebih kecil seperti NIC atau Kartu Suara. Saya tidak akan berpikir akan ada tegangan yang cukup untuk menjalankan sesuatu seperti tuner atau Kartu Grafis.

Kyle Macey
sumber
PCi express keluar dari pertanyaan karena kecepatan bus terlalu banyak untuk ditangani oleh ARM plus terlalu lebar (Terlalu banyak I / O) PCI mungkin dilakukan tetapi tidak ada gunanya
Piotr Kula
Anda akan mengalami masalah besar dengan bottlenecking, itu tidak bisa dilakukan.
Nah, menggunakan pin IO mungkin masih akan lebih cepat dari USB. Dan bagaimana dengan menggunakan ISA, EISA, atau mungkin VESA? Saya tahu mereka sudah tua, tetapi mereka masih memiliki frekuensi clock yang lebih rendah, dan tidak banyak yang baru ada. Atau, bagaimana dengan membuat antarmuka Anda sendiri?
@ppumkin PCIe akan berjalan pada kecepatan bus yang tinggi ketika lapisan fisik dan perangkat mendukung kecepatan tersebut, tetapi sebenarnya ini merupakan protokol yang cukup tangguh dan masih akan bekerja dalam situasi yang tidak ideal dengan kecepatan rendah.
AJMansfield

Jawaban:

8

Saya ragu ini mungkin. Anda akan membutuhkan semacam jembatan dan sesuatu untuk menghubungkannya.

Tidak yakin mengapa Anda harus melakukannya, NIC / Soundcard / tuner dan lebih banyak lagi dapat dicolokkan ke USB

Ada juga adapter video USB jika Anda ingin menambahkan layar kedua. Tidak ada gunanya mencoba menghubungkan kartu grafis bertenaga tinggi untuk permainan dll. Satu-satunya alasan yang dapat saya pikirkan adalah jika Anda menggunakan GPU untuk proses pengolahan

John La Rooy
sumber
Ada satu kasus penggunaan yang menarik ... implementasi dari router dual-band 802.11ac berbasis-Pi yang tanpa cacat melakukan mode AP (atau dalam hal ini, melakukan mode AP sama sekali). Ada beberapa USB 802.11n NIC yang dikabarkan semi-bekerja dalam mode AP jika Anda benar-benar menjenuhkan bus USB, tetapi sebagai hal praktis, jika Anda ingin benar-benar melakukan mode AP dengan benar, Anda memerlukan bus PCI-e untuk memberi Anda akses real-time ke chip, atau Anda harus memindahkan semua logika terkait-AP ke ujung lain dari bus USB (menghubungkan chip baseband 802.11ac langsung ke host Pi).
Bitbang3r
1
Menarik atau tidak, Anda dibatasi oleh kemacetan I / O masuk dan keluar dari CPU. Ingatlah bahwa ini adalah chip yang dioptimalkan untuk biaya yang cukup lama.
John La Rooy
6

Tidak, itu tidak mungkin. Raspberry Pi didasarkan pada SoC dengan anggaran rendah yang hanya memiliki bus usb, sehingga tidak mungkin untuk memasang PCI atau kartu PCIe ke dalamnya. Tidak ada adaptor yang bisa dibuat.

Diam
sumber
Ada juga yang disebut konektor PCI-e USB saja?
hazard89
@ hazard89 Maaf, saya tidak bisa mendapatkan pertanyaan Anda.
SileNT
6

Penyangga GPIO tercepat yang dapat dialamatkan sejauh ini adalah 5.4MHz, tetapi sebagian besar perpustakaan mengatasi max sekitar 70kHz: http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed/

Spesifikasi PCIe berjalan pada 100MHz (frekuensi dapat diatur hingga 200MHz). http://www.ni.com/white-paper/3767/en/

Mungkin ada cara untuk memaksa mode kompatibel-belakang pada PCIe dan menguranginya ke frekuensi PCI lama di 33MHz, yang berarti mungkin ada beberapa tumpang tindih dalam rentang frekuensi dengan buffering yang luas. Namun, PCIe memiliki lebar bit yang jauh lebih luas daripada GPIO, dan membutuhkan sejumlah besar infrastruktur perangkat lunak untuk mengatasinya dengan benar, yang tidak dimiliki oleh bus GPIO pada Pi. PCI dan PCIe lebih dari sekadar antarmuka, mereka termasuk protokol komunikasi perantara (kompleks) mereka sendiri, yang harus Anda tiru entah bagaimana.

Bisakah itu dilakukan? Tentu, dengan antarmuka perangkat lunak / perangkat keras yang tepat dapat dilakukan. Pustaka tingkat kernel dapat ditulis untuk menggantikan apa saja dan buffer apa saja.

Haruskah itu dilakukan? Nah, apa yang Anda coba lakukan pada dasarnya adalah antarmuka bus nirkabel / PCIe cepat dengan Pi lebih lambat. Itulah yang sudah dilakukan bus USB Pi, dan bekerja cukup baik, ditambah bus lokal dan mode yang didukung penuh.

Mencoba menjalankan PCI / PCIe pada Pi pada dasarnya akan menciptakan kembali roda, dan akan melakukannya dengan sangat keras. Mungkin menjadi latihan pembelajaran yang menarik, jika Anda memiliki waktu beberapa bulan - mengingat bahwa kemungkinan Anda akan menabrak tembok dan tidak dapat bergerak maju kapan saja. Kedengarannya luar biasa tidak menguntungkan bagi saya. ;-)

yogsodoth
sumber
1
Jika Anda memutuskan untuk melanjutkan, selalu ada ini: pinouts.ru/Slots/pci_express_pinout.shtml Perhatikan bahwa masalah utama Anda adalah kecepatan clock, bukan lebar antarmuka. Ya, beberapa kartu PCIe / PCIx memiliki banyak pin. Tidak, tidak semuanya, dan banyak yang tidak perlu pinout besar. Ada beberapa kartu 1x yang sangat kecil di luar sana. Karena jam beroperasi pada 2.5Gbps, Anda memerlukan semacam antarmuka buffering dengan banyak penyimpanan, dan saya tidak yakin prosesor Pi mampu memainkan data sebanyak itu, mengingat Anda tidak akan menjadi seperti itu. berjalan secara real-time.
yogsodoth
1

Papan PCIE2RASPI dapat bergabung dengan papan PCIE (mini atau standar) dengan CycloneIV GX Fpga ke sinyal IO dari papan Raspberry I / O. Memotong pin daya pada header itu dapat dipasang dengan kabel datar ke Raspberry hist. Fpga pada host PCIe mini merupakan titik akhir yang memiliki kemampuan target master, bahkan membuat Raspberry dapat membaca atau menulis memori PC.

Lihatlah: http://www.geb-enterprise.com/PRODUCTS/Mini_PCIe_to_Raspberry.html http://www.geb-enterprise.com/PRODUCTS/PCIe_Standard_PC_CARD.html

Luciano Gabbani
sumber
1
Ketika Anda menyarankan salah satu produk Anda, Anda harus menjelaskannya dalam jawaban Anda.
Steve Robillard
1

Ini sebenarnya mungkin dilakukan dengan menggunakan SEMUA pin GPIO, kemudian mengalikannya menjadi satu jalur output tunggal (PCIe x1) pada 100MHz dan demultiplexing jalur input ke dalam setengah lainnya. Saya membaca di tautan yang sama (yang pertama) dinyatakan dalam jawaban yogsodoth bahwa kode C asli dapat mengatur sekitar 22MHz melalui pengoptimal -O3. (Hanya ingat, pemindah level logika adalah suatu keharusan. ) Perangkat lunak ini akan menjadi rasa sakit yang lebih besar di leher untuk antarmuka, meskipun, karena PCIe tidak didukung secara asli ...

Josh2003
sumber
0

Mungkin pin GPIO dapat terhubung ke sesuatu yang dapat mengatasi PCIx? Itu berarti peretasan besar dan pertanyaannya adalah. Seberapa cepat data dapat dibaca dari pin GPIO.

Hellonearthis
sumber
1
Tidak cukup cepat.
Jivings
Setuju- Tidak cukup cepat dan HARUS realtime. Linux tidak realtime.
Piotr Kula
-1

Tidak, itu tidak mungkin. Perangkat keras Gpio tidak dirancang untuk bekerja pada kecepatan PCI.

pengguna8226
sumber