對USB接口進行固件設計提升視頻傳輸質量方案
在如今這個依靠數據傳輸的時代,圖像的傳輸算得上的領域中的發展難點,由于視頻傳輸的信息量較大,并且在傳輸過程中經常會遇到線路抖動、圖像失真等問題,因此圖像總線的接口質量非常重要。本文將為大家介紹一種基于USB接口的同步視頻輸出的系統設計方案固件設計部分。
本文引用地址:http://www.j9360.com/article/201808/386437.htm固件設計
固件是指固化在USB控制器中MCU的程序,它的主要功能是負責接收與處理主機發給設備的各種請求,并向主機返回設備的狀態信息。FX2系列的固件代碼可以存儲到主機中,設備上電復位以后通過USB電纜手動下載到FX2,這種方法易于升級,在系統的開發過程中很方便;固件代碼可以固化到片外存儲器EEPROM或者是ROM,設備上電以后,自動下載固件到片內RAM,這兩種方法可以將系統固件做成產品,無須每次手動下載。
本系統中固件分兩個部分,一個是數據通道的控制,一個是主機控制命令的應答。數據通道的控制主要是GPIF控制數據傳輸管道完成。而控制管道EP0則負責主機和USB設備端的去掉數據部分的通信:更改管道和端點配置信息,設置軟件中斷,更改GPIF視頻圖像傳輸的大小,獲取重要寄存器的狀態等等。
圖1
固件的程序框圖如圖1。其中設備請求部分即為控制管道信息,是由單片機負責,而數據通道主要是通過GPIF操作,隔離了單片機的參與,提高數據傳輸速度。
固件代碼編寫使用Keil uVision,GPIF編程應用CYPRESS公司的GPIF工具(GPIFTOOL)。GPIF可以控制FX2端點FIFO,也可以產生六個控制輸出端(CTL0~CTL5)和九根地址線輸出,并且可以接收六個外部輸入信號,并對這些信號進行邏輯編程控制,從而控制FX2與外部接口的讀寫時序。實際操作可以利用GPIFTOOL繪制波形描述符,轉為C文件,配置各個相關的寄存器,控制SRAM接口讀寫邏輯。
SRAM硬件接口的時序圖如下:
圖2
依據上面的波形圖,只需要在S1結束的時候跳轉S0狀態即可。將繪制的波形圖應用GPIF TOOL轉換為gpif.c文件,加入Project中,連接編譯即可得到固件。
在固件編程中電源管理部分,由于FX2在首次枚舉電流大約是75mA,FX2設備的識別則至少需要100mA,小于500mA,因此在固件中要加進電源檢測,如果小于100mA,必須向主機申請更大的電流,直到主機正確識別FX2。
以上就是基于USB接口的同步視頻輸出系統設計方案固件部分。對USB口進行適當的改造能夠最大程度的使傳輸的圖像保持清晰,對于USB口感興趣的朋友可以收藏本文進行仔細研究。
評論