Ini bermuara pada masalah bandwidth dan latensi. Untuk sistem yang sederhana mari kita asumsikan satu probe dengan bandwidth 100 MHz dengan sampling rate 1GS / s dan konverter A / D 10-bit (Saya punya pengalaman buruk dengan cakupan 8-bit).
Saya ingin tampilan real-time pada PC dengan jendela pengambilan sampel minimum katakanlah 10ns - 1 siklus gelombang sinus 100MHz dan jendela maksimum (saya akan bermurah hati kepada Anda dalam hal ini) setengah detik. Dengan kata lain, pengaturan waktu terendah adalah sekitar 1ns / div dan yang tertinggi adalah 0,05 / div. Saya juga ingin beberapa mode tegangan - kisaran 100mV hingga 20V katakanlah.
Jenis kecepatan data apa yang dilibatkan?
1Gs / s * 10 bit / sampel = 10Gbits / s
Itu bukan kecepatan USB. Jauh dari itu. Dan saya bahkan tidak memperhitungkan biaya overhead. Pertama, Anda hanya tidak memiliki bandwidth. Dan itu bukan hanya bandwidth saja. Untuk tampilan waktu nyata Anda, Anda harus konsisten. Anda perlu mentransfer 100 bit ke lapisan aplikasi Anda setiap 10 nano detik. Konsistensi semacam itu tidak dapat diperoleh dari USB. Itu tidak dirancang untuk memenuhi satu perangkat dengan tuntutan berlebihan - itu dirancang sebagai bus. Dan Anda tidak dapat mengontrol kapan Anda memiliki bus - perangkat hanya budak. Jika tuan rumah memungkinkan perangkat lain berbicara ketika Anda perlu mengirim data, data Anda hilang.
Anda mungkin menangis busuk - mengapa mentransfer data real-time ke komputer ketika 'real-time' untuk seseorang adalah 60Hz? Jika semua yang perlu Anda lakukan adalah memperbarui tampilan Anda tentu tidak membutuhkan banyak data. Kecuali Anda melakukannya - tampilan Anda adalah kombinasi linear dari semua sampel yang telah Anda kumpulkan. Rata-rata, kurang lebih rata-rata kuadrat, interpolasi spline kubik - tidak masalah. Untuk membuat tampilan cantik yang bagus yang bukan hanya sekelompok titik, Anda paling membutuhkan semua data itu dan Anda harus mempostingnya. Adakah pemicu? Perhitungan harus dilakukan pada host - di lapisan aplikasi. Tidak peduli bagaimana cara Anda mengirisnya, untuk tampilan waktu nyata pada tingkat 1GS / s untuk akurasi apa pun yang berharga, Anda harus mentransfer pesanan yang besarnya lebih banyak data daripada yang dapat ditangani oleh USB dan Anda harus melakukannya dengan lebih andal daripada Anda '
Apa cara mengatasi ini? Jangan lakukan tampilan waktu nyata. Beberapa lingkup USB hanya menawarkan mode yang dipicu. Pemicu ditangani pada perangkat dan ketika pemicu ditemukan, data dikumpulkan dalam buffer. Ketika buffer terisi, ruang lingkup USB secara perlahan mentransfernya ke aplikasi dan kemudian aplikasi menampilkannya. Itu sudah cukup untuk banyak penggunaan ruang lingkup, tapi itu tidak real-time. Dan transfer - itu butuh waktu juga. Ini tidak nyaman. Dan biasanya drivernya payah. Bisa dibilang saya punya pengalaman buruk.
Saya selalu bertanya-tanya mengapa Firewire tidak digunakan untuk lingkup. Ini menghindari beberapa sakit kepala USB. Ini peer-to-peer, menawarkan mode isochronous (timing yang konsisten) dan bandwidth yang relatif tinggi. Anda mungkin dapat membuat lingkup real-time 10MHz atau lebih dengan itu.
Untuk mengatasi poin Anda setelah diedit:
Kegunaan ruang lingkup naik sangat dengan harga. Ketika Anda melakukan lompatan dari lingkup USB $ 200 ke bahkan $ 500 mandiri Anda mendapatkan peningkatan luar biasa dalam fitur dan fungsionalitas dasar. Mengapa menghabiskan hanya $ 200 padahal untuk sedikit lebih Anda bisa mendapatkan ruang lingkup nyata? Sekarang setelah Cina membuka pintu gerbang ruang lingkup murah dan efektif, ada sedikit alasan untuk ingin menghemat $ 300 yang hanya akan membuat Anda frustrasi nanti. Lingkup 'mewah' yang memiliki fitur-fitur ini murah saat ini.
Ya, membatasi transfer data Anda hanya untuk memberikan sesuatu yang konsisten dengan nilai sekitar 60Hz akan lebih mudah dengan USB, tetapi itu masih bukan sesuatu yang ingin Anda lakukan. Jangan lupa tentang kelas DSP Anda - hanya mengambil data tertentu dari jumlah aliran hingga penipisan. Ketika Anda memusnahkan, Anda harus menambahkan filter antialiasing. Ketika Anda melakukannya, Anda kehilangan bandwidth. Ini membuat ruang lingkup Anda kurang berguna - itu akan membatasi bandwidth Anda pada tampilan real-time (dan hanya untuk real-time - mode yang dipicu akan baik-baik saja) menjadi jauh lebih sedikit daripada bandwidth front-end analog Anda. Mengelola aspek pemrosesan sinyal dari sebuah osiloskop adalah bisnis yang rumit.
Hapus tampilan responsif? PC? Tidak konsisten. Terlepas dari bagaimana Anda melakukan ini, Anda perlu melakukan buffer data. Seperti yang saya katakan sebelumnya, USB tidak menjamin ketika data Anda melewati. Saya akan mengatakannya secara berbeda: USB tidak dirancang untuk mengakomodasi transfer data real-time yang sulit. Tentu, untuk jumlah data yang cukup kecil pada interval besar Anda mungkin mendapatkan kinerja yang baik, tetapi tidak kinerja yang konsisten. Anda AKAN menggunakan buffering dan sesekali Anda AKAN akan kehilangan mentransfer buffer Anda secara tepat waktu. Kemudian tampilan Anda dilewati, data basi, dll. Dll. Tampilan real-time yang jelas dan responsif membutuhkan tautan data real-time yang keras, titik.
Pemicu sederhana - sekali lagi, kami kembali ke biaya vs kompleksitas vs. responsif. Untuk melakukan pemicu pada perangkat untuk mendeteksi transien, perangkat Anda tidak hanya berupa pipa data bodoh yang mentransfer sampel secara tidak bertanggung jawab melalui USB. Anda harus melakukan buffer, buffer, buffer sampel pada perangkatsampai Anda melihat kondisi pemicu Anda. Itu berarti Anda membutuhkan memori dan kecerdasan pada perangkat Anda - baik FPGA besar atau mikrokontroler besar. Itu menambah ukuran dan ruang. Jika Anda menggunakan FPGA Anda harus menyeimbangkan jumlah logika pemicu dengan kebutuhan Anda akan banyak RAM untuk ruang buffer. Jadi buffer Anda lebih kecil dari yang Anda inginkan. Itu berarti Anda mendapatkan sejumlah kecil data di sekitar titik pemicu Anda. Kecuali Anda menambahkan memori eksternal - maka Anda dapat melakukan lebih banyak. Itu meningkatkan ukuran dan biaya perangkat Anda - ini tentunya tidak hanya berupa probe dengan kabel USB yang terpasang padanya.
Anda akan beruntung mendapatkan bandwidth 100MHz - biasanya 10x laju pengambilan sampel dianggap sebagai cutoff minimum untuk bandwidth. Jadi jika Anda memiliki laju sampling 1GS / s yang hampir tidak membuat Anda bandwidth 100MHz. Anda tidak bisa mendapatkan lebih banyak - gelombang persegi 200MHz akan terlihat seperti gelombang sinus 200MHz. Itu menyebalkan. Itu bodoh - tidak ada yang mendekati tingkat profesional.
Kumpulan poin Anda yang lain:
- $ 200? Bagaimana menurut Anda? Apa daftar bagiannya?
- Cakupan yang baik untuk membaca sinyal kecepatan tinggi tidak memerlukan biaya ribuan dolar. Harganya mungkin seribu dolar. 100MHz adalah permainan anak-anak di departemen lingkup dan ide Anda bahkan tidak akan memenuhi tolok ukur itu serta ruang lingkup $ 1000
- Ya, dari cara Anda menggambarkannya itu akan sangat terbatas. Aspek teknis bahkan beberapa persyaratan yang Anda miliki berarti perangkat yang sangat terbatas.
- Ini tidak akan sama bermanfaatnya dengan ruang lingkup $ 1.100 yang saya beli dengan penganalisis logika dan bandwidth analog 60MHz. Saya lebih suka membayar peralatan tes saya yang bermain-main dengan mainan anak-anak yang sengaja terbatas.
Anda hidup dan mati dengan peralatan uji Anda sebagai seorang insinyur. Jika Anda tidak yakin, Anda bisa percaya bahwa Anda membuang-buang waktu. Mengingat kurangnya keahlian yang Anda tunjukkan tentang komunikasi berkecepatan tinggi, pemrosesan sinyal, dan kekuatan pemrosesan tertanam (dalam FPGA atau mikrokontroler), saya tidak ingin Anda merancang sendiri dan tidak ada orang lain yang menjawab. selain ambivalen.
Jika ada serangkaian persyaratan yang ditargetkan dengan lebih baik yang memenuhi kebutuhan nyata di masyarakat yang tidak dilayani, bahwa saya bisa melihat secara teknis layak saya akan berada di atas. Tetapi persyaratan samar Anda tampaknya tidak diteliti. Anda perlu melakukan survei terhadap opsi yang tersedia di luar sana untuk penggemar - apa lingkup dan standalone USB yang digunakan orang, apa kekuatan dan kelemahan mereka, dan menentukan apakah ada ceruk yang tidak diisi. Kalau tidak, ini hanya khayalan.