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

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于USB2.O的軌道電路信號(hào)車(chē)載采集與分析系統(tǒng)

          基于USB2.O的軌道電路信號(hào)車(chē)載采集與分析系統(tǒng)

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

          2.2 主控芯片的工作方式
          本設(shè)計(jì)采用的主控芯片是Cypress公司的2.0控制芯片CY7C68013,它與計(jì)算機(jī)通過(guò)接口相連,使設(shè)備能在PC機(jī)的控制下進(jìn)行操作。主控芯片通過(guò)邏輯控制電路連接到FIFO和A/D轉(zhuǎn)換后的數(shù)據(jù)傳送至FIFO芯片進(jìn)行緩沖,緩沖后的數(shù)據(jù)輸入主控芯片的從FIFO中,
          然后從FIFO以DMA(直接內(nèi)存存取)的方式經(jīng)由SIE(串行接口引擎)傳給PC機(jī)。
          為了實(shí)現(xiàn)高速數(shù)據(jù)的功能,A/D芯片采用的ADl674,它是一款12位,最高轉(zhuǎn)換速度可達(dá)100kHz的A/D轉(zhuǎn)換芯片,考慮到對(duì)FIFO容量的需求,系統(tǒng)采用GPLD和FIFO來(lái)實(shí)現(xiàn)。選用IDT7205完成數(shù)據(jù)緩存。其最高工作頻率為133MHz,容量為8kB,能滿足設(shè)計(jì)要求。
          CY7C68013與外設(shè)有兩種接口方式:通用可編程接口GPIF方式和從屬FIFO方式。GPIF的核心就是一個(gè)可編程狀態(tài)機(jī),可產(chǎn)生6個(gè)控制和9個(gè)地址輸入信號(hào),并能接收6個(gè)外部和2個(gè)內(nèi)部“ready”輸入信號(hào)。GPIF向外部接口產(chǎn)生正確的選通信號(hào)和握手信號(hào),外部接口用于對(duì)FIFO數(shù)據(jù)的傳進(jìn)和傳出。GPIF是主機(jī)的方式,而從屬FIFO方式是從機(jī)方式,它由外部控制器控制,可像對(duì)普通FIFO一樣對(duì)FX2的多層緩沖FIFO進(jìn)行讀寫(xiě)。FX2的從屬FIFO工作方式可設(shè)為同步或異步,工作時(shí)鐘可選為內(nèi)部產(chǎn)生或外部輸入,其它控制信號(hào)也可根據(jù)需要設(shè)置為高有效或低有效。
          2.3 FlF0的數(shù)據(jù)緩存作用
          由于A/D最高采樣頻率可達(dá)100MHz,而主控芯片CY7C68013中的FIFO只有4kB,不能滿足A/D數(shù)據(jù)轉(zhuǎn)換器的要求,因此需要在A/D和CY7-C68013之間增加一個(gè)高速的FIFO來(lái)緩存數(shù)據(jù)。FIFO是先進(jìn)先出的數(shù)據(jù)緩存器,數(shù)據(jù)在其內(nèi)部順序?qū)懭?、順序讀出,其數(shù)據(jù)地址由內(nèi)部讀寫(xiě)指針自動(dòng)加1完成。它具有雙口輸入輸出、傳送速度快等特點(diǎn),能滿足高速數(shù)據(jù)傳輸?shù)囊?。由FIFO構(gòu)成的數(shù)據(jù)緩沖電路主要部分的接口電路如圖4所示。

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


          IDT7205有兩種工作模式,即IDT標(biāo)準(zhǔn)模式和FWFT模式。本設(shè)計(jì)中采用IDT標(biāo)準(zhǔn)模式,這種模式通過(guò)FF、PAF、PAE、HF、EF五個(gè)標(biāo)志位來(lái)實(shí)現(xiàn)數(shù)據(jù)的傳輸。/WEN(寫(xiě)使能端)置為有效時(shí),數(shù)據(jù)可以寫(xiě)入FIFO。在WLCK(寫(xiě)時(shí)鐘)的控制下,數(shù)據(jù)持續(xù)寫(xiě)入FIFO,當(dāng)?shù)谝粋€(gè)數(shù)據(jù)被寫(xiě)入時(shí),/EF(空標(biāo)志)無(wú)效,數(shù)據(jù)不斷地寫(xiě)入FIFO,即將寫(xiě)滿時(shí)/PAE(將空標(biāo)志)無(wú)效,/PAF(將滿標(biāo)志)有效,表示FIFO即將寫(xiě)滿。當(dāng)FIF0寫(xiě)滿時(shí),/FF(滿標(biāo)志)置為有效,控制A/D芯片停止寫(xiě)數(shù)。開(kāi)始讀數(shù)據(jù)時(shí)的第一個(gè)讀操作使/FF置為無(wú)效,此時(shí)開(kāi)始持續(xù)地讀取數(shù)據(jù),當(dāng)FIFO中數(shù)據(jù)減少到一定程度,會(huì)使/PAF(將滿)和/HF(半滿)兩個(gè)標(biāo)志位置為無(wú)效,持續(xù)讀出數(shù)據(jù),而不寫(xiě)入數(shù)據(jù);當(dāng)FIFO中只剩下N個(gè)字時(shí)(N為空狀態(tài)的缺省值),/PAF有效;當(dāng)FIFO中的數(shù)據(jù)被全部讀出時(shí),/EF置為有效,此時(shí)控制主控芯片停止讀取數(shù)據(jù),與此同時(shí)A/D也開(kāi)始下一個(gè)讀取數(shù)據(jù)過(guò)程。

          3 系統(tǒng)軟件設(shè)計(jì)
          3.1 固件設(shè)計(jì)
          USB固件是運(yùn)行在FX2芯片CY7C68013中的代碼。在數(shù)據(jù)卡連接到計(jì)算機(jī)后,通過(guò)一個(gè)能自動(dòng)完成固件下載以及設(shè)備重枚舉功能的設(shè)備驅(qū)動(dòng)程序,即固件下載驅(qū)動(dòng)程序?qū)SB固件下載到FX2的RAM中。
          Cypress公司針對(duì)FX2系列的USB芯片給出了一個(gè)Firmware(固件)庫(kù),用戶只需要在源程序中包含進(jìn)EZUSB.H和EZREGS.H, 并且把EZU-SB.LIB和USBJMPB.OBJ添加進(jìn)項(xiàng)目即可。
          在設(shè)計(jì)中還利用了FX2的框架。FX2程序框架用于加速開(kāi)發(fā)芯片外設(shè)??蚣転镕X2的初始化、處理設(shè)備標(biāo)準(zhǔn)USB設(shè)備請(qǐng)求以及USB掛起時(shí)的電源管理提供了現(xiàn)成的805l代碼,只需簡(jiǎn)單地提供USB描述符表,編寫(xiě)完成外設(shè)功能的代碼就可以開(kāi)發(fā)一個(gè)功能完善的USB外設(shè)。
          CY7C68013芯片的端點(diǎn)數(shù)總共有7個(gè),根據(jù)設(shè)計(jì)需要,我們選擇了其中的3個(gè)端點(diǎn),其中1個(gè)控制端點(diǎn)、1個(gè)發(fā)送端點(diǎn)和1個(gè)接收端點(diǎn)。
          3.2 驅(qū)動(dòng)程序
          在采集卡工作的運(yùn)行WindowsxF臺(tái)的主機(jī)上,Cypress公司提供了Windows下的通用驅(qū)動(dòng)程序(GDP)。本采集卡使用這個(gè)通用驅(qū)動(dòng)程序,不需要自己另行開(kāi)發(fā)。
          3.3 用戶程序設(shè)計(jì)
          用戶程序設(shè)計(jì)部分則是基于C++Builder開(kāi)發(fā)平臺(tái),設(shè)計(jì)并實(shí)現(xiàn)數(shù)據(jù)采集系統(tǒng)的功能。系統(tǒng)軟件總體上包括數(shù)據(jù)采集(通道控制、觸發(fā)控制)、波形顯示、參數(shù)測(cè)量、頻譜分析及波形存儲(chǔ)與回放等五大模塊。軟件界面如圖5所示。

          8d.jpg



          關(guān)鍵詞: USB 軌道電路 車(chē)載 采集

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();