Latar Belakang
Saya bekerja dengan klien pada proyek besar yang membutuhkan chip jaringan khusus untuk dirancang untuk menyelesaikan persyaratan transfer data dalam proyek. Jaringan ini dimaksudkan untuk mengirim paket kecil beberapa inci dari satu PCB ke yang lain melalui kabel twisted pair. Kami akan merancang dan menetapkan protokol jaringan, dan perusahaan lain akan bertanggung jawab untuk implementasi silikon.
Saya memperkirakan bahwa data rate 20Mbps antara node akan dengan mudah mengatasi jumlah data yang perlu dikirim, dengan banyak ruang kepala jika jumlah data meningkat di masa depan.
Masalah
Klien bertanya kepada saya mengapa saya menetapkan hanya 20Mbps. Mengapa bukan sesuatu seperti 1Gbps? Bukankah itu lebih baik? Secara intuitif, saya merasa bahwa menaikkan tingkat data secara besar-besaran di luar apa yang dibutuhkan adalah ide yang buruk. Awalnya, saya berpikir bahwa pemasangan kabel perlu dilindungi (yang saya tidak mau), tetapi melihat kategori kabel Ethernet, saya melihat bahwa Gigabit Ethernet dapat berjalan pada kabel Cat 6, yang tidak perlu dilindungi.
Kendala lainnya
- Proyek ini sangat dibatasi ruang, dan apakah kita tidak memiliki ruang untuk hal-hal seperti magnet, kecuali itu komponen yang sangat kecil (maks 0603).
- Kabel harus setipis dan sefleksibel mungkin.
- Perangkat akan beroperasi dari daya plug-in, sehingga tidak ada persyaratan daya rendah tertentu.
Pertanyaan
Apa masalahnya, dalam hal desain silikon, kabel, dan hal lain, yang mungkin dihadapi pada 1Gbps, yang tidak akan seburuk 20Mbps? Haruskah saya mengikuti saran klien saya untuk mengimplementasikan jaringan pada 1Gbps, atau haruskah saya bersikeras menerapkan hanya apa yang diperlukan?
Kami berada di bawah NDA yang ketat, jadi saya tidak bisa memberikan terlalu banyak detail tentang persyaratan kami. Tapi tolong tinggalkan komentar jika diperlukan klarifikasi.
sumber
Jawaban:
Beberapa alasan:
Kekuasaan
Kecepatan lebih cepat berarti lebih banyak daya. Anda tidak hanya membutuhkan sirkuit analog yang lebih cepat, yang akan memberi konsumen lebih banyak daya, semua elektronik Anda di sekitarnya harus lebih cepat. Sistem digital Anda, kait Anda, manajemen jam, dll. Jika Anda mendapatkan 1 Gbps dengan menggunakan pensinyalan bertingkat Anda sekarang membutuhkan ADC dan DAC yang lebih baik. Anda mungkin harus mulai berurusan dengan penyaringan yang lebih kompleks. Anda bisa mulai membutuhkan FEC yang juga harus mengikuti.
Ukuran chip
Lebih cepat berarti lebih banyak terjadi. Anda membutuhkan stabilitas jam yang lebih baik, yang berarti sirkuit lebih besar. Anda memerlukan pengaturan waktu yang lebih baik, yang berarti sistem pemulihan jam yang lebih kompleks. Anda mungkin perlu beralih menggunakan DSP untuk melakukan pemerataan saluran. FEC Anda yang berpotensi dibutuhkan membutuhkan ruang chip.
Kepekaan lingkungan
Jika Anda beralih dari beberapa puluh megabaud ke apa pun yang diperlukan untuk gigabit, Anda akan menjadi jauh lebih peka terhadap lingkungan. Ketidakcocokan kecil yang mungkin tidak terlalu mencolok pada beberapa puluh MHz menjadi bertopik resonansi pada frekuensi yang lebih tinggi. Refleksi mungkin mulai menyebabkan kinerja yang terputus-putus. Kabel sobek karena penyalahgunaan selama bertahun-tahun (saya tidak tahu lingkungan aplikasi untuk produk Anda) mungkin baik untuk kecepatan yang lebih rendah, tetapi menyebabkan kinerja yang buruk ketika Anda pergi lebih tinggi.
Upaya desain
Saya pikir jelas dari semua masalah tambahan yang saya bahas di atas bahwa waktu dan upaya merancang tautan komunikasi yang lebih cepat adalah signifikan. Ini saja sudah cukup menjadi alasan.
EMI
Kecepatan lebih cepat berarti memenuhi persyaratan EMI bisa lebih sulit.
sumber
Sinyal TTL (ujung tunggal, tidak tertentu) dapat dengan mudah menangani 20 Mbps atau lebih - lihat SPI, misalnya. Jika Anda hanya akan beberapa inci, kabel pita dan konektor IDC (atau semacam backplane) akan membawa Anda dari papan ke papan.
1 Gbps menempatkan Anda di ranah keharusan berurusan dengan jejak, konektor, dan kabel yang dikontrol impedansi. Penerima perlu menggunakan teknik PLL / DLL untuk mempertahankan sinkronisasi dan memisahkan jam / data, sedangkan pada kecepatan yang lebih lambat, logika sinkron normal akan cukup. 50x berlebihan dan sakit kepala tambahan sama sekali tidak layak, jika Anda yakin bahwa 20 Mbps sudah cukup untuk masa mendatang.
Saya pernah merancang (25 atau lebih tahun yang lalu) protokol bus serial khusus untuk kontrol board-to-board dan status di antara papan di rak telekomunikasi. Semacam persilangan antara I 2 C dan SPI - sinyal searah seperti SPI, tetapi alamat perangkat yang disematkan seperti I 2 C.
sumber
Pertanyaan yang jelas adalah, "Apakah 1 Gbps berarti 1000BASET Ethernet?" Jika itu yang dipikirkan pelanggan, syarat Anda bahwa, "kami tidak punya ruang untuk hal-hal seperti magnet" langsung berlaku. Ethernet memang menggunakan magnet pada lapisan fisik, dan ketika saya mendesain antarmuka beberapa tahun lalu, magnet adalah bagian dari kubus sekitar 1 inci.
Anda mengatakan Anda menggunakan FPGA, tetapi Anda tidak mengatakan milik siapa. Jika Anda menggunakan Xilinx, Anda harus menyadari bahwa model saat ini secara native mendukung LVDS, yang tampaknya ideal untuk tujuan Anda. Sistem LVDS awal (televisi hi-def) berjalan pada 122 Mbps, dan teknologinya dapat melampaui Gbps jika Anda benar-benar perlu. Menjadi diferensial, dan dengan asumsi dua papan Anda tidak menggunakan alasan mengambang liar, kekebalan kebisingan sangat baik.
Adapun pilihan frekuensi jam spesifik Anda, menambahkan lebih banyak ruang kepala daripada yang Anda pikir Anda butuhkan adalah salah satu keputusan yang dapat menghemat daging Anda di masa depan, jadi saya tidak akan mengesampingkan memilih sesuatu seperti 100 MHz, tapi itu terserah Anda. Anda mungkin memperkenalkan Hukum Roberge kepada pelanggan Anda (Jim Roberge adalah seorang profesor teknik elektro terkenal di MIT beberapa dekade yang lalu): "Mereka yang meminta bandwidth lebih dari yang mereka butuhkan pantas mendapatkan apa yang mereka dapatkan." Memang, dia berbicara tentang sistem servo, tetapi prinsipnya tetap bagus dalam berbagai disiplin ilmu.
sumber
Aplikasi yang Anda gambarkan tidak masuk akal untuk melompat langsung ke solusi silikon khusus. Kecepatan data yang Anda antisipasi dapat dengan mudah ditangani oleh teknologi FPGA dengan harga sedang dan FPGA dapat diprogram untuk mengimplementasikan protokol khusus jika Anda benar-benar percaya bahwa protokol tersebut diperlukan.
Jauh lebih sering Anda harus mempertimbangkan lapisan fisik standar dan kemudian membangun protokol khusus di atasnya. Untuk bandwidth saluran komal bersih 20Mbps, Anda harus merencanakan overhead protokol dengan jumlah tertentu karena pembingkaian, pengkodean pemeriksaan kesalahan, dan sinkronisasi memakan sebagian bandwidth Anda. Jadi mungkin pertimbangkan bandwidth mentah yang lebih tinggi untuk mengakomodasi overhead ini.
Setelah Anda membuktikan desain Anda, maka Anda dapat pergi ke vendor FPGA dan membuatnya untuk menghasilkan desain hard chip dari pemrograman FPGA. Pendekatan ini mengurangi semua risiko perkembangan awal dan menurunkan keseluruhan NRE biaya sejumlah besar selama "menyelam ke silikon kustom hanya karena tampaknya keren".
sumber
Pertanyaan sebenarnya adalah, mengapa harus merancang protokol ketika semuanya sudah ada.
Untuk solusi Ethenet Anda mengambil 10/100 dan bukan 1GbE karena masih sedikit lebih murah dan lebih mudah untuk tata letak. Omong-omong, Ethernet dapat bekerja tanpa magnet. Tetapi memang membutuhkan MAC, yang bisa menjadi IC tambahan. Atau apakah Anda memilikinya di mikrokontroler?
20Mbps adalah sesuatu yang cocok dengan Rs485 atau lapisan seperti itu, yang bahkan lebih murah dan lebih sederhana. Pasangan bengkok datang dengan semua jenis kabel, lebih atau kurang fleksibel, dengan konektor atau hanya disolder ke PCB Anda.
Ah, yang terpenting. Lebih mudah mengacau dengan 1Gb. Tetapi jika mereka membutuhkan ruang untuk pertumbuhan lebih lanjut, itu membatasi kurang.
Intinya: Anda perlu memahami persyaratan sistem Anda.
sumber
Saya menyarankan rute paling sederhana dengan kemungkinan keberhasilan terbaik dan paling tidak overhead perangkat lunak adalah untuk menerapkan koneksi Ethernet 100Mbps. Anda dapat menerapkan ini tanpa melibatkan magnet ketika jaraknya kecil.
Ini adalah permulaan dengan informasi tentang pengontrol Intel 8255 PCI-Ethernet , dan catatan aplikasi pada koneksi tanpa magnetis.
Saya tidak menyarankan Anda menggunakan 8255, tetapi Anda bisa mendapatkan IP (10/100 / 1000Mbps) untuk FPGA mana pun yang mungkin Anda gunakan dengan sangat mudah, dan itu juga sudah tidak jelas.
Dengan asumsi Anda memiliki prosesor dalam campuran, mendukung pengontrol Ethernet standar adalah cara perangkat lunak yang sangat rendah untuk mengimplementasikan jaringan titik ke titik.
Kami menggunakan banyak jenis koneksi point to point pada motherboard khusus di Intel, mereka mudah di-debug, dan sangat andal.
sumber
Jawabannya di sini adalah teknis, saya memberikan perspektif persyaratan teknik:
Pandangan saya tentang itu sederhana
Anda membutuhkan setidaknya 20Mbps untuk membuatnya berfungsi, jadi jangan tentukan 20 tetapi "20 atau lebih" untuk aplikasi.
setiap perangkat keras yang lebih cepat juga memenuhi kebutuhan Anda
jika HW lebih cepat lebih murah / lebih mudah untuk dikembangkan karena standar yang ada, maka kebutuhan Anda dapat dipenuhi oleh yang ini juga.
Jika pelanggan menginginkan lebih, cobalah mencari tahu apakah ada sesuatu di baliknya (bisa jadi mereka sudah merencanakan peningkatan dan ingin tetap kompatibel di antara papan saat bertukar)
sumber
Daya, integritas sinyal, dan waktu. Saya bekerja pada sebuah chip dengan antarmuka 25 gbps dan itu berarti clock rate 1,6 GHz dan satu ton daya. Jika kita bisa berlari pada 19.2 laju clock akan menjadi 1,2 GHz. Lebih dari 200ps margin ekstra per periode waktu, itu akan sangat membantu.
Saya tidak pernah melakukan desain papan tetapi saya berharap bahwa 20 Mbps tidak ada masalah. 1 Gbps masih tidak sulit tetapi jauh lebih sulit dari 20 Mbps.
sumber