一般人對於 使用USB 來說:或許都很難感受到底層Driver (驅動程式)問題。
都把他想像成一般 RS232 那種感覺...買一條RS232 轉USB 就沒事了!
當然啊...版主自己也不搞USB底層USB驅動程式。
但是最近作了一個實驗:就是 USB 轉DMX512 這個東西...
其實,以一個USB 要來傳 250kbps 的東西是輕而易舉的事,
根本不需要什麼 USB 2.0 的東西...
但是,這種DMX512 的東西有一個很討厭的要求:就是要及時傳輸!
這個問題就會考驗您USB 及時傳輸效能了 !!
如果:您是希望從PC 端想固定每多少 msec 由USB 幫您傳一筆資料時...
您會如何作呢?!在VC++ 的環境中呼叫一個 時間中斷函數?!
時間準嗎?!...其實,以目前PC 的超強的運算能力來說:還好!
但是實際?真的如此嗎?!
答案是:您資料傳到USB 收到,再幫您往下游傳時,這個時間是忽快忽慢的...
Why ?!...答案就是出在作業系統所管的驅動程式上!
這個問題據說在 USB 轉RS232 的現象更明顯...
見:http://godspeedlee.myweb.hinet.net/job4.html
(只要看跟這篇文章有關的內容就好了!萬一被其他內容給洗腦了,
可都不要怪到我頭上喔...不管我的事喔..人家的言論自由...
..."因為 USB<->RS232 跟主機板上的 COM Port不一樣,塞資料給它
不會馬上幫你傳..."...)
-----------------------------------
所以啊...您要控制USB 的及時傳輸能力,一定得從USB Controller 韌體端去下手!
讓PC 端上層應用程式的資料,盡快的到達USB 底層Driver 去等!
如此一來。您才可以做到這種資料量要大不大,卻又要即時(real-Time)傳輸的要求。
不要USB Controller 要資料時,再由作業系統去向您的上層應用程式要資料!
這時,您才開始準備資料...那鐵定忽快忽慢的...您想想看:
現在WINDOWS 作業系統...絕大部分時間都是空等的...
不是運算速度慢,而是您在系統的規劃與資料傳輸流方面沒有認真的考慮清楚...
還要怪人家電腦慢?!USB 1.1 乃至於 2.0 太慢。...
---
改天再讓大家看看USB 轉DMX512 在速度達到 及時傳輸時,所能展現的美麗畫面!
....(待續)