一种发动机燃油供应系统控制时序存储和读取方法

文档序号:9910178阅读:273来源:国知局
一种发动机燃油供应系统控制时序存储和读取方法
【技术领域】
[0001]本发明属于数据存储领域,针对发动机燃油供应系统,尤其涉及一种发动机燃油供应系统控制时序存储和读取方法。
【背景技术】
[0002]发动机燃油供应系统是一个多变量、时变、非线性的复杂系统,其控制过程严重依赖设计人员按照经验设定的时序信息。
[0003]早期的时序数据以机械形式存储,但其保存形式单一,存储过程复杂,且只能存储简单的时序。随着磁存储技术和光存储技术的出现,时序的保存形式得到了极大的扩展,但是相对于处理器的速率来说,其读写时间较长,存储器内部的机械部件较易出现故障,且易受发动机机械振动的影响。伴随着微电子技术的发展,出现了半导体技术存储。半导体存储器几乎无磨损,没用可移动部件,因此读取的过程中不容易受到发动机机械振动以及其移动的影响。
[0004]随着计算机技术不断提高、控制理论的不断发展,发动机燃油供应系统处理速度越来越快,这就要求在保证时序可靠性存储的基础上,尽可能缩短时序存储、读取的时间。
[0005]目前,发动机燃油供应系统中使用的时序存储方法在空间利用率、储存/读取速度上存在不足,不能满足系统处理器的高速运行。且时序存储方法安全性不高,在存储/读取过程中易受外界干扰,可能出现存储/读取错误的现象。

【发明内容】

[0006]要解决的技术问题
[0007]为了避免现有技术的不足之处,本发明提出一种发动机燃油供应系统控制时序存储和读取方法。
[0008]技术方案
[0009]本发明应用在由数字芯片为主要器件构成的数字电子控制器(DEEC)中。在DEEC内嵌的FPGA芯片中,构建有双循环链表,使用者将编写的时序信息发送给DEEC后就保存在该双循环链表中。存储在双循环链表中的时序信息为临时数据,为保证系统上电后能够再次执行时序信息,需将时序信息存储在Flash存储器中。
[0010]一种发动机燃油供应系统控制时序存储方法,其特征在于步骤如下:
[0011 ]步骤1:当DEEC需要存储时序时,FPGA向DSP发送存储时序的置位信号,DSP接收到该信号后,对Flash进行格式化,及相关变量初始化;
[0012]步骤2:DSP向FPGA发送存储准备就绪置位信号,FPGA接收该信号,完成FPGA跟DSP间存储时序的第一次握手;
[0013]步骤3:FPGA统计各时序组中时序结点的数目,然后将时序版本及各时序组的结点数目进行组包,形成一个代表时序版本及各时序组结点数目的Flash头结点,然后将头结点和各时序组中的结点依次存储到Flash中;
[0014]所述FPGA与DSP协同工作将一个结点存储到Flash中的过程如下:
[0015]步骤a:FPGA向DSP发送需要存储数据的请求信号,DSP接收到请求信号后,将对应FPGA写数据的地址进行清空,清空完毕后立刻向FPGA发送接收存储数据请求的回复信号,完成FPGA与DSP之间的握手;
[0016]步骤b:FPGA接收到DSP的回复信号后,向其发送本次写数据的长度。本发明对一次写入DSP的数据长度进行限定,当需要存储结点的数据长度大于限定值时,分为多次向DSP写入,一次向DSP至多写限定值长度的数据,直至将该结点中的所有数据写入DSP中;当存储结点的数据长度小于设定值时,一次将其写入DSP中;
[0017]步骤c:FPGA将需要存储结点的数据写入DSP中,在进行写数据时,FPGA将每次需要存储的数据进行ELF Hash求和,并将ELF Hash求和值接在时序数据后面一同发送给DSP;
[0018]步骤d:数据发送完毕后,FPGA向DSP发送完成发送数据操作置位信号,DSP接收到该信号后,从设定地址读取此次写入的数据长度,并按照长度从对应地址中读取FPGA发送的数据,并对其进行ELF Hash求和,并与FPGA发送过来的ELF Hash求和值进行比较;
[0019]如果两个Hash值一样,则向FPGA发送接收到正确数据的标志信号,并将此次读取的数据存储到Flash的Page中,并实时判断Flash的该Page是否满页,如果满页则将数据写入下一Page中;如果未满页则继续存储到该Page,直至其满页;FPGA读取到该信号后,结束此次数据存储,FPGA完成跟DSP的握手。如果该结点中的数据未完全存储,从步骤一开始继续该过程,直至该结点中的所有数据都存储完毕;如果该结点数据全部存储完毕,则结束该结点的存储,进行下一结点的存储,直至所有时序结点都存储完毕;
[0020]如果两个Hash值不一样,DSP清空接收到的数据,并向FPGA请求重新发送此次存储的数据,FPGA接收到重发请求后,从步骤a重新开始,重新发送此次数据。
[0021 ]步骤4:PFGA将所有时序结点存储完毕后,向DSP发送存储时序的复位信号,DSP接收到复位信号后,将Flash的当前Page中的无效位清除,并向FPGA发送时序完成存储的标志信号,FPGA接收到该信号后,完成跟DSP的最后一次握手,结束整个存储过程。
[0022]—种与上述相对应的发动机燃油供应系统控制时序读取方法,其特征在于步骤如下:
[0023]步骤1:当DEEC需要读取时序时,FPGA向DSP发送读取时序的置位信号,DSP接收到读取时序的置位信号后,准备时序读取工作;
[0024]步骤2:准备就绪后,DSP向FPGA发送读取准备就绪置位信号,FPGA接收该信号,完成FPGA跟DSP的第一次握手;
[0025]步骤3:然后按照定义的Flash头结点长度,将头结点从Flash中读取。然后解析头结点,得到时序的版本及各时序组中时序结点的数目;按照各时序组中时序结点的数目,将各时序组中的每个结点依次从Flash中读取;
[0026]所述FPGA与DSP协同工作将头结点及时序结点从Flash中读取的具体流程如下:
[0027]步骤a:FPGA首先向DSP写需要读取数据的长度,本发明对一次读取的数据长度进行限定,当需要读取的结点数据长度大于设定值时,分成多次读取,一次从Flash中至多只读取限定值长度的数据,直至将该结点中的所有数据都读取到FPGA中;当读取结点的数据长度小于等于设定值时,一次完成读取;
[0028]步骤b:FPGA向DSP发送读取数据请求信号,DSP接收到请求信号后,按照此次需要读取的数据长度读取Flash的Page中的数据,并将数据写在约定的地址上。在进行写数据的同时,DSP将从存储中取出的数据进行ELF Hash求和,并将ELF Hash求和值写在相应地址上发送给FPGA,DSPWFlash Page中读取数据时,判断当前Page的数据是否读取完毕,读取完毕则读取下一Page中的数据;
[0029]步骤c:完成上述过程后,向FPGA发送允许读取的回复信号,完成FPGA与DSP之间的握手;
[0030]步骤d:FPGA接收到DSP的回复信号后,从地址上读取数据,并对读取的数据进行ELF Hash求和,并与DSP发送的ELF Hash求和值进行比较;
[0031]如果两个Hash值一样,将此次读取的时序信息添加到对应的时序结点中。并向DSP发送读取到正确数据的标志信号,DSP接收到该信号后,清除地址中的数据,为下一次读取做准备,并向FPGA发送数据清除完成的标志信号;FPGA接收到该信号后,结束此次数据读取,FPGA完成跟DSP的握手。如果该结点的所有数据都读取完毕,则完成此次读取,将该结点添加到对应的时序链表中;如果数据未读取完毕,从步骤一开始继续该过程。直至该结点所有数据都读取完毕,再进行下一结点的读取;
[0032]如果两个Hash值不一样,FPGA丢弃此次读取的数据,并向DSP请求重新发送数据,DSP接收到该请求后,清除地址中的数据,并将读取Flash的指针回调至上一状态。并向FPGA发送可重新读取信号。FPGA接收到该信号后,继续步骤一及以后的步骤,重新读取此次数据;
[0033]步骤4:FPGA将所有时序结点读取完毕后,向DSP发送读取时序复位信号,DSP接收到复位信号后,将读取Flash的指针指回初始状态,
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1