《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于System ACE的DSP文件系統設計
基于System ACE的DSP文件系統設計
摘要: 本文實現了DSP通過System ACE對CF卡進行數據存儲管理,充分利用了SystemACE技術的系統內配置方案,突破了傳統的多FPGA應用環境。
關鍵詞: DSP System ACE CF
Abstract:
Key words :

引  言

  目前,對圖像處理系統的速度和精度要求越來越高,采樣的數據量也越來越大。而嵌入式系統中的硬件資源環境一般比較苛刻,嵌入式微處理器和微控制器的內存一般都不大。為了能夠實現DSP(Digital Signal Processing)系統的獨立運行,需要大容量的存儲介質用于保存采樣結果。但是板載的Flash等容量通常不大,SDRAM掉電后數據會丟失,并且它們無法方便地把數據轉移到計算機主機上。閃存技術的不斷發展,使得閃存卡(如CF卡、SD卡等)因其體積小、容量大、可靠性高等優點而在嵌入式存儲領域得到越來越廣泛的應用。因此,本文介紹一種使用CF卡作為數據存儲介質存儲大量數據的方法。FAT16文件系統具有出色的文件管理性能,能被大多數操作系統識別,因此將CF卡與FAT16文件系統相結合是嵌入式存儲、記錄系統的一個理想方案。

  1  System ACE原理

  1.1  System ACE簡介

  System ACE(System Advanced Configuration Environment)是Xilinx公司開發的系統高級配置系列,用以滿足面向多個FPGA的系統對高效空間、預置、高密度配置需求的解決方案。System ACE技術是一種突破性的系統內可配置的解決方案,大幅節省了開發工作;與傳統的PROM相比,每比特成本也大大降低。System ACE技術是高容量FPGA系統的嵌入式解決方案。

  System ACE系列把xilinx配置控制的專業技術和專注于存儲的產業結合在一起,它的第1個成員是SystemACE CF(CompactFlash)。

  System ACE CF是1個芯片集,由2部分組成:一個是ACE控制器,另一個就是用于存儲的CF卡。

  1.2 ACE控制器

  如圖1所示,ACE控制器有4個接口,分別用來連接CF(CompactFlash)、MPU(Microprocessor)、用于連接FPGA的CFGJTAG(Configration JTAG)、允許高度靈活配置的TSTJTAG(Test JTAG)。下面著重介紹CF卡接口和MPU接口。


  1.3 CF卡接口

  CF卡接口可以連接的CF卡類型有Xilinx ACEFlash卡、任意標準的CF卡、高達8 Gb的IBM微型硬盤,以及所有有相同外形和電路板空間需求的存儲卡。

  CF卡接口由2部分組成:一是CF卡控制器,二是CF卡仲裁器。CF卡控制器不僅用來檢測和維護CF卡設備的狀態,而且還處理所有的CF設備的訪問總線周期及提煉和執行CF命令(如軟復位、讀/寫段)等。CF卡仲裁器決定微處理器和配置JTAG控制器哪一個來訪問CF卡的數據緩沖。

  1.4  MPU接口

  MPU接口功能:

  ◆MPU接口提供了監控System ACE控制器和ACE Flash讀寫數據的功能。

  ◆MPU接口能夠識別CF卡并對CF卡進行讀寫。

  ◆MPU接口能夠控制配置流,包括監控ACE控制器的配置狀態和錯誤狀態,還能延時配置、開始配置、決定CF卡或MPU的配置源,控制比特流版本以及復位設備等。

  本文就是利用ACE控制器的MPU接口,在該接口處連接DSP芯片,并通過CF卡為DSP加載文件系統。

  1.5  System ACE的文件和目錄

  .ACE是在目錄結構的最底層。Xilinx的SystemACE軟件能夠將比特流轉換為.ACE文件。1個.ACE文件代表特定設備鏈的比特流。

  .collection是目錄結構中緊挨著.ACE的上一層,由8個.ACE組成。在System ACE環境下,同一.collection下的所有.ACE文件都可以處理。

  在1個CF卡設備中有多個collection,但在任意一時問只能有1個被激活,至于哪一個被操作是通過xilinx.sys文件來決定的。xilinx.sys文件在ACE Flash設備的根目錄下。ACE控制器能夠解析xilinx.sys文件。若根目錄下面沒有xilinx.sys文件,則必須有1個.ACE文件來充當此角色。

  System ACE目錄結構的分層設計使得它能夠維護多個版本或者是不同設計的collection。每一個collection目錄可以有1個或者多個不同的子目錄。每一個子目錄只能包含1個.ACE文件。

  Sysrem ACE目錄結構的規則如下:

  ◆Sysrem ACE配置文件必須放在CF卡設備的第1分區。

  ◆Sysrem ACE分區必須被格式化為FAT12或者FAT16格式。

  ◆xilinx.sys必須在根目錄下。當xilinx.sys不存在時,根目錄下必須有1個.ACE來充當此角色。

  2 CF卡原理

  CF(Compact Flash)卡是以閃存為存儲,具有容量大(512 MB)、功耗低和可靠性高等優點,得到廣泛的應用。CF卡讀寫的最小單位為1個扇區(512字節),讀寫操作是通過卡內緩沖區進行的,不支持直接讀寫存儲區域。

  CF卡可以工作在3種模式:PC Card Memory(Memory模式),PC Card I/O(I/O模式)和True IDE模式。PCCARD模式與PCMCIA標準兼容。TRUE IDE模式與ATA/ATAPI-4標準兼容。當上電時,如果OE接地,則進入True IDE模式,在此模式下只可以存取任務寄存器。另外2種模式需要通過設備結構寄存器來選擇。

  CF卡的操作方式與硬盤的操作方式相似。CF卡讀寫必須以扇區為單位,每個扇區為512字節,每次可以讀寫1個扇區或連續多個扇區。扇區的尋址方式有2種:邏輯尋址(LBA)和物理尋址(CHS),它們之間的關系為:

  LBA=(柱面號×磁頭數+磁頭號)×扇區數+扇區數-1

  尋址方式采用LBA(Logic Block Address),該方式將全部扇區映射至1塊連續的地址空間中,這樣可以大大簡化編程的工作,同時避免了柱面、磁頭和扇區之間的換算,使尋址更方便。對CF卡的配置及各種操作,如讀寫、刪除、格式化等,都通過寫特殊功能寄存器完成。

  3  文件系統的建立

  3.1  文件系統的引入

  100個數在文件系統中是如何存放的呢?在計算機中是以0/1二進制的形式簡單地存放在存儲介質中。如果不同的數多,如何處理?這就引出了文件系統。文件系統實際上就是對存儲的數據進行管理。本文在CF卡上建立的文件系統是FAT16。FAT16是Microsoft較早推出的文件系統,具有高度兼容性,目前仍然廣泛應用于個人電腦尤其是移動存儲設備中。

  硬盤上的數據按照其不同的特點和作用大致可分為5部分:MBR(Main Boot Record,主引導扇)區,DBR(DosBoot Record,操作系統引導記錄)區,FAT(File AllocationTable,文件分配表)區,DIR(Directory,根目錄)區,DATA區。

  MBR區位于整個硬盤的0柱面0磁頭1扇區(可以看作是硬盤的第1個扇區),bios在執行自己固有的程序以后就會跳轉到mbr中的第1條指令,將系統的控制權交由mbr來執行。在總共512字節的主引導記錄中,MBR的引導程序占了其中的前446字節(偏移0H~偏移1BDH),隨后的64字節(偏移1BEH~偏移1FDH)為DPT(Disk Partition Table,硬盤分區表),最后的2字節“55 AA”(偏移1FEH~偏移1FFH)是分區有效結束標志。MBR不隨操作系統的不同而不同,即不同的操作系統可能會存在相同的MBR,即使不同,MBR也不會夾帶操作系統的性質,具有公共引導的特性。

  DBR(Dos Boot Record,操作系統引導記錄)區通常占用分區的第0扇區,共512字節(特殊情況下也要占用其他保留扇區,這里先說第0扇)。在這512字節中,其實又是由跳轉指令、廠商標志和操作系統版本號、BPB(BIOS Parameter Block)、擴展BPB、os引導程序、結束標志幾部分組成。

  FAT表是用FAT16來記錄磁盤數據區簇鏈結構的。如前面的例子,FAT將磁盤空間按一定數目的扇區為單位進行劃分,這樣的單位稱為簇。通常情況下,每扇區512字節的原則是不變的。簇的大小一般是2n(n為整數)個扇區的大小,像512 B、1 KB、2 KB、4 KB、8 KB、16 KB、32 KB、64 KB。實際中通常不超過32 KB。之所以簇為單位而不以扇區為單位進行磁盤的分配,是因為當分區容量較大時,采用大小為512位的扇區管理會增加FAT表的項數,對大文件存取增加消耗,文件系統效率不高。

  DIR(Directory)是根目錄區,緊接著第二FAT表(即備份的FAT表)之后,記錄著根目錄下每個文件(目錄)的起始單元、文件的屬性等。定位文件位置時,操作系統根據DIR中的起始單元,結合FAT表就可以知道文件在硬盤中的具體位置和大小了。

  數據區是真正意義上的數據存儲的地方,位于DIR區之后,占據硬盤上的大部分數據空間。

  3.2 FAT16文件系統存儲原理

  在FAT文件系統中,文件的存儲依照FAT表制定的簇鏈式數據結構來進行。同時,FAT文件系統將組織數據時使用的目錄也抽象為文件,以簡化對數據的管理。格式化FAT16分區時,格式化程序根據分區的大小確定簇的大小,然后根據保留扇區的數目、根目錄的扇區數目、數據區可分的簇數與FAT表本身所占空間來確定FAT表所需的扇區數目,之后將計算結果寫入DBR的相關位置。FAT16 DBR參數的偏移0x11處記錄了根目錄所占扇區的數目。偏移0x16記錄了FAT表所占扇區的數據。偏移0x10記錄了FAT表的副本數目。系統在得到這幾項參數以后,就可以確定數據區的開始扇區偏移了。FAT16文件系統從根目錄所占的32個扇區之后的第1個扇區開始以簇為單位進行數據的處理,這之前仍以扇區為單位。對于根目錄之后的第1個簇,系統并不編號為第0簇或第1簇,而是編號為第2簇,也就是說數據區順序上的第1個簇也是編號上的第2簇。FAT文件系統之所以有12、16、32不同的版本之分,其根本在于FAT表用來記錄任意一簇鏈接的二進制位數。以FAT16為例,每一簇在FAT表中占據2字節(二進制16位)。所以,FAT16最大可以表示的簇號為0xFFFF(十進制的65535),以32 KB為簇的大小的話,FAT32可以管理的最大磁盤空間為:32 KB×65 535=2 048 MB,這就是為什么FAT16不支持超過2 GB分區的原因。FAT表實際上是1個數據表,以2字節為單位,我們暫將這個單位稱為FAT記錄項,通常情況其第1、2個記錄項(前4個字節)用作介質描述。從第3個記錄項開始記錄除根目錄外的其他文件及文件夾的簇鏈情況。

  4  DSP對CF卡的讀寫操作

  4.1  DSP對CF卡讀寫的硬件電路

  通過在MPU端口處連接DSP來實現DSP對CF卡的讀寫,圖2為DSP讀寫CF卡的示意圖,圖3為硬件連接圖。


 

  4.2  DSP對CF卡讀寫的軟件流程

  圖4為DSP讀寫CF卡數據的軟件流程。首先,DSP通過MPU端口訪問CF卡前必須獲得CF卡鎖,否則進入等待直到CF卡處于空閑狀態或者強制獲得CF卡鎖。其次,CF卡數據的讀寫是以扇區為單位的。1個扇區可以分為若干個sector,每個sector的大小固定為512字節,每個sector又可分為16個buffer。若已知CF卡的容量就可以通過計算來設置LBA、sector變量以及buffer變量。最后,對buffer進行讀寫,讀寫結束后釋放CF卡鎖。


  4.3  程序設計

  可以通過以下函數來實現DSP對CF卡的讀寫。

  ◆獲得CF卡鎖:Uint32 get_CF_lock(void);

  ◆檢測CF卡當前狀態:Uint32 check_CF_ready (void);

  ◆檢測buffer是否準備就緒:Uint32 wait_buffer_ready(void);

  ◆讀CF卡數據:Uint32 read_data_from_CF(Uint8*p_data,Uint32 LBA,Uint16 Sector Count);

  ◆向CF卡寫數據:Uint32 write_data_to_CF(Uint8*p_data,Uint32 LBA,Uint16 Sector_Count);

  ◆復位:void reset(void)。

  結  語

  本文實現了DSP通過System ACE對CF卡進行數據存儲管理,充分利用了SystemACE技術的系統內配置方案,突破了傳統的多FPGA應用環境。

  CF卡作為存儲介質具有容量大、接口簡單、體積小、價格低廉和可靠性較高等特點,結合FAT16文件系統,可以很方便地存儲和回放數據。


 

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美激情一区二区| 在线观看福利一区| 欧美1区视频| 久久久久一本一区二区青青蜜月| 亚洲淫片在线视频| 一区二区三区日韩精品视频| 亚洲精品乱码视频| 亚洲国产欧洲综合997久久| 欧美主播一区二区三区| 欧美一级一区| 久久gogo国模啪啪人体图| 先锋资源久久| 欧美在线观看一二区| 久久精品99国产精品日本| 欧美尤物巨大精品爽| 欧美一区二区视频观看视频| 午夜宅男欧美| 欧美亚洲免费高清在线观看| 午夜精品在线看| 欧美一区二区三区精品电影| 欧美一区日本一区韩国一区| 欧美亚洲一区| 亚洲第一主播视频| 亚洲国产日韩欧美| 亚洲人成网站色ww在线| 日韩午夜电影| 中文亚洲字幕| 亚洲欧美视频在线| 久久久久久日产精品| 免费不卡亚洲欧美| 欧美国产一区二区在线观看| 欧美日韩国产综合视频在线观看中文| 欧美久久久久中文字幕| 欧美日韩国产黄| 国产精品看片资源| 国产婷婷精品| 在线日本成人| 一区二区激情小说| 欧美一区2区三区4区公司二百| 亚洲福利视频网站| 亚洲精品小视频| 亚洲一区二区高清| 欧美中在线观看| 欧美凹凸一区二区三区视频| 欧美日韩1080p| 国产精品揄拍500视频| 精品电影在线观看| 夜色激情一区二区| 欧美中文在线视频| 一本色道久久综合精品竹菊| 欧美一区二区三区啪啪| 欧美freesex交免费视频| 欧美色网一区二区| 韩国成人理伦片免费播放| 亚洲欧洲一区二区三区久久| 亚洲四色影视在线观看| 久久精品国产免费观看| 夜夜嗨av色综合久久久综合网| 欧美一区二区福利在线| 猛男gaygay欧美视频| 国产精品h在线观看| 影音先锋在线一区| 一区二区三区欧美| 亚洲国产欧美日韩精品| 亚洲一区二区免费视频| 裸体歌舞表演一区二区| 欧美午夜精品久久久久免费视| 国产一区清纯| 中文日韩在线视频| 91久久久久久久久| 欧美影视一区| 欧美人牲a欧美精品| 国内精品久久久久影院色 | 麻豆freexxxx性91精品| 国产精品jizz在线观看美国| 在线欧美三区| 午夜视频一区在线观看| 一本色道久久99精品综合| 久久久久久一区二区| 国产精品高潮呻吟| 亚洲激情成人网| 久久精品免费播放| 午夜欧美大尺度福利影院在线看| 欧美高清在线精品一区| 国产一区二区日韩精品| 中文国产一区| 99re热这里只有精品视频| 久久久久**毛片大全| 国产精品视频一二三| 亚洲美女免费精品视频在线观看| 久久精品男女| 欧美在线首页| 国产精品久久久一区二区| 亚洲精品欧美日韩专区| 91久久国产综合久久91精品网站| 久久精品二区| 国产日本欧美一区二区三区| 亚洲视频香蕉人妖| 一区二区三区你懂的| 欧美成人影音| 一区视频在线看| 欧美在线播放| 久久99在线观看| 国产伦精品一区二区三区免费迷 | 在线性视频日韩欧美| 欧美国产日韩免费| 在线观看日韩av电影| 欧美中文字幕久久| 久久精品国产亚洲a| 国产亚洲精品美女| 亚洲欧美网站| 欧美一级在线视频| 国产精品揄拍500视频| 亚洲女人天堂av| 久久9热精品视频| 国产亚洲欧美另类中文| 欧美一区二区久久久| 久久精品国产成人| 国内成人精品一区| 亚洲第一狼人社区| 久久中文精品| 亚洲国产精品成人| 亚洲日本成人网| 欧美大秀在线观看| 亚洲激情二区| 在线视频你懂得一区| 欧美视频亚洲视频| 亚洲午夜精品久久| 欧美亚洲视频在线观看| 国产美女诱惑一区二区| 午夜精品久久久久久99热软件| 欧美中文字幕久久| 韩国三级电影一区二区| 亚洲国产国产亚洲一二三| 欧美fxxxxxx另类| 亚洲伦理在线免费看| 亚洲一区二区在线免费观看| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲欧美成人网| 久久精品国产综合精品| 在线成人激情视频| 一本色道久久综合亚洲精品不| 欧美日韩专区| 亚洲欧美激情在线视频| 久久国产精品99久久久久久老狼| 韩日在线一区| 亚洲精品一区在线观看| 欧美日韩在线视频首页| 午夜精品美女久久久久av福利| 久久免费视频在线观看| 亚洲国产小视频在线观看| 在线综合亚洲| 国产九九精品视频| 亚洲二区视频| 欧美三级午夜理伦三级中视频| 亚洲自拍高清| 久久综合色88| 99精品热6080yy久久| 久久成人精品一区二区三区| 在线观看视频一区二区欧美日韩| 在线亚洲免费| 国产一区二区三区精品欧美日韩一区二区三区 | 午夜精品一区二区三区四区| 久久se精品一区二区| 国产主播在线一区| 日韩亚洲一区二区| 国产精品一区毛片| 最新国产拍偷乱拍精品 | 午夜精品久久久久影视| 欧美大成色www永久网站婷| 亚洲视频1区2区| 免费一级欧美片在线播放| 中国成人黄色视屏| 久久综合中文色婷婷| 99视频一区| 美女尤物久久精品| 中日韩高清电影网| 麻豆精品精华液| 亚洲午夜精品久久久久久浪潮 | 久久久久久久999| 亚洲精品黄色| 久久高清免费观看| 99成人在线| 久久中文在线| 亚洲你懂的在线视频| 欧美精品在线网站| 久久国产精品久久w女人spa| 国产精品大片wwwwww| 亚洲国产婷婷香蕉久久久久久99 | 亚洲高清av在线| 欧美呦呦网站| 99精品免费网| 欧美高清免费| 欧美一区二区三区视频在线| 欧美日在线观看| 亚洲国产婷婷| 国内久久婷婷综合| 午夜精品视频一区| 日韩视频免费大全中文字幕| 美日韩精品视频免费看|