基于Blackfin532和Netchip2272的USB接口設計
Bushound5.0只捕獲到了設備枚舉過(guò)程中主機發(fā)出獲取配置描述符請求及之后的數據,圖中的數據是主機發(fā)出獲取配置描述符請求到主機發(fā)出設置配置請求之間的數據。
USB設備和主機之間的數據交換。當Netchip2272接收到主機發(fā)送的數據包之后,就會(huì )產(chǎn)生一個(gè)中斷信號給Blackfin532,Blackfin532在中斷服務(wù)程序中查詢(xún)相應的寄存器得知接收到數據包之后,直接將接收到的數據包讀到Blackfin532中。USB設備需要向主機發(fā)送數據時(shí),先將需要發(fā)送的數據放到輸入端點(diǎn)的Buffer中,當主機向相應的輸入端點(diǎn)發(fā)送In Token時(shí),Buffe中的數據包就返回給了主機,數據包發(fā)送成功后Netehip2272會(huì )產(chǎn)生一個(gè)中斷信號給Blackfin532,在中斷處理函數中將全局變量Tx_data_flag的相應位置1,數據包發(fā)送成功。
2.2 驅動(dòng)程序
驅動(dòng)程序編寫(xiě)是復雜的,選用Jungo的WindowsDriver,在Windows Driver檢測到枚舉成功的設備之后,輸入設備的廠(chǎng)商ID(VID)和產(chǎn)品ID(PID),即可生成一個(gè)inf文件,將設備的PID和VID與設備的驅動(dòng)程序綁定在一起,當設備通過(guò)設備描述符將VID,PID傳送給主機之后,主機就可以據此找到設備的驅動(dòng)程序了。
3 實(shí)驗結果及分析
設備枚舉成功之后,利用BusView觀(guān)察到的設備的配置情況如圖5所示。本文引用地址:http://dyxdggzs.com/article/187737.htm
USB設備一共有6個(gè)端點(diǎn),這里僅列出其中兩個(gè)端點(diǎn)的描述符,其他的和這兩個(gè)類(lèi)似。BusView顯示的設備配置情況和固件程序中對設備的配置情況完全一致,這表明設備的枚舉過(guò)程是正確的。
通過(guò)使USB設備循環(huán)的向主機發(fā)送數據來(lái)檢驗USB輸入到主機方向的數據傳輸,利用Bushound5.0捕獲的部分數據如圖6所示。圖中的數據顯示USB設備循環(huán)發(fā)送的數據是00 01 02 03 04 05 06 07 08 09,在Windows Driver中對相應的管道進(jìn)行監聽(tīng),收到的數據如圖7所示。實(shí)驗結果顯示數據傳輸完全正確。對于主機輸出到USB設備方向的數據傳輸,進(jìn)行了檢驗,數據傳輸也完全正確。這表明基于Blackfin532和Netc-hip2272的USB接口電路的方案是可行的。
4 結束語(yǔ)
基于Blackfin532和Netchip2272的USB接口電路具有數據傳輸快速、可靠、接口電路簡(jiǎn)單、固件程序的可移植性強等優(yōu)點(diǎn),具有良好的實(shí)用價(jià)值和應用前景。
評論