關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于USB的音頻信號分析儀設計

        基于USB的音頻信號分析儀設計

        作者: 時間:2012-12-21 來源:網絡 收藏

        2.3 接口
        接口芯片選用CYPRESS公司的EZ-FX2芯片CY7C68013。CY7C68013有Slave FIFO和GPIF兩種接口方式,本設計采用Slave FIFO模式,FPGA與USB硬件接口如圖3所示。

        本文引用地址:http://www.104case.com/article/202010.htm

        c.JPG


        圖中D0~D7為數據總線,用于數據傳輸;INTI為中斷標志,當傳輸完一組數據時產生一次中斷。IFCLK為外部時鐘輸入;FIFOADR[1:0]選擇四個FIFO中的一個,本設計中FIFOADR[1]直接接+3.3 V,FIFOADR[0]直接接地,選擇用EP6傳輸數據,4倍緩存;FULL為FIFO滿狀態標志,低電平有效;SLWR為數據寫入FIFO使能,低電平有效;FD[7:0]為8位數據線。
        如上所述,系統選擇了FIFO的異步模式進行數據傳輸的方式。在IFCLK的上升沿,如果SLWR有效(低電平有效),而數據有滿足建立保持時間,數據就被寫入FIFO,同時,若內部控制器發現FIFO己滿,經過大約為10 ns的延時,FULL標志會被置成有效。

        3 系統軟件設計
        3.1 USB固件設計
        固件是在USB接口芯片加電后,由其他設備加載到CY7C68013中并在其中運行完成接口數據傳輸功能的一段程序,其作用是控制硬件來完成預期的設備功能。固件的主要功能包括:初始化工作、輔助硬件完成設備的重枚舉過程、對主機的設備響應做出適當的響應、對中斷的處理、數據的接收與發送、對外圍電路的控制。
        本系統固件程序采用Cypress公司提供的固件程序框架,在其初始化函數中添加了用戶配置代碼。該設計中異步自動從屬FIFO數據傳輸的初始化代碼如下:
        d.JPG
        3.2 USB驅動程序設計
        USB驅動程序處于應用程序和設備端固件之間,使操作系統識別USB設備,并建立起主機端和設備端之間的通信。
        VISA(Virtual Instrument SoftWare Architecture)是美國NI公司開發用來與各種儀器總線進行通信的高級應用程序編程接口(API)。它不受平臺、總線和環境的限制,可用來對USB、GPIB、串口、VXI、PXI及以太網等進行配置、編程和調試。因此本系統利用LabVIEW的VISA來對USB的底層驅動經行開發,具體步驟如下:
        (1)使用Driver Development Wizard創建INF文檔。
        (2)安裝INF文檔,并安裝使用INF文檔的USB設備。
        (3)使用NI-VISA Interactive Control對設備進行測試。
        USB底層配置正確以后,選擇VISA類為USBRaw,計算機會自動刷新選擇的USB設備,利用VISAOpen,VISA Close,VISA Write和VISA Read
        四個節點即可實現和USB設備的雙向通信。與USB設備的通信過程分為4個步驟:
        (1)由VISAOpen函數打開VISA resource name端口指定的USB設備;
        (2)通過VISA Write函數向USB設備發送控制命令啟動設備工作,USB設備接收到控制命令后開始采集數據并將采集到的數據按要求發送到數據緩沖區;
        (3)通過VISA Read函數將數據讀出;
        (4)通過VISA Close函數關閉設備。
        3.3 LabVIEW程序設計
        LabVIEW是美國NI公司開發的一種圖形化編程軟件,具有良好的圖形顯示功能,提供種類齊全的各種波形圖和波形圖表控件,能夠以多樣化的方式直觀地顯示各種信號波形。其次LabVIEW擁有數量眾多、功能齊全的信號分析與處理子VI,供用戶調用,從而組合實現出所需要的信號處理功能。同時LabVIEW具有良好的擴展性,無論是通過附加工具包擴展,還是通過其他平臺(如Matlab/Simulink)的接口擴展,都能很方便地進一步擴展其信號處理功能。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 卓尼县| 左权县| 海晏县| 大石桥市| 英山县| 得荣县| 克什克腾旗| 三门峡市| 土默特左旗| 涪陵区| 新竹县| 四平市| 新蔡县| 紫阳县| 晋州市| 九江市| 偃师市| 利津县| 宁波市| 阿荣旗| 紫云| 剑河县| 广元市| 德兴市| 永康市| 阿荣旗| 云安县| 遂平县| 曲松县| 靖宇县| 安塞县| 洞口县| 桦甸市| 昌乐县| 庆城县| 馆陶县| 清水河县| 平阳县| 通化县| 福鼎市| 张家界市|