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

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 高速雙路數(shù)據(jù)采集系統(tǒng)

          高速雙路數(shù)據(jù)采集系統(tǒng)

          作者: 時(shí)間:2011-12-04 來(lái)源:網(wǎng)絡(luò) 收藏
          GPIF狀態(tài)機(jī)可以定義四個(gè)波形描述符,一般情況下是:FIFO讀,F(xiàn)IFO寫,單字/字節(jié)讀,單字/字節(jié)寫。Cypress提供了圖形化的波形描述工具GPIF Designer,用戶只需要給出GPIF波形,GPIF Designer會(huì)自動(dòng)生成C語(yǔ)言的波形代碼Gpif.c,可以直接鏈接到用戶的固件程序中。本文中用到了FIFORd描述符,波形如圖3所示。

          本文引用地址:http://www.ex-cimer.com/article/194659.htm


            圖3 GPIF Designer設(shè)計(jì)的 FIFORd波形

            4.系統(tǒng)軟件編寫

            系統(tǒng)軟件主要包括三個(gè)部分:下位機(jī)CY7C68013的固件,USB驅(qū)動(dòng)程序和上位機(jī)主機(jī)應(yīng)用程序。

            4.1 固件程序編寫

            對(duì)于下位機(jī)CY7C68013的固件編寫,Cypress公司給出了在Keil C51下的固件程序框架,固件框架完成EZ-USB FX2的初始化、USB標(biāo)準(zhǔn)設(shè)備請(qǐng)求處理、USB掛起模式下的電源管理服務(wù)和USB中斷處理。Cypress還提供了函數(shù)鉤子來(lái)加速用戶代碼的添加。用戶只需要簡(jiǎn)單地提供一個(gè)USB描述符表和執(zhí)行外圍功能的代碼即可。

            4.2 驅(qū)動(dòng)程序編寫

            Windows系統(tǒng)下的USB驅(qū)動(dòng)包括三層,從高到低依次是:USB客戶端設(shè)備驅(qū)動(dòng)(USB Client Device Driver)、USB總線驅(qū)動(dòng)(USB Hub(Bus) Driver)、主機(jī)控制器驅(qū)動(dòng)(Host Controller Driver)。后兩者由Windows系統(tǒng)提供,用戶只需要開(kāi)發(fā)USB客戶端設(shè)備驅(qū)動(dòng)程序,Cypress公司提供了一個(gè)通用的驅(qū)動(dòng)程序 (General Purpose Driver),即ezusb.sys,一般情況下,該驅(qū)動(dòng)程序可以滿足FX2開(kāi)發(fā)者的需要。本文使用了Cypress公司的通用驅(qū)動(dòng) ezusb.sys。為了使用ezusb.sys,用戶必須編寫對(duì)應(yīng)的inf文件,inf文件將特定的USB設(shè)備綁定給相應(yīng)的驅(qū)動(dòng)程序,該inf文件參照 ezusbw2k.inf編寫。

            4.3 主機(jī)應(yīng)用程序編寫

            通用驅(qū)動(dòng)程序GPD即ezusb.sys提供了基本USB設(shè)備請(qǐng)求和數(shù)據(jù)傳輸?shù)挠脩裟J浇涌?,用戶模式?yīng)用程序通過(guò)Win32函數(shù) DeviceIoControl()給設(shè)備驅(qū)動(dòng)器發(fā)送請(qǐng)求。Ezusb.sys提供了基本設(shè)備請(qǐng)求、批量讀寫、同步讀寫等一系列IOCTL函數(shù)。這里以 IOCTL_EZUSB_BULK_READ(EZUSB批量傳輸)為例加以介紹。

            批量傳輸模式下讀FX2的端點(diǎn)FIFO的關(guān)鍵代碼如下:

            DWORD ioctl_val=IOCTL_EZUSB_BULK_READ; //設(shè)置從設(shè)備中讀數(shù)據(jù)

            Bresult=DeviceIoControl ( hDevice , ioctl_val , //從設(shè)備讀數(shù)據(jù)

            bulkControl , //端點(diǎn)號(hào)

            sizeof ( BULK_TRANSFER_CONTROL), //傳入?yún)?shù)的大小

            buffer , //讀數(shù)據(jù)的緩沖區(qū)

            length , //讀數(shù)據(jù)的長(zhǎng)度

            (unsigned long *)nBytes , //驅(qū)動(dòng)返回的數(shù)據(jù)的實(shí)際長(zhǎng)度

            NULL);

            限于篇幅,其他程序代碼從略。

            6.結(jié)束語(yǔ)

            本文的創(chuàng)新點(diǎn)是充分發(fā)揮了CY7C68013的優(yōu)勢(shì),利用FX2的內(nèi)部可編程狀態(tài)機(jī)GPIF實(shí)現(xiàn)了與外圍FIFO“無(wú)膠”連接,避免了使用外圍ASIC或者CPLD、FPGA等的麻煩,系統(tǒng)升級(jí)方便。整個(gè)電路結(jié)構(gòu)緊湊,占用面積小,便于攜帶。

            本文采用Cypress公司的USB2.0芯片CY7C68013設(shè)計(jì)了一種通用的高速雙路同步,通過(guò)將其與高精度激光縱模分析儀連接進(jìn)行試驗(yàn),證明該系統(tǒng)實(shí)現(xiàn)了數(shù)據(jù)的高速實(shí)時(shí)傳輸,達(dá)到了預(yù)先設(shè)計(jì)的目標(biāo)。隨著USB口的進(jìn)一步普及和計(jì)算機(jī)的發(fā)展,本文設(shè)計(jì)的這種USB必將得到更加廣泛的應(yīng)用。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(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); })();