Bir USB osiloskopu uygulamak için kullanılacak en iyi USB aktarım tipi (toplu, kesinti, Eşzamanlı Aktarımlar) nedir?


20

Bir USB osiloskop yapmak istiyorum. Farklı USB aktarım türlerini okuyordum . Toplanan ADC örneklerini bir USB osiloskoptan bir PC'ye aktarmak için en iyi transfer türü hangisidir?

Aşağıda bazı bulgularım var. Lütfen beni düzeltin ve eğer birisi iyi bir transfer türü önerebilirse iyi olur.

  1. Eşzamanlı aktarım - Olası veri kaybı. Her veri öğesi değerli olduğundan osiloskop için iyi değildir. Ne kadar veri kaybedilebilir?
  2. Kesme modu - USB bağlantısına sızıp basmayacağını bilmiyorum
  3. Toplu mod - Veri kaybı olmadığından benim için en iyisi gibi görünüyor
  4. Kontrol aktarımı - veri aktarımı amaçlanmadığı için uygun değil

2
Okuduğum kadarıyla, usb ile çoğu kapsam, kapsamın ekran görüntülerini göndermek için toplu modu kullanır.
Passerby

Muhtemelen eşzamanlı mod ile giderseniz hata düzeltmesi için biraz ekstra bant genişliği ayırabilirsiniz.
user253751

Ya da aşırı derecede aşırıya kaçmak için PCIe DMA fanteziğimi gıdıklar.
Mitch

Yanıtlar:


28

Toplu aktarımlar veri kaybetmez, ancak garanti edilen minimum bant genişliği yoktur. (Öte yandan, daha yüksek hızlara ulaşabilirler, çünkü aslında başka herhangi bir transfer tarafından kullanılmayan tüm bant genişliğini kullanabilirler .)

Osiloskopunuzun veri aktarımları ertelendiğinde (hatalar nedeniyle veya diğer cihazlar nedeniyle) ve yeni veriler biriktiğinde ne olur? Eski veriler iletilene kadar cihazı durduruyor musunuz, yoksa geçerli verileri iletebilmek için eski verileri atıyor musunuz?

Eşzamanlı aktarımlar 'gerçek zamanlı' veriler için tasarlanmıştır. Hata işleme hakkında hiçbir seçeneğiniz yoktur, ancak bant genişliğiniz veri yolunda saklıdır.

  • Kayıtlı verileri gerçek zamanlı olarak görüntülemek istiyorsanız, eşzamanlı aktarımlar kullanmalısınız.
  • Ölçümler bittikten sonra kaydedilen verileri PC'ye aktarmak istiyorsanız, toplu transferler kullanmalısınız.

10

Soru, bir osiloskop olarak kullanımınızdan neredeyse tamamen bağımsızdır ve USB'den yapmasını istediğiniz iletişim türlerine tamamen bağlıdır. Örneğin:

  • Dahili olarak büyük (çok megabaytlık) bir tamponu olan ve önce kısa bir testi çalıştırmak, ardından verileri yüklemek için tasarlanmış bir osiloskop tamamen toplu aktarım kullanır. Garantili bant genişliğine gerek yoktur, bu nedenle toplu aktarımın hata kontrolüyle yüksek hacim en iyi olacaktır.
  • Sürekli olarak test edilen devrelere sürekli olarak bağlanacak şekilde tasarlanmış ve "gerçek zamanlı" (okuma: deterministik çalışma süresi) içinde çalışması gereken bir osiloskop izokronusu seçecektir. Toplu, belirli bir çalışma zamanı garantisi sunmaz ve borunuzu ayrılmış bant genişliğine sahip olacak şekilde ayarlayamazsınız. Kendi hata düzeltmelerinizi yapmanız gerekir, ancak en azından bunlar deterministik olarak yapılabilir.
  • İnsan görüntülemesi için "canlı" beslemeye ve bir tetikleyicide yüksek hızlı yakalamaya sahip bir osiloskop, tetiklenen veriler için canlı beslemeye ve toplu aktarıma ayak uyduracak bir izometrik olmak üzere iki uç nokta oluşturabilir. İnsan tüketimi için, bir veya iki çerçeveyi kaybetmek büyük bir sorun değildir, bu nedenle isochronus üzerinde hata kontrolünün olmaması konusunda endişelenmenize gerek yoktur. Ancak, gerçek veriler söz konusu olduğunda, hata düzeltmesi için toplu olarak aktarırsınız.
  • Bu devre, canlı bir sistemin parçası olarak kullanılabilir. Sadece osiloskop değil, aynı zamanda devrenin çalışma aralıklarından çıktığını ve bilgisayar tarafından kapatılması gerektiğini gösteren sinyallere karşı bir koruma da olabilir. Bu durumda, sorunun devreleri kesmeden önce hizmet görmesini sağlamak için garantili bir gecikme (ve iyi tanımlanmış hata işleme) elde etmek için sisteme bir kesme uç noktası ekleyebilirsiniz.

Ne tür veri ilettiğinizi ve verilerin gelmesi gereken Hizmet Kalitesi (QoS) terimlerini öğrendikten sonra, hangi USB aktarım mekanizmasının yapılacağına karar verebilirsiniz. İhtiyacınız olan verileri ve QoS'yi tanımlamak için artık "osiloskop" kelimesi gerekmediğinde bu kararları vermeye hazır olduğunuzu bileceksiniz. O zaman bu sorunları ele almaya başlamanın yeterince objektif olduğunu biliyorsunuz.


4

Bir osiloskop için, aktarımın bant genişliği en üst düzeye çıkarmak istediğiniz parametredir. Toplu aktarım özellikle yüksek bant genişliği için tasarlanmıştır, bu yüzden doğru seçimdir. Eşzamanlı ve kesinti aktarımları gecikmeyi sınırlandırırken, bunlar yalnızca düşük ila orta bant genişliği veri akışları için tasarlanmıştır.


3

Sadece toplu transferler kullanın. Bir osiloskop aslında yüksek bir veri hızı cihazı değildir. Dijital fosfor tipi bir tasarım yapmayı düşünmüyorsanız, osiloskop gerçekten sadece bir dalga formunun çok küçük bir kısmına açılan bir penceredir. Örneğin, 1000 yatay piksel göstermek ve ekranı 30Hz civarında yenilemek istediğinizi varsayalım. Örneklerin her biri 8-bit ise (bu tipiktir) ve iki kanal varsa, yalnızca 60.000 bayt / saniyeye bakıyorsunuz demektir. Tam hızlı USB yaklaşık 1.000.000 bayt / sn yapabilir, bu nedenle veri yolu kapasitesinin% 6'sından daha azını kullanırsınız. Bu, toplu aktarım modunun işini yapmasına izin vermek için bolca zaman verir (doğru hatalar, diğer otobüs trafiğinde çalışın) ve size yeterince bant genişliği ayıramayacak gerçek bir veri yolu yapılandırmasıyla karşılaşmanız pek olası değildir. bu kadar veri için.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.