新聞中心

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

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

        作者: 時間:2017-10-20 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/201710/366704.htm

          數據采集系統方案設計

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

          

          圖1 數據采集系統框圖

          

          圖2 系統硬件電路

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

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

          驅動程序和固件設計

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

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

          

          圖3 調理電路

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

          Void TD_Poll(void)

          {

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

          {

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

          {

          If(!(EP24FIFOFLGS 0x01)) //判斷FIFO是否不滿

          {

          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(!(GPIFTRIG 0x80))

          {;}

          SYNCDELAY;

          }

          }

          }

          }



        關鍵詞: CY7C68013 USB2.0 EZ-USB

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 苏尼特右旗| 乌审旗| 汉川市| 河曲县| 永修县| 二连浩特市| 综艺| 衡南县| 青浦区| 太谷县| 邛崃市| 九龙城区| 哈尔滨市| 皮山县| 大洼县| 七台河市| 宁波市| 茌平县| 黄冈市| 鄱阳县| 涞源县| 盘锦市| 葫芦岛市| 刚察县| 西乡县| 廉江市| 安丘市| 慈溪市| 陕西省| 义乌市| 民和| 南城县| 绥中县| 梓潼县| 达拉特旗| 丹棱县| 叶城县| 鄄城县| 榕江县| 平泉县| 肇州县|