基于USB的音頻信號分析儀設計
2.3 USB接口
USB接口芯片選用CYPRESS公司的EZ-USBFX2芯片CY7C68013。CY7C68013有Slave FIFO和GPIF兩種接口方式,本設計采用Slave FIFO模式,FPGA與USB硬件接口如圖3所示。本文引用地址:http://dyxdggzs.com/article/202010.htm
圖中D0~D7為數據總線(xiàn),用于數據傳輸;INTI為中斷標志,當傳輸完一組數據時(shí)產(chǎn)生一次中斷。IFCLK為外部時(shí)鐘輸入;FIFOADR[1:0]選擇四個(gè)FIFO中的一個(gè),本設計中FIFOADR[1]直接接+3.3 V,FIFOADR[0]直接接地,選擇用EP6傳輸數據,4倍緩存;FULL為FIFO滿(mǎn)狀態(tài)標志,低電平有效;SLWR為數據寫(xiě)入FIFO使能,低電平有效;FD[7:0]為8位數據線(xiàn)。
如上所述,系統選擇了FIFO的異步模式進(jìn)行數據傳輸的方式。在IFCLK的上升沿,如果SLWR有效(低電平有效),而數據有滿(mǎn)足建立保持時(shí)間,數據就被寫(xiě)入FIFO,同時(shí),若內部控制器發(fā)現FIFO己滿(mǎn),經(jīng)過(guò)大約為10 ns的延時(shí),FULL標志會(huì )被置成有效。
3 系統軟件設計
3.1 USB固件設計
固件是在USB接口芯片加電后,由其他設備加載到CY7C68013中并在其中運行完成接口數據傳輸功能的一段程序,其作用是控制硬件來(lái)完成預期的設備功能。固件的主要功能包括:初始化工作、輔助硬件完成設備的重枚舉過(guò)程、對主機的設備響應做出適當的響應、對中斷的處理、數據的接收與發(fā)送、對外圍電路的控制。
本系統固件程序采用Cypress公司提供的固件程序框架,在其初始化函數中添加了用戶(hù)配置代碼。該設計中異步自動(dòng)從屬FIFO數據傳輸的初始化代碼如下:
3.2 USB驅動(dòng)程序設計
USB驅動(dòng)程序處于應用程序和設備端固件之間,使操作系統識別USB設備,并建立起主機端和設備端之間的通信。
VISA(Virtual Instrument SoftWare Architecture)是美國NI公司開(kāi)發(fā)用來(lái)與各種儀器總線(xiàn)進(jìn)行通信的高級應用程序編程接口(API)。它不受平臺、總線(xiàn)和環(huán)境的限制,可用來(lái)對USB、GPIB、串口、VXI、PXI及以太網(wǎng)等進(jìn)行配置、編程和調試。因此本系統利用LabVIEW的VISA來(lái)對USB的底層驅動(dòng)經(jīng)行開(kāi)發(fā),具體步驟如下:
(1)使用Driver Development Wizard創(chuàng )建INF文檔。
(2)安裝INF文檔,并安裝使用INF文檔的USB設備。
(3)使用NI-VISA Interactive Control對設備進(jìn)行測試。
USB底層配置正確以后,選擇VISA類(lèi)為USBRaw,計算機會(huì )自動(dòng)刷新選擇的USB設備,利用VISAOpen,VISA Close,VISA Write和VISA Read
四個(gè)節點(diǎn)即可實(shí)現和USB設備的雙向通信。與USB設備的通信過(guò)程分為4個(gè)步驟:
(1)由VISAOpen函數打開(kāi)VISA resource name端口指定的USB設備;
(2)通過(guò)VISA Write函數向USB設備發(fā)送控制命令啟動(dòng)設備工作,USB設備接收到控制命令后開(kāi)始采集數據并將采集到的數據按要求發(fā)送到數據緩沖區;
(3)通過(guò)VISA Read函數將數據讀出;
(4)通過(guò)VISA Close函數關(guān)閉設備。
3.3 LabVIEW程序設計
LabVIEW是美國NI公司開(kāi)發(fā)的一種圖形化編程軟件,具有良好的圖形顯示功能,提供種類(lèi)齊全的各種波形圖和波形圖表控件,能夠以多樣化的方式直觀(guān)地顯示各種信號波形。其次LabVIEW擁有數量眾多、功能齊全的信號分析與處理子VI,供用戶(hù)調用,從而組合實(shí)現出所需要的信號處理功能。同時(shí)LabVIEW具有良好的擴展性,無(wú)論是通過(guò)附加工具包擴展,還是通過(guò)其他平臺(如Matlab/Simulink)的接口擴展,都能很方便地進(jìn)一步擴展其信號處理功能。
評論