USB2.0在視頻壓縮存儲系統中的應用
68013片內集成了4 kB的內部FIFO,可以分成4個端點雙緩沖區,即1個端點包括1個 輸入緩沖區和1個輸出緩沖區,1個緩沖區的大小是512 B,4個緩沖區的選擇由FIFOADR [1:0]的4個狀態決定,例如初始化后FIFOADR[1:0]=00,此時選中ENPOINT2,當MB 86391有 數據要傳輸時,STEN出現高電平,CPLD把STDATA的8位數據送往FD總線,在IFCLK同步時 鐘的控制下,向端點2的輸入緩沖區FIFO寫入數據,CPLD同時對時鐘進行計數,當達到188時 ,送出PKTEN,表示1幀的數據傳輸完畢,USB核心收到這個幀結束的標志后讀端點2的 輸入FIFO,響應IN請求把數據送出;CPLD除了設定N=188的計數器外,還設定了一個N =4的計數器,每當一個幀滿后,以00,01,10,11的狀態翻轉,并把這狀態當作FIFOADR [1:0]的輸入,使得CPLD能持續接受數據并輪流向68013的4個輸入緩沖區寫入。FLAG 設置為Indexed Mode,并且FLAGB表示當前FIFO滿狀態,而FLAGC表示當前FIFO空狀態,CPLD 只有檢測到FLAGC的有效狀態時,才會往MB86391發請求STREQ,告訴MB86391已準備好接收。 E2USB FX2 Slave FIFO工作模式下數據接口如圖2所示。
開發USB接口的應用系統最重要的就是USB驅動程序和固件程序的編制。本文采 用賽普拉斯公司提供的CY7C68013芯片及其開發板,我們可以從復雜的USB驅動程序中解 脫出來,而把主要精力放在芯片的固件程序的編寫上。軟件結構如圖3所示。
應用程序把USB設備看成一個文件,對設備的操作相當于讀寫文件一樣的簡單,應 用程序與驅動程序的通信主要是通過以下幾個函數來實現的:
(1) 打開設備句柄函數

(3)寫設備函數

在實際編寫應用程序時只需將上述3個函數加入到相應的功能模塊中便可完成Win 32應用 程序對USB設備進行打開、讀、寫操作,實現二者之間的通信。
評論