基于USB2.O的軌道電路信號車載采集與分析系統(tǒng)
2.2 主控芯片的工作方式
本設(shè)計采用的主控芯片是Cypress公司的USB2.0控制芯片CY7C68013,它與計算機通過USB接口相連,使設(shè)備能在PC機的控制下進行操作。USB主控芯片通過邏輯控制電路連接到FIFO和A/D轉(zhuǎn)換后的數(shù)據(jù)傳送至FIFO芯片進行緩沖,緩沖后的數(shù)據(jù)輸入主控芯片的從FIFO中,
然后從FIFO以DMA(直接內(nèi)存存取)的方式經(jīng)由SIE(串行接口引擎)傳給PC機。
為了實現(xiàn)高速數(shù)據(jù)采集的功能,A/D芯片采用的ADl674,它是一款12位,最高轉(zhuǎn)換速度可達100kHz的A/D轉(zhuǎn)換芯片,考慮到對FIFO容量的需求,系統(tǒng)采用GPLD和FIFO來實現(xiàn)。選用IDT7205完成數(shù)據(jù)緩存。其最高工作頻率為133MHz,容量為8kB,能滿足設(shè)計要求。
CY7C68013與外設(shè)有兩種接口方式:通用可編程接口GPIF方式和從屬FIFO方式。GPIF的核心就是一個可編程狀態(tài)機,可產(chǎn)生6個控制和9個地址輸入信號,并能接收6個外部和2個內(nèi)部“ready”輸入信號。GPIF向外部接口產(chǎn)生正確的選通信號和握手信號,外部接口用于對FIFO數(shù)據(jù)的傳進和傳出。GPIF是主機的方式,而從屬FIFO方式是從機方式,它由外部控制器控制,可像對普通FIFO一樣對FX2的多層緩沖FIFO進行讀寫。FX2的從屬FIFO工作方式可設(shè)為同步或異步,工作時鐘可選為內(nèi)部產(chǎn)生或外部輸入,其它控制信號也可根據(jù)需要設(shè)置為高有效或低有效。
2.3 FlF0的數(shù)據(jù)緩存作用
由于A/D最高采樣頻率可達100MHz,而主控芯片CY7C68013中的FIFO只有4kB,不能滿足A/D數(shù)據(jù)轉(zhuǎn)換器的要求,因此需要在A/D和CY7-C68013之間增加一個高速的FIFO來緩存數(shù)據(jù)。FIFO是先進先出的數(shù)據(jù)緩存器,數(shù)據(jù)在其內(nèi)部順序?qū)懭?、順序讀出,其數(shù)據(jù)地址由內(nèi)部讀寫指針自動加1完成。它具有雙口輸入輸出、采集傳送速度快等特點,能滿足高速數(shù)據(jù)傳輸?shù)囊蟆S蒄IFO構(gòu)成的數(shù)據(jù)緩沖電路主要部分的接口電路如圖4所示。本文引用地址:http://cafeforensic.com/article/195304.htm
IDT7205有兩種工作模式,即IDT標準模式和FWFT模式。本設(shè)計中采用IDT標準模式,這種模式通過FF、PAF、PAE、HF、EF五個標志位來實現(xiàn)數(shù)據(jù)的傳輸。/WEN(寫使能端)置為有效時,數(shù)據(jù)可以寫入FIFO。在WLCK(寫時鐘)的控制下,數(shù)據(jù)持續(xù)寫入FIFO,當?shù)谝粋€數(shù)據(jù)被寫入時,/EF(空標志)無效,數(shù)據(jù)不斷地寫入FIFO,即將寫滿時/PAE(將空標志)無效,/PAF(將滿標志)有效,表示FIFO即將寫滿。當FIF0寫滿時,/FF(滿標志)置為有效,控制A/D芯片停止寫數(shù)。開始讀數(shù)據(jù)時的第一個讀操作使/FF置為無效,此時開始持續(xù)地讀取數(shù)據(jù),當FIFO中數(shù)據(jù)減少到一定程度,會使/PAF(將滿)和/HF(半滿)兩個標志位置為無效,持續(xù)讀出數(shù)據(jù),而不寫入數(shù)據(jù);當FIFO中只剩下N個字時(N為空狀態(tài)的缺省值),/PAF有效;當FIFO中的數(shù)據(jù)被全部讀出時,/EF置為有效,此時控制主控芯片停止讀取數(shù)據(jù),與此同時A/D也開始下一個讀取數(shù)據(jù)過程。
3 系統(tǒng)軟件設(shè)計
3.1 固件設(shè)計
USB固件是運行在FX2芯片CY7C68013中的代碼。在數(shù)據(jù)采集卡連接到計算機后,通過一個能自動完成固件下載以及設(shè)備重枚舉功能的設(shè)備驅(qū)動程序,即固件下載驅(qū)動程序?qū)SB固件下載到FX2的RAM中。
Cypress公司針對FX2系列的USB芯片給出了一個Firmware(固件)庫,用戶只需要在源程序中包含進EZUSB.H和EZREGS.H, 并且把EZU-SB.LIB和USBJMPB.OBJ添加進項目即可。
在設(shè)計中還利用了FX2的框架。FX2程序框架用于加速開發(fā)芯片外設(shè)??蚣転镕X2的初始化、處理設(shè)備標準USB設(shè)備請求以及USB掛起時的電源管理提供了現(xiàn)成的805l代碼,只需簡單地提供USB描述符表,編寫完成外設(shè)功能的代碼就可以開發(fā)一個功能完善的USB外設(shè)。
CY7C68013芯片的端點數(shù)總共有7個,根據(jù)設(shè)計需要,我們選擇了其中的3個端點,其中1個控制端點、1個發(fā)送端點和1個接收端點。
3.2 驅(qū)動程序
在采集卡工作的運行WindowsxF臺的主機上,Cypress公司提供了Windows下的通用驅(qū)動程序(GDP)。本采集卡使用這個通用驅(qū)動程序,不需要自己另行開發(fā)。
3.3 用戶程序設(shè)計
用戶程序設(shè)計部分則是基于C++Builder開發(fā)平臺,設(shè)計并實現(xiàn)數(shù)據(jù)采集系統(tǒng)的功能。系統(tǒng)軟件總體上包括數(shù)據(jù)采集(通道控制、觸發(fā)控制)、波形顯示、參數(shù)測量、頻譜分析及波形存儲與回放等五大模塊。軟件界面如圖5所示。
評論