摘要:為解決航空參數記錄數據讀取問題,文章提出了一種新穎的基于NIOSII和USB2.0平臺的高性能記錄儀數據采集器。系統以USB2.0作為與計算機的接口,在FPGA內建NIOSII處理器來實現NAND FLASH的控制以及與CY7C68013A USB2.0 芯片接口。實驗證明,該系統在采集速率為20MByte/s,遠超出了目前通用的數據采集器的性能。
關鍵詞:數據記錄儀;閃存;采集;可編程邏輯器件
中圖分類號:TP333 文獻標志碼:A 文章編號:1009-2374(2012)04-0112-02
數據記錄儀在航空、車載、船舶等領域已經大量應用。NAND FLASH作為記錄儀中的存儲介質已經得到普遍認可,如彈載數據記錄儀、機載記錄儀、多通道測試記錄儀等。而記錄儀的數據讀取方法,目前普遍采用USB1.1或RS232等低速接口實現,如嵌入式超載監控記錄儀采用CH375 USB1.1模塊進行數據讀取,采用DSP的串口將數據傳至計算機。上述系統中,數據的記錄和讀取都合并到記錄儀中,然而讀取數據部分在系統記錄過程中是多余的,完全可將記錄和讀取獨立開,以減輕記錄系統的體積和復雜度。同時,大多系統采用低速通信接口讀取NAND FLASH中的數據,然而隨著電子技術的發展,對數據記錄儀的記錄數據量要求越來越高,USB1.1或RS232的通信速率已不能滿足實際需求。
一、方案框架
方案整體上采用USB2.0、FPGA、SRAM實現數據采集器的結構。結構框圖如圖1所示:
為了增加系統的靈活性,在FPGA中建立NIOSII 32位處理器。計算機可以同過USB2.0接口向采集器發送讀數據、擦除數據命令。采集器接收到命令后,通過NIOSII 解析命令。SRAM作為NIOSII的程序運行存儲器和FLASH數據緩沖區。
二、方案實現
(一)硬件電路設計
CY7C68013A芯片與FPGA的主要通信接口采用Slave FIFO方式,該模式已有大量論文進行過研究6,7,8。IS61LV25616芯片直接與FPGA連接。由于NAND FLASH的接口電平為3.3V,因此可以跟EP2C8Q208FPGA芯片直接進行連接,使用過程中,采集器通過數據排線方式連接至數據記錄儀。
(二)FPGA硬件程序設計
1.FPGA與CY7C68013A接口。
FPGA與CY7C68013A接口的高速slave fifo程序模塊如圖2所示。UsbCtrl模塊實現與CY7C68013A的slave fifo接口通信,UsbFifoIn和UsbFifoOut是FPGA芯片內存儲器資源建立的FIFO存儲器,16位寬,1024深度。由于slave fifo模式在USB端是BULK模式,因此必不可少的會出現傳輸等待,所以為了保證數據連續傳輸過程中不丟失以及提高傳輸速度,系統中加入這兩個FIFO。ExtCtrl模式起到FIFO接口邏輯控制作用。該模塊提供了標準的WR、RD、DIR、WRFULL、RDEMPTY、DATA[15:0]接口。
2.FPGA與CY7C68013A接口的低速命令模塊。
FPGA與CY7C68013A的低速命令接口模塊如圖3所示。ParaCtrl模塊與CY7C68013A的PC[7:0]、PA0、PA1、PA3通信,實現傳輸計算機發送的控制命令和返回采集器的狀態信息。ParaFifoIn和ParaFifoOut為命令輸入輸出FIFO緩沖區和返回狀態信息緩沖區。UartCtrl模塊實現上述兩個FIFO的通信轉換接口,將USB的低速接口轉換成串口通信時序,方便與NIOSII連接。
3.NIOSII 的配置。
在SOPC BUILD 中對NIOSII的配置如圖4所示:
Uart_1模塊用于解析2.2.2節所述計算機命令和返回狀態。Nf_ 等8個模塊實現FLASH芯片的接口。USB_等7個模塊實現與高速USB數據傳輸模塊接口。Sram模塊控制擴展的IS61LV25616芯片。
(三)NIOSII 軟核程序設計
NIOSII軟核主程序流程圖如圖5所示。采集器接收計算機發送的串口命令,如果是0xeb5a,則讀取FLASH芯片中有效數據,并將數據通過高速USB接口將數據發送到計算機,發送完畢返回狀態信息。如果是0xbdce,則擦除整塊FLASH,擦除完畢返回狀態信息。
(四)計算機軟件
計算機軟件由兩部分構成,驅動程序和應用程序,驅動程序采用CYPRESS公司提供的驅動。應用程序用VC++編寫。程序界面如圖6所示:
三、實驗驗證
采集器硬件電路板跟板載K9K8G08U0M NAND FLASH芯片的參數記錄儀連接,NIOSII軟核程序采用NIOSII IDE 的JTAG UART在線調試,進行數據傳輸測試。讀操作命令測試如圖7所示。圖中,左邊為計算機應用程序,點擊讀取數據操作后,采集器讀取NAND FLASH完畢后,返回0x43狀態字。右邊是在NIOSII IDE在線調試中顯示的終端結果。NIOSII軟核程序開始運行后,會根據讀取FLASH的ID來檢測FLASH是否已經連接。如果連接正常,則等待計算機的操作命令。圖中顯示接收到計算機的讀FLASH命令。
四、結語
隨著參數記錄儀的普遍應用,對記錄儀數據讀取器的需求也日益廣泛。文章提出了一種全新的基于USB2.0和NIOSII的采集器設計方案。該方案提高了讀取FLASH的數據速率。該參數采集器已經在某機載參數記錄系統中得到應用。
參考文獻
[1] 王琦,杜力力,李永紅.基于DSP的多通道彈載數據記錄儀的設計[J].彈箭與制導學報,2011,(31).
[2] 韓云鵬.采用SOPC技術的機載數據記錄儀[J].光電與控制,2009,(16).
[3] 董剛剛,吳建,曾強.基于CPLD+FLASH的多通道測試記錄儀[J].光電技術應用,2011,(26).
[4]田微.嵌入式超載監控記錄儀的USB通信[J].起重運輸機械,2008,(1).
[5] 吳德平.數據記錄儀的設計與實現[J].四川兵工學報,2009,(30).
[6] 謝宏,曹翔.EZ-USB FX2 接口在誘發電位儀系統中的應用[J].電子設計工程,2011,(19).
[7] 位小記,謝紅,郭慧.基于FPGA和USB的高速數據傳輸平臺的設計[J].應用科技,2011,(37).
[8] 齊新軍.基于USB總線的NIOS系統與主機通信實現
[J].煤炭技術,2011,(30).
基金項目:浙江省財政廳支助項目(項目編號:2011R461002)。
作者簡介:黃輝,男,浙江臺州人,臺州科技職業學院機電工程系助教,碩士,研究方向:計算機設備控制。
(責任編輯:劉 艷)