2015-12-03 58 views
2

我正在開發一個應用程序與硬件配置一起工作。事件發生的速度有多快?

硬件通過應用程序中的串行端口連接到應用程序,並將以快速的速度(〜2-4μs)從硬件嚮應用程序發送數據。

我的計劃是通過父窗體中的串行端口接收數據,然後通過事件將此數據發送到專用於顯示它的用戶控件。

雖然我沒有直接將它傳輸到單個表單的問題,但我並不熟悉事件,也不確定事件是否能夠快速啓動以順利處理數據。

我的問題是:

  • 能多快的事件火?它是基於硬件還是軟件限制?
  • 用這種方法處理數據有什麼缺點?
  • 是否有更好的選擇通過事件傳遞數據?
  • 以這種速度處理數據是否可行?

回答

4
  1. 事件是足夠快(委託電話幾乎是直接調用便宜)
  2. 對於光滑,你只需要每秒多批次的幀速率(60Hz左右)
  3. 根據您的串行端口供應商和設置,您可能會因緩衝而導致相當長的延遲。
  4. 以「這個」速率處理數據(每秒500,000個樣本)很可能是可行的,這取決於您必須執行多少處理。鑑於採樣率與顯示更新率之間存在四個數量級的差異,因此在進行屏幕更新時不要試圖重新繪製每秒500,000次的值,因此值得分批處理。
  5. 沒有傳統的「串行端口」,即使是基於USB的傳統端口,也可以每秒傳輸500,000個樣本。 (我見過的最佳UART是3 Mbps =每秒300,000字節,每個數據包可能不止一個字節)
  6. 如果2-4微秒是位時間,那麼您無需擔心。串行端口將在生成事件到您的程序之前緩衝數百位。