2009-06-19 95 views
0

我正在開發USB設備的CDC驅動程序,我偶然發現了一些問題。 我在Windows上使用的驅動程序使用Clear端點Feature作爲某種flish機制或獲取正確的數據。這使我產生了很多的混亂,因爲我無法正常工作。我認爲數據切換不同意,我錯過了一些重要的數據傳輸,甚至由於數據切換不清而沒有得到與該端點相關的中斷。 正如USB標準中指出的那樣,我將設置界面上的數據切換復位爲0並清除了功能。 有更多的情況應該這樣做嗎?或者有錯誤處理無效數據切換的簡單方法。USB清除端點功能

感謝您的支持。我有usb分析儀,但我現在對我沒有任何好處。從我能設法收集的東西,我認爲正在發生。在清除功能之後,我在hardvare中設置了datatoggle bit(因爲它應該完成),以便爲端點應對。發送一些數據,它在PC上被收回。我知道這種形式的USB分析儀,我用端口監視器追蹤了我的Vcom驅動程序。 然後我等待一些數據,因爲一切都配置好了(設備枚舉等等),但最初的問題是可能的,但下一個不是,在清晰的端點成熟後PC端再次提出問題。這應該會引發UBS中斷,以防止端點發生中斷,但這種情況一段時間後仍然沒有發生,而且端口功能清晰且包裝相同,並且它一次又一次得到響應,通信協議中會出現沉默。我計算了所請求的傳輸與丟失中斷的比率正好是2:1,所以我認爲數據切換的時間設置錯了一半,但是如果每次獲得清晰的端點特性時都設置了數據切換位,會怎麼樣呢?

我希望我清楚地說明了這個問題,對於harvare方面,我認爲唯一相關的東西就是我所設定的一點。它表示「寫1到該位將端點數據切換到0」。 好吧,我認爲(希望)我解決了清除端點的成熟,其他錯誤是由其他事情引起的,累積問題很難趕上。


好吧,我解決了該問題,前一段時間,現在我甚至不remeber究竟是什麼原因,但作爲後容易是 - 這是別的東西。每個人都與安瑟爾結緣。

回答

1

請注意,在某些版本的usbser.sys中,Windows在傳輸64個字節的精確倍數後未正確刷新管道。我不完全清楚你的問題,這是否是你看到的行爲,但USB分析器應該幫助你確定是否是這種情況。如果您使用的是XP SP2,請升級到SP3。

+0

Courious,但我的情況更簡單,錯誤是明確的端點成熟和缺乏處理它,其次,我有我的USB堆棧內處理任務的問題,所以看到奇怪的行爲。 – CrazyChris 2009-06-22 15:59:50

1

我建議使用usb snoopy(軟件USB分析器),以瞭解您做錯了什麼。如果你有任何預算,你最好有硬件USB分析器,如我們LecroyEllisys。或者得到一個商業CDC驅動程序,有很多可用的只是谷歌的CDC驅動程序。 您的問題描述非常籠統,可以直接解決。