0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通過采用FPGA器件和EZ-USB FX2芯片實現(xiàn)數(shù)據(jù)采集和傳輸系統(tǒng)設(shè)計

電子設(shè)計 ? 來源:郭婷 ? 作者:電子設(shè)計 ? 2019-05-08 08:10 ? 次閱讀

引 言

隨著社會的發(fā)展和技術(shù)的進步,各種計算機的外圍接口不斷的推陳出新。USB接口已漸漸成為現(xiàn)今個人計算機上最重要的接口之一,并以其傳輸速度快、使用方便和價格低廉等特點成為現(xiàn)今一般消費性電子產(chǎn)品工業(yè)控制設(shè)備上不可缺少的接口。Cypress公司的EZ-USBFX2是一個USB2.0集成外圍控制器,它具有通用串行總線(USB)的3種傳輸模式:1.5 Mb/s的低速模式,12 Mb/s的全速模式,480 Mb/s的高速模式。因此,本設(shè)計選用USB2.0芯片CY7C68012、Altera公司的FPGA和TLC5510組成一個通用的數(shù)據(jù)采集和傳輸系統(tǒng)。該系統(tǒng)結(jié)構(gòu)簡單,采集和數(shù)據(jù)傳輸可靠,能夠滿足現(xiàn)今高速設(shè)備的要求。

1 系統(tǒng)硬件設(shè)計

本系統(tǒng)主要分為兩個部分,一部分是由2片TLC5510和FPGA構(gòu)成的數(shù)據(jù)采集模塊,另一部分是由FPGA和EZ—USB FX2構(gòu)成的數(shù)據(jù)傳輸模塊。系統(tǒng)的框圖如圖1所示。

通過采用FPGA器件和EZ-USB FX2芯片實現(xiàn)數(shù)據(jù)采集和傳輸系統(tǒng)設(shè)計

(1)數(shù)據(jù)采集模塊

經(jīng)過調(diào)理后的信號進入模數(shù)轉(zhuǎn)換電路,選用的高速AD芯片是TI公司的TLC5510。TLC5510是CMOS、8位、20 Msps的模數(shù)轉(zhuǎn)換電路。它采用半閃速結(jié)構(gòu),單電源5 V工作時,功耗只有100 mW,內(nèi)含采樣和保持電路,具有高阻抗方式的并行接口和內(nèi)部基準電阻。與閃速轉(zhuǎn)換器相比,半閃速結(jié)構(gòu)減少了功率損耗和晶片尺寸。通過在兩步過程中實現(xiàn)轉(zhuǎn)換,可以大量地減少比較器的數(shù)目,轉(zhuǎn)換數(shù)據(jù)的等待時間為2.5個時鐘周期,且高速轉(zhuǎn)換的同時能夠保持較低的功耗。TLC5510與FPGA的接口電路如圖2所示。

通過采用FPGA器件和EZ-USB FX2芯片實現(xiàn)數(shù)據(jù)采集和傳輸系統(tǒng)設(shè)計

FPGA提供TLC5510 20 MHz的工作時鐘和使能輸出信號OE,低電平有效,同時接受TLC5510的采樣數(shù)據(jù)。由于系統(tǒng)需要同步的兩路采樣,所以由FPGA輸出的時鐘和使能輸出信號OE同時控制2個TLC5510。這樣FPGA就可以同時收到兩路同時采樣的信號數(shù)據(jù),將其存入兩個獨立的異步FIFO中。

值的注意的是,實驗中將FPGA產(chǎn)生的工作時鐘和使能輸出信號先輸入74HCT573,然后由74HCT573的輸出去控制兩路的TLC5510。這主要是完成將FPGA的CMOS電平轉(zhuǎn)換成TTL電平的工作。在實驗的初期,未經(jīng)過電平轉(zhuǎn)換的信號在控制TLC5510時,得不到穩(wěn)定數(shù)據(jù)。后來經(jīng)過改善后,TLC5510能夠穩(wěn)定、準確地完成采樣和數(shù)據(jù)輸出。

(2)數(shù)據(jù)傳輸模塊

在數(shù)據(jù)傳輸模塊中,為了保證較高的傳輸速度,使用不經(jīng)過CPU的SLAVEFIFO控制工作模式。模塊的基本工作過程為:當A/D采樣數(shù)據(jù)存儲滿FPGA中的FIFO后,F(xiàn)PGA根據(jù)SLAVEFIFO的控制時序產(chǎn)生相應(yīng)的控制信號,將在FIFO中的數(shù)據(jù)傳輸給EZ-IJSB FX2的內(nèi)部端點FIFO,而當內(nèi)部端點存儲滿后,F(xiàn)X2自動將數(shù)據(jù)傳輸?shù)?a target="_blank">上位機。外部控制器FPGA對FX2的控制進程如下:

①IDLE,當寫事件發(fā)生時,轉(zhuǎn)向狀態(tài)1。

②狀態(tài)1,指向EZ-LJSB FX2的內(nèi)部端點IN FIFO,激活FIFOADR[1:0],轉(zhuǎn)向狀態(tài)2。

③狀態(tài)2,如果內(nèi)部端點FIF0滿標志為“假”(FIFO不滿),則轉(zhuǎn)向狀態(tài)3;否則停留在狀態(tài)2。

④狀態(tài)3,傳送總線驅(qū)動數(shù)據(jù)。產(chǎn)生一個SLWR跳變,轉(zhuǎn)向狀態(tài)4。

⑤狀態(tài)4,如果有更多的數(shù)據(jù)要寫,則轉(zhuǎn)向狀態(tài)2;否則,轉(zhuǎn)向IDLE。

EZ-JSB FX2內(nèi)部端點FIFO異步寫的時序如圖3所示。

通過采用FPGA器件和EZ-USB FX2芯片實現(xiàn)數(shù)據(jù)采集和傳輸系統(tǒng)設(shè)計

2 FPGA的模塊設(shè)計

在系統(tǒng)中,F(xiàn)PGA構(gòu)成了數(shù)據(jù)采集系統(tǒng)和數(shù)據(jù)傳輸系統(tǒng)的“橋梁”,完成對TLC25510的控制和數(shù)據(jù)的存儲,同時也完成對EZ-USB FX2單片機的控制。利用FPGA強大的功能,使電路的結(jié)構(gòu)得到了簡化,不需要利用分立器件來完成對數(shù)據(jù)的存儲。因此,在FPGA中需要構(gòu)成4個模塊:2片F(xiàn)IFO數(shù)據(jù)存儲模塊、數(shù)據(jù)通道選擇模塊、控制模塊和輸出20 MHz時鐘的PLL模塊。

(1)2片F(xiàn)IFO數(shù)據(jù)存儲模塊

FIFO數(shù)據(jù)存儲模塊主要完成對A/D轉(zhuǎn)換數(shù)據(jù)的存儲。由于需要兩路同時采集數(shù)據(jù),所以要有2個FIFO模塊,這樣易于對數(shù)據(jù)的存儲和傳輸控制。每個FIFO存儲模塊的存儲容量定為2 048 B,可通過MegaWizard工具來調(diào)用。

(2)數(shù)據(jù)通道選擇模塊

數(shù)據(jù)通道選擇模塊主要是針對兩路的數(shù)據(jù)讀取和傳輸而設(shè)計的。當A/D轉(zhuǎn)換器采集到對應(yīng)的數(shù)據(jù)后,存入兩個異步FIFO存儲模塊中。在兩個異步FIFO存儲模塊存儲滿后,對FIFO存儲模塊數(shù)據(jù)的讀取是關(guān)鍵。數(shù)據(jù)通道選擇模塊的基本原理是在控制模塊對讀取數(shù)據(jù)進行計數(shù),當把其中的一個FIFO存儲模塊讀取完后,由控制模塊發(fā)出通道切換信號,由數(shù)據(jù)通道選擇模塊切換數(shù)據(jù)通道,再讀取另一個FIFO存儲模塊的數(shù)據(jù)。

(3)控制模塊

控制模塊要完成對TLC5510、FIFO存儲模塊、數(shù)據(jù)選擇模塊和EZ—USB FX2的控制,這是整個系統(tǒng)的關(guān)鍵。根據(jù)系統(tǒng)實現(xiàn)的功能和各個模塊的控制時序,控制模塊將產(chǎn)生相應(yīng)的控制信號,實現(xiàn)系統(tǒng)的采集和存儲的功能。

(4)20 MHz時鐘的PLL模塊

系統(tǒng)提供的FPGA外部時鐘頻率為50 MHz,而TLC5510的最大采樣工作頻率為20 MHz。所以通過對前置分頻參數(shù)N=5、倍頻器參數(shù)M=2的設(shè)置,將50 MHz鐘頻率分頻成20 MHz的時鐘作為采樣時鐘和系統(tǒng)的工作時鐘。

3 EZ—USB FX2的固件設(shè)計

固件程序是指運行在設(shè)備CPU中的程序。只有在該程序運行時,外設(shè)才能稱為具有給定功能的外圍設(shè)備。C2ypress公司為FX2固件開發(fā)提供了一個固件庫和固件框架,都是在Keil C51集成開發(fā)環(huán)境下開發(fā)的。固件庫提供了一些常量、數(shù)據(jù)結(jié)構(gòu)、宏、函數(shù)來簡化用戶對芯片的使用。固件框架實現(xiàn)了初始化芯片、處理USB標準設(shè)備請求以及掛起狀態(tài)下的電源管理等功能。該框架不添加任何代碼,編譯后生成的.HEX文件載人芯片就能和主機進行基本的USB通信。用戶主要的工作就是選擇適合的傳輸方式,添加需要使用的端點,在框架預(yù)留的地方(如TD_Init()、TD_Poll()等函數(shù)中)添加初始化代碼和完成特定功能的代碼。這樣大大簡化了用戶對程序的編寫,在不十分了解USB2.O協(xié)議的情況下,也能通過代碼的編寫,實現(xiàn)USB的傳輸功能。

4 EZ—USB FX2的驅(qū)動程序

該系統(tǒng)需要通用驅(qū)動程序和下載固件的驅(qū)動程序。通用驅(qū)動程序完成與外設(shè)和用戶程序的通信及控制;而下載固件的驅(qū)動程序則只負責(zé)在外設(shè)連接USB總線后把特定的固件程序下載到FX2的RAM中,使FX2的CPU重啟,模擬斷開與USB總線連接,完成對外設(shè)的重新設(shè)置。FX2根據(jù)新的設(shè)置安裝通用驅(qū)動程序,重新枚舉外設(shè)為一個新的USB外設(shè)。通用驅(qū)動程序一般不需要重新編寫,用Cypress公司已經(jīng)編好的驅(qū)動ezusb.sys;而下載固件程序的驅(qū)動則必須定做。

5 上位機用戶程序

上位機用戶程序主要通過VC++完成。實現(xiàn)從USB設(shè)備從下位機讀取指定數(shù)量的數(shù)據(jù)和向下位機發(fā)送特定的控制數(shù)據(jù)。用戶程序?qū)Z—USB FX2的控制,主要是通過I/0控制調(diào)用來訪問ezusb.sys通用驅(qū)動程序,而對I/O控制的調(diào)用是通過win32的API函數(shù)來完成的。因此,用戶程序通過對API函數(shù)的調(diào)用來實現(xiàn)與驅(qū)動程序進而與硬件的通信。API函數(shù)的執(zhí)行與驅(qū)動函數(shù)中的一些分發(fā)例程相對應(yīng)。與EZ-USB FX2通信常用的API函數(shù)如表1所列。

通過采用FPGA器件和EZ-USB FX2芯片實現(xiàn)數(shù)據(jù)采集和傳輸系統(tǒng)設(shè)計

應(yīng)用程序先通過CreatFile()得到設(shè)備驅(qū)動程序的句柄,然后使用DeviceloControl()來提交I/O控制碼,并且設(shè)置好讀取和發(fā)送數(shù)據(jù)的緩沖區(qū),最后通過CloseFile()來關(guān)閉設(shè)備。圖4是上位機應(yīng)用程序界面。

通過采用FPGA器件和EZ-USB FX2芯片實現(xiàn)數(shù)據(jù)采集和傳輸系統(tǒng)設(shè)計

結(jié) 語

EZ—USB FX2使上位機與下位機之間的數(shù)據(jù)傳輸更加快捷和可靠?;贔PGA和EZ-USB FX2的數(shù)據(jù)采集和傳輸系統(tǒng)滿足現(xiàn)代高速設(shè)備對傳輸速度的要求,解決了傳輸速度慢的瓶頸。通過FPGA的模塊設(shè)計、EZ-USB FX2的固件設(shè)計和上層應(yīng)用程序設(shè)計,實現(xiàn)了整個系統(tǒng)的數(shù)據(jù)采集和傳輸。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21538

    瀏覽量

    600467
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16028

    瀏覽量

    176642
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7846

    瀏覽量

    263297
收藏 人收藏

    評論

    相關(guān)推薦

    高速USB數(shù)據(jù)采集系統(tǒng)方案設(shè)計

    本文將介紹基于EZ-USB FX2系列CY7C68013芯片的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計,該系統(tǒng)具有
    發(fā)表于 10-27 13:44 ?2342次閱讀
    高速<b class='flag-5'>USB</b><b class='flag-5'>數(shù)據(jù)采集</b><b class='flag-5'>系統(tǒng)</b>方案設(shè)計

    如何將EZ-USB FX3代碼移植到FX2

    親愛的專家我們有一個使用EZ-USB FX2LP的產(chǎn)品。我們想用這個芯片來編程系統(tǒng)中的Xilinx FPGA PROM。我找到了一個848
    發(fā)表于 10-16 20:02

    EZ-USB FX2無法工作

    這是我第一次在柏樹論壇上發(fā)表文章,希望有人能幫上忙。這是我使用FX2的嘗試。我一直在努力讓EZ-USB FX2從ADC(模擬設(shè)備9251)傳輸數(shù)據(jù)
    發(fā)表于 03-07 11:38

    USB控制中心找不到賽普拉斯EZ-USB FX2(689613)EEPROM丟失

    你好,先生。我在PC上插入了FX2板,并自動安裝USB驅(qū)動程序,它是可以的,當我瀏覽器設(shè)備管理器(WindowsXP)時,它也顯示“CyPress EZ-USB FX2(68613)-
    發(fā)表于 05-09 11:12

    基于EZ_USBFX2的通用數(shù)據(jù)傳輸模塊設(shè)計

    介紹了一種基于EZ_USB FX2 單片機的通用數(shù)據(jù)傳輸模塊,討論了USB 控制器EZ-USB FX2
    發(fā)表于 08-13 09:44 ?34次下載

    基于USB2.0技術(shù)的高速雙路數(shù)據(jù)采集系統(tǒng)

    本文設(shè)計了一種基于USB2.0 芯片CY7C68013 和Maxim 公司的高速并行模數(shù)轉(zhuǎn)換芯片Max1195 的高速雙路數(shù)據(jù)采集系統(tǒng)
    發(fā)表于 09-15 15:39 ?22次下載

    利用USB2.0技術(shù)的高速雙路數(shù)據(jù)采集系統(tǒng)

    利用USB2.0技術(shù)的高速雙路數(shù)據(jù)采集系統(tǒng) 摘要:本文設(shè)計了一種基于USB2.0芯片CY7C68013和Maxim公司的高速并行模數(shù)轉(zhuǎn)換
    發(fā)表于 03-03 10:33 ?1101次閱讀
    利用<b class='flag-5'>USB</b>2.0技術(shù)的高速雙路<b class='flag-5'>數(shù)據(jù)采集</b><b class='flag-5'>系統(tǒng)</b>

    星載電子設(shè)備多余物數(shù)據(jù)采集系統(tǒng)的設(shè)計

    實現(xiàn)尺寸較大、內(nèi)部結(jié)構(gòu)較為復(fù)雜的星載電子設(shè)備的多余物自動檢測,設(shè)計了以EZ-USB FX2和CPLD芯片為核心器件
    發(fā)表于 03-21 10:54 ?0次下載

    EZ-USB FX2接口在誘發(fā)電位儀系統(tǒng)中的應(yīng)用

    隨著外圍設(shè)備的多樣化和大量數(shù)據(jù)傳輸的需要,USB接口應(yīng)用范圍越來越廣泛。介紹EZ-USB FX2接口在誘發(fā)電位儀系統(tǒng)中的應(yīng)用。首先給出了整個
    發(fā)表于 05-03 18:21 ?36次下載
    <b class='flag-5'>EZ-USB</b> <b class='flag-5'>FX2</b>接口在誘發(fā)電位儀<b class='flag-5'>系統(tǒng)</b>中的應(yīng)用

    基于EZ USB FX2USB2.0系統(tǒng)軟件開發(fā)

    以CYPRESS 公司的U SB210 控制芯片EZ U SB FX2 為例, 描述基于U SB 的數(shù)據(jù)傳輸系統(tǒng)的軟件
    發(fā)表于 09-13 17:38 ?49次下載
    基于<b class='flag-5'>EZ</b> <b class='flag-5'>USB</b> <b class='flag-5'>FX2</b>的<b class='flag-5'>USB</b>2.0<b class='flag-5'>系統(tǒng)</b>軟件開發(fā)

    TMS320F2812利用EZ USB FX2與PC機實現(xiàn)USB通信

    介紹了TMS320F2812利用EZ USB FX2與PC機實現(xiàn)USB通信的方法。首先介紹了EZ
    發(fā)表于 09-13 17:43 ?44次下載
    TMS320F2812利用<b class='flag-5'>EZ</b> <b class='flag-5'>USB</b> <b class='flag-5'>FX2</b>與PC機<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>USB</b>通信

    基于EZ-USB FX2和MAX1195的數(shù)據(jù)采集系統(tǒng)

    本文設(shè)計了一種基于EZ-USB FX2和MAX1195的數(shù)據(jù)采集系統(tǒng),該系統(tǒng)符合USB2.0協(xié)議
    發(fā)表于 12-06 11:44 ?2631次閱讀
    基于<b class='flag-5'>EZ-USB</b> <b class='flag-5'>FX2</b>和MAX1195的<b class='flag-5'>數(shù)據(jù)采集</b><b class='flag-5'>系統(tǒng)</b>

    CY3674 EZ-USB? FX1 / CY3684 EZ-USB FX2LP? Development Kit

    to work with the EZ-USB FX2LP and FX1 chips. FX1 is a full-speed only version of
    發(fā)表于 06-21 15:39 ?27次下載

    USBEZ-USB? FX2? 和 FX2LP? 中通過同步或批量端點的流數(shù)據(jù)-AN4053

    USBEZ-USB? FX2? 和 FX2LP? 中通過同步或批量端點的流數(shù)據(jù)-AN4053
    發(fā)表于 10-10 15:49 ?10次下載
    <b class='flag-5'>USB</b> 在<b class='flag-5'>EZ-USB</b>? <b class='flag-5'>FX2</b>? 和 <b class='flag-5'>FX2</b>LP? 中<b class='flag-5'>通過</b>同步或批量端點的流<b class='flag-5'>數(shù)據(jù)</b>-AN4053

    基于接口芯片FPGA器件實現(xiàn)生物電信號數(shù)據(jù)采集的設(shè)計

    系統(tǒng)結(jié)構(gòu)框架如圖1所示。通過導(dǎo)聯(lián)由人體采集到的心電、腦電、肌電等信號調(diào)理電路后,由FPGA內(nèi)部邏輯控制A/D轉(zhuǎn)換對其采樣。將經(jīng)采樣并通過A/
    發(fā)表于 08-13 16:42 ?1152次閱讀
    基于接口<b class='flag-5'>芯片</b>與<b class='flag-5'>FPGA</b><b class='flag-5'>器件</b><b class='flag-5'>實現(xiàn)</b>生物電信號<b class='flag-5'>數(shù)據(jù)采集</b>的設(shè)計