《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA和DSPIC30F6014A的數(shù)據(jù)記錄器設計
基于FPGA和DSPIC30F6014A的數(shù)據(jù)記錄器設計
2014年電子技術應用第11期
丁 寧,秦 麗,馬游春
中北大學 儀器科學與動態(tài)測試教育部重點實驗室,山西 太原030051
摘要: 針對目前飛行數(shù)據(jù)記錄器對數(shù)據(jù)的大容量和高速存儲的需求,提出了一種以DSPIC30F6014A控制USB接口芯片CH378讀寫U盤數(shù)據(jù),并添加FPGA控制讀寫大容量Flash數(shù)據(jù)作為高速數(shù)據(jù)緩沖以實現(xiàn)脫離計算機存儲高速大容量數(shù)據(jù)至U盤的設計方案。該方案能夠實現(xiàn)大容量數(shù)據(jù)存儲功能,并能夠極大地提高U盤讀寫數(shù)據(jù)的速度,具有設備體積小、成本低和便于攜帶等優(yōu)點,很大程度緩解了數(shù)據(jù)存儲的壓力,具有很廣闊的應用前景。
中圖分類號: TN919.5
文獻標識碼: A
文章編號: 0258-7998(2014)11-0085-03
Design of data recorder based on FPGA and DSPIC30F6014A
Ding Ning,Qin Li,Ma Youchun
National Key Laboratory for Electronic Measurement Technology,Key Laboratory of instrumentation Science & Dynamic Measurement of Ministry of Education, North University of China, Taiyuan 030051,China
Abstract: In order to meet the demand for data of large capacity and high speed storage of the flight data recorder, this paper proposes a DSPIC30F6014A to control the USB interface chip CH378 to read and write U disk data, and add the FPGA to read and write a large capacity Flash data as high-speed data buffer in order to achieve the design scheme of the storage of high speed and large capacity data to U disk and does not rely on computer. This scheme can achieve the function of storing large capacity data, and can greatly improve the speed of reading and writing data of the U disk, which has the advantages of small size, low cost and easy to carry, etc, greatly easing the pressure on data storage and having a very broad application prospect.
Key words : CH378;DSPIC30F6014A;FPGA;data storage

0 引言

  近年來,隨著航天航空事業(yè)的不斷進步,新型的航天產(chǎn)品(如新一代航天器、運載火箭、衛(wèi)星及航天飛機等)已逐漸問世并向著自動化、智能化的方向發(fā)展,其系統(tǒng)構成也變得多元化,對于研究和探索這些先進的技術所需要采集的參數(shù)不斷增加,因而對于數(shù)據(jù)存儲設備的存儲容量、速度、質量、便攜性及抗沖擊能力的要求也在不斷提高[1]。高速數(shù)據(jù)存儲設備不僅在航天產(chǎn)品中扮演重要的角色,在民用航空飛機上也是必不可少的一部分,如飛行數(shù)據(jù)記錄器等[2]。

  為了滿足飛行數(shù)據(jù)記錄器的高速數(shù)據(jù)存儲需求,本文采用FPGA與DSPIC30F6014A單片機相結合的方式對數(shù)據(jù)記錄器進行了設計。這種記錄器既充分發(fā)揮了FPGA并行讀寫大容量Flash數(shù)據(jù)的能力,也充分利用了DSP-IC30F6014A單片機的單指令周期和并口讀寫方式等優(yōu)越性能,通過結合高速文件管理芯片CH378和大容量Flash芯片,從而實現(xiàn)飛行數(shù)據(jù)的高速U盤存儲功能。這種設計方法可以有效地提高U盤讀寫數(shù)據(jù)的速度,避免了數(shù)據(jù)丟失現(xiàn)象,并減小了設備的體積,對體積小、成本低、速度高的飛行數(shù)據(jù)記錄系統(tǒng)設計具有十分重要的意義。

1 記錄器總體設計方案


001.jpg

  高速數(shù)據(jù)記錄器的系統(tǒng)設計主要框圖如圖1所示,主要由現(xiàn)場可編程器件FPGA、DSPIC30F6014A單片機、USB接口控制芯片CH378、U盤、數(shù)據(jù)存儲芯片F(xiàn)lash和高速串行數(shù)據(jù)總線422等模塊組成。

  整個系統(tǒng)工作過程:首先高速串行數(shù)據(jù)經(jīng)過422總線傳輸給FPGA,然后FPGA對高速數(shù)據(jù)進行串并轉換和編幀處理,通過控制Flash實現(xiàn)高速數(shù)據(jù)的大容量緩存功能,并將緩存的數(shù)據(jù)經(jīng)過并口與DSPIC30F6014A進行通信,最后利用DSPIC30F6014A接收來自FPGA的數(shù)據(jù)并通過控制CH378將數(shù)據(jù)存儲到U盤中。

2 系統(tǒng)硬件電路設計

  2.1 FPGA控制模塊

  為了解決傳統(tǒng)的高速數(shù)據(jù)記錄系統(tǒng)直接由單片機作為主控制芯片造成的數(shù)據(jù)丟失問題,本設計選用FPGA作為高速數(shù)據(jù)的緩存控制芯片,以提高系統(tǒng)的可靠性。其中FPGA選用Xilinx公司Spartan-3E系列芯片XC3S500E,該芯片具有功耗低、資源豐富、高性能等特點,其I/O口兼容多種電平標準,有助于與單片機連接通信。內部多達360 Kbit的Block RAM,可配置為雙端口RAM,添加必要的控制模塊構成高速異步FIFO,為數(shù)據(jù)的寫入及讀取提供足夠的緩沖空間。同時,它具有4個時鐘管理單元,可方便對FPGA的主頻分頻或倍頻,產(chǎn)生不同模塊所需的時鐘信號,并能夠保證這些時鐘信號精確穩(wěn)定。

  2.2 DSPIC30F6014A控制模塊

  系統(tǒng)選用了高性能的DSPIC30F6014A單片機作為U盤數(shù)據(jù)存儲部分的主控制芯片,該單片機為單指令周期,采用哈佛雙總線結構,功耗低,驅動能力強,并且I/O端口功能強大,其與外部接口交換數(shù)據(jù)的效率非常高[3]。內部有8 KB的片內RAM,能夠作為高速數(shù)據(jù)的緩存區(qū),其與FPGA和CH378之間的通信都是通過8位并口的方式進行數(shù)據(jù)傳輸?shù)?,能夠很大程度地提高讀寫數(shù)據(jù)的速度。其中DSPIC30F6014A與FPGA的連接示意圖如圖2所示。

002.jpg

  2.3 CH378模塊

  CH378能夠成為U盤記錄器首選的U盤接口芯片,是因為該芯片具有比CH376更高的通信速度[4],其可實現(xiàn)12 Mb/s全速通信和480 Mb/s高速通信;且在硬件連接方面,提供了高速8位被動并行接口,可直接掛接在單片機等處理器的數(shù)據(jù)總線上。其中CH378與DSPIC30F6014A單片機及U盤的部分引腳連接圖如圖3所示。將TXD引腳接GND,其余引腳懸空,使得CH378被配置為8位并口通信接口。8位并行數(shù)據(jù)線與單片機的RD口連接,CH378的WR#引腳、RD#引腳、PCS#引腳和A0引腳分別與單片機的RC4~RC1引腳相連,實現(xiàn)8位并口通信接口連接。

  2.4 Flash模塊

  大容量Flash選取了三星公司的NAND Flash K9M-DG08U5M,其內部組織形式為16 G×8 bit,即容量為16 GB,與U盤的存儲容量相當,足以滿足海量數(shù)據(jù)緩沖所需的空間;供電電壓與FPGA的供電電壓相同,避免了為其單獨設計電源的麻煩;有8位數(shù)據(jù)引腳(D7~D0)、片選引腳(CS#)、命令鎖存引腳(CLE)、地址鎖存引腳(ALE)、寫控制引腳(WE)、讀控制引腳(RE)、Flash狀態(tài)引腳(R/B#)、電源及地引腳等,與FPGA的連接非常方便,只需FPGA分配相應的引腳與Flash連接即可。

3 記錄器軟件設計

  系統(tǒng)的軟件設計主要由FPGA和DSPIC30F6014A兩大主控部分組成,其中采用VHDL語言對FPGA的程序進行編寫,其主要實現(xiàn)串行數(shù)據(jù)的接收和處理、Flash數(shù)據(jù)讀寫控制以及與DSPIC30F6014A進行通信等功能;單片機的程序利用C語言進行描述,主要完成對CH378的控制、與FPGA的通信和數(shù)據(jù)傳輸?shù)墓δ堋?/p>

  3.1 FPGA模塊程序設計


008.jpg


  數(shù)據(jù)在存儲時是按照一定的幀格式進行存儲的,本系統(tǒng)設計的幀格式如表1所示,每一幀數(shù)據(jù)由4 089 B數(shù)據(jù)、4 B幀標志和3 B幀計數(shù)組成,其中幀標志分別為BEH、90H、數(shù)據(jù)流標識(第一路數(shù)據(jù)為11H,第二路數(shù)據(jù)為22H)和一個固定位00H。幀計數(shù)為3個字節(jié)表示,依次先為低位后為高位。

004.jpg

  FPGA的主要工作流程圖如圖4所示,F(xiàn)PGA接收來自422總線接口的串行數(shù)據(jù),并對兩路數(shù)據(jù)進行串并轉換以及按照一定的數(shù)據(jù)格式進行編幀處理,之后將編幀處理的數(shù)據(jù)存入寫FIFO中,判斷寫FIFO半滿標志位WR_FIFO_HF是否為高電平。若為高電平則開始往Flash中寫入數(shù)據(jù),等到寫完一頁數(shù)據(jù)后,開始檢測單片機的讀數(shù)據(jù)信號是否有效。若有效,將由Flash數(shù)據(jù)讀寫控制模塊讀取Flash中的數(shù)據(jù),并暫存在讀FIFO,由單片機讀取讀FIFO中的數(shù)據(jù)。

  3.2 DSPIC30F6014A模塊程序設計


005.jpg

  DSPIC30F6014A程序流程圖如圖5所示。系統(tǒng)上電后,首先單片機復位。然后由單片機向CH378發(fā)送硬件連接測試命令CMD_CHECK_EXIST(06H),接著發(fā)送數(shù)據(jù)55H,若硬件連接正常,應由CH378返回數(shù)據(jù)AAH,否則說明硬件連接不正?;騿纹瑱C不工作。測試到CH378連接正常后,初始化CH378,并設置工作模式為USB主機方式,然后檢測U盤是否連接,如果U盤成功連接并已檢測到,則對U盤進行初始化。初始化成功后,創(chuàng)建文件,檢測FIFO讀半滿標志位是否為1,若為1則將FPGA的讀FIFO中的數(shù)據(jù)通過DSPIC30F6014A的控制以字節(jié)方式寫入U盤文件,數(shù)據(jù)讀取完畢后結束操作。

4 系統(tǒng)調試結果及分析

009.jpg

  由于U盤的寫數(shù)據(jù)速度會受到U盤的質量、單片機的性能等一些因素的影響,因此為了最大程度地提高數(shù)據(jù)記錄器處理數(shù)據(jù)的速度,在具體應用之前,對一些性能進行了測試,通過分別往USB2.0和USB3.0的U盤中以字節(jié)方式一次性寫入100 MB的數(shù)據(jù)(其中分別選用單片機的RAM的2 KB、5 KB和7 KB作為數(shù)據(jù)的緩存區(qū)),得到了表2的U盤寫數(shù)據(jù)測試結果。結果表明,選用RAM為7 KB并結合USB3.0的U盤可以極大限度地提高數(shù)據(jù)記錄器處理數(shù)據(jù)的速度。

006.jpg

  實驗及調試過程中,采用以FPGA為控制核心,產(chǎn)生波特率均為460.8 kb/s的422總線串行數(shù)據(jù)作為模擬數(shù)據(jù)源。為了便于分析,數(shù)據(jù)采用遞減的鋸齒波。數(shù)據(jù)存儲完畢后,通過計算機讀取U盤中的數(shù)據(jù),由上位機軟件對文件進行分析和繪圖顯示,圖6為數(shù)據(jù)波形整體圖,圖7為波形拉伸放大后的波形,從圖6和圖7中可以看出波形穩(wěn)定,并無明顯丟數(shù)現(xiàn)象。

007.jpg

  將讀出的數(shù)據(jù)在UltraEdit中打開,如圖8所示,并沒有出現(xiàn)數(shù)據(jù)錯誤并且數(shù)據(jù)幀格式正確,說明本電路具有可靠的高速數(shù)據(jù)傳輸性能。

5 結論

  為了滿足目前飛行數(shù)據(jù)記錄器對數(shù)據(jù)的大容量和高速存儲的需求,文中提出了一種基于FPGA和DSPIC-30F6014A的數(shù)據(jù)記錄器設計方法,并對數(shù)據(jù)寫入U盤的速度進行了測試。結果表明,高速串行數(shù)據(jù)經(jīng)過數(shù)據(jù)記錄器的一系列處理后,最后以并行數(shù)據(jù)寫入USB3.0 U盤的速度可達到314 KB/s,并且通過上位機分析得知數(shù)據(jù)存儲可靠,并無數(shù)據(jù)丟失現(xiàn)象。該設備還具有設備體積小、成本低和便于攜帶等優(yōu)點,很大程度緩解了數(shù)據(jù)存儲的壓力,具有很廣闊的應用前景。

參考文獻

  [1] 王偉,費益.民用飛機飛行記錄系統(tǒng)研究[J].電光與控制,2013,20(3):73-74.

  [2] 盧艷軍,牛闖,張曉東.新型通用飛機機載數(shù)據(jù)記錄儀的研究[J].沈陽航空航天大學學報,2014,31(1):82-83.

  [3] 王中華,郭改枝,王筱凱.基于DSPIC30F處理器的多路數(shù)據(jù)采集系統(tǒng)的設計[J].內蒙古師范大學學報,2012,41(6):620-621.

  [4] 蔡雪佳,周征翰,伍郁韓.基于USB-Host的大容量數(shù)據(jù)采集方案研究[J].電子設計工程.2011,19(16):1-3.


此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。