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