<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 高速USB數據采集系統方案設計

高速USB數據采集系統方案設計

作者: 時(shí)間:2017-10-20 來(lái)源:網(wǎng)絡(luò ) 收藏

  在圖像處理、瞬態(tài)信號測量等一些高速、高精度的應用中,需要進(jìn)行高速數據采集。USB 2.0接口以其高速率等優(yōu)點(diǎn)漸有取代傳統ISA及PCI數據總線(xiàn)的趨勢,熱插拔特性也使其成為各種PC外設的首選接口。 FX2是Cypress公司推出的集成USB 2.0的微處理器,它集成了USB 2.0收發(fā)器、SIE(串行接口引擎)、增強的8051微控制器和可編程的外圍接口。本文將介紹基于 FX2系列($5.4120)芯片的高速數據采集系統的設計,該系統具有限幅保護功能,固件和驅動(dòng)程序的編寫(xiě)簡(jiǎn)便,能夠完成對數據的高速采集和傳送。

本文引用地址:http://dyxdggzs.com/article/201710/366704.htm

  數據采集系統方案設計

  數據采集系統的框圖如圖1所示,硬件電路如圖2所示。其中,AD1674($17.8680)是l2位模數轉換芯片,采用逐次比較方式工作。CPLD主要用于控制ADC以及FIFO的時(shí)序、控制ADC的啟動(dòng)與停止和查詢(xún)ADC的狀態(tài)等。FIFO主要起著(zhù)高速數據緩沖的作用。

  

  圖1 數據采集系統框圖

  

  圖2 系統硬件電路

  和AD1674之間通過(guò)CPLD連接,實(shí)現相關(guān)控制線(xiàn)和數據線(xiàn)的譯碼。在的控制下,首先對AD1674進(jìn)行間隔采樣,然后把結果傳送到FIFO中,當采集到一定量的數據后,CY7C68013將數據打包通過(guò)USB總線(xiàn)傳到PC,由高級應用程序進(jìn)行數據處理。擴展的 RS232($780.5000)接口可以和外部設備進(jìn)行通信。上電時(shí),CY7C68013從外部的E2PROM中通過(guò)I2C總線(xiàn)自動(dòng)裝載到內部的RAM中,便于固件的修改和升級。

  數據采集前端的調理電路如圖3所示,本設計采用了限幅、降壓、濾波和增加輸入阻抗的措施來(lái)保護后端的轉換芯片。

  驅動(dòng)程序和固件設計

  USB設備驅動(dòng)程序基于WDM。WDM型驅動(dòng)程序是內核程序,與標準的Win32用戶(hù)態(tài)程序不同,采用了分層處理的方法。通過(guò)它用戶(hù)無(wú)須直接與硬件打交道,只需通過(guò)下層驅動(dòng)程序提供的接口訪(fǎng)問(wèn)硬件。因此,USB設備驅動(dòng)程序不必具體對硬件編程,所有的USB命令、讀寫(xiě)操作通過(guò)總線(xiàn)驅動(dòng)程序轉給USB設備。但是,USB設備驅動(dòng)程序必須定義與外部設備的通信接口和通信的數據格式,也必須定義與應用程序的接口。Cypress公司提供了完整的 CY7C68013驅動(dòng)程序源碼、控制面板程序及固件的框架,這大大加快了用戶(hù)開(kāi)發(fā)的進(jìn)度。用戶(hù)只需稍加修改或無(wú)須任何修改即可使用現有驅動(dòng)程序,軟件開(kāi)發(fā)者大量的時(shí)間主要集中在應用程序和固件的開(kāi)發(fā)。根據用戶(hù)自己的需求,一般只需修改DeviceIoControl例程。本設計主要增加了控制數據傳輸函數、啟動(dòng)和停止ADC、復位FIFO等。Cypress為CY7C68013提供了開(kāi)發(fā)框架,其中兩個(gè)程序如下。

  FW.C:FW.C中包含了程序框架的MAIN函數,管理整個(gè)51內核的運行,因為這部分的功能已經(jīng)進(jìn)行了精心劃分,一般是不用改動(dòng)的。

  

  圖3 調理電路

  PERIPH.C:用戶(hù)必須將PERIPH.C實(shí)例化,它負責系統周邊器件的互聯(lián)。固件的設計主要針對這個(gè)文件,用戶(hù)必須根據自己系統的需要,實(shí)例化這個(gè)文件,以實(shí)現所需的功能。在固件程序中,最重要的是TD_init()和TD_poll()這兩個(gè)函數。以TD_poll()函數為例,在 TD_poll()中主要完成外部FIFO狀態(tài)的檢測和數據的傳輸,程序主體部分如下。固件調試時(shí),可以使用Cypress提供的 control panel。

  Void TD_Poll(void)

  {

  If(GPIFTRIG 0x80) //判斷GPIF是否空閑

  {

  If(EXTFIFONOTEMPTY ) //判斷外部FIFO是否非空

  {

  If(?。‥P24FIFOFLGS 0x01)) //判斷FIFO是否不滿(mǎn)

  {

  IF(enum_high_speed)

  {

  SYNCDELAY;

  GPIFTCB1=0x02; //設置處理計數

  SYNCDELAY;

  GPIFTCB0=0x00;

  SYNCDELAY;

  }

  Else

  {

  SYNCDELAY;

  GPIFTCB1=0x00;

  SYNCDELAY;

  GPIFTCB0=0x20;

  SYNCDELAY;

  }

  Setup_FLOWSTATE_Read();

  SYNCDELAY;

  GPIFTRIG=GPIFTRIGRD|GPIF_EP2;

  SYNCDELAY;

  While(?。℅PIFTRIG 0x80))

  {;}

  SYNCDELAY;

  }

  }

  }

  }



關(guān)鍵詞: CY7C68013 USB2.0 EZ-USB

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>