基于DSP的USB技術在圖像傳輸中的應用
1.3 DSP內存空間的訪問
DSP內存空間的正確訪問是實現USB接口功能最關鍵的部分。USB接口芯片是通過運用其GPIF口來訪問DM642的HPI接口,來達到間接訪問DM642的內存空間,DM642的HPI接口各個寄存器的讀寫時序詳見參考文獻[2]。然后再通過芯片內部的USB2.oh3議模塊完成與主機(PC)之間的數據交換,從而實現DSP與主機之間的數據傳輸。因此,通過GPIF波形描述符的編寫來匹配DM642的HPI接口的讀寫時序成為了驅動程序中最重要的部分。
在該項目中,主機從DSP內存空間中讀取的主要是圖像數據,而圖像數據往往存放在連續的地址空間中, 因此這里采用的是以地址白增方式讀IIPI數據寄存器。讀HPID的過程為: 先向控制寄存器HPIC寫入操作控制字;再向地址寄存器HPIA寫入欲操作的DM642的內存空間地址: 然后等待DM642以EDMA的方式完成內部操作,并將數據準備好:然后從數據寄存器HPID處根據HPIC中控制字的要求以地址自增方式連續讀取DM642內存空間的數據。
同時由于主機向DSP內存空間中寫入的是少量控制數據,故以固定地址方式寫HPI數據寄存器。寫HPID的過程為:先向控制寄存器HPIC寫入操作控制字:再向地址寄存器HPIA寫入欲操作的DM642的內存空間地址;然后以固定地址方式根據HPIC中控制字的要求向HPID中寫入數據;最后DM642以EDMA的方式完成內部操作,將HPID中的數據寫入HPIA中的內存地址空間。
2 固件的設計
固件是在USB接口芯片加電后, 由其它設備加載~CY7C68013中并在其中運行完成接口數據傳送功能的一段程序。在本接口中采用的是由Pc機通過USB接口加載固件的方式。
固件程序的編寫主要分為4個大的模塊:設備描述模塊,該模塊唯一的功能就是提供主機啟動在重新枚舉設備時所需要的VID和PID以及其它一些必要的設備描述符。主模塊,主要完成設備的初始化、固件運行后的“重新枚舉”、進入循環不斷接收Pc機發送的一些命令并等待數據的傳送。數據收發模塊,主要完成初始化數據傳送端口, 并且處理主機發出的命令。
GPIF模塊,主要是完成對DM642的tIPI接口的時序進行編程,這種時序的編程具體來說就是設定一個個波形描述符,GPIF波形描述符的編程一般使用CYP RESS公司提供的GPIF TOOL具進行配置。在固件的編寫中關鍵的是GPIF波形描述符的編寫。波形描述符的編寫首先必須弄清楚DM642的HPI接口的讀寫時序,然后設置好相應的控制信號的波形。
3 結束語
通過上述方式設計的USB接口,主機與DSP之間的數據傳輸速度可達lObfops以上,能夠實時地將DSP采集并做了適當處理的RAW圖像數據傳輸到PC上,完全滿足PC端的顯示及計算需求,提高了糧食質量檢測的精度,完全能夠達到系統設計的需求。限于篇幅,本文沒有詳細介紹主機端驅動和應用程序的設計, 該方案可進一步擴展,借助TMS320DM642強大的處理能力,應用于視頻壓縮、圖像處理等多個領域。
評論