<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 高速USB數(shù)據(jù)采集系統(tǒng)的設(shè)計

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

          ——
          作者:北京機械工業(yè)學(xué)院 閆亞飛 祝連慶 時間:2006-09-19 來源:今日電子 收藏

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

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

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


          圖1 數(shù)據(jù)采集系統(tǒng)框圖


          圖2 系統(tǒng)硬件電路

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

          數(shù)據(jù)采集前端的調(diào)理電路如圖3所示,本設(shè)計采用了限幅、降壓、濾波和增加輸入阻抗的措施來保護后端的轉(zhuǎn)換芯片。

          驅(qū)動程序和固件設(shè)計

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


          圖3 調(diào)理電路

          PERIPH.C:用戶必須將PERIPH.C實例化,它負責(zé)系統(tǒng)周邊器件的互聯(lián)。固件的設(shè)計主要針對這個文件,用戶必須根據(jù)自己系統(tǒng)的需要,實例化這個文件,以實現(xiàn)所需的功能。在固件程序中,最重要的是TD_init()和TD_poll()這兩個函數(shù)。以TD_poll()函數(shù)為例,在TD_poll()中主要完成外部FIFO狀態(tài)的檢測和數(shù)據(jù)的傳輸,程序主體部分如下。固件調(diào)試時,可以使用Cypress提供的EZ-USB control panel。
          Void TD_Poll(void)
          {
          If(GPIFTRIG & 0x80) //判斷GPIF是否空閑
          {
          If(EXTFIFONOTEMPTY ) //判斷外部FIFO是否非空
          {
          If(!(EP24FIFOFLGS & 0x01)) //判斷FIFO是否不滿
          {
          IF(enum_high_speed)
          {
          SYNCDELAY;
          GPIFTCB1=0x02; //設(shè)置處理計數(shù)
          SYNCDELAY;
          GPIFTCB0=0x00;
          SYNCDELAY;
          }
          Else
          {
          SYNCDELAY;
          GPIFTCB1=0x00;
          SYNCDELAY;
          GPIFTCB0=0x20;
          SYNCDELAY;
          }
          Setup_FLOWSTATE_Read();
          SYNCDELAY;
          GPIFTRIG=GPIFTRIGRD|GPIF_EP2;
          SYNCDELAY;
          While(!(GPIFTRIG & 0x80))
           {;}
          SYNCDELAY;
          }
          }
          }
          }



          關(guān)鍵詞: 消費電子 消費電子

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();