国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的雙CF卡數(shù)據(jù)采集系統(tǒng)設(shè)計

2016-09-12 02:34夏光輝秦建軍王大成
電子設(shè)計工程 2016年4期
關(guān)鍵詞:扇區(qū)空閑新建

夏光輝,秦建軍,王大成

(1.91550部隊93分隊,遼寧 大連 116023;2.哈爾濱工程大學 水聲技術(shù)國防科技重點實驗室,黑龍江 哈爾濱 150001)

基于FPGA的雙CF卡數(shù)據(jù)采集系統(tǒng)設(shè)計

夏光輝1,秦建軍2,王大成2

(1.91550部隊93分隊,遼寧 大連 116023;2.哈爾濱工程大學 水聲技術(shù)國防科技重點實驗室,黑龍江 哈爾濱 150001)

在FPGA內(nèi)部建立以Nios II軟核為核心的片上控制系統(tǒng),在保留FPGA并行處理優(yōu)勢的前提下,增強設(shè)計的靈活性;利用雙CF卡做為存儲介質(zhì),系統(tǒng)始終保證一張卡處于被寫狀態(tài),另一張卡處于可讀或可取下狀態(tài),實現(xiàn)對數(shù)據(jù)的不間斷存儲;通過移植廣泛使用的FAT32文件系統(tǒng),解決CF卡內(nèi)數(shù)據(jù)的高效管理問題;采用USB2.0接口將CF卡中的數(shù)據(jù)上傳給計算機。實測結(jié)果表明,系統(tǒng)可以長時間穩(wěn)定工作于黑匣子記錄模式。該設(shè)計方案在需要不間斷記錄數(shù)據(jù)的應(yīng)用中廣泛適用。

FPGA;Nios II;CF卡;FAT32;USB

隨著信息技術(shù)的發(fā)展,對數(shù)據(jù)采集存儲系統(tǒng)的需求越來越多。如何實時、連續(xù)地采集和存儲數(shù)據(jù)已成為備受關(guān)注的問題[1-2]。隨著超大規(guī)模集成電路制造工藝的不斷提高,以FPGA為代表的可編程邏輯器件為數(shù)據(jù)采集系統(tǒng)設(shè)計提供了全新的思路[3-4]。本文正是利用FPGA器件并行處理能力強、功能可裁剪等優(yōu)勢[5-6],結(jié)合CF卡工作穩(wěn)定、訪問速度快的特點[7],提出了一套可運行在乒乓模式下的雙CF卡數(shù)據(jù)采集存儲系統(tǒng)實現(xiàn)方案。該方案特別適用于需要不間斷記錄數(shù)據(jù)的應(yīng)用場合。

1 系統(tǒng)硬件設(shè)計

參見圖1,系統(tǒng)由A/D模塊、控制模塊、存儲模塊和USB接口模塊4個功能模塊構(gòu)成。

A/D以12bit二進制補碼形式輸出數(shù)據(jù)給FPGA;FPGA首先利用內(nèi)建的FIFO對數(shù)據(jù)進行緩存,再通過可編程片上系統(tǒng)[8-9](SOPC)的CF控制模塊將緩存后的數(shù)據(jù)寫入CF卡,實現(xiàn)數(shù)據(jù)存儲;當一個CF卡數(shù)據(jù)存滿后,總線開關(guān)在FPGA的控制下實現(xiàn)在兩個CF卡間的切換。與FPGA相連接的CF卡處于寫狀態(tài);與USB接口芯片相連接的CF卡處于可讀狀態(tài)。在可讀狀態(tài)下的CF卡可以直接取下,進行更換。

圖1 系統(tǒng)結(jié)構(gòu)圖Fig.1 System block diagram

CF卡與FPGA的連接如圖2所示。

2 系統(tǒng)軟件設(shè)計

圖3給出了系統(tǒng)的工作流程。系統(tǒng)上電后,F(xiàn)PGA首先完成程序自舉引導和初始化操作,之后開始數(shù)據(jù)采集,每當數(shù)據(jù)緩沖完成,則將數(shù)據(jù)寫入CF卡。數(shù)據(jù)存儲功能的實現(xiàn)是FPGA程序的最主要部分,它不僅涉及SOPC的配置、CF4.0協(xié)議的實現(xiàn),還包括FAT32文件系統(tǒng)的建立和管理[10]。圖4給出了CF卡在PIO模式下的數(shù)據(jù)傳輸流程圖。

圖2 CF卡與FPGA連接電路圖Fig.2 Connection schematic of CF card and FPGA

圖3 系統(tǒng)整體工作流程圖Fig.3 Overall system flow chart

圖4 PIO模式傳輸實現(xiàn)流程圖Fig.4 PIO mode transmission flow chart

在完成CF卡扇區(qū)讀寫控制的基礎(chǔ)上,實現(xiàn)數(shù)據(jù)按照FAT32文件格式存儲要經(jīng)過以下五個步驟:文件系統(tǒng)初始化、新建文件操作、修改目錄項操作、申請空閑簇操作和添加文件內(nèi)容操作。圖5~7給出了其中幾個關(guān)鍵操作的流程圖。

程序首先讀取CF卡的啟動扇區(qū),獲得參數(shù)信息,并由此計算出FAT表的起始扇區(qū)、系統(tǒng)總扇區(qū)數(shù)和總簇數(shù),再修改2~10號簇的FAT表項將其分配給根目錄并構(gòu)成簇鏈,然后通過查詢FDT和FAT表獲得當前目錄項在根目錄區(qū)的位置(fdt_cnt)和文件數(shù)(file_num)信息、以及最后分配的簇在FAT中的位置(fat_cnt)。

圖5 文件系統(tǒng)初始化Fig.5 File system initialization

圖6 新建文件Fig.6 Create new file

圖7 添加文件內(nèi)容Fig.7 Add the contents of the file

系統(tǒng)采用短文件名的方式存儲目錄項信息,以32個字節(jié)為單位進行目錄文件所占簇的分配。通過新建文件操作時獲得的根目錄區(qū)位置,計算出新建文件目錄項在根目錄中的簇地址、扇區(qū)地址和偏移地址信息;再判斷簇地址是否超出根目錄分配的簇地址,如果超出則說明沒有空間記錄新建文件目錄項信息;根據(jù)之前得到的簇地址和扇區(qū)地址讀取新建目錄項所在扇區(qū),修改新建目錄項信息并寫入該扇區(qū),最終完成目錄項建立操作。

為了提高CF卡寫卡的速度,減少申請空閑簇的頻率,所以在每次申請空閑簇時連續(xù)申請50個新簇(最大可申請簇數(shù)127個),對應(yīng)大小為50×16 kB=800 kB,這樣只要申請10次就能完成一個文件數(shù)據(jù)的寫入工作;然后判斷申請新簇后的根目錄區(qū)位置有沒有超出系統(tǒng)總簇數(shù),若超出說明沒有足夠的空間存儲數(shù)據(jù),需要切換CF卡;如果沒有超出則由根目錄區(qū)位置計算出新FAT表項所在FAT表中的簇地址、扇區(qū)地址和偏移地址信息;讀取根目錄區(qū)位置所在扇區(qū),判斷所申請的50個新簇是否都在一個扇區(qū),如果不在同一個扇區(qū),則需要修改剩余簇號在上一扇區(qū)FAT表中的表項信息。

每次申請空閑簇的最后一簇時都寫入結(jié)束標記,所以要判斷是否是新建文件。如果不是新建文件,則要修改上一次申請空閑簇時,對應(yīng)最后一簇的結(jié)束標記信息,使文件構(gòu)成一個完整的簇鏈。將50或51個簇對應(yīng)FAT表的表項信息修改完成后,寫入FAT表中完成空閑簇申請操作。

新建文件的目錄項默認沒有給新文件分配起始簇號,所以對于新文件在添加內(nèi)容時,要記下首簇號并修改文件目錄項中對應(yīng)首簇地址??臻e簇申請完成后,修改文件目錄項中文件的大小,將更新后的文件目錄項信息寫入文件所在根目錄扇區(qū)中,最后根據(jù)申請的50個空閑簇號獲得每個簇地址所在的首扇區(qū)地址,循環(huán)寫入數(shù)據(jù)。

經(jīng)過上述5個步驟,就可以在CF卡內(nèi)建立FAT32文件系統(tǒng),實現(xiàn)數(shù)據(jù)寫入。

3 系統(tǒng)功能測試與結(jié)果分析

3.1 采集功能測試

FPGA產(chǎn)生A/D采樣轉(zhuǎn)換和使能信號,同時打開異步FIFO的寫數(shù)據(jù)使能信號,將模數(shù)轉(zhuǎn)換后的數(shù)據(jù)連續(xù)地送入異步FIFO中進行緩存。程序不斷檢測當前寫入FIFO的數(shù)據(jù)總量,如果寫入數(shù)據(jù)深度達到16kB則使能讀數(shù)據(jù)中斷信號。SOPC檢測到上述中斷信號后產(chǎn)生讀數(shù)據(jù)時鐘,在每個時鐘下降沿讀取異步FIFO中的數(shù)據(jù),當FIFO被讀空時,禁止讀使能信號。由于讀時鐘是寫時鐘的N倍(N遠大于1),所以對異步FIFO的訪問沒有用到寫滿或讀空標志位。

在Signal Tap II[11]中觀測FIFO中的數(shù)據(jù)波形,如圖8所示。其中ad_clk為A/D采樣頻率(1 MHz);datain1是A/D轉(zhuǎn)換后采集到的12bit二進制補碼;FIFO:RAM|q是經(jīng)過異步FIFO緩沖后讀取的數(shù)據(jù)。FIFO緩沖區(qū)的建立,為數(shù)據(jù)的連續(xù)不間斷存儲創(chuàng)造了條件。由圖可知:在datain1的每一個周期內(nèi)都有10個采樣點,滿足10倍采樣率的設(shè)計要求。與輸入測試信號比較,采集獲得的信號正確。

圖8 FIFO中的數(shù)據(jù)Fig.8 Data in the FIFO

3.2 存儲功能測試

數(shù)據(jù)存儲介質(zhì)采用兩張閃迪(San Disk)公司推出的CF卡,其容量分別為4 GB、8 GB,均支持PIO和UDMA模式。

1)FPGA寫CF卡速度測試

為了測試到FPGA最大的寫卡速度,數(shù)據(jù)由FPGA內(nèi)部產(chǎn)生,保證測試結(jié)果不受數(shù)據(jù)源速度的影響。另外CF卡的操作模式為PIO模式2,它的理論最大寫入速度為8.33 MB/s。

在FPGA對CF卡進行讀寫操作的時鐘頻率為100 MHz,數(shù)據(jù)傳輸位數(shù)為16 bit,寫入單個文件大小為15.625 MB情況下,通過測量連續(xù)寫入200個相同文件大小的總字節(jié)數(shù)和消耗的總時間,計算出FPGA平均寫卡速度。由于采用手工測試,故存在測量誤差,但誤差能夠控制在5 kB/s以內(nèi)。

表1 FPGA寫卡速度測試結(jié)果Tab.1 FPGA write speed test results

由測量結(jié)果可知:①簇的尺寸越大,其寫入速度越快(FAT32文件系統(tǒng)中每簇最大只能為32 kB);②在簇尺寸相同的情況下,每次寫入簇數(shù)越多,寫卡速度越快,但并構(gòu)成線形關(guān)系,當簇數(shù)多到一定量時,單一增加簇數(shù)對數(shù)據(jù)寫入速度的提升不明顯。

2)USB接口讀寫CF卡速度測試

通過計算機,選用USB傳輸速度測試軟件ATTO Disk Benchmark測試系統(tǒng)讀卡模塊。設(shè)定傳輸文件大小從0.5 kB 到8 192 kB,總長度為256 MB。測試結(jié)果如圖9所示,其中實線為讀卡速度曲線,虛線為寫卡速度曲線。在文件大于64 kB時,讀寫卡速度均超過15 MB/s,接近讀卡模塊選用的AU6371芯片[12]提供的最優(yōu)性能。

圖9 USB接口讀寫速度測試結(jié)果Fig.9 USB interface to read and write speed test results

4 結(jié) 論

本文給出了一種基于FPGA的數(shù)據(jù)采集系統(tǒng)設(shè)計方案。方案中FPGA通過內(nèi)建的Nios II軟核實現(xiàn)對兩片CF卡的FAT32格式文件管理。依該方案實現(xiàn)的硬件系統(tǒng)經(jīng)測試,能夠?qū)崿F(xiàn)預(yù)期的數(shù)據(jù)采集和存儲功能,且工作穩(wěn)定。

[1]董超群,董芳,等.海洋水文氣象綜合數(shù)據(jù)采集器的研制[J].電子設(shè)計工程,2012,20(3):7-9.

[2]楊進,文玉梅.采用復(fù)合磁電換能器的寬帶振動能量采集器[J].儀器儀表學報,2012,33(12):2863-2868.

[3]石繁榮,黃玉清.基于FPGA的主從式高速數(shù)據(jù)采集與傳輸系統(tǒng)[J].電子技術(shù)應(yīng)用,2011,37(5):82-85.

[4]儲成君,任勇峰.基于FPGA的多通道信號采集電路設(shè)計[J].科學技術(shù)與工程,2013(13):5692-5701.

[5]楊海鋼,孫嘉斌.電子與信息學報.FPGA器件設(shè)計技術(shù)發(fā)展綜述[J].2010,82(8):714-728.

[6]許芳,席毅.基于FPGA/Nios-Ⅱ的矩陣運算硬件加速器設(shè)計[J].電子測量與儀器學報,2011,25(4):377-382.

[7]劉旺,王啟.一種大容量并行采集系統(tǒng)實現(xiàn)方法[J].測控技術(shù),2010,29(10):38-41.

[8]吳建平,葉玉堂.基于SOPC高速圖像實時處理技術(shù)研究與實現(xiàn)[J].光電工程,2011,38(8):124-128.

[9]孟芳,于立佳.基于NiosII的SOPC系統(tǒng)設(shè)計分析[J].無線電通信技術(shù),2012,38(1):73-76.

[10]夏昀.基于FAT32文件系統(tǒng)的安全存儲方案[J].信息技術(shù),2013(5):97-101.

[11]張帥,王典洪.基于Nios II軟核的雙網(wǎng)卡路由選擇[J].現(xiàn)代電子技術(shù),2005(14):34-40.

[12]AU6371-JDL USB2.0 Single LUN Multiple Flash Card Reader Controller Technical Reference Manual[Z].Alcor Micro,Corporation,2007.

Design of dual CF card data acquisition system based on FPGA

XIA Guang-hui1,QIN Jian-jun2,WANG Da-cheng2
(1.Unit No.93,Troop 91550,Dalian 116023,China;2.National Laboratory of Underwater Acoustic Technology,Harbin Engineering University,Harbin 150001,China)

In order to enhance design flexibility while retaining the advantages of FPGA parallel processing,an internal control system is established on the FPGA by using the NiosII soft-core.Two CF cards as the storage medium are used to achieve continuous data storage that is always ensure that a card is being written state,another card is readable or removable state;FAT32 file system is widely used by transplant to solve the problem of data management efficiently in CF card.Data in CF card can is uploaded to the computer by USB2.0 interface.The actual test results show that the system can run stability in a long time in the black box recording mode.The design is widely available in many applications that continuous recording data is required.

FPGA;Nios II;CF card;FAT32;USB

TN911.7

A

1674-6236(2016)04-0019-03

2015-02-06 稿件編號:201502062

夏光輝(1977—),男,湖南益陽人,工程師。研究方向:水下測量技術(shù)。

猜你喜歡
扇區(qū)空閑新建
重慶三年新建農(nóng)村公路6.26×10~4 km
分階段調(diào)整增加扇區(qū)通行能力策略
曹新建水彩畫作品欣賞
“鳥”字謎
西灣村采風
萬紫蝶、梁新建作品
管制扇區(qū)復(fù)雜網(wǎng)絡(luò)特性與抗毀性分析
U盤故障排除經(jīng)驗談
彪悍的“寵”生,不需要解釋
曹曙東、溫新建作品
绍兴县| 静海县| 汝州市| 邵东县| 梁山县| 含山县| 桐梓县| 兴业县| 宣恩县| 元氏县| 仁寿县| 潼关县| 乌兰浩特市| 河南省| 酒泉市| 缙云县| 上犹县| 三门县| 牡丹江市| 象州县| 延安市| 炉霍县| 金昌市| 潼关县| 汉川市| 金山区| 波密县| 孟州市| 闻喜县| 眉山市| 呼和浩特市| 兴和县| 常德市| 家居| 海盐县| 清新县| 忻州市| 磐安县| 霍林郭勒市| 鹤峰县| 颍上县|