《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于EZ-USB FX2的實時數據傳輸的實現
基于EZ-USB FX2的實時數據傳輸的實現
來源:電子技術應用2010年第9期
惠 蘭, 裴東興
中北大學 儀器科學與動態測試教育部重點實驗室, 山西 太原030051
摘要: 設計了一個以FPGA作為數據處理模塊,以CY7C68013作為接口芯片的數據采集系統。接口芯片CY7C68013工作在GPIF模式下,在數據的傳輸中起主控作用,利用FPGA以保證數據的正確性和穩定性,使系統可以達到穩定、實時、高速的數據傳輸。
中圖分類號: TP274.2
文獻標識碼: A
文章編號: 0258-7998(2010)09-0112-03
Real-time data transmission based on EZ-USB FX2
HUI Lan, PEI Dong Xing
Key Laboratory of Instrumentation Science & Dynamic Measurement of the Ministry Education of China, North University of China, Taiyuan 030051,China
Abstract: The data acquisition system has been designed with FPGA as data processing modules, and CY7C68013 as interface chip of data acquisition system. The interface chip CY7C68013 works in GPIF mode. The data acquisition system ensures the correctness of FPGA, and the stability of the data system can achieve stability, real-time, high speed.
Key words : real-time transmission;data; CY7C68013A; GPIF

    實時數據的采集以及顯示等都會涉及到PC機和下位機間的數據傳輸,而傳輸數據中的丟點問題是實時數據采集中必須解決的問題。傳統的數據采集系統由于傳輸速度低或者安裝不方便等問題已不能滿足科研和生產過程的需求。輸入的實時數據是帶有幀頭的8位串行數據流,直接與CY7C68013AGPIF(General programmable interface)接口對接不能保證數據完整不丟失,并且無法在數據中加入幀識別信息。在這種情況下采用FPGA完成此部分邏輯功能。通過FPGA對實時數據進行相應的調整再交給CY7C68013A傳送到上位機中。
1 系統硬件電路設計
1.1  系統結構和數據流程

    本系統采用FPGA xc2s50-144完成整個系統的數據采集的處理,采用具有微處理器的USB接口CY7C68013A,通過USB接口將FPGA處理后的數據實時地傳輸到計算機上。當PC機發出數據采集、讀取數據等控制命令時,控制命令通過CY7C68013A傳送給FPGA,由FPGA啟動A/D芯片進行A/D轉換。A/D轉換后將串行數據流和時鐘發送到FPGA中,FPGA通過判斷幀頭截取有效數據并將數據轉換成8位的并行數據并緩存至FPGA內部設計的FIFO中,由上位機通過USB接口芯片CY7C68013A以GPIF主控模式將數據傳送至上位機中。系統總體設計圖如圖1所示。

1.2  USB接口芯片
    CY7C68013A是Cypress公司的FX2系列產品,可提供480 Mb/s的傳輸速率。CY7C68013A提供了一種獨特架構,使USB接口和應用環境直接共享FIFO,而且微控制器可以不參與數據傳輸,但允許它以FIFO或RAM的方式訪問這些共享FIFO,CY7C68013A的內部FIFO緩沖區中有四個端點,它們可以通過設置相應的EPxFIFOCFG(x是端點號)寄存器被配置為2倍、3倍或4倍緩沖區。雙緩沖區可以允許一個數據包在被8051訪問的同時,另一個進行USB數據傳輸。3或4緩沖區則允許在2個或3個緩沖區被訪問的同時,由另一個進行USB數據傳輸。這樣就可以把數據包可用的時間延遲減至最小,從而增加帶寬的吞吐量。CY7C68013A共有三種工作模式:分別為普通端口模式、GPIF模式和從屬FIFO模式。這三種工作模式由寄存器選擇決定。本設計中采用GPIF主控模式,GPIF在連接到外部邏輯設備時,可充當“內部”控制,可以作為CY7C68013A端點FIFO的內部主控制器。
1.3 硬件連接圖
 使用GPIF方式對FIFO芯片進行讀寫工作并使用PORTB雙向FIFO數據線,使外圍電路像普通FIFO一樣對FX2中端點2、4、6、8的數據緩沖區進行讀寫。當CY7C68013A工作在GPIF模式時,由PC機上發出控制命令給USB,CY7C68013A提供FPGA的片選、讀數據時鐘等信號。接口連線圖如圖2所示。

2 軟件設計
2.1  固件程序的設計

 固件的作用是輔助硬件來完成預期的設備功能,固件主要工作如下:
   (1)寄存器初始化工作,按照需要設置特殊功能寄存器的初值;
   (2)輔助硬件完成設備的枚舉過程,對主機的設備請求作出適當的響應;
   (3)完成中斷處理、數據接收和發送以及對外圍電路的控制。
   在固件程序中,按照FIFO的時序圖完成GPIF波形設計,并生成波形描述符文件GPIF.c供設備功能程序main.c調用。生成的GPIF.c會初始化波形設計用到的寄存器,包括配置接口的設計,在TD_Init()中初始化函數,配置好使用的端點類型,傳輸數據包的大小。在TD_Poll()中設置好GPIF的讀數據傳輸,通過main.c中對TD_Poll()的重復調用,完成USB的大數據量傳輸。
2.2 GPIF波形圖
 根據FPGA編寫的時序,利用Cypress公司配置的GPIF Designer畫出相應的時序圖,如圖3所示。

    在數據讀時序狀態設計中,在S3狀態,讓讀使能REN低電平有效。在S4中判斷FPGA內FIFO 的空標志是否有效,有效后開始進行FIFO的讀傳輸,OE用來控制數據出現在數據總線上的時間。數據總線在S5時拉高是數據有效(activate),GPIF按字節將數據讀到FIFO中,同時TC計數器會減一。在狀態6時,以計數器的值來判斷一幀數據是否完成傳輸。如果沒有完成,則不斷循環,讀完所有數據為止;如果讀完了所有數據后,則不再經過中間其他任何狀態,直接跳到狀態7(IDLE),表示完成一幀數據的傳輸。設計中在S4、S6設定決策點。
2.3 USB驅動設計
    USB功能驅動程序采用Cypress公司的通用驅動程序ezusb.sys,ezusb.sys驅動的開發工具為DDK,驅動程序開發工作包括:開發環境設置(VC編譯環境)、驅動程序設計、安裝文件(INF文件)設計。驅動程序減少了USB設備硬件處理數據的細節,為應用程序訪問USB硬件設備提供相應接口。
   用戶編寫應用程序只要調用它提供的接口函數及其所需要傳遞的參數來實現所需的功能。應用程序用CreateFile()函數打開設備并且創建與設備的連接,然后用DeviceIoControl()函數或ReadFile()與WriteFile()函數從驅動程序中讀寫數據和向驅動程序寫入數據。當應用程序退出時,用CloseHandle()函數關閉設備。這一過程將產生對應于此設備對象的IRP與驅動程序設備類成員函數,如表1所示。

2.4 應用程序設計
    應用程序是系統與用戶的接口,它通過動態鏈接庫調用通用驅動程序完成對外設的控制和通信。本系統的應用程序開發使用的是Visual Basic6.0中文版本。本系統的工作過程為:首先是查找設備打開設備句柄,然后調用動態鏈接庫發送控制命令啟動系統,當檢測到設備后進行數據的讀取命令,調用動態鏈接庫的函數關閉設備句柄。系統的應用程序界面如圖4所示。

3 系統整體檢測
3.1 FPGA邏輯正確性檢測

    利用FPGA內部累加器模擬ADC轉換后的串行數據以及相應的時鐘,利用Cypress公司提供的Control Panel 發出控制命令直接給接口芯片,并讀取FPGA內部產生的數據,觀察其中的數據與設定的FPGA中發出的數據是否相同,以驗證FPGA內部邏輯的正確性。相應地利用示波器監測FPGA內部的時鐘信號,驗證其正確性。
3.2 數據傳輸數據檢測
    數據傳輸檢測中增加FPGA內部累加器產生的數據包的數量,采用Bus Hound 記錄總線狀態變化,在得到的結果中觀察Bus Hound中的數據形式并查看VB讀數軟件中的數據文件,觀察得到的數據文件數據總量以及大小都正確,再打開應用程序中的數據文件所示的波形,從而驗證了數據傳輸的正確性。
4 本系統中對傳輸速度改進方面的分析
 本系統中主要需要體現數據的實時性傳輸,在數據的處理部分與USB部分提高數據傳輸速度。主要通過以下方面使速度得到提高:
    (1)在數據處理部分利用FPGA截取數據的有效部分,并將串行數據變成并行數據,以利于數據更快、更準確的傳輸。
    (2)為了保證數據不丟失,在FPGA內部增加內部FIFO,使數據在提交的同時也可以傳輸。
    (3)在USB的固件部分,使用AUTO傳輸方式,數據直接經過USB2.0核、FIFO、GPIF Master以及NandFlash這條高速路徑傳輸,而不經過低速的8051核,從而可以達到較高數據傳輸速度。
    (4)在固件的端點設置中,使用多緩沖機制,通過改變EPxCFG配置寄存器中的BUF0、BUF1位的值,就可以設置緩沖數。
    (5)使用GPIF方式進行傳輸,在GPIF波形的延時,提高GPIF波形的執行頻率,也可以提升讀取速度。
    在進行系統整體性能的測試中,發現如果加快FPGA的數據輸出速度,則在讀出的波形中會有部分丟包的現象,經過分步重新測試,發現在FPGA的內部FIFO中,如果寫時鐘與讀時鐘的差距太大,就會造成丟點或者錯點的現象,所以USB的GPIF產生的讀波形應該與FPGA的寫入速度相平衡,整體重新進行調試后,滿足了實時顯示并且穩定的條件。
    本文利用FPGA和USB接口芯片CY7C68013實現了采樣數據的高速傳輸。特別是在調試過程中為了保證數據的正確性,提出了適合于通用驅動程序的塊傳輸同步控制信號。在上下位機的協調控制下數據能夠高速有效地傳輸。多次試驗證明,此系統運行穩定,能夠滿足工作環境復雜、傳輸速度要求高的場合。
參考文獻
[1]  EZ-USB FX2 technical reference manual version 2.0 [M/CD].Cypress Semionductor Corp data book,2001.
[2]  錢峰.EZ-USB FX2 單片機原理、編程及應用[M].北京:北京航空航天大學出版社,2005.
[3]  時向衛.Win2000/XP USB 設備驅動程序研究與設計[J]. 計算機工程與設計,2008,29(21):5563-5564.
[4]  趙卉.基于USB接口的無線數據傳輸系統設計[J].微計算機信息,2008,24(8-2):107-108.
[5]  王偉.基于USB2.0 的高速數據采集與傳輸系統的研究[D].長春:吉林大學,2007.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲一卡久久| 日韩视频一区| 亚洲三级影片| 一色屋精品视频免费看| 国产日韩欧美一区| 国产精品人人爽人人做我的可爱| 欧美日韩视频在线一区二区观看视频| 免费看av成人| 欧美**字幕| 欧美成人午夜影院| 免费观看不卡av| 免费亚洲一区| 免费成人在线视频网站| 久久婷婷国产综合国色天香| 久久九九免费视频| 久久久www成人免费毛片麻豆| 欧美一区二区三区视频| 欧美亚洲一区二区在线| 午夜精品久久久久久久久久久久久| 亚洲小少妇裸体bbw| 亚洲一区二区三区乱码aⅴ| 亚洲视频你懂的| 亚洲一区二区av电影| 亚洲影视综合| 欧美一级播放| 久久成人这里只有精品| 久久精品五月婷婷| 噜噜噜噜噜久久久久久91| 美女视频黄免费的久久| 蜜桃av综合| 欧美大尺度在线观看| 欧美日韩成人在线观看| 欧美四级在线观看| 国产精品嫩草久久久久| 国产欧美在线看| 狠狠久久亚洲欧美专区| 亚洲第一精品夜夜躁人人爽| 亚洲经典一区| 在线亚洲伦理| 欧美一激情一区二区三区| 久久精品九九| 99国产精品99久久久久久粉嫩 | 午夜欧美精品久久久久久久| 久久精品国产第一区二区三区最新章节 | 欧美激情国产日韩精品一区18| 欧美久久久久| 国产精品午夜在线观看| 狠狠久久五月精品中文字幕| 91久久综合亚洲鲁鲁五月天| 一区二区精品在线| 欧美一级黄色录像| 亚洲免费av观看| 欧美一区二区免费视频| 久久蜜桃香蕉精品一区二区三区| 麻豆成人精品| 国产精品成人v| 精品白丝av| 中文日韩在线| 亚洲第一精品电影| 亚洲午夜电影在线观看| 久久精品国产第一区二区三区最新章节| 裸体歌舞表演一区二区| 欧美日韩一区在线| 国产欧美一区二区三区视频| 在线欧美小视频| 亚洲一区二区免费在线| 亚洲高清在线播放| 亚洲欧美日韩综合| 欧美成人午夜视频| 国产精品一二三四区| 亚洲国产精品久久| 亚洲综合成人在线| 亚洲免费观看高清完整版在线观看熊 | 91久久夜色精品国产九色| 亚洲一区精品电影| 亚洲精品乱码久久久久久| 亚洲欧美中文在线视频| 欧美高清视频在线| 国产一区二区三区免费观看 | 亚洲国产日韩欧美在线动漫| 亚洲一区精品电影| 麻豆成人91精品二区三区| 国产精品男女猛烈高潮激情 | 亚洲一区在线直播| 欧美国产精品久久| 韩国女主播一区二区三区| 中日韩男男gay无套| 亚洲高清成人| 欧美一区二区在线看| 欧美日本不卡| 在线精品视频免费观看| 亚洲欧美一级二级三级| 亚洲专区一区| 欧美人与禽性xxxxx杂性| 狠狠网亚洲精品| 亚洲欧美日韩中文视频| 亚洲在线视频网站| 欧美色大人视频| 亚洲国产精品久久久久秋霞影院 | 亚洲第一色中文字幕| 亚洲欧美一区二区视频| 欧美日韩国产精品成人| 一色屋精品视频在线观看网站| 午夜日韩激情| 欧美亚洲综合久久| 国产精品女主播| 9色porny自拍视频一区二区| 亚洲三级色网| 欧美成人国产va精品日本一级| 国产综合一区二区| 欧美亚洲在线观看| 欧美一区二区精品久久911| 欧美午夜一区二区| 99国产精品视频免费观看| 99re8这里有精品热视频免费| 欧美顶级大胆免费视频| 尤物yw午夜国产精品视频明星| 久久精品国产久精国产爱| 久久精品在线观看| 国产真实乱偷精品视频免| 性欧美1819sex性高清| 欧美一区二区三区在| 国产精品亚洲一区二区三区在线| 亚洲无限乱码一二三四麻| 亚洲综合色噜噜狠狠| 国产精品av免费在线观看| aa成人免费视频| 亚洲一级片在线观看| 国产精品高潮呻吟久久| 亚洲无线观看| 久久av一区二区| 精品电影一区| 日韩视频免费看| 欧美日韩在线电影| 亚洲视频狠狠| 欧美一乱一性一交一视频| 国产日本欧美视频| 久久精品盗摄| 欧美jizzhd精品欧美喷水| 亚洲全部视频| 亚洲一区二区三区在线看| 国产精品久久久亚洲一区| 亚洲欧美日韩精品久久| 久久日韩精品| 亚洲高清激情| 亚洲色图综合久久| 国产精品区一区二区三| 性欧美18~19sex高清播放| 久久人人97超碰人人澡爱香蕉| 亚洲国产精品久久精品怡红院| 99精品99| 国产精品日韩专区| 久久精品日韩欧美| 欧美精品一区二区三区很污很色的| 亚洲精品在线观看免费| 午夜精品网站| 精品不卡在线| 亚洲视频中文| 国产欧美精品日韩精品| 亚洲高清在线视频| 欧美美女bbbb| 亚洲欧美在线免费观看| 麻豆成人综合网| 夜夜嗨av一区二区三区免费区| 欧美专区日韩视频| 在线播放国产一区中文字幕剧情欧美 | 久久久青草婷婷精品综合日韩| 亚洲国产欧美另类丝袜| 亚洲免费影视第一页| 国一区二区在线观看| 99在线热播精品免费99热| 国产精品扒开腿爽爽爽视频| 久久国内精品自在自线400部| 欧美日韩免费| 久久福利影视| 欧美日韩网址| 久久av红桃一区二区小说| 欧美了一区在线观看| 亚洲欧美日韩在线综合| 欧美老女人xx| 久久精品夜色噜噜亚洲a∨| 欧美视频中文字幕在线| 亚洲韩国日本中文字幕| 国产精品免费看久久久香蕉| 亚洲精品婷婷| 国产亚洲欧美日韩精品| 在线亚洲欧美视频| 欲色影视综合吧| 久久精品国产96久久久香蕉| 亚洲精品欧美日韩| 久久亚洲精品一区| 亚洲午夜电影在线观看| 欧美国产日本韩| 欧美一区二区精品久久911| 欧美日韩国产成人在线91| 久久精品夜色噜噜亚洲aⅴ| 国产精品毛片一区二区三区| 亚洲精品视频在线看| 国产一区二区三区久久久久久久久| 亚洲午夜极品|