System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及嵌入式非易失性存储器存储管理领域,具体涉及基于无主从tcp通信的nor flash数据存储方法及装置。
技术介绍
1、nor flash是闪存(flash)存储器的一种,它的结构存储单元是并行排列的且为行列寻址,最小寻址单位是字节,因其逻辑电路近似于“或非门”而得名nor flash。nor flash各单元之间是并联的,方便对每一位进行随机存取,并且具有专用的地址线,可以实现一次性的直接寻址,因此具有较快的读取速度,但由于写入前需要先擦除,而擦除速度较慢,因此具有较慢的写入速度。同时norflash由于其并联结构和直接寻址方式,也导致了其容量密度较低,因此nor flash常结合spi等串行接口来实现低复杂度、低成本、低容量的数据存储方案。
2、在使用以太网连接的上下位机架构中,上位机(如pc、手机、平板等)如果需要读写下位机设备的nor flash数据,通常采用tcp主从通信的方式进行。上位机为数据通信主机,负责norflash读请求及写数据的发起,nor flash存储器所在的设备负责数据回复及写入。通信形式为一发一回,架构简单易于实现,同时因为收发逻辑简单因此稳定性高。但由于主从结构的一发一回机制导致传输的数据利用率仅为50%,传输效率低,速度慢。同时网络的连接不稳定因素带来的传输中断问题及nor flash擦写速度慢的速度匹配问题都制约着nor flash存储器的网络读写应用。当前行业中主流的解决方案是降低上位机对nor flash的访问速度,同时在出现传输中断时重新进行数据的传输。此类解决方
技术实现思路
1、本专利技术的目的是提出基于无主从tcp通信的nor flash数据存储方法及装置,以解决低成本、低复杂度嵌入式装置中网络访问nor flash数据时的速度慢、效率低的问题。
2、本专利技术通过以下技术方案实现:
3、基于无主从tcp通信的nor flash数据存储方法,包括如下步骤:
4、写操作,包括如下步骤:
5、步骤s11、通过以太网tcp获取上位机下发的数据传输帧,数据传输帧包括当前下发的待写数据段对应的组号和组内段号、以及该待写数据段携带的有效用户数据,其中,数据组按数据段大小平均划分,组内段号指数据组划分后的各数据段的编号;
6、步骤s12、根据待写数据段的组号与本地最新组号判断待写数据段的次序是否合理,若合理则进入步骤s13,否则发送通信终止帧至上位机,其中,本地最新组号为已存储的最新数据段所归属的数据组组号;
7、步骤s13、判断待写数据段的组内段号与本地记录的待写段号是否一致,若是则执行写入缓存,并进入步骤s14,否则,发送重发请求帧至上位机,其中,待写段号表示下一个将写入的数据段的组内段号;
8、步骤s14、判断待写数据段是否为当前数据组的最后一个待写入的数段,若是,发送接收完成帧至上位机,否则,进入步骤s11;
9、读操作,包括如下步骤:
10、步骤s21、通过以太网tcp获取上位机下发的读取请求帧内容,读取请求帧包括待读取的数据组的起始数据段对应的组号及组内段号;
11、步骤s22、计算待读取的数据段所对应的nor flash存储地址,从存储地址开始按照数据段大小依次读出k个有效数据段数据,并存放至读缓存的对应组内段号的位置,其中,k=单组总段数-读取请求帧包含的组内段号,有效数据段为组号等于请求组号且异常段标识为无异常的数据段,单组总段数为数据组的数据段数量;
12、步骤s23、从读缓存中以读取请求帧包含的组内段号为起点按顺序取出数据段数据,并以数据传输帧格式发送至上位机;
13、步骤s24、若已发送的帧数已达k帧,则等待上位机回复接收完成帧,否则重复步骤s23。
14、进一步的,所述步骤s12具体为:若待写数据段的组号等于本地最新组号加1,且待写段号为0,进入步骤s13,若待写数据段的组号等于本地最新组号且待写段号不为0,进入步骤s13,否则,发送通信终止帧至上位机。
15、进一步的,所述步骤s13具体为:若待写数据段的组内段号与待写段号相等,则将待写数据段的有效数据复制到写缓存中对应组内段号的区域,复制完成后使用消息机制通知nor flash写模块,并将待写段号加1,进入步骤s14,否则,发送重发请求帧至上位机。
16、进一步的,所述步骤s14具体为:若待写段号等于单组总段数,则待写数据段为当前数据组的最后一个待写入的数据,则发送接收完成帧至上位机,否则,进入步骤s11。
17、进一步的,在进行所述写操作与读操作之前,还进行初始化,包括如下步骤:
18、步骤s01、上电后对以太网接口以及nor flash芯片初始化;
19、步骤s02、遍历nor flash存储器数据段单元,获取当前存储地址、最新组号及最新段号;数据段单元按地址从低到高包含存储数据、crc16校验值、异常段标识、组内段号、组号,组内段号指数据组划分后的各数据段的编号,该编号从0开始;组号为数据组编号,该编号从0开始;当前存储地址为下一个数据段可写入地址;最新段号为存储的最新数据段的组内段号;
20、步骤s03、获取异常段数、单组总段数数值,异常段数为已存储的异常段标识为异常的数据段数量;
21、步骤s04、申请写缓存与读缓存;
22、步骤s05、若最新段号等于单组总段数减1,则将待写段号赋0,初始化完成;否则,将待写段号赋为最新段号加1,并通过tcp通信发送重发请求帧至上位机。
23、进一步的,所述步骤s13中,所述重发请求帧包括重发请求、所请求的数据组中剩余未写数据段的起始数据段对应的组号及组内段号,上位机接收到重发请求帧后,以该组号及组内段号对应的数据段为起始数据段,将对应的数据组所剩余的数据段依次下发,设备重复步骤s11至步骤s14直至当前传输的数据组传输及写入完成。
24、进一步的,若数据组传输还未完成,数据传输帧还在进行中时,设备掉电重启,则发送重发请求帧至上位机,完成后续数据段的传输及写入;若数据组传输还未完成时,数据传输帧还在进行中时,上位机重启,通过检测以太网连接状态的变化,发送重发请求帧至上位机,完成后续数据段的传输及写入。
25、进一步的,所述读操作中,若传输过程中因网络干扰问题导致上位机接收的数据段出现丢失或乱序的情况,则上位机回复重发请求帧,设备接收到重发请求帧后,以重发请求帧中的组号及组内段号对应的数据段为起始数据段,重复步骤s22至步骤s24直至当前传输的数据组传输完成。
26、进一步的,若数据组传输还未完成,数据传输帧还在进行,而设备掉电重启,则上位机可从数据段丢失的位置重新下发读取请求帧。
27、本专利技术还通过以下技术方案实现:
本文档来自技高网...【技术保护点】
1.基于无主从TCP通信的Nor Flash数据存储方法,其特征在于:包括如下步骤:
2.根据权利要求1所述的基于无主从TCP通信的Nor Flash数据存储方法,其特征在于:所述步骤S12具体为:若待写数据段的组号等于本地最新组号加1,且待写段号为0,进入步骤S13,若待写数据段的组号等于本地最新组号且待写段号不为0,进入步骤S13,否则,发送通信终止帧至上位机。
3.根据权利要求1所述的基于无主从TCP通信的Nor Flash数据存储方法,其特征在于:所述步骤S13具体为:若待写数据段的组内段号与待写段号相等,则将待写数据段的有效数据复制到写缓存中对应组内段号的区域,复制完成后使用消息机制通知Nor Flash写模块,并将待写段号加1,进入步骤S14,否则,发送重发请求帧至上位机。
4.根据权利要求1或2或3所述的基于无主从TCP通信的Nor Flash数据存储方法,其特征在于:所述步骤S14具体为:若待写段号等于单组总段数,则待写数据段为当前数据组的最后一个待写入的数据,则发送接收完成帧至上位机,否则,进入步骤S11。
5.根
6.根据权利要求3所述的基于无主从TCP通信的Nor Flash数据存储方法,其特征在于:所述步骤S13中,所述重发请求帧包括重发请求、所请求的数据组中剩余未写数据段的起始数据段对应的组号及组内段号,上位机接收到重发请求帧后,以该组号及组内段号对应的数据段为起始数据段,将对应的数据组所剩余的数据段依次下发,设备重复步骤S11至步骤S14直至当前传输的数据组传输及写入完成。
7.根据权利要求6所述的基于无主从TCP通信的Nor Flash数据存储方法,其特征在于:若数据组传输还未完成,数据传输帧还在进行中时,设备掉电重启,则发送重发请求帧至上位机,完成后续数据段的传输及写入;若数据组传输还未完成时,数据传输帧还在进行中时,上位机重启,通过检测以太网连接状态的变化,发送重发请求帧至上位机,完成后续数据段的传输及写入。
8.根据权利要求1或2或3所述的基于无主从TCP通信的Nor Flash数据存储方法,其特征在于:所述读操作中,若传输过程中因网络干扰问题导致上位机接收的数据段出现丢失或乱序的情况,则上位机回复重发请求帧,设备接收到重发请求帧后,以重发请求帧中的组号及组内段号对应的数据段为起始数据段,重复步骤S22至步骤S24直至当前传输的数据组传输完成。
9.根据权利要求8所述的基于无主从TCP通信的Nor Flash数据存储方法,其特征在于:若数据组传输还未完成,数据传输帧还在进行,而设备掉电重启,则上位机可从数据段丢失的位置重新下发读取请求帧。
10.基于无主从TCP通信的Nor Flash数据存储装置,其特征在于:包括RJ45网络接口、Nor Flash存储器以及ARM处理器,ARM处理器运行程序以实现所述权利要求1至9任一项所述的Nor Flash数据存储方法。
...【技术特征摘要】
1.基于无主从tcp通信的nor flash数据存储方法,其特征在于:包括如下步骤:
2.根据权利要求1所述的基于无主从tcp通信的nor flash数据存储方法,其特征在于:所述步骤s12具体为:若待写数据段的组号等于本地最新组号加1,且待写段号为0,进入步骤s13,若待写数据段的组号等于本地最新组号且待写段号不为0,进入步骤s13,否则,发送通信终止帧至上位机。
3.根据权利要求1所述的基于无主从tcp通信的nor flash数据存储方法,其特征在于:所述步骤s13具体为:若待写数据段的组内段号与待写段号相等,则将待写数据段的有效数据复制到写缓存中对应组内段号的区域,复制完成后使用消息机制通知nor flash写模块,并将待写段号加1,进入步骤s14,否则,发送重发请求帧至上位机。
4.根据权利要求1或2或3所述的基于无主从tcp通信的nor flash数据存储方法,其特征在于:所述步骤s14具体为:若待写段号等于单组总段数,则待写数据段为当前数据组的最后一个待写入的数据,则发送接收完成帧至上位机,否则,进入步骤s11。
5.根据权利要求1或2或3所述的基于无主从tcp通信的nor flash数据存储方法,其特征在于:在进行所述写操作与读操作之前,还进行初始化,包括如下步骤:
6.根据权利要求3所述的基于无主从tcp通信的nor flash数据存储方法,其特征在于:所述步骤s13中,所述重发请求帧包括重发请求、所请求的数据组中剩余未写数据段的起始数据段对应的组号及...
【专利技术属性】
技术研发人员:柳龙杰,苏德全,钟治魁,王平江,黄剑峰,刘俊强,陈文奇,钟剑兵,罗文贵,刘旭升,
申请(专利权)人:泉州华中科技大学智能制造研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。