基于USB通信的FPGA高速數據采集系統
2.3 USB通信
在系統中,USB控制器被配置為SlaVe FIFO模式,CY7C68013A Slave模式接口引腳的連接如圖4所示,這樣FPGA可以將USB控制器當成FI-FO來(lái)控制,而不用考慮USB標準的各種規則。而USB控制器則將USB標準的各種規則通過(guò)許多特殊寄存器來(lái)設置,將USB控制簡(jiǎn)化。
因此,此部分的軟件實(shí)現包括2個(gè)部分。從圖4可以看出,FPGA對各RAM輪流讀取數據,由于RAM大小與USB數據包大小設定一致,直接把數據送入CY7C68013A即可。而FPGA把CY7C68013A當成FIFO來(lái)控制,所以該部分程序比較簡(jiǎn)單。而CY7C68013A內程序設計主要是通過(guò)固件程序對傳輸速度、傳輸方式、傳輸模式等進(jìn)行設置。本文引用地址:http://dyxdggzs.com/article/156123.htm
固件程序是指運行在設備CPU中的程序,只有在該程序運行時(shí),外設才能稱(chēng)之為具有給定功能的外部設備。系統把固件代碼固化到1片E2PROM中,外設加電后由FX2通過(guò)I2C總線(xiàn)下載到片內RAM中自動(dòng)執行。固件架構是由Keil C51編譯器與其整合開(kāi)發(fā)工具所編寫(xiě)和構建。其主要文件包括:fw.c負責設備連接、重枚舉、設備初始化;periph.c負責響應各種中斷事件,是主要的用戶(hù)函數應用代碼;gpif.c含有GP IF波形描述符表,可以實(shí)現波形的傳輸;dscr.a(chǎn)51文件定義USB設備握手時(shí)需要的各種描述符;fx2.h定義各種二級中斷向量和描述符的數據結構;fx2 regs.h定義USB單片機中所有的寄存器。
USB支持4種傳輸類(lèi)型:控制傳輸、中斷傳輸、等時(shí)傳輸、批量傳輸。批量傳輸可以是雙向的,也可以是單向的。它特別適合大數據量的傳輸,而且它對傳輸的準確性要求較高。因此,通過(guò)固件程序設定本系統采用Slave FIFO模式,批量(BULK)傳輸方式進(jìn)行數據傳輸。
3 實(shí)驗結果
為了方便實(shí)驗,使用耦合器將一路光信號分為16路相同的信號,這樣所有采集到的信號波形基本相同。實(shí)驗時(shí),AD7356設定為1 MHz采樣速率,USB數據包大小為512 Kb,CY7C68013A采用異步SlaveFIFO模式發(fā)送數據,上位機采用Cypress公司自帶的EZ-USB Interface軟件采集實(shí)驗數據。采集到的信號如圖5所示,系統在16.7 Mb/s的傳輸速率下工作正常。
4 結語(yǔ)
本文采用目前使用最為廣泛的EZ-USB FX2LP芯片,給出了基于USB數據采集系統的設計。該系統充分表現了USB接口傳輸數據量大,傳輸速度快的特點(diǎn),非常的適合大批量數據實(shí)時(shí)的傳輸場(chǎng)合,尤其適合數據采集系統和主機的通信,能夠實(shí)時(shí)的處理采集到的數據。這克服了以往數據采集速度慢,采集數量少,接口復雜等特點(diǎn),實(shí)現了數據采集的高速率、多通道。系統進(jìn)行實(shí)測實(shí)驗表明,在CY7C68013A設定為16.7 Mb/s的傳輸速率下,系統工作正常。
評論