基于USB2.O的軌道電路信號車載采集分析系統
2.3 FlF0的數據緩存作用
由于A/D最高采樣頻率可達100MHz,而主控芯片CY7C68013中的FIFO只有4kB,不能滿足A/D數據轉換器的要求,因此需要在A/D和CY7-C68013之間增加一個高速的FIFO來緩存數據。FIFO是先進先出的數據緩存器,數據在其內部順序寫入、順序讀出,其數據地址由內部讀寫指針自動加1完成。它具有雙口輸入輸出、采集傳送速度快等特點,能滿足高速數據傳輸的要求。由FIFO構成的數據緩沖電路主要部分的接口電路如圖4所示。
IDT7205有兩種工作模式,即IDT標準模式和FWFT模式。本設計中采用IDT標準模式,這種模式通過FF、PAF、PAE、HF、EF五個標志位來實現數據的傳輸。/WEN(寫使能端)置為有效時,數據可以寫入FIFO。在WLCK(寫時鐘)的控制下,數據持續寫入FIFO,當第一個數據被寫入時,/EF(空標志)無效,數據不斷地寫入FIFO,即將寫滿時/PAE(將空標志)無效,/PAF(將滿標志)有效,表示FIFO即將寫滿。當FIF0寫滿時,/FF(滿標志)置為有效,控制A/D芯片停止寫數。開始讀數據時的第一個讀操作使/FF置為無效,此時開始持續地讀取數據,當FIFO中數據減少到一定程度,會使/PAF(將滿)和/HF(半滿)兩個標志位置為無效,持續讀出數據,而不寫入數據;當FIFO中只剩下N個字時(N為空狀態的缺省值),/PAF有效;當FIFO中的數據被全部讀出時,/EF置為有效,此時控制主控芯片停止讀取數據,與此同時A/D也開始下一個讀取數據過程。
3 系統軟件設計
3.1 固件設計
USB固件是運行在FX2芯片CY7C68013中的代碼。在數據采集卡連接到計算機后,通過一個能自動完成固件下載以及設備重枚舉功能的設備驅動程序,即固件下載驅動程序將USB固件下載到FX2的RAM中。
Cypress公司針對FX2系列的USB芯片給出了一個Firmware(固件)庫,用戶只需要在源程序中包含進EZUSB.H和EZREGS.H, 并且把EZU-SB.LIB和USBJMPB.OBJ添加進項目即可。
在設計中還利用了FX2的框架。FX2程序框架用于加速開發芯片外設。框架為FX2的初始化、處理設備標準USB設備請求以及USB掛起時的電源管理提供了現成的805l代碼,只需簡單地提供USB描述符表,編寫完成外設功能的代碼就可以開發一個功能完善的USB外設。
CY7C68013芯片的端點數總共有7個,根據設計需要,我們選擇了其中的3個端點,其中1個控制端點、1個發送端點和1個接收端點。
評論