基于USB接口的同步視頻輸出系統設計方案
固件的程序框圖如上所示。其中設備請求部分即為控制管道信息,是由單片機負責,而數據通道主要是通過(guò)GPIF操作,隔離了單片機的參與,提高數據傳輸速度。
固件代碼編寫(xiě)使用Keil uVision,GPIF編程應用CYPRESS公司的GPIF工具(GPIFTOOL)。GPIF可以控制FX2端點(diǎn)FIFO,也可以產(chǎn)生六個(gè)控制輸出端(CTL0~CTL5)和九根地址線(xiàn)輸出,并且可以接收六個(gè)外部輸入信號,并對這些信號進(jìn)行邏輯編程控制,從而控制FX2與外部接口的讀寫(xiě)時(shí)序。實(shí)際操作可以利用GPIFTOOL繪制波形描述符,轉為C文件,配置各個(gè)相關(guān)的寄存器,控制SRAM接口讀寫(xiě)邏輯。
SRAM硬件接口的時(shí)序圖如下:
依據上面的波形圖,我們只需要在S1結束的時(shí)候跳轉S0 狀態(tài)即可。將繪制的波形圖應用GPIF TOOL轉換為gpif.c文件,加入Project中,連接編譯即可得到固件。
在固件編程中電源管理部分,由于FX2在首次枚舉電流大約是75mA,FX2設備的識別則至少需要100mA,小于500mA,因此在固件中要加進(jìn)電源檢測,如果小于100mA,必須向主機申請更大的電流,直到主機正確識別FX2.
3.用戶(hù)應用程序和USB設備驅動(dòng)程序設計
USB設備驅動(dòng)程序是連接USB外設、操作系統以及用戶(hù)應用程序的橋梁,是USB設備連接到計算機系統的軟件接口。
FX2 系列CYPRESS公司提供了一個(gè)通用的USB驅動(dòng)程序ezusb.sys,可以實(shí)現USB外設和應用程序之間的一般的通信和控制功能,開(kāi)發(fā)者如果需要實(shí)現系統特有的通信和控制功能,必須在此基礎上加以修改,比如,通用USB驅動(dòng)程序每一次塊傳輸數據大小必須小于64KB,而一般一幅圖像數據的大小大于或者等于64KB,如果要求每次傳輸一幅圖像到USB外設,則必須在通用USB驅動(dòng)程序上加以改動(dòng)。
此外還需要在驅動(dòng)程序中添加下載固件部分,在USB外設上電以后,可以自動(dòng)下載固件到FX2的RAM中,FX2二次枚舉,主機正確識別USB外設。
用戶(hù)的應用程序是操作系統和用戶(hù)的接口,它以不同的參數調用驅動(dòng)程序的函
數,控制USB外設,實(shí)現用戶(hù)定義系統的各種功能:讀寫(xiě)視頻圖像,利用控制管道的用戶(hù)定義命令對FX2進(jìn)行監控以及重新下載固件等等。
應用程序的程序框圖如下:
4.結束語(yǔ)
針對視頻圖像同步輸出實(shí)際需要,本系統采用USB 2.0的高速協(xié)議,CYPRESS公司的FX2 USB 控制器,使USB設備接口硬件簡(jiǎn)化,引入視頻顯示部分的場(chǎng)同步信號觸發(fā)數據流,視頻圖像的顯示結果標準平滑。本系統視頻圖像的傳輸速度嚴格依據PAL制為50場(chǎng)/秒,GPIF的接口速度為24MB/s.此外本系統可擴展性強,方便實(shí)用,稍加改動(dòng),可以將任何數據從主機高速導入外設,目前可以達到最大速度為23MB/s;如果加入視頻采集部分電路,就可成為一個(gè)實(shí)時(shí)采集視頻系統。
評論