基于ARM9与FPGA的高速数据记录模块设计

2016-09-08 06:13范文强刘云学
电子设计工程 2016年9期
关键词:嵌入式条目系统

岳 峰,范文强,刘云学

(烟台大学 山东 烟台 264003)

基于ARM9与FPGA的高速数据记录模块设计

岳 峰,范文强,刘云学

(烟台大学 山东 烟台 264003)

为满足空军某型号雷达对于高速雷达数据的记录需求,本文给出了基于ARM9和V5系列FPGA的记录模块设计方案,通过一种特殊方法,提高了Nandflash异步写入速度,同时实现了模块中高效的文件管理、掉电恢复、数据循环覆盖记录等功能。本系统软硬结合,充分发挥了硬件的潜能,成功研制了一种记录速度达1 GB/s同时具备掉电恢复、循环覆盖功能的记录模块,并装备某型号雷达。

高速记录;ucos ii;FPGA;嵌入式系统

在雷达数据分析、地震预报、航天等领域,试验中产生的数据往往是试验中最有价值的结果,通过分析试验中产生的数据,对分析解决问题具有重要意义[1]。数据记录、回放系统可以有效的对试验过程中产生的数据进行记录,是试验评估的重要前提和保障,在复杂系统调试中发挥着重要作用[2-34]。为满足某型号空军雷达的调试需要,使用ARM9与FPGA配合,成功实现了一种数据记录速度大于1 GB/s,可以循环覆盖记录,具备掉电恢复功能,同时存储空间大于1 000 GB的记录与回放系统。

1 系统硬件构架

结合实际应用需求,本系统分为两种工作模式,一种是受到人为发送的网络命令控制,另一种受到数据处理(后文中简称DP)通道命令控制进行自动记录,工作在多种工作方式下进行高速数据记录,每次记录形成独立文件,并能够完成网络下载数据,光纤上传与下载数据的功能。综合系统需求,提出整体结构如图1。

图1 系统整体结构设计

整个系统设置两个核心,其中一个作为整体控制核心,完成控制命令解析、网络传输、文件管理以及对数据处理核心的模式控制等功能。另外一个作为专用的数据处理核心,根据控制核心的控制完成高速数据的处理、存储以及与PC间的光纤通信功能。

依据整体结构,做出系统硬件构架设计如图2。

图2 系统硬件构架设计

由于控制核心需要进行高实时性的任务管理,而数据处理核心具有高速并行的数据处理需求、存储,选用ARM与FPGA作为核心单元,以ARM为整体控制核心,通过千兆网络、串口与上位机连接。FPGA作为数据处理与数据存储核心控制器与Nandflash数据存储阵列连接,通过双口RAM,以及通用管脚与ARM进行数据、命令的交互。在ARM与FPGA外围,挂载必要的程序存储器、运行内存、FPGA加载芯片。此外,在FPGA上连接双片8MB Norflash芯片,由FPGA直接连接到ARM上,用于文件表、坏块表等信息的存储、管理,双片相互备份,保证系统的可靠性。

器件选型方面,根据系统性能需求,ARM处理器选取ATMEL公司的AT91RM9200,处理器工作在180 MHz的情况下可以达到200 MI/S的性能[5]。具有出色的功耗比,以及丰富的外部接口。为应对1 GB/s的高速数据流的处理、记录,FPGA选用xlinx V5系列器件。数据存储介质,选用72片16 GB Micron NandFlash组成存储阵列。

2 系统软件构架

围绕整体构架和硬件设计,为实现系统需要的高实时性的多任务处理,在控制核心ARM上移植ucos II内核[6]。该内核为精简高实时性的操作系统,符合航空无线电技术委员会DO-178B标准[7-89]。此外由于ucos II中并未集成以太网通信功能,在ucos II内核中移植入LWIP协议栈,从而实现系统的网络通信功能[10]。在此基础上,结合记录模块的各项功能需求提出系统软件构架设计如图3。

图3 系统软件构架设计

在ucos ii和LWIP的基础上,以ARM作为TCP服务器,PC为客户端。在应用层建立6个主要任务按照优先级从高到低依次为:TCP命令解析、DP命令解析、坏块表实时更新、工作模式控制、串口、工作状态实时数传任务。各任务相互配合,完成各项功能。

数据记录系统以PC网络控制优先,当通过PC客户端网络连接系统后,TCP Sever任务会实时监测网络数据,接收到网络命令后,向工作模式控制任务发送消息,在工作模式控制任务中ARM控制FPGA进入相应工作模式,直到当前指令完成。当网络未连接时,由DP数据解析任务实时监控FPGA双口RAM中DP通道的控制指令信息,向工作模式控制任务发送指令消息,从而实现系统的自动控制功能。此外,工作状态实时反馈任务会在网络连接的状态下,周期性向PC客户端传送当前模块的工作状态信息,由PC客户端实时显示。

坏块表实时更新任务分别用于实时监控系统工作过程中NandFlash的坏块并对坏块表进行更新,保证数据记录的可靠性[11]。

工作模式控制任务是整个控制系统的核心任务,在该任务中,ARM会根据命令解析任务传递的命令消息,控制FPGA、NorFlash等完成相应功能,通过TCP与PC端传输命令数据。

3 核心处理方法

1)NandFlash异步方式高速写入

在本设计中,采用的Nandflash芯片,异步最高写入速度为50 MB/s。整个存储空间由72片Nandflash组成,为实现较高的写入速度,同时降低整体坏块率,设计上,将所有NandFlash分为3个3行8列的存储阵列,每列共用数据IO口,每个阵列中每行NandFlash芯片共享片选信号CE(后文中简称CE),Nandflash阵列结构如图4。为达到最大数据写入速度,将三组Nandflash并作一组,使数据位宽达到192 bit,理论写入峰值速度为24(片)*50(MB/s)=1200MB/s,但除去flash操作过程中命令检测、等待、编程完成指令等消耗的时间,平均写入速度远不可能达到1 GB/s。

图4 Nandflash阵列结构

为尽可能提高Nandflash写入速度,同时实现循环覆盖记录功能,采用边擦边写的记录方式。首先将整个阵列分为上下两个半区,写入时流水操作只在3个CE上进行,同时另外半区的3个CE上进行擦除操作。

其中写入采取流水加multiplane方式写入,即在一个CE上同时写入两页数据,然后两页同时编程交替写入[12]。如图5,在一个CE内写完两页数据后发出页编程指令,立即去写下一个CE,而不等待编程完成,待第三个CE写入完成后,第一个CE内页编程已结束,可以继续写入数据。如此就将NandFlash的写入速度控制在了峰值,从而使整体写入速度达到50*24=1 200 MB/s。

图5 Nandflash数据流水写入方法

为了实现能在全盘写满后,不进行格式化的前提下,继续记录数据,同时保护已记录数据。在高速写入设计的基础上,整个Nandflash阵列人为的在地址上分成128个区域,每个区分为上下半区,每个半区大小为9 GB。从第一个区上半区依次向后记录,当写某个区时,下一个区擦除,周而复始,从而实现循环覆盖的数据记录,同时也不会对有效数据存储空间大小,也有效保护了已记录的数据。

2)文件列表

为将每次记录的数据形成独立的文件,并且实现记录模块的掉电恢复、循环覆盖功能,需要在本系统中加入文件系统[13-1415]。但结合软硬件框架,现有的文件系统并不适用于本系统,根据实际需要作出文件列表设计如图6。

图6 文件列表结构

每个文件条目由两部分组成,文件头和文件尾,每个条目长度64字节,由ARM写入NorFlash中进行存储。记录开始写入文件头,记录结束后写入文件尾。文件头中依次包含起始标志,文件号,通道号,文件名,起始地址,文件头结束标志。文件尾中包含结束地址,各通道长度,CRC32校验,文件有效标志,文件尾结束标志。其中新记录形成的文件头起始标志为HEADh,已有文件被覆盖后形成的文件条目文件头起始标志为hEADh。

文件列表遵循一个原则,从NorFlash文件表区域不断往后记录,错误或无效记录通过将其标志位置零实现文件条目的删除。只有格式化时才能擦除文件列表。形成一个新的文件记录的流程如图7。

图7 记录文件流程

首先通过从后向前遍历文件列表,查询到最后一个起始为HEADh且正确有效的文件,即为上次记录形成的文件记录,从而得出下一个新文件的起始地址、文件号等元素。通道号、文件名则通过上位机、控制端获取,将新文件头信息写入文件表,然后向FPGA发出记录指令,记录结束后,根据FPGA返回的文件结束地址、大小信息一同形成CRC校验码,写入文件尾,从而形成一个新的文件条目。

3)掉电数据恢复

由于文件条目是分两步被写入文件列表,因此可以依据最后一个文件条目是否完整来判断记录过程中是否发生掉电,然后由FPGA在NandFlash中进行数据查询,配合ARM进行文件恢复,其流程如图8。

图8 掉电数据恢复流程

系统每次上电先文件列表尾部向前查询各个文件条目是否完整有效,若无效则判断文件头是否完整,头不完整则直接标记该条目为无效。文件头完整,说明可能已经有数据被记录,此时在文件列表结尾处复制该文件头形成新的文件条目,并请求FPGA查询该数据的结束地址,完成后,读取FPGA反馈的结束地址和文件大小,写入文件尾。

若在掉电恢复过程中再次出现掉电,则出现多个不完整条目,造成恢复后文件条目重复,因此在恢复完成后继续向前遍历文件表,将与文件表最后一个文件记录文件号相同的所有记录标记为无效。此外,还需考虑恰好恢复完一个文件条目,还未将之前的不完整条目标记为无效的情况,为此,在上电后,先查询文件表最后一个文件的完整性,若完整,则将之前与其文件号相同的文件条目全部标记为无效即可。

4)循环覆盖文件查询管理

FPGA采用的高速写入方式,造成数据在NandFlash中存储的地址并不是单纯的连续递增,因此通过新纪录文件的结束地址进行判断是否对前面的文件发生覆盖,是无法实现的。由于文件记录时物理存储结构上是递增的,且NandFlash中每一页内都记录着当前页内数据所属的文件号。因此只需找到当前擦除区域下一个区域第一页上的文件号,即可得出当前已经覆盖到第几个文件,而该文件之前的数据必定已全部被覆盖。

被部分覆盖的文件,当前擦除区域下一个区域起始地址即为该文件现存数据的起始地址,形成新文件条目将原有条目置为无效,由于所有文件条目是依次向后记录的,为将其与正常记录的文件区分,保证其对新起记录时计算新起始地址不产生影响,将其文件条目头标志写为hEADh。

4 结束语

本系统设计阐述的 Nandflash流水式写入方式,将Nandflash的最大平均写入速度控制在1 175 MB/s,接近理论计算数值1 200 MB/s,是整个高速数据记录的基础,另外采用的边擦编写的方式也完好实现了循环覆盖写入方式,尽可能的使数据记录操作变得简易,此外,针对性的文件管理系统也高效地实现了掉电恢复、循环覆盖管理等功能,对于整个系统的实用性以及对于数据保护就有重要意义,充分达到某型号雷达的实际需求。在实际雷达调试中起到至关重要的作用。对于高速数据记录系统具有指导意义。

[1]丁晓伟,应波.基于ARM9与FPGA的嵌入式固态存储系统[J].现代雷达,2009,31:55.

[2]张斌,李永红.引信总体试验中数据记录系统的研究[J].现代防御技术,1997(3):49-52

[3]甄国涌,单彦虎.弹载固态记录器高速存储体系结构设计[J].计算机工程,2013,39(3):275-278

[4]赵忠文,王魁.基于NAND Flash的高速大容量固态记录器设计[C].全国信号和智能信息处理与应用学术交流会,2009.

[5]陈敬谦,王璐.基于AT91RM9200微处理器的最小系统设计[J].电子工程师,2007,33(4):71-73.

[6]夏彬彬,耿光仁.实时嵌入式操作系统uC/OS-II在ARM9上的移植应用[J].中国科技信息,2006(3):30-30.

[7]任哲.嵌入式实时操作系统μc/os-ii[M].北京:北京航空航天大学出版社,2014.

[8]王命延,于爱军.一种加载在uCOS-II内核上的嵌入式文件系统[J].南昌大学学报:理科版,2005,29(2):197-199.

[9]刘淼,王田苗.基于uCOS-II的嵌入式数控系统实时性分析[J].计算机工程,2006,32(22):222-224.

[10]程明,余中华.μC/OSⅡ下LwIP协议栈的移植和测试[J].微计算机信息,2008,24(23):79-80.

[11]高世杰.基于FPGA的NANDFlash坏块处理方法[J].计算机工程,2010,36(6):239-240.

[12]邱华,黄少珉.提高Nand Flash性能的方法[J].计算机工程与应用,2009,45(8):84-86.

[13]张明亮,张宗杰.浅析FAT32文件系统[J].计算机与数字工程,2005,33(1):56-59.

[14]陈智育.嵌入式系统中的Flash文件系统[J].单片机与嵌入式系统应用,2002(2):5-8.

[15]谌爱文,陈仕许.初探在uCOS-Ⅱ上实现大容量内存文件系统[J].怀化学院学报:自然科学,2006,25(2):110-112.

Implementation of a high speed data recording system based on ARM9 and FPGA

YUE Feng,FAN Wen-qiang,LIU Yun-xue
(Yantai University,Yantai 264003,China)

In order to meet the needs of a certain type of air force radar that record demand for high speed radar data,this paper gives the module design what based on ARM9 and V5 series FPGA,through a special method,we improve the nandflash asynchronous write speed,at the same time,we also realized file management,power fail recovery and cyclic data covering records.We made the hardware and software combined softly and finally realized a module with not only 1GB/s recording speed but also power fail recovery and cyclic data covering records function.It is equipped in a radar.

High speed recording;UCOS II;FPGA;embedded system

TN959.6

A

1674-6236(2016)09-0156-04

2015-12-23稿件编号:201512229

山东省重点研发项目(2015GGX101027)

岳 峰(1990—),男,山东莱芜人,硕士研究生。研究方向:嵌入式系统。

猜你喜欢
嵌入式条目系统
Smartflower POP 一体式光伏系统
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
WJ-700无人机系统
基于PowerPC+FPGA显示系统
TS系列红外传感器在嵌入式控制系统中的应用
《词诠》互见条目述略
搭建基于Qt的嵌入式开发平台
Can we treat neurodegenerative diseases by preventing an age-related decline in microRNA expression?
连通与提升系统的最后一块拼图 Audiolab 傲立 M-DAC mini
倍福 CX8091嵌入式控制器