<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 2.0數據采集系統的程序設計

基于USB 2.0數據采集系統的程序設計

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

  1 引言

  在工業(yè)生產(chǎn)和科學(xué)技術(shù)研究的各行業(yè)中, 常利用PC或工控機對各種數據進(jìn)行采集, 如壓力、頻率、液位、溫度等。常用的采集方式是通過(guò)數據采集板卡, 其不僅安裝麻煩, 易受機箱內環(huán)境的干擾,而且由于受計算機插槽數量和地址、中斷資源的限制, 不可能掛接很多設備。而通用串行總線(xiàn)( Universa l Ser ia l Bus, USB )的出現, 很好地解決了以上這些沖突, 可實(shí)現低成本、高可靠性、多點(diǎn)的數據采集。USB 2. 0 是一種計算機外設連接規范, 除了USB1. 1中規定的1. 5Mb it / s和12Mb it / s兩個(gè)模式以外, 還增加了480Mbit / s( 60MB / s)這一 高速 模式, 將USB的應用范圍得到進(jìn)一步擴大。

  本文介紹的基于USB 2. 0的兩路力信號采集傳輸系統, 可用于銷(xiāo)盤(pán)式摩擦實(shí)驗機, 測量材料的摩擦系數。

  2 硬件設計

  2. 1 系統方案

  外部傳感器的摩擦力信號和壓力信號分別通過(guò)兩片8位AD轉換器轉換為數字信號, 由USB 芯片直接傳輸至計算機中處理, 并使用軟件演示兩路力之間的關(guān)系, 計算出材料的摩擦系數。主機同時(shí)負責數據傳輸的啟動(dòng)與停止, USB 控制器控制信號的采集并讀取到內部緩沖區。

  2. 2 控制器芯片選擇USB 控制器采用56 腳SSOP 封裝的CY7C68013, 屬于Cypresss 公司FX2 系列。

  Cypresss EZFX2將USB 2. 0的收發(fā)器、SIE、增強型8051 和一個(gè)可編程邏輯接口集成在一個(gè)芯片上。在EZUSB FX2 上, 靈活的SIE 處理大部分USB1. 1和USB 2. 0硬件協(xié)議, 釋放了用于特殊應用功能的嵌入式微控制器。通用可編程接口( GPIF)和主控/伺服端點(diǎn)FIFO ( 8..或16..位數據總線(xiàn)) 提供了其與常用接口, 如: ATA, UTOPA, EPP,PCMC IA, 以及大多數DSP /處理器的簡(jiǎn)單無(wú)縫連接。其有如下特點(diǎn):

  內核: 增強型8051的時(shí)鐘頻率高達48M; 每個(gè)周期4個(gè)時(shí)鐘; 運行來(lái)自?xún)炔縍AM的程序。

  四個(gè)可編程BULK / INTERRUPT / ISOCHRONOUS端點(diǎn): 緩沖區可選擇為雙緩沖區, 三緩沖區或四緩沖區; 外部數據接口可為8或16位。

  GPIF: GPIF對于FX2的FIFO來(lái)說(shuō)是一個(gè)內部主機, 可編程狀態(tài)機是它的核心。對于56腳封裝,它可以產(chǎn)生三個(gè)‘控制?’( CTL [ 2: 0] ) 和九個(gè)‘地址’ (GPIFADR [ 8: 0] )輸出, 能接收兩個(gè)外部和兩個(gè)內部‘準備’ ( RDY [ 1: 0] )輸入??刂茽顟B(tài)機由四個(gè)用戶(hù)定義的!波形描述‘控制’。內部RAM 中的波形描述符描述每個(gè)GPIF信號的行為。初始化階段, 波形描述符由FX2固件下載到GPIF寄存器中,通過(guò)GPIF接口在傳輸操作的代碼執行全過(guò)程使用它??刂戚敵鲂盘? CTL[ 1: 0] )通常用做閘門(mén)控制(使能信號線(xiàn))、讀/寫(xiě)信號線(xiàn)等。CTLx波形邊沿可通過(guò)編程進(jìn)行傳輸, 速率可達每個(gè)IFCLK時(shí)鐘一次( IFCLK 運行于48MH z)。RDY[ 1: 0]由GPIF取樣,而且能迫使一個(gè)傳輸處于等待, 繼續, 或重復狀態(tài),直到它們處于一個(gè)特殊的狀態(tài)。

  2. 3 硬件電路圖

  根據所選控制器和具體條件, 設計硬件電路如圖2所示。

  采用從主機下載固件程序的方法, SCL, SDA引腳通過(guò)兩個(gè)2. 2k 的電阻接3. 3V 電源, RESET引腳有滯后作用, 低電平有效; 內部PLL 在V cc 到達3. 3V后約200s后穩定。典型電路是外接一個(gè)RC電路(R = 100K, C = 0. 1F)提供RESET:信號;軟件部分采用GPIF Master模式, 16 位數據總線(xiàn),將兩路8位ADC 數據線(xiàn)直接連到GPIF數據總線(xiàn)上: FD[ 0: 7]接摩擦力數據信號FDATA [ 0: 8] ,FD[ 8 : 15] 接壓力數據信號PDATA [ 0 : 7 ]。

  CTL0, CTL1分別連接ADC 的READ 和WRITE 引腳, 用于控制其工作時(shí)序。REY0連接ADC 的INTR, 用于判斷是否開(kāi)始讀取數據, 并由此判斷何時(shí)改變GPIF狀態(tài)。

  芯片電源使用USB 總線(xiàn)電源, 采用MAX IM 公司的MAX882 芯片, 把5. 25V 的Vbus轉換為3.3V, 如圖3所示。

  對于USB 2. 0系統, D + 和D - 信號線(xiàn)上的差分特性阻抗會(huì )嚴重影響到信號眼圖、EOP、帶寬、信號抖動(dòng)和干擾的大小。根據U SB 2. 0規范的要求,差分線(xiàn)對的特性阻抗要求控制在90 ? 10% 以?xún)?使D+ 和D - 布線(xiàn)長(cháng)度在1英寸以?xún)? 匹配誤差在50m il以?xún)取?/P>

  3 軟件設計

  USB接口程序設計包括三部分: 固件程序設計、硬件驅動(dòng)程序設計、高級應用程序設計。

  3. 1 固件( firmw are)設計

  設備固件程序的主要功能是控制EZUSB FX2接收并處理USB 驅動(dòng)程序的請求、控制芯片中應用程序控制指令的接收、控制ADC 中的數據讀入等。該設計的固件程序除能夠使內置的GPIF在沒(méi)有CPU 的干涉下通過(guò)四個(gè)端點(diǎn)FIFO ( EP2、EP4、EP6、EP8)中的兩個(gè)處理數據傳輸外, 還有配置端點(diǎn)、通過(guò)控制端點(diǎn)0 來(lái)響應主機請求、控制和監測GPIF的活動(dòng)等固定工作。

  GPIF的波形描述符通過(guò)FX2的固件保存在波形寄存器中。FX2可以保持多達4個(gè)波形描述符,均可采用4種傳輸方式( Single 讀, Single寫(xiě), FIFO讀, FIFO寫(xiě))中的一種。

  一個(gè)波形由7 個(gè)可編程的狀態(tài)( S0 ~ S6 ) 和一個(gè)特殊的IDLE 狀態(tài)S7 組成, 當程序分支到它的IDLE 狀態(tài)時(shí)波形終止。從一種狀態(tài)到另一個(gè)狀態(tài)的轉換發(fā)生在IFCLK 的上升沿, 但GPIF可以保持在同一種狀態(tài)很多IFCLK 周期。每一個(gè)狀態(tài)都通過(guò)一個(gè)32位的狀態(tài)指令定義: 1) NDP狀態(tài): 在整個(gè)狀態(tài)期間, 控制輸出CTLx 被GPIF 指令定義為1, 0, 或三態(tài)。NDP狀態(tài)有一個(gè)以IFCLK 周期為單位的程序固定周期。如果一個(gè)波形定義的狀態(tài)少于7個(gè), 最后一個(gè)編程的狀態(tài)結束后不會(huì )自動(dòng)進(jìn)入IDLE狀態(tài), 即最后一個(gè)編程狀態(tài)的狀態(tài)指令必須包含一個(gè)IDLE 狀態(tài)的明確分支。2) DP 狀態(tài): 任何一個(gè)狀態(tài)都可以定義為DP, 允許GPIF采樣兩個(gè)信號, 對采樣值進(jìn)行布爾操作, 根據結果跳轉到其它狀態(tài)(或循環(huán)到自身)。若一個(gè)狀態(tài)指令包含一個(gè)控制任務(wù)(遞增FIFO 指針, 增加GPIFADR 地址等) , 這些任務(wù)總是在進(jìn)入該狀態(tài)時(shí)執行一次。若該狀態(tài)是一個(gè)循環(huán)到自身的DP, 可以編程為在每一個(gè)循環(huán)中重新執行控制任務(wù)。

  GPIF的設計使用的是Cypress的GPIF Design工具, 可根據ADC 的時(shí)序和控制要求方便地設計,設計波形如圖4。采用Sing le Read 方式, 每一個(gè)狀態(tài)的持續時(shí)間可設置為0~ 256個(gè)IFCLK 個(gè)周期。

  在Status中設置了一個(gè)DP, 當RDY0( INTR )信號為高時(shí), 跳轉到狀態(tài)0 重新下一次數據采集; 當為低時(shí), 則返回到自身繼續執行。定義好波形后, 由工具欄中的Too ls菜單中的Export to GPIF. c file導出為C語(yǔ)言文件。定義端點(diǎn)2, 6 為輸入端點(diǎn), 對應的FIFO 緩沖區為雙緩沖區, 保證不會(huì )因為緩沖區中的數據沒(méi)有傳送完畢而被覆蓋。每次采集數據的高字節存入端點(diǎn)2緩沖區, 低字節存入端點(diǎn)6緩沖區。

  3. 2 驅動(dòng)程序的設計

  該系統需要兩個(gè)驅動(dòng)程序, 下載固件的驅動(dòng)程序和功能驅動(dòng)程序。采用固件從主機下載的方式,由固件下載驅動(dòng)程序完成。當設備連接到U SB 總線(xiàn)后, 負責把固件程序下載到CY 7C68013的RAM中, 完成重列舉工作, 使內核正常工作。主機根據其設置的V ID /PID尋找并安裝功能驅動(dòng)程序, 從而實(shí)現主機與設備的通信。用戶(hù)程序與設備的通信及控制由功能驅動(dòng)程序負責完成。

  驅動(dòng)程序設計采用WDM (W indow s DriveMode)。其引入設備對象的概念來(lái)描述一個(gè)設備,主要包括物理設備對象( PDO )、功能設備對象( FDO)、過(guò)濾設備對象( f ilter DO )。其中, PDO 對應實(shí)際的物理設備, FDO 和f ilterDO 是相應驅動(dòng)程序的處理對象。WDM 驅動(dòng)程序直接操作的不是硬件本身, 而是相應的PDO, FDO, 和filter DO。當用戶(hù)發(fā)出請求時(shí), 操作系統會(huì )將其打包形成一個(gè)IRP結構, 并發(fā)送至驅動(dòng)程序, 通過(guò)識別IRP 中的設備對象來(lái)區分它是發(fā)送給哪個(gè)設備。

  USB設備最大優(yōu)點(diǎn)就是即插即用功能( PnP) ,PnP設備具有不同的設備狀態(tài), 當它接收到某些PnP IRP時(shí), 其所處的設備狀態(tài)就會(huì )發(fā)生改變。圖5描述了PnP設備狀態(tài)及其相應的PnP IRP。

  為保證USB設備連入系統時(shí), W indow s能夠找到并加載與其進(jìn)行通信的設備驅動(dòng)程序, 除提供的編譯好的驅動(dòng)程序外, 還需為其提供一個(gè)設備信息文件( DIF) , 該文件包含USB 設備、設備驅動(dòng)程序及其安裝過(guò)程的詳細信息, 如該為設備使用哪個(gè)驅動(dòng)、系統注冊表中應存儲哪些信息等, 以確保其硬件設備能正確地配置和安裝。在U SB 設備驅動(dòng)程序安裝完畢后, 該設備的一些基本信息將被存儲到W indow s系統注冊表中, 驅動(dòng)程序可執行文件和其DIF也被復制到指定的系統目錄, 該USB 設備將出現在W indow s設備管理器中。

  3. 3 應用程序設計

  高級應用程序建立在驅動(dòng)程序之上, 主機應用程序的編寫(xiě)使用VC 編譯環(huán)境中的API函數實(shí)現。

  應用程序的編程方法與串口編程類(lèi)似。首先必須查找設備, 打開(kāi)設備的句柄, 然后進(jìn)行讀寫(xiě)和控制操作, 最后是關(guān)閉設備句柄。為了提高效率,可使用多線(xiàn)程技術(shù)實(shí)現讀寫(xiě)。

  4 結語(yǔ)

  本文設計的用于摩擦實(shí)驗機的USB 數據采集系統, 采用Cypress FX2系列芯片CY7C68013, 利用其GPIF Master模式的16位數據線(xiàn)與兩塊8位數模轉換芯片連接, 準確地保證了兩路力信號的同步。該芯片靈活的接口大大簡(jiǎn)化了硬件連接。其固件程序自動(dòng)下載功能可方便地對固件進(jìn)行修改和調試。此USB設備的即插即用特性滿(mǎn)足了該系統便攜式及使用方便的要求。



評論


相關(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>