CN115269017A - 一种星载测控数传NANDFlash并行读写控制方法 - Google Patents
一种星载测控数传NANDFlash并行读写控制方法 Download PDFInfo
- Publication number
- CN115269017A CN115269017A CN202211194671.7A CN202211194671A CN115269017A CN 115269017 A CN115269017 A CN 115269017A CN 202211194671 A CN202211194671 A CN 202211194671A CN 115269017 A CN115269017 A CN 115269017A
- Authority
- CN
- China
- Prior art keywords
- nandflash
- data
- module
- write
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 118
- 230000005540 biological transmission Effects 0.000 title claims abstract description 87
- 238000005259 measurement Methods 0.000 title claims abstract description 55
- 238000012545 processing Methods 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims description 80
- 238000005192 partition Methods 0.000 claims description 59
- 238000006243 chemical reaction Methods 0.000 claims description 22
- 230000009191 jumping Effects 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000003139 buffering effect Effects 0.000 claims description 3
- 239000007787 solid Substances 0.000 abstract description 9
- 238000013461 design Methods 0.000 abstract description 8
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 238000007726 management method Methods 0.000 description 107
- 230000006870 function Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明提供了一种星载测控数传NANDFlash并行读写控制方法,包括以下步骤:多路数据并行写入处理和NANDFlash的并行读写控制。本发明有益效果:简化卫星系统设计,无需增加额外的存储单元,通过测控数传一体机FPGA逻辑设计实现NANDFlash并行读写控制,可以保证数据的持续写入;降低了星务计算机管理的复杂度,无需统筹调度多个设备的固存管理单元;实现多路数据并行存储,提升了卫星系统的工作效率。
Description
技术领域
本发明属于星载测控数传设备领域,尤其是涉及一种星载测控数传NANDFlash并行读写控制方法。
背景技术
目前很多卫星系统,都通过测控数传一体机的NANDFlash存储单元进行载荷数据和星务计算机关键数据的存储。在卫星系统中,通常有多个载荷设备,需要将多路数据存储到测控数传一体机的NANDFlash存储单元。往往卫星载荷处于长期工作状态,其产生的数据需要持续不断的存入测控数传一体机。在卫星过站时,测控数传一体机接收星务计算机的数据回放指令,将存储的数据下发到地面测控站,完成数据传输。
大多数测控数传一体机使用FPGA + NANDFlash的固存管理架构。主要功能包括:数据存储、数据读取、数据擦除和坏块管理四个主要部分。同一时刻,数据存储、数据读取和数据擦除这三个部分为互斥关系,不能同时进行。需要注意的是,通常单片NANDFlash的擦除时间需要几分钟,卫星过站时数据读取时间往往大于十分钟,因FPGA内部FIFO和RAM等存储资源有限,在擦除或数据读取期间,载荷数据无法通过FPGA内部存储资源进行全部缓存,最终会导致此间数据的丢失,严重影响整星任务。另外,如何实现卫星多路并行数据的存储,也是卫星系统需要统筹考虑的关键问题。
常规的卫星系统设计中,在各个载荷中分别添加固存管理单元,通过分时的方式依次将各载荷数据写入到测控数传一体机的数据存储单元。通过载荷内部的固存管理实现数据的输出控制,在测控数传一体机固存具备写入条件时,载荷将数据输出,避免数据的丢失。此方法要求星务计算机对载荷固存和测控数传一体机固存进行统筹调度,增加了星务计算机管理的复杂度,而且载荷数据分时输出,降低了整星在轨工作效率。同时因载荷增加固存管理单元,增加了载荷的体积和功耗,致使卫星系统体积增大、功耗增加和成本增加。
发明内容
有鉴于此,本发明旨在提出一种星载测控数传NANDFlash并行读写控制方法,以解决现有的星务计算机指令调度的复杂、载荷的体积和功耗增加导致卫星系统体积增大、功耗增加和成本增加的问题。
为达到上述目的,本发明的技术方案是这样实现的:
一种星载测控数传NANDFlash并行读写控制方法,包括以下步骤:
S1、给FPGA完成上电加载;
S2、复位NANDFlash;
S3、加载NANDFlash坏块信息,并判断星务计算机是否向测控数传一体机输入指令,是,则重新加载NANDFlash坏块信息后执行步骤S4-步骤S6,否,则直接进入步骤S7;
S4、四路接口数据接收处理;
S5、多通道数据缓存处理;
S6、多通道数据读取控制模块对数据流进行四选一操作,实现四路数据分时读取;
S7、NANDFlash并行读写管理模块监测NANDFlash是否处于空闲状态,是,则允许向NANDFlash并行读写管理模块发送指令,并进入步骤S8,否,则NANDFlash处于工作状态;
S8、判断NANDFlash并行读写管理模块是否收到数据写请求,是,则NANDFlash并行读写管理模块向NANDFlash写进程模块发送写触发指令,NANDFlash写进程模块执行写进程后进入步骤S10,否,则进入步骤S9;
S9、判断NANDFlash并行读写管理模块是否收到数据读请求,是,则NANDFlash并行读写管理模块向NANDFlash读进程模块发送读触发指令,NANDFlash读进程模块执行读进程,触发读进程后跳转到NANDFlash的空闲状态,否,则直接跳转到NANDFlash的空闲状态;
S10、判断写进程是否对第n块中的第1页进行写操作,是,则NANDFlash并行读写管理模块向NANDFlash擦除进程模块发送擦除触发指令,NANDFlash擦除进程模块执行擦除进程,对第n+1块进行擦除操作,完成擦除操作后,跳转到NANDFlash的空闲状态;否,则直接跳转到NANDFlash的空闲状态。
进一步的,所述测控数传一体机包括多个异步串口模块、数据串并联转化模块、多个数据缓存模块、多通道数据读取控制模块、NANDFlash分区写地址管理模块、NANDFlash并行读写管理模块、数传模块、ARM处理器、NANDFlash写进程模块、NANDFlash读进程模块、NANDFlash擦除进程模块、NANDFlash坏块管理模块、NANDFlash总线控制模块和NANDFlash,多个所述异步串口模块输入端、数据串并联转化模块输入端分别接多个载荷设备、星务计算机,多个所述异步串口模块输出端、数据串并联转化模块输出端分别通过一个数据缓存模块连接至多通道数据读取控制模块,所述多通道数据读取控制模块分别与NANDFlash分区写地址管理模块、NANDFlash并行读写管理模块相连接,所述NANDFlash分区写地址管理模块分别连接至ARM处理器、NANDFlash写进程模块,所述NANDFlash并行读写管理模块分别连接至数传模块、NANDFlash写进程模块、NANDFlash读进程模块、NANDFlash擦除进程模块、NANDFlash坏块管理模块,所述数传模块连接至ARM处理器,所述NANDFlash写进程模块、NANDFlash读进程模块、NANDFlash擦除进程模块均连接至NANDFlash总线控制模块,所述NANDFlash写进程模块、NANDFlash读进程模块、NANDFlash擦除进程模块、NANDFlash坏块管理模块、NANDFlash总线控制模块均连接至NANDFlash,所述ARM处理器连接至星务计算机。
进一步的,多个所述异步串口模块分别为UART1、UART2、UART3,多个所述载荷设备分别为一号载荷、二号载荷和三号载荷,多个所述数据缓存模块分别为FIFO1、FIFO2、FIFO3和FIFO4,所述UART1输入端接一号载荷,所述UART1输出端接FIFO1输入端,所述UART2输入端接二号载荷,所述UART2输出端接FIFO2输入端,所述数据串并联转化模块输入端接三号载荷,所述数据串并联转化模块输出端接FIFO3输入端,所述UART3输入端接星务计算机,所述UART3输出端接FIFO4输入端,所述FIFO1输出端、FIFO2输出端、FIFO3输出端和FIFO4输出端均接多通道数据读取控制模块。
进一步的,在步骤S3中的星务计算机向测控数传一体机输入的指令包括数据回放指令和坏块重新检测指令,坏块重新检测指令的操作包括以下步骤:
S31、NANDFlash坏块管理模块在收到坏块重新检测指令后,对NANDFlash进行坏块检测,将检测的NANDFlash的坏块地址信息存入NANDFlash的零地址;
S32、将NANDFlash零地址存储的坏块地址信息加载到FPGA的RAM中,生成坏块地址信息表;
S33、NANDFlash坏块管理模块将检测完标识反馈给NANDFlash并行读写管理模块,完成本次坏块检测操作。
进一步的,在步骤S5中的多通道数据缓存处理包括以下步骤:
S51、一号载荷通过异步RS422接口将一号数据流传输至UART1,UART1接收后将数据存入FIFO1中进行缓存;
S52、二号载荷通过异步RS422接口二号数据流传输至UART2,UART2接收后将数据存入FIFO2中进行缓存;
S53、三号载荷通过LVDS接口将三号数据流传输至数据串转并模块,数据串转并模块接收后将数据存入FIFO3中进行缓存;
S54、星务计算机通过异步RS422接口将四号数据流传输至UART3,UART3接收后将数据存入FIFO4中进行缓存。
进一步的,在步骤S6中的实现四路数据分时读取的方法是实时检测FIFO1_PROG_FULL、FIFO2_PROG_FULL、FIFO3_PROG_FULL和FIFO4_PROG_FULL的状态,同一时刻,按FIFO1_PROG_FULL至FIFO4_PROG_FULL的顺序依次处理,具体步骤如下:
S61、当检测到FIFO1_PROG_FULL为高电平输出时,多通道数据读取控制模块将一号数据流通道有效标识送入NANDFlash分区写地址管理模块;同时向NANFDFlash并行读写管理模块发送数据写请求信号,在NANFDFlash并行读写管理模块的空闲状态时,令FIFO1读使能信号FIFO1_RD_EN有效,读取FIFO1中的数据FIFO1_DATA,写入到NANDFLash第一分区中;
S62、当检测到FIFO2_PROG_FULL为高电平输出时,多通道数据读取控制模块将二号数据流通道有效标识送入NANDFlash分区写地址管理模块;同时向NANFDFlash并行读写管理模块发送数据写请求信号,在NANDFlash空闲状态时,令FIFO2读使能信号FIFO2_RD_EN有效,读取FIFO2中的数据FIFO2_DATA,写入到NANDFLash第二分区中;
S63、当检测到FIFO3_PROG_FULL为高电平输出时,多通道数据读取控制模块将三号数据流通道有效标识送入NANDFlash分区写地址管理模块;同时向NANFDFlash并行读写管理模块发送数据写请求信号,在NANDFlash空闲状态时,令FIFO3读使能信号FIFO3_RD_EN有效,读取FIFO3中的数据FIFO3_DATA,写入到NANDFLash第三分区中。
S64、当检测到FIFO4_PROG_FULL为高电平输出时,多通道数据读取控制模块将四号数据流通道有效标识送入NANDFlash分区写地址管理模块;同时向NANFDFlash并行读写管理模块发送数据写请求信号,在NANDFlash空闲状态时,令FIFO4读使能信号FIFO4_RD_EN有效,读取FIFO4中的数据FIFO4_DATA,写入到NANDFLash第四分区中。
进一步的,在步骤S7中的监测NANDFlash是否处于空闲状态包括以下步骤:
S71、判断NANDFlash的 Ready状态信号是否为高电平;
S72、是,则表示NANDFlash处于空闲状态,允许对NANDFlash下发指令;否,则Ready状态为低电平,NANDFlash处于工作状态,不允许对NANDFlash下发指令,并返回步骤S71。
进一步的,在步骤S8中的NANDFlash写进程模块执行写进程包括以下步骤:
S81、NANDFlash写进程模块接收NANDFlash分区写地址管理模块的写地址指针;
S82、NANDFlash写进程模块将写地址指针和写触发指令注入NANDFlash总线控制模块,触发写时序,将一页数据写入到NANDFlash;
S83、判断NANDFlash的Ready状态信号,当Ready状态信号变为高电平后,NANDFlash写进程模块将页写完成标识反馈给NANDFlash并行读写管理模块,完成本次写操作。
进一步的,在步骤S9中的NANDFlash并行读写管理模块是否收到数据读请求包括以下步骤:
S9a1、ARM处理器接收星务计算机的数据回放指令,并将数据回放指令注入数传模块;
S9a2、数传模块实时判断其内的FIFO的数据量大小;如果FIFO的数据量小于2页数据就向NANDFlash并行读写管理模块发送数据读请求信号;如果FIFO的数据量大于2页数据,就停止向NANDFlash并行读写管理模块发送数据读请求信号,并等到FIFO输出的数据量小于2页后,继续发送数据读请求,往复进行,直至收到星务计算机的数据停止回放指令,数传模块停止发送数据读请求。
进一步的,在步骤S9中的NANDFlash读进程模块执行读进程包括以下步骤:
S9b1、NANDFlash读进程模块接收ARM处理器的读地址指针;
S9b2、NANDFlash读进程模块将读地址指针和读触发指令注入NANDFlash总线控制模块,触发读时序,从NANDFlash读取一页数据;
S9b3、NANDFlash读进程模块判断NANDFlash的Ready状态信号,当Ready状态信号变为高电平后,将页读完成标识反馈给NANDFlash并行读写管理模块,完成本次读操作。
进一步的,在步骤S10中的NANDFlash擦除进程模块执行擦除进程包括以下步骤:
S101、NANDFlash擦除进程模块接收NANDFlash并行读写管理模块的擦除地址指针;
S102、NANDFlash擦除进程模块将擦除地址指针和擦除触发指令注入NANDFlash总线控制模块,触发擦除时序,擦除一个块地址;
S103、NANDFlash擦除进程模块判断NANDFlash的Ready状态信号,当Ready状态信号变为高电平后,将块擦除完成标识反馈给NANDFlash并行读写管理模块,完成本次擦除操作。
相对于现有技术,本发明所述的一种星载测控数传NANDFlash并行读写控制方法具有以下优势:
(1)本发明所述的一种星载测控数传NANDFlash并行读写控制方法,简化卫星系统设计,无需增加额外的存储单元,通过测控数传一体机FPGA逻辑设计实现NANDFlash并行读写控制,可以保证数据的持续写入。
(2)本发明所述的一种星载测控数传NANDFlash并行读写控制方法,降低了星务计算机管理的复杂度,无需统筹调度多个设备的固存管理单元。
(3)本发明所述的一种星载测控数传NANDFlash并行读写控制方法,实现多路数据并行存储,提升了卫星系统的工作效率。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的测控数传一体机示意图;
图2为本发明实施例所述的整体方法流程示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
下面将参考附图并结合实施例来详细说明本发明。
如图1至图2所示,一种星载测控数传NANDFlash并行读写控制方法,包括以下步骤:
S1、给FPGA完成上电加载;
S2、复位NANDFlash;
S3、加载NANDFlash坏块信息,并判断星务计算机是否向测控数传一体机输入指令,是,则重新加载NANDFlash坏块信息后执行步骤S4-步骤S6,否,则直接进入步骤S7;
S4、四路接口数据接收处理;
S5、多通道数据缓存处理;
S6、多通道数据读取控制模块对数据流进行四选一操作,实现四路数据分时读取;
S7、NANDFlash并行读写管理模块监测NANDFlash是否处于空闲状态,是,则允许向NANDFlash并行读写管理模块发送指令,并进入步骤S8,否,则NANDFlash处于工作状态;
S8、判断NANDFlash并行读写管理模块是否收到数据写请求,是,则NANDFlash并行读写管理模块向NANDFlash写进程模块发送写触发指令,NANDFlash写进程模块执行写进程后进入步骤S10,否,则进入步骤S9;
S9、判断NANDFlash并行读写管理模块是否收到数据读请求,是,则NANDFlash并行读写管理模块向NANDFlash读进程模块发送读触发指令,NANDFlash读进程模块执行读进程,触发读进程后跳转到NANDFlash的空闲状态,否,则直接跳转到NANDFlash的空闲状态;
S10、判断写进程是否对第n块中的第1页进行写操作,是,则NANDFlash并行读写管理模块向NANDFlash擦除进程模块发送擦除触发指令,NANDFlash擦除进程模块执行擦除进程,对第n+1块进行擦除操作,完成擦除操作后,跳转到NANDFlash的空闲状态;否,则直接跳转到NANDFlash的空闲状态。
在本发明一种优先的实施方式中,所述测控数传一体机包括多个异步串口模块、数据串并联转化模块、多个数据缓存模块、多通道数据读取控制模块、NANDFlash分区写地址管理模块、NANDFlash并行读写管理模块、数传模块、ARM处理器、NANDFlash写进程模块、NANDFlash读进程模块、NANDFlash擦除进程模块、NANDFlash坏块管理模块、NANDFlash总线控制模块和NANDFlash,多个所述异步串口模块输入端、数据串并联转化模块输入端分别接多个载荷设备、星务计算机,多个所述异步串口模块输出端、数据串并联转化模块输出端分别通过一个数据缓存模块连接至多通道数据读取控制模块,所述多通道数据读取控制模块分别与NANDFlash分区写地址管理模块、NANDFlash并行读写管理模块相连接,所述NANDFlash分区写地址管理模块分别连接至ARM处理器、NANDFlash写进程模块,所述NANDFlash并行读写管理模块分别连接至数传模块、NANDFlash写进程模块、NANDFlash读进程模块、NANDFlash擦除进程模块、NANDFlash坏块管理模块,所述数传模块连接至ARM处理器,所述NANDFlash写进程模块、NANDFlash读进程模块、NANDFlash擦除进程模块均连接至NANDFlash总线控制模块,所述NANDFlash写进程模块、NANDFlash读进程模块、NANDFlash擦除进程模块、NANDFlash坏块管理模块、NANDFlash总线控制模块均连接至NANDFlash,所述ARM处理器连接至星务计算机。
在本发明一种优先的实施方式中,多个所述异步串口模块分别为UART1、UART2、UART3,多个所述载荷设备分别为一号载荷、二号载荷和三号载荷,多个所述数据缓存模块分别为FIFO1、FIFO2、FIFO3和FIFO4,所述UART1输入端接一号载荷,所述UART1输出端接FIFO1输入端,所述UART2输入端接二号载荷,所述UART2输出端接FIFO2输入端,所述数据串并联转化模块输入端接三号载荷,所述数据串并联转化模块输出端接FIFO3输入端,所述UART3输入端接星务计算机,所述UART3输出端接FIFO4输入端,所述FIFO1输出端、FIFO2输出端、FIFO3输出端和FIFO4输出端均接多通道数据读取控制模块。
在本发明一种优先的实施方式中,在步骤S3中的星务计算机向测控数传一体机输入的指令包括数据回放指令和坏块重新检测指令,坏块重新检测指令的操作包括以下步骤:
S31、NANDFlash坏块管理模块在收到坏块重新检测指令后,对NANDFlash进行坏块检测,将检测的NANDFlash的坏块地址信息存入NANDFlash的零地址;
S32、将NANDFlash零地址存储的坏块地址信息加载到FPGA的RAM中,生成坏块地址信息表;
S33、NANDFlash坏块管理模块将检测完标识反馈给NANDFlash并行读写管理模块,完成本次坏块检测操作。
在本发明一种优先的实施方式中,在步骤S5中的多通道数据缓存处理包括以下步骤:
S51、一号载荷通过异步RS422接口将一号数据流传输至UART1,UART1接收后将数据存入FIFO1中进行缓存;
S52、二号载荷通过异步RS422接口二号数据流传输至UART2,UART2接收后将数据存入FIFO2中进行缓存;
S53、三号载荷通过LVDS接口将三号数据流传输至数据串转并模块,数据串转并模块接收后将数据存入FIFO3中进行缓存;
S54、星务计算机通过异步RS422接口将四号数据流传输至UART3,UART3接收后将数据存入FIFO4中进行缓存。
在本发明一种优先的实施方式中,在步骤S6中的实现四路数据分时读取的方法是实时检测FIFO1_PROG_FULL、FIFO2_PROG_FULL、FIFO3_PROG_FULL和FIFO4_PROG_FULL的状态,同一时刻,按FIFO1_PROG_FULL至FIFO4_PROG_FULL的顺序依次处理,具体步骤如下:
S61、当检测到FIFO1_PROG_FULL为高电平输出时,多通道数据读取控制模块将一号数据流通道有效标识送入NANDFlash分区写地址管理模块;同时向NANFDFlash并行读写管理模块发送数据写请求信号,在NANFDFlash并行读写管理模块的空闲状态时,令FIFO1读使能信号FIFO1_RD_EN有效,读取FIFO1中的数据FIFO1_DATA,写入到NANDFLash第一分区中;
S62、当检测到FIFO2_PROG_FULL为高电平输出时,多通道数据读取控制模块将二号数据流通道有效标识送入NANDFlash分区写地址管理模块;同时向NANFDFlash并行读写管理模块发送数据写请求信号,在NANDFlash空闲状态时,令FIFO2读使能信号FIFO2_RD_EN有效,读取FIFO2中的数据FIFO2_DATA,写入到NANDFLash第二分区中;
S63、当检测到FIFO3_PROG_FULL为高电平输出时,多通道数据读取控制模块将三号数据流通道有效标识送入NANDFlash分区写地址管理模块;同时向NANFDFlash并行读写管理模块发送数据写请求信号,在NANDFlash空闲状态时,令FIFO3读使能信号FIFO3_RD_EN有效,读取FIFO3中的数据FIFO3_DATA,写入到NANDFLash第三分区中。
S64、当检测到FIFO4_PROG_FULL为高电平输出时,多通道数据读取控制模块将四号数据流通道有效标识送入NANDFlash分区写地址管理模块;同时向NANFDFlash并行读写管理模块发送数据写请求信号,在NANDFlash空闲状态时,令FIFO4读使能信号FIFO4_RD_EN有效,读取FIFO4中的数据FIFO4_DATA,写入到NANDFLash第四分区中。
在本发明一种优先的实施方式中,在步骤S7中的监测NANDFlash是否处于空闲状态包括以下步骤:
S71、判断NANDFlash的 Ready状态信号是否为高电平;
S72、是,则表示NANDFlash处于空闲状态,允许对NANDFlash下发指令;否,则Ready状态为低电平,NANDFlash处于工作状态,不允许对NANDFlash下发指令,并返回步骤S71。
在本发明一种优先的实施方式中,在步骤S8中的NANDFlash写进程模块执行写进程包括以下步骤:
S81、NANDFlash写进程模块接收NANDFlash分区写地址管理模块的写地址指针;
S82、NANDFlash写进程模块将写地址指针和写触发指令注入NANDFlash总线控制模块,触发写时序,将一页数据写入到NANDFlash;
S83、判断NANDFlash的Ready状态信号,当Ready状态信号变为高电平后,NANDFlash写进程模块将页写完成标识反馈给NANDFlash并行读写管理模块,完成本次写操作。
在本发明一种优先的实施方式中,在步骤S9中的NANDFlash并行读写管理模块是否收到数据读请求包括以下步骤:
S9a1、ARM处理器接收星务计算机的数据回放指令,并将数据回放指令注入数传模块;
S9a2、数传模块实时判断其内的FIFO的数据量大小;如果FIFO的数据量小于2页数据就向NANDFlash并行读写管理模块发送数据读请求信号;如果FIFO的数据量大于2页数据,就停止向NANDFlash并行读写管理模块发送数据读请求信号,并等到FIFO输出的数据量小于2页后,继续发送数据读请求,往复进行,直至收到星务计算机的数据停止回放指令,数传模块停止发送数据读请求。
在本发明一种优先的实施方式中,在步骤S9中的NANDFlash读进程模块执行读进程包括以下步骤:
S9b1、NANDFlash读进程模块接收ARM处理器的读地址指针;
S9b2、NANDFlash读进程模块将读地址指针和读触发指令注入NANDFlash总线控制模块,触发读时序,从NANDFlash读取一页数据;
S9b3、NANDFlash读进程模块判断NANDFlash的Ready状态信号,当Ready状态信号变为高电平后,将页读完成标识反馈给NANDFlash并行读写管理模块,完成本次读操作。
在本发明一种优先的实施方式中,在步骤S10中的NANDFlash擦除进程模块执行擦除进程包括以下步骤:
S101、NANDFlash擦除进程模块接收NANDFlash并行读写管理模块的擦除地址指针;
S102、NANDFlash擦除进程模块将擦除地址指针和擦除触发指令注入NANDFlash总线控制模块,触发擦除时序,擦除一个块地址;
S103、NANDFlash擦除进程模块判断NANDFlash的Ready状态信号,当Ready状态信号变为高电平后,将块擦除完成标识反馈给NANDFlash并行读写管理模块,完成本次擦除操作。
实施例1
如图1至图2所示,一种星载测控数传NANDFlash并行读写控制方法:
1.硬件选型
1.1 FPGA
本方案适用于xilinx公司A7 、K7、V7等系列的FPGA芯片,通过FPGA逻辑设计实现NANDFLash并行读写管理功能。
1.2 NANDFlash
选用美光的MT29F256G08AUCAB,用于数据存储。其最小操作尺寸为page(8640bytes),128个pages组成一个Block,整个芯片由32768个blocks组成。Block为最小擦除单位。本方案采用异步操作,最大吞吐量为50MT/s。
NANDFlash阵列特性如下表所示:
参数 | 典型值 | 最大值 | 单位 | 备注 |
单块擦除时间 | 1.5 | 7 | ms | |
单页写入时间 | 350 | 560 | us | |
单页读取时间 | - | 35 | us |
1.3 ARM处理器
ARM处理器选用STM32F系列,例如STM32F103,STM32F413,STM32F427等,实现与星务计算机的CAN总线通信,接收星务计算机指令,反馈测控数传一体机自身信息,实现NANDFlash的地址管理。
2.多路数据并行写入和NANDFlash的并行读写控制
实现多路数据并行写入和NANDFlash的并行读写功能,需要综合考虑多路数据流总的写入速度、数传速率要求和NANDFlash的并行处理速度,本方案充分考虑三者关系,实现固存的高效管理。对于多路数据并行输入,读取时为了区分各路数据,需要在写入时对各路数据按地址进行分管理。
2.1多路数据并行写入处理
对于4路数据并行写入,本方案使用的方法是通过FPGA内部FIFO对4路数据分别进行缓存。在NANDFlash端采用更快的处理速度,分别对4个FIFO中的数据进行读取,实现4路并行数据分时写入NANDFlash中。在读取时为了区分4路数据,在存储时对NANDFlash进行地址划分,实现4路数据的分区存储。
A1、对4路数据流进行缓存处理,FPGA内部处理过程如下:
A11、一号载荷通过异步RS422接口,以波特率1Mbps的速率将一号数据流传输至测控数传一体机。测控数传一体机内部FPGA通过异步串口模块UART1接收后,将数据存入FIFO1中进行缓存。方案中,以页为单位进行NANDFlash的写操作,设计FIFO1的写入阈值为8640字节(1页数据量),即当FIFO1缓存数据量达到8640字节时,FIFO1_PROG_FULL输出高电平。设计FIFO1总容量大于2倍的NANDFlash页容量,即大于2*8640字节,为后续处理留足余量,防止FIFO1写满。
A12、二号载荷通过异步RS422接口,以波特率1.5Mbps的速率将二号数据流传输至测控数传一体机。测控数传一体机内部FPGA通过异步串口模块UART2接收后,将数据存入FIFO2中进行缓存。方案中,以页为单位进行NANDFlash的写操作,设计FIFO2的写入阈值为8640字节(1页数据量),即当FIFO2缓存数据量达到8640字节时,FIFO2_PROG_FULL输出高电平。设计FIFO2总容量大于2倍的NANDFlash页容量,即大于2*8640字节,为后续处理留足余量,防止FIFO2写满。
A13、三号载荷通过3线(时钟线、数据线和门控线)LVDS接口,以LVDS时钟50MHz的速率将三号数据流传输至测控数传一体机。测控数传一体机内部FPGA通过数据串转并模块接收后,将数据存入FIFO3中进行缓存。方案中,以页为单位进行NANDFlash的写操作,设计FIFO3的写入阈值为8640字节(1页数据量),即当FIFO3缓存数据量达到8640字节时,FIFO3_PROG_FULL输出高电平。设计FIFO2总容量大于2倍的NANDFlash页容量,即大于2*8640字节,为后续处理留足余量,防止FIFO3写满。
A14、星务计算机通过异步RS422接口,以波特率2Mbps将四号数据流传输至测控数传一体机。测控数传一体机内部FPGA通过异步串口模块UART3接收后,将数据存入FIFO4中进行缓存。方案中,以页为单位进行NANDFlash的写操作,设计FIFO4的写入阈值为8640字节(1页数据量),即当FIFO4缓存数据量达到8640字节时,FIFO4_PROG_FULL输出高电平。设计FIFO4总容量大于2倍的NANDFlash页容量,即大于2*8640字节,为后续处理留足余量,防止FIFO4写满。
A2、多通道数据读取控制模块,对数据流进行四选一操作,实现四路数据分时读取功能。具体方法是实时检测FIFO1_PROG_FULL、FIFO2_PROG_FULL、FIFO3_PROG_FULL和FIFO4_PROG_FULL的状态。同一时刻,这四个信号可能有多个为高电平,按FIFO1_PROG_FULL至FIFO4_PROG_FULL的顺序依次处理,具体流程如下:
A21、当检测到FIFO1_PROG_FULL为高电平输出时,将一号数据流通道有效标识送入NANDFlash分区写地址管理模块。同时向NANFDFlash并行读写管理模块发送数据写请求信号,在NANDFlash空闲状态时,令FIFO1读使能信号(FIFO1_RD_EN)有效,读取8160字节FIFO1中的数据FIFO1_DATA,写入到NANDFLash第一分区中。
A22、当检测到FIFO2_PROG_FULL为高电平输出时,将二号数据流通道有效标识送入NANDFlash分区写地址管理模块。同时向NANFDFlash并行读写管理模块发送数据写请求信号,在NANDFlash空闲状态时,令FIFO2读使能信号(FIFO2_RD_EN)有效,读取8160字节FIFO2中的数据FIFO2_DATA,写入到NANDFLash第二分区中。
A23、当检测到FIFO3_PROG_FULL为高电平输出时,将三号数据流通道有效标识送入NANDFlash分区写地址管理模块。同时向NANFDFlash并行读写管理模块发送数据写请求信号,在NANDFlash空闲状态时,令FIFO3读使能信号(FIFO3_RD_EN)有效,读取8160字节FIFO3中的数据FIFO3_DATA,写入到NANDFLash第三分区中。
A24、当检测到FIFO4_PROG_FULL为高电平输出时,将四号数据流通道有效标识送入NANDFlash分区写地址管理模块。同时向NANFDFlash并行读写管理模块发送数据写请求信号,在NANDFlash空闲状态时,令FIFO4读使能信号(FIFO4_RD_EN)有效,读取8160字节FIFO4中的数据FIFO4_DATA,写入到NANDFLash第四分区中。
A3、NANDFlash分区写地址管理模块,按地址将NANDFlash分为4个分区,通过管理4个分区的写地址指针,实现4路数据的分区管理。四个分区的写地址指针由块地址和页地址组成。块地址分别为w_block_addr1、w_ block_addr2、w_block_addr3和w_block_addr4。页地址分别为w_page_addr1、w_page_addr2、w_page_addr3和w_page_addr4。以第一分区为例,写入1页数据后,NANDFlash写进程模块反馈页写完成标志,第一分区的 w_page_addr1加1。当第一分区的 w_page_addr1累加到128后,w_page_addr1归零,同时第一分区的 w_block_addr1加1。NANDFlash分区写地址管理模块实时记录四个分区的块地址和页地址,将写地址注入NANDFlash写进程模块,完成分区存储操作。同时将写地址指针告知ARM处理器,ARM处理器将这四个写地址指针写入ARM内部的FLash进行保存,防止地址指针因一体机掉电而丢失。一体机上电后,ARM将4个分区的写地址指针作为起始地址注入NANDFlash分区写地址管理模块。
A4、通过A1、A2、A3三个部分,实现四路并行数据流的分时、分区输入管理。
2.2 NANDFlash并行读写控制
为解决在读取进程和擦除进程时数据的写入问题,需要精细化NANDFlash的控制,实现边写、边擦和边读并行控制。其关键,就是以最小单位管理NANDFlash。每个写进程只写一页,每个擦进程只擦一块,每个读进程只读一页。当读、写、擦三个进程中任意一个进程完成后,马上判断是否有其它进程触发,实现读、写、擦三个进程的兼顾操作。从而充分调动NANDFlash使之处于工作状态,实现NANDFlash的并行读写控制。
B1、NANDFlash并行读写管理模块,对NANDFlash写进程,NANDFlash读进程、NANDFlash擦除进程和NANDFlash空闲状态进行状态监测和进程触发。具体操作如下:
B11、在空闲状态,当收到数据写请求信号,触发写进程。当对第n块中的第1页进行写操作时,完成写操作后,跳转到擦除进程,对第n+1块的擦除操作,完成擦除操作后,跳转到空闲状态。与之不同,当对第n块中的第k页(k>1时)进行写操作时,完成写操作后,直接跳转到空闲状态。
B12、在空闲状态,收到星务计算机数据下传指令后,当有数传模块数据读请求时触发读进程,完成读操作后跳转到空闲状态。
B13、在各进程中,写进程优先级最高,优先处理写操作,确保数据完整写入。
B2、NANDFlash Ready状态信号, Ready状态为高电平,表示NANDFlash处于空闲状态,此时可以对NANDFlash发读、写或擦除指令。Ready状态为低电平,表示NANDFlash处于忙状态,此时不能对NANDFlash下发指令,直到Ready状态为高电平。
B3、NANDFlash写进程模块,对NANDFlash进行按页写入,每次写入一页数据。接收写地址指针,当接收到NANDFlash并行读写管理模块的写触发信号后,将写地址和写指令注入NANDFlash总线控制模块,触发写时序,将一页数据写入到NANDFlash。判断NANDFlash的Ready状态信号,当Ready状态信号变为高电平后,将页写完成标识反馈给NANDFlash并行读写管理模块,完成本次写操作。
B4、NANDFlash读进程模块,对NANDFlash进行按页读取,每次读取一页。接收读地址指针,当接收到NANDFlash并行读写管理模块的读触发信号后,将读地址和读指令注入NANDFlash总线控制模块,触发读时序,从NANDFlash读取一页数据。判断NANDFlash的Ready状态信号,当Ready状态信号变为高电平后,将页读完成标识反馈给NANDFlash并行读写管理模块,完成本次读操作。
B5、NANDFlash擦除进程模块,对NANDFlash进行单块擦除。接收擦除地址指针,当接收到NANDFlash并行读写管理模块的擦除触发信号后,将擦除地址和擦除指令注入NANDFlash总线控制模块,触发擦除时序,擦除一个块地址。判断NANDFlash的Ready状态信号,当Ready状态信号变为高电平后,将块擦除完成标识反馈给NANDFlash并行读写管理模块,完成本次擦除操作。
B6、数传模块,在工作状态下发送数据读请求信号,在NANDFlash空闲状态时触发读进程, NANDFlash将读取的数据发送给数传模块,数传模块中有FIFO缓存模块,设置FIFO容量为4*8192字节,即至少可以缓存3页NANDFlash数据。ARM在收到星务计算机的数据回放指令后,通过串口将回放指令注入数传模块,触发数传模块开始工作。在数传模块工作过程中,实时判断FIFO的数据量大小,如果小于2页数据就发送数据读请求信号,如果大于2页数据,就停止发送数据读请求信号,等到FIFO数据输出,数据量小于2页后,继续发送数据读请求,往复进行,直至收到星务计算机的数据停止回放指令,数传模块停止发送数据读请求。
B7、NANDFlash总线控制模块,实现与NANDFlash的指令和数据交互。通过对片选信号CE、读使能RE、写使能WE、地址锁存使能ALE和命令锁存使能CLE的时序控制,实现读、写、擦指令下发。
B8、NANDFlash坏块管理模块,在一体机收到坏块重新检测指令后,对NANDFlash进行坏块检测,将坏块地址信息存入NANDFlash的零地址。每次上电时,将NANDFlash零地址存储的坏块地址信息,加载到的FPGA的RAM中,生成坏块地址信息表。在读、写过程中通过读取坏块地址信息表对坏块进行屏蔽处理。在轨工作期间,如果下传数据出现1Mbyte的全零数据,需要对NANDFlash进行坏块重新检测,更新坏块地址信息表。也可以定期进行坏块检测,更新坏块地址信息表。
2.3 NANDFlash并行读写控制性能分析
对NANDFlash进行边写、边读和边擦的并行控制,需要考虑数据流的写入速度和数传读取速度要求。下面以块为单位,对NANDFlash的边写、边读和边擦的并行控制性能进行分析,时钟频率为50MHz,读、写和擦按典型时间进行计算。
C1、写一块的时间为:写完成时间(350us*128) + 数据传输时间(8640*128/50)us;
C2、读一块的时间为:读完成时间(35us*128) + 数据传输时间(8640*128/50)us;
C3、擦除一块的时间为:1500us;
C4、一块的数据量为:8640*128=1105920字节;
计算得知,完成一块写、读和擦除的总时间为:93516.8us。在编写、边读、边擦过程中,写入速度为:一块的数据量/完成一块的总时间=1105920/93516.8 =90Mbit/s,读取速度计算方法同上:90Mbit/s。
可知,当外部多路数据流总速率不大于90Mbit/s,数传速率不高于90Mbit/s,本方法单片NANDFlash就可以适用。在本方案中四路数据流总写速度为:1Mbps+1.5Mbps+2Mbps+50Mbps=54.5Mbps,数传速率要求为40Mbps,本方法完全满足速率要求。
针对有更高速率要求的卫星系统,测控数传一体机可采用多片NANDFlash的方法,对数据位进行扩展。例如使用两片NANDFlash,数据位可扩展为16bit,并行读写性能可提高2倍。
本发明的目的是实现NANDFlash的边写、边读、边擦功能,可保证数据的持续写入;可实现多路数据的并行写入,提高了卫星系统工作效率;简化了星务计算机指令调度,仅需在卫星过站时,星务计算机下发数据回放指令,将数据传到地面。无需星务计算机发送存储指令进程和擦除指令进程,最大程度上实现了测控数传一体机NANDFlash的自动管理。
本发明的优势:
1、简化卫星系统设计,无需增加额外的存储单元,通过测控数传一体机FPGA逻辑设计实现NANDFlash并行读写控制,可以保证数据的持续写入。
2、降低了星务计算机管理的复杂度,无需统筹调度多个设备的固存管理单元。
3、实现多路数据并行存储,提升了卫星系统的工作效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种星载测控数传NANDFlash并行读写控制方法,其特征在于:包括以下步骤:
S1、给FPGA完成上电加载;
S2、复位NANDFlash;
S3、加载NANDFlash坏块信息,并判断星务计算机是否向测控数传一体机输入指令,是,则重新加载NANDFlash坏块信息后执行步骤S4-步骤S6,否,则直接进入步骤S7;
S4、四路接口数据接收处理;
S5、多通道数据缓存处理;
S6、多通道数据读取控制模块对数据流进行四选一操作,实现四路数据分时读取;
S7、NANDFlash并行读写管理模块监测NANDFlash是否处于空闲状态,是,则允许向NANDFlash并行读写管理模块发送指令,并进入步骤S8,否,则NANDFlash处于工作状态;
S8、判断NANDFlash并行读写管理模块是否收到数据写请求,是,则NANDFlash并行读写管理模块向NANDFlash写进程模块发送写触发指令,NANDFlash写进程模块执行写进程后进入步骤S10,否,则进入步骤S9;
S9、判断NANDFlash并行读写管理模块是否收到数据读请求,是,则NANDFlash并行读写管理模块向NANDFlash读进程模块发送读触发指令,NANDFlash读进程模块执行读进程,触发读进程后跳转到NANDFlash的空闲状态,否,则直接跳转到NANDFlash的空闲状态;
S10、判断写进程是否对第n块中的第1页进行写操作,是,则NANDFlash并行读写管理模块向NANDFlash擦除进程模块发送擦除触发指令,NANDFlash擦除进程模块执行擦除进程,对第n+1块进行擦除操作,完成擦除操作后,跳转到NANDFlash的空闲状态;否,则直接跳转到NANDFlash的空闲状态。
2.根据权利要求1所述的一种星载测控数传NANDFlash并行读写控制方法,其特征在于:所述测控数传一体机包括多个异步串口模块、数据串并联转化模块、多个数据缓存模块、多通道数据读取控制模块、NANDFlash分区写地址管理模块、NANDFlash并行读写管理模块、数传模块、ARM处理器、NANDFlash写进程模块、NANDFlash读进程模块、NANDFlash擦除进程模块、NANDFlash坏块管理模块、NANDFlash总线控制模块和NANDFlash,多个所述异步串口模块输入端、数据串并联转化模块输入端分别接多个载荷设备、星务计算机,多个所述异步串口模块输出端、数据串并联转化模块输出端分别通过一个数据缓存模块连接至多通道数据读取控制模块,所述多通道数据读取控制模块分别与NANDFlash分区写地址管理模块、NANDFlash并行读写管理模块相连接,所述NANDFlash分区写地址管理模块分别连接至ARM处理器、NANDFlash写进程模块,所述NANDFlash并行读写管理模块分别连接至数传模块、NANDFlash写进程模块、NANDFlash读进程模块、NANDFlash擦除进程模块、NANDFlash坏块管理模块,所述数传模块连接至ARM处理器,所述NANDFlash写进程模块、NANDFlash读进程模块、NANDFlash擦除进程模块均连接至NANDFlash总线控制模块,所述NANDFlash写进程模块、NANDFlash读进程模块、NANDFlash擦除进程模块、NANDFlash坏块管理模块、NANDFlash总线控制模块均连接至NANDFlash,所述ARM处理器连接至星务计算机;
多个所述异步串口模块分别为UART1、UART2、UART3,多个所述载荷设备分别为一号载荷、二号载荷和三号载荷,多个所述数据缓存模块分别为FIFO1、FIFO2、FIFO3和FIFO4,所述UART1输入端接一号载荷,所述UART1输出端接FIFO1输入端,所述UART2输入端接二号载荷,所述UART2输出端接FIFO2输入端,所述数据串并联转化模块输入端接三号载荷,所述数据串并联转化模块输出端接FIFO3输入端,所述UART3输入端接星务计算机,所述UART3输出端接FIFO4输入端,所述FIFO1输出端、FIFO2输出端、FIFO3输出端和FIFO4输出端均接多通道数据读取控制模块。
3.根据权利要求2所述的一种星载测控数传NANDFlash并行读写控制方法,其特征在于:在步骤S3中的星务计算机向测控数传一体机输入的指令包括数据回放指令和坏块重新检测指令,坏块重新检测指令的操作包括以下步骤:
S31、NANDFlash坏块管理模块在收到坏块重新检测指令后,对NANDFlash进行坏块检测,将检测的NANDFlash的坏块地址信息存入NANDFlash的零地址;
S32、将NANDFlash零地址存储的坏块地址信息加载到FPGA的RAM中,生成坏块地址信息表;
S33、NANDFlash坏块管理模块将检测完标识反馈给NANDFlash并行读写管理模块,完成本次坏块检测操作。
4.根据权利要求2所述的一种星载测控数传NANDFlash并行读写控制方法,其特征在于:在步骤S5中的多通道数据缓存处理包括以下步骤:
S51、一号载荷通过异步RS422接口将一号数据流传输至UART1,UART1接收后将数据存入FIFO1中进行缓存;
S52、二号载荷通过异步RS422接口二号数据流传输至UART2,UART2接收后将数据存入FIFO2中进行缓存;
S53、三号载荷通过LVDS接口将三号数据流传输至数据串转并模块,数据串转并模块接收后将数据存入FIFO3中进行缓存;
S54、星务计算机通过异步RS422接口将四号数据流传输至UART3,UART3接收后将数据存入FIFO4中进行缓存。
5.根据权利要求2所述的一种星载测控数传NANDFlash并行读写控制方法,其特征在于:在步骤S6中的实现四路数据分时读取的方法是实时检测FIFO1_PROG_FULL、FIFO2_PROG_FULL、FIFO3_PROG_FULL和FIFO4_PROG_FULL的状态,同一时刻,按FIFO1_PROG_FULL至FIFO4_PROG_FULL的顺序依次处理,具体步骤如下:
S61、当检测到FIFO1_PROG_FULL为高电平输出时,多通道数据读取控制模块将一号数据流通道有效标识送入NANDFlash分区写地址管理模块;同时向NANFDFlash并行读写管理模块发送数据写请求信号,在NANFDFlash并行读写管理模块的空闲状态时,令FIFO1读使能信号FIFO1_RD_EN有效,读取FIFO1中的数据FIFO1_DATA,写入到NANDFLash第一分区中;
S62、当检测到FIFO2_PROG_FULL为高电平输出时,多通道数据读取控制模块将二号数据流通道有效标识送入NANDFlash分区写地址管理模块;同时向NANFDFlash并行读写管理模块发送数据写请求信号,在NANDFlash空闲状态时,令FIFO2读使能信号FIFO2_RD_EN有效,读取FIFO2中的数据FIFO2_DATA,写入到NANDFLash第二分区中;
S63、当检测到FIFO3_PROG_FULL为高电平输出时,多通道数据读取控制模块将三号数据流通道有效标识送入NANDFlash分区写地址管理模块;同时向NANFDFlash并行读写管理模块发送数据写请求信号,在NANDFlash空闲状态时,令FIFO3读使能信号FIFO3_RD_EN有效,读取FIFO3中的数据FIFO3_DATA,写入到NANDFLash第三分区中;
S64、当检测到FIFO4_PROG_FULL为高电平输出时,多通道数据读取控制模块将四号数据流通道有效标识送入NANDFlash分区写地址管理模块;同时向NANFDFlash并行读写管理模块发送数据写请求信号,在NANDFlash空闲状态时,令FIFO4读使能信号FIFO4_RD_EN有效,读取FIFO4中的数据FIFO4_DATA,写入到NANDFLash第四分区中。
6.根据权利要求2所述的一种星载测控数传NANDFlash并行读写控制方法,其特征在于:在步骤S7中的监测NANDFlash是否处于空闲状态包括以下步骤:
S71、判断NANDFlash的 Ready状态信号是否为高电平;
S72、是,则表示NANDFlash处于空闲状态,允许对NANDFlash下发指令;否,则Ready状态为低电平,NANDFlash处于工作状态,不允许对NANDFlash下发指令,并返回步骤S71。
7.根据权利要求2所述的一种星载测控数传NANDFlash并行读写控制方法,其特征在于:在步骤S8中的NANDFlash写进程模块执行写进程包括以下步骤:
S81、NANDFlash写进程模块接收NANDFlash分区写地址管理模块的写地址指针;
S82、NANDFlash写进程模块将写地址指针和写触发指令注入NANDFlash总线控制模块,触发写时序,将一页数据写入到NANDFlash;
S83、判断NANDFlash的Ready状态信号,当Ready状态信号变为高电平后,NANDFlash写进程模块将页写完成标识反馈给NANDFlash并行读写管理模块,完成本次写操作。
8.根据权利要求2所述的一种星载测控数传NANDFlash并行读写控制方法,其特征在于:在步骤S9中的NANDFlash并行读写管理模块是否收到数据读请求包括以下步骤:
S9a1、ARM处理器接收星务计算机的数据回放指令,并将数据回放指令注入数传模块;
S9a2、数传模块实时判断其内的FIFO的数据量大小;如果FIFO的数据量小于2页数据就向NANDFlash并行读写管理模块发送数据读请求信号;如果FIFO的数据量大于2页数据,就停止向NANDFlash并行读写管理模块发送数据读请求信号,并等到FIFO输出的数据量小于2页后,继续发送数据读请求,往复进行,直至收到星务计算机的数据停止回放指令,数传模块停止发送数据读请求。
9.根据权利要求2所述的一种星载测控数传NANDFlash并行读写控制方法,其特征在于:在步骤S9中的NANDFlash读进程模块执行读进程包括以下步骤:
S9b1、NANDFlash读进程模块接收ARM处理器的读地址指针;
S9b2、NANDFlash读进程模块将读地址指针和读触发指令注入NANDFlash总线控制模块,触发读时序,从NANDFlash读取一页数据;
S9b3、NANDFlash读进程模块判断NANDFlash的Ready状态信号,当Ready状态信号变为高电平后,将页读完成标识反馈给NANDFlash并行读写管理模块,完成本次读操作。
10.根据权利要求2所述的一种星载测控数传NANDFlash并行读写控制方法,其特征在于:在步骤S10中的NANDFlash擦除进程模块执行擦除进程包括以下步骤:
S101、NANDFlash擦除进程模块接收NANDFlash并行读写管理模块的擦除地址指针;
S102、NANDFlash擦除进程模块将擦除地址指针和擦除触发指令注入NANDFlash总线控制模块,触发擦除时序,擦除一个块地址;
S103、NANDFlash擦除进程模块判断NANDFlash的Ready状态信号,当Ready状态信号变为高电平后,将块擦除完成标识反馈给NANDFlash并行读写管理模块,完成本次擦除操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211194671.7A CN115269017B (zh) | 2022-09-29 | 2022-09-29 | 一种星载测控数传NANDFlash并行读写控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211194671.7A CN115269017B (zh) | 2022-09-29 | 2022-09-29 | 一种星载测控数传NANDFlash并行读写控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115269017A true CN115269017A (zh) | 2022-11-01 |
CN115269017B CN115269017B (zh) | 2023-01-17 |
Family
ID=83756468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211194671.7A Active CN115269017B (zh) | 2022-09-29 | 2022-09-29 | 一种星载测控数传NANDFlash并行读写控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115269017B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060179213A1 (en) * | 2005-02-09 | 2006-08-10 | International Business Machines Corporation | Executing background writes to idle DIMMs |
CN101315812A (zh) * | 2008-03-20 | 2008-12-03 | 上海交通大学 | 基于并口的flash存储器在线编程方法 |
CN113225149A (zh) * | 2021-04-26 | 2021-08-06 | 中国人民解放军国防科技大学 | 分布式微小卫星微振动信号采集系统及其应用方法 |
CN216490493U (zh) * | 2021-11-25 | 2022-05-10 | 中国人民解放军战略支援部队航天工程大学 | 一种卫星测控星务一体化系统 |
CN114661655A (zh) * | 2022-05-25 | 2022-06-24 | 天津讯联科技有限公司 | 一种星载测控数传一体机fpga程序在轨重构系统及方法 |
-
2022
- 2022-09-29 CN CN202211194671.7A patent/CN115269017B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060179213A1 (en) * | 2005-02-09 | 2006-08-10 | International Business Machines Corporation | Executing background writes to idle DIMMs |
CN101315812A (zh) * | 2008-03-20 | 2008-12-03 | 上海交通大学 | 基于并口的flash存储器在线编程方法 |
CN113225149A (zh) * | 2021-04-26 | 2021-08-06 | 中国人民解放军国防科技大学 | 分布式微小卫星微振动信号采集系统及其应用方法 |
CN216490493U (zh) * | 2021-11-25 | 2022-05-10 | 中国人民解放军战略支援部队航天工程大学 | 一种卫星测控星务一体化系统 |
CN114661655A (zh) * | 2022-05-25 | 2022-06-24 | 天津讯联科技有限公司 | 一种星载测控数传一体机fpga程序在轨重构系统及方法 |
Non-Patent Citations (1)
Title |
---|
任海等: "一种高效的星载高速固态存储器坏块管理算法", 《计算机测量与控制》 * |
Also Published As
Publication number | Publication date |
---|---|
CN115269017B (zh) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106874224B (zh) | 自动搬运且适应器件的多线SPI-Flash控制器 | |
KR101371815B1 (ko) | 다수의 명령들을 처리하기 위한 메모리 제어기들, 메모리 시스템들, 고체상태 드라이버들 및 방법들 | |
US8874828B2 (en) | Systems and methods for providing early hinting to nonvolatile memory charge pumps | |
US9348783B2 (en) | Apparatus and method emulating a parallel interface to effect parallel data transfer from serial flash memory | |
CN112084136B (zh) | 队列缓存管理方法、系统、存储介质、计算机设备及应用 | |
CN108121672A (zh) | 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 | |
US20060218332A1 (en) | Interface circuit, system, and method for interfacing between buses of different widths | |
TW201303594A (zh) | 快閃記憶體介質控制器及裝置 | |
CN110334040B (zh) | 一种星载固态存储系统 | |
CN110069443B (zh) | 一种基于fpga控制的ufs存储阵列系统及数据传输方法 | |
KR20130009926A (ko) | 유연한 플래시 명령어 | |
CN108197039B (zh) | 一种ssd控制器混合流数据的传输方法和系统 | |
CN104765701B (zh) | 数据访问方法及设备 | |
CN108595350A (zh) | 一种基于axi的数据传输方法和装置 | |
US20220350655A1 (en) | Controller and memory system having the same | |
US10896119B1 (en) | Common input/output interface for application and debug circuitry | |
JP2007524917A (ja) | メモリ装置との間のデータ流に選択的に影響を与えるためのシステムおよび方法 | |
CN117807000B (zh) | 通道总线仲裁电路、加速装置、方法、系统、装置及介质 | |
US20210174848A1 (en) | Data transfers between a memory and a distributed compute array | |
US7272692B2 (en) | Arbitration scheme for memory command selectors | |
CN115269017B (zh) | 一种星载测控数传NANDFlash并行读写控制方法 | |
CN204291206U (zh) | 一种基于闪存阵列的高清视频数据记录仪 | |
CN102855195A (zh) | 第二代低功耗双倍速率存储控制器及访问命令处理方法 | |
CN102170401B (zh) | 一种数据的处理方法和设备 | |
CN114546287A (zh) | 一种单通道多逻辑单元号交叉传输的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |