Điều này dẫn đến một câu hỏi về băng thông và độ trễ. Đối với một hệ thống đơn giản, hãy giả sử một đầu dò có băng thông 100 MHz với tốc độ lấy mẫu 1GS / s và bộ chuyển đổi A / D 10 bit (Tôi đã có trải nghiệm xấu với phạm vi 8 bit).
Tôi muốn hiển thị thời gian thực trên PC với cửa sổ lấy mẫu tối thiểu là 10ns - 1 chu kỳ của sóng hình sin 100 MHz và cửa sổ tối đa (tôi sẽ hào phóng với bạn trong nửa giây). Nói cách khác, cài đặt thời gian thấp nhất sẽ là khoảng 1ns / div và cao nhất là 0,05s / div. Tôi cũng muốn một số chế độ điện áp - phạm vi 100mV lên đến 20V.
Những loại tốc độ dữ liệu này liên quan đến?
1Gs / s * 10 bit / mẫu = 10Gbit / s
Đó không phải là tốc độ USB. Cách xa nó. Và tôi thậm chí không tính đến chi phí. Trước hết, bạn không có băng thông. Và nó không chỉ là băng thông. Đối với màn hình thời gian thực của bạn, bạn cần phải nhất quán. Bạn cần chuyển 100 bit đến lớp ứng dụng của mình cứ sau 10 nano giây. Loại nhất quán không thể có từ USB. Nó không được thiết kế để phục vụ cho một thiết bị có nhu cầu xa hoa - nó được thiết kế như một chiếc xe buýt. Và bạn không thể kiểm soát khi bạn sở hữu xe buýt - các thiết bị chỉ là nô lệ. Nếu máy chủ cho phép thiết bị khác nói chuyện khi bạn cần gửi dữ liệu, dữ liệu của bạn sẽ bị mất.
Bạn có thể khóc dở mếu dở - tại sao chuyển dữ liệu thời gian thực sang máy tính khi 'thời gian thực' cho một người là 60Hz? Nếu tất cả những gì bạn cần làm là cập nhật màn hình thì chắc chắn bạn không cần nhiều dữ liệu đó. Ngoại trừ bạn làm - màn hình của bạn là một số kết hợp tuyến tính của tất cả các mẫu bạn đã thu thập. Nội suy trung bình, xấp xỉ trung bình bình phương, xấp xỉ bình phương khối vuông - không thành vấn đề. Để tạo ra một màn hình đẹp tuyệt vời không chỉ là một loạt các dấu chấm, bạn cần hầu hết tất cả các dữ liệu đó và bạn cần phải xử lý nó. Bất kỳ kích hoạt? Các tính toán phải được thực hiện trên máy chủ - ở lớp ứng dụng. Cho dù bạn cắt lát theo cách nào, đối với màn hình thời gian thực với tốc độ 1GS / s cho bất kỳ độ chính xác nào đáng giá, bạn phải chuyển các đơn đặt hàng dữ liệu lớn hơn USB có thể xử lý và bạn phải làm điều đó đáng tin cậy hơn bạn '
Những cách xung quanh này là gì? Đừng làm một màn hình thời gian thực. Một số phạm vi USB chỉ cung cấp các chế độ kích hoạt. Việc kích hoạt được xử lý trên thiết bị và khi tìm thấy kích hoạt, dữ liệu được thu thập trong bộ đệm. Khi bộ đệm đầy, phạm vi USB từ từ chuyển nó vào ứng dụng và sau đó ứng dụng sẽ hiển thị nó. Điều đó đủ cho việc sử dụng phạm vi, nhưng nó không phải là thời gian thực. Và việc chuyển tiền - cũng mất một thời gian. Thật bất tiện. Và thường là các trình điều khiển hút. Bạn có thể nói rằng tôi đã có những trải nghiệm tồi tệ.
Tôi đã luôn tự hỏi tại sao Firewire không được sử dụng cho phạm vi. Nó tránh được một số vấn đề đau đầu của USB. Đó là ngang hàng, cung cấp các chế độ đẳng thời (thời gian nhất quán) và băng thông tương đối cao. Bạn có thể tạo phạm vi thời gian thực 10 MHz hoặc hơn thế.
Để giải quyết điểm của bạn sau khi chỉnh sửa:
Khả năng sử dụng của một phạm vi tăng lên rất nhiều với giá cả. Khi bạn thực hiện bước nhảy từ phạm vi USB $ 200 đến mức độc lập $ 500, bạn sẽ nhận được sự gia tăng to lớn về tính năng và chức năng cơ bản. Tại sao chỉ cần chi 200 đô la khi thêm một chút nữa bạn có thể có được một phạm vi thực sự? Bây giờ, Trung Quốc đã mở ra hàng loạt các phạm vi hiệu quả, rẻ tiền, có rất ít lý do để muốn tiết kiệm 300 đô la sẽ khiến bạn thất vọng về sau. Phạm vi 'ưa thích' có các tính năng này ngày nay là rẻ.
Có, việc giới hạn chuyển dữ liệu của bạn chỉ cung cấp dữ liệu nhất quán có giá trị khoảng 60Hz sẽ dễ dàng hơn với USB, nhưng đó vẫn không phải là điều bạn muốn làm. Đừng quên các lớp DSP của bạn - chỉ lấy một số dữ liệu nhất định từ số lượng luồng đến số thập phân. Khi bạn decimate, bạn phải thêm các bộ lọc khử răng cưa. Khi bạn làm điều đó, bạn mất băng thông. Điều này làm cho phạm vi của bạn ít hữu ích hơn - nó sẽ giới hạn băng thông của bạn trên màn hình thời gian thực (và chỉ đối với các chế độ kích hoạt trong thời gian thực sẽ ổn) ít hơn nhiều so với băng thông của mặt trước tương tự của bạn. Quản lý các khía cạnh xử lý tín hiệu của máy hiện sóng là công việc khó khăn.
Hiển thị phản hồi rõ ràng? PC? Không nhất quán. Bất kể bạn làm điều này như thế nào, bạn cần phải đệm dữ liệu. Như tôi đã nói trước đây, USB không đảm bảo khi dữ liệu của bạn được thông qua. Tôi sẽ nói khác: USB không được thiết kế để phù hợp với việc truyền dữ liệu theo thời gian thực. Chắc chắn, với lượng dữ liệu đủ nhỏ trong khoảng thời gian lớn, bạn có thể có được một số hiệu suất tốt, nhưng hiệu suất không nhất quán. Bạn S use sử dụng bộ đệm và thỉnh thoảng bạn S miss lỡ chuyển bộ đệm của mình một cách kịp thời. Sau đó, màn hình hiển thị của bạn bị bỏ qua, dữ liệu đã cũ, v.v ... Hiển thị thời gian thực rõ ràng và nhạy bén đòi hỏi các liên kết dữ liệu thời gian thực cứng, thời gian.
Kích hoạt đơn giản - một lần nữa, chúng tôi quay trở lại chi phí so với độ phức tạp so với đáp ứng. Để kích hoạt trên thiết bị để phát hiện quá độ, thiết bị của bạn không thể là một ống dữ liệu câm truyền các mẫu vô trách nhiệm qua USB. Bạn phải đệm, đệm, đệm mẫu trên thiết bịcho đến khi bạn thấy tình trạng kích hoạt của bạn. Điều đó có nghĩa là bạn cần bộ nhớ và trí thông minh trên thiết bị của mình - có thể là một GPU lớn hoặc vi điều khiển lớn. Điều đó thêm vào kích thước và không gian. Nếu bạn sử dụng một FPGA, bạn phải cân bằng lượng logic kích hoạt với nhu cầu cần nhiều RAM cho không gian bộ đệm. Vì vậy, bộ đệm của bạn nhỏ hơn bạn muốn. Điều đó có nghĩa là bạn nhận được một lượng dữ liệu rất nhỏ xung quanh điểm kích hoạt của bạn. Trừ khi bạn thêm bộ nhớ ngoài - thì bạn có thể làm nhiều hơn thế. Điều đó làm tăng kích thước và giá thành của thiết bị của bạn - điều này chắc chắn sẽ không chỉ là một đầu dò với cáp USB được gắn vào nó.
Bạn sẽ may mắn có được băng thông 100 MHz - thường gấp 10 lần tốc độ lấy mẫu được coi là mức cắt tối thiểu cho băng thông. Vì vậy, nếu bạn có tốc độ lấy mẫu 1GS / s mà hầu như không có được băng thông 100 MHz. Bạn không thể nhận được nhiều hơn - sóng vuông 200 MHz sẽ trông giống như sóng hình sin 200 MHz. Đó là hút. Điều đó thật ngu ngốc - không nơi nào gần mức chuyên nghiệp.
Tập hợp điểm khác của bạn:
- $ 200? Làm thế nào để bạn hình? Danh sách các bộ phận là gì?
- Phạm vi tốt để đọc tín hiệu tốc độ cao không tốn hàng ngàn đô la. Chúng có giá một ngàn đô la. 100 MHz là trò chơi của trẻ em trong bộ phận phạm vi và ý tưởng của bạn thậm chí sẽ không đáp ứng tiêu chuẩn đó cũng như phạm vi $ 1000
- Vâng, từ cách bạn mô tả nó thực sự sẽ rất hạn chế. Các khía cạnh kỹ thuật của ngay cả một vài yêu cầu bạn có nghĩa là một thiết bị rất hạn chế.
- Nó sẽ không hữu ích như phạm vi $ 1100 mà tôi đã mua với bộ phân tích logic và băng thông tương tự 60 MHz. Tôi thà trả tiền cho thiết bị thử nghiệm của mình mà tinh ranh với đồ chơi trẻ em bị giới hạn có chủ ý.
Bạn sống và chết bởi thiết bị thử nghiệm của bạn như một kỹ sư. Nếu bạn không chắc chắn, bạn có thể tin tưởng rằng bạn đang lãng phí thời gian. Do thiếu chuyên môn mà bạn đã thể hiện về giao tiếp tốc độ cao, xử lý tín hiệu và sức mạnh của xử lý nhúng (trong các GPU hoặc vi điều khiển) Tôi sẽ không muốn bạn tự thiết kế nó và không ai khác trả lời là bất cứ điều gì khác hơn là xung quanh.
Nếu có một loạt các yêu cầu được nhắm mục tiêu tốt hơn đáp ứng nhu cầu thực sự trong cộng đồng không được phục vụ, thì tôi có thể thấy khả thi về mặt kỹ thuật tôi sẽ tham gia. Nhưng những yêu cầu mơ hồ của bạn dường như không được nghiên cứu. Bạn cần thực hiện một cuộc khảo sát về các tùy chọn có sẵn cho những người có sở thích - những người và người sử dụng phạm vi USB nào, điểm mạnh và điểm yếu của họ là gì và xác định xem có bất kỳ ngóc ngách nào không được lấp đầy không. Nếu không thì đây chỉ là tưởng tượng.