当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于System ACE的DSP文件系统设计

引  言

  目前,对图像处理系统的速度和精度要求越来越高,采样的数据量也越来越大。而嵌入式系统中的硬件资源环境一般比较苛刻,嵌入式微处理器和微控制器的内存一般都不大。为了能够实现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加载文件系统。[!--empirenews.page--]

  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个记录项开始记录除根目录外的其他文件及文件夹的簇链情况。[!--empirenews.page--]

  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文件系统,可以很方便地存储和回放数据。


 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭