掌桥专利:专业的专利平台
掌桥专利
首页

一种PET设备的数据远程更新方法、系统及计算机可读存储介质

文献发布时间:2023-06-19 11:11:32


一种PET设备的数据远程更新方法、系统及计算机可读存储介质

技术领域

本发明涉及医疗设备领域,尤其涉及一种PET设备的数据远程更新方法、系统及计算机可读存储介质。

背景技术

探测器模块是PET(正电子发射断层成像,Positron Emission Tomography)系统的核心部件,一个PET系统中通常有几十个探测器模块。FPGA作为探测器模块的主控芯片,需要在从外部非易失存储器件(通常是Flash)上载入固件,以完成成初始化。

现有技术中,将固件写入存储Flash的方法,通常是使用烧录器连接FPGA的JTAG接口,在电脑上使用专用软件下载相应的固件。该方法的特点是,需要将PET设备的外罩拆开,直到能接触烧录接口。随后需将烧录器一端连接在烧录接口,另一端连接在电脑上,再配置好下载参数后,点击下载,直到确认烧录完成。对于具有多个FPGA主控的PET系统,还要逐个重复上面的过程,直到整个系统更新完毕。

因此,现有离线更新实现方式下,一般需要安排人员值守在设备现场,以监测更新状态。同时要求值守热源手动操作多个配置项,每个模块重复操作,具有耗时长、易出错的特点,尤其是在面对接口比较封闭的PET系统而言,难以对过程进行有效监控。

因此,需要一种新型的PET设备的数据远程更新方法,解决更新固件时耗时、易错的问题。

发明内容

为了克服上述技术缺陷,本发明的目的在于提供一种PET设备的数据远程更新方法、系统及计算机可读存储介质,可快速更新PET设备的固件,且降低人工成本,提高容错率。

本发明公开了一种PET设备的数据远程更新方法,包括以下步骤:

基于待发送数据包,根据主控芯片缓存大小、和数据地址的对齐要求,拆分为多个数据控制请求,数据控制请求包括数据包包头、数据包路由、数据包数据区、数据包包尾;

定义数据包数据区包括n-1条控制数据及1条操作控制参数,控制数据包括固件数据或自定义命令字节流,操作控制参数包括操作地址、操作长度、操作序列选择;

根据数据包路由内的地址,转发控制数据至PET设备内的主控芯片;

主控芯片顺序缓存n-1条控制数据,并在接收到操作控制参数后,基于操作序列选择,以控制数据为对象,执行写入、读取、擦除、自定义命令;

基于命令序列选择在指定读写地址上执行指定长度的控制命令。

优选地,数据包包头和数据包包尾分别包括头序列和尾序列;

数据包路由包括命令类型、模块分组序号、级联模块在本组内序号、功能标识序号、数据包数据区的长度n;

操作序列选择包括写入、读取、擦除、自定义命令,不同待发送数据包内包含不同的操作序列选择参数,以执行一个擦除命令和多个写入命令,完成存储器的按块操作。

优选地,基于操作序列选择,以控制数据为对象,执行写入、读取、擦除、自定义命令的步骤包括:

在写地址与存储器扇区起始地址对齐时,插入擦除命令;

擦除命令所在的数据包中,附加擦除命令后要写入的数据,并对操作控制参数中的擦除标志和写入标志同时置位;

当擦除的存储器扇区被随后的多个数据包写满时,对下一个扇区执行擦除和写入命令。

优选地,基于操作序列选择,以控制数据为对象,执行写入、读取、擦除、自定义命令的步骤还包括:

读写操作为读操作时,对操作序列选择中的读取标志置位;

控制数据包数据区包括0条控制数据及1条操作控制参数;

收集齐1条操作控制参数后基于命令完成信息将缓存的数据包上传。

优选地,基于操作序列选择,以控制数据为对象,执行写入、读取、擦除、自定义命令的步骤后还包括:

针对每一存储控制命令反馈一控制响应。

优选地,转发控制数据至PET设备内的主控芯片的步骤前还包括:

定义任意长度的字节流数据至控制数据,其中字节流数据包括SPI-Flash命令、SPI-Flash地址、SPI-Flash数据和dummy字节;

对控制数据的操作选择位写使能,并填充数据包数据区的读写长度域为n-1;

对于每一自定义命令字节流,接收其响应,并通过组ACK包进行返回。

本发明还公开了一种数据远程更新系统,包括:

拆分模块,基于待发送数据包,根据主控芯片缓存大小、和数据地址的对齐要求,拆分为多个数据控制请求,数据控制请求包括数据包包头、数据包路由、数据包数据区、数据包包尾;

定义模块,定义数据包数据区包括n-1条控制数据及1条操作控制参数,控制数据包括固件数据或自定义命令字节流,操作控制参数包括操作地址、操作长度、操作序列选择;

转发模块,根据数据包路由内的地址,转发控制数据至PET设备内的主控芯片;

主控芯片顺序缓存n-1条控制数据,并在接收到操作控制参数后,基于操作序列选择,以控制数据为对象,执行写入、读取、擦除、自定义命令,并基于命令序列选择在指定读写地址上执行指定长度的控制命令。

本发明又公开了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上所述的步骤。

采用了上述技术方案后,与现有技术相比,具有以下有益效果:

1.配合PET设备的底层Flash内部读写接口,可快速地更新PET设备的固件,无需安排专人值守;

2.降低更新固件时的出错率,且更新时无需拆除PET设备的机器外罩,大大减少更新固件所需时间。

附图说明

图1为符合本发明一优选实施例中PET设备的数据远程更新方法的流程示意图。

具体实施方式

以下结合附图与具体实施例进一步阐述本发明的优点。

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。

参阅图1,为符合本发明一优选实施例中1.PET设备的数据远程更新方法,包括以下步骤:

S100:基于待发送数据包,根据主控芯片缓存大小、和数据地址的对齐要求,拆分为多个数据控制请求,数据控制请求包括数据包包头、数据包路由、数据包数据区、数据包包尾;

为对PET设备内的主控芯片(FPGA)上的固件进行更新,将在远程的上位机中生成一数据控制请求,且该数据控制请求的数量可以是多个,其为基于待发送数据包,根据主控芯片缓存大小、和数据地址的对齐要求生成。该数据控制请求包括数据包包头、数据包路由、数据包数据区、数据包包尾。数据包包头中包含发往指定模块或广播模块的编号命令。数据包数据区存储有待更新的固件包,完全写入FPGA后完成对固件的更新。

S200:定义所述数据包数据区包括n-1条控制数据及1条操作控制参数,控制数据包括固件数据或自定义命令字节流,所述操作控制参数包括操作地址、操作长度、操作序列选择;

对于该数据包数据区,定义为其包括n-1条控制数据及1条操作控制参数,控制数据为可选的用户数据,用户可根据自身需要填充不同类型、不同内容的数据。而控制数据可以是固件数据,或是根据用户需求,自定义的命令字节流,操作控制参数包括操作地址、操作长度、操作序列选择。

S300:根据数据包路由内的地址,转发所述控制数据至PET设备内的主控芯片;

形成上述数据控制请求后,将由一转发模块,根据数据包路由内的地址,转发控制数据至PET设备内的FPGA。

S400:主控芯片顺序缓存n-1条控制数据,并在接收到所述操作控制参数后,基于操作序列选择,以控制数据为对象,执行写入、读取、擦除、自定义命令;

FPGA在处理时,先缓存所有前序的包括数据包包头、数据包路由、控制数据、操作控制参数、数据包包尾的数据流字节,等收到最后一条数据流即操作控制参数时,将它作为控制命令进行执行,执行方式可以是以控制数据为对象,执行写入、读取、擦除、自定义命令,具体命令选择,则将参照操作序列选择。

S500:基于命令序列选择在指定读写地址上执行指定长度的控制命令。

一优选实施例中,数据包包头和数据包包尾分别包括头序列和尾序列,即作为Flash控制请求(REQ)的数据控制请求,由数据包包头、数据包路由、数据包数据区、数据包包尾等条目组成。数据包包头、数据包包尾条目为固定的序列,用于数据包的起始和结束检测用。数据包路由包括命令类型、模块分组序号、级联模块在本组内序号、功能标识序号、数据包数据区的长度n,其中,模块分组序号和级联模块在本组内序号可用于一对多的转发控制。操作序列选择包括写入、读取、擦除、自定义命令,不同待发送数据包内包含不同的操作序列选择参数,以执行一个擦除命令和多个写入命令,完成存储器的按块操作。具体地,FPGA首先接收到可选的用户数据并放在缓存中备用,一旦收到存储控制命令,就可使用先接收到的数据完成先擦除、再写入等操作。用户可根据缓存长度远小于Flash的扇区大小,将擦除(sector earse)和写入(page program)等操作拆分成多个命令序列进行组合。也就是说,一个擦除命令后,可跟随多个数据写入命令,直到之前擦除的区域写满。

又一优选实施例中,基于操作序列选择,以控制数据为对象,执行写入、读取、擦除、自定义命令的步骤S500包括:

S510:在写地址与存储器扇区起始地址对齐时,插入擦除命令;

S520:擦除命令所在的数据包中,附加擦除命令后要写入的数据,并对操作控制参数中的擦除标志和写入标志同时置位;

S530:当擦除的存储器扇区被随后的多个数据包写满时,对下一个扇区执行擦除和写入命令。

换句话说,首个写数据包中控制数据中的擦除Erase标志和烧写Program标志同时置位,并且操作的起始地址是64KB对齐的。除最后1个存储控制命令的数据包外,其它数据长度是n KB(n取4,8,16等值)。在第64/n个包时,Erase和Program标志再次同时置位,其它数据包仅Program标志置位。数据包发送完成后,等待命令完成状态同进行下一步操作。

一优选实施例中,基于擦除地址、写入地址、擦除长度、写入长度执行存储控制命令的步骤S500还包括:

S540:读写操作为读操作时,对操作序列选择中的读取标志置位;

S550:控制数据包数据区包括0条控制数据及1条操作控制参数;

S560:收集齐1条操作控制参数后基于命令完成信息将缓存的数据包上传。也就是说,考虑到读数据包常用标志为读ID和读数据,对存储控制命令中的读取标志和读取地址同时置位。读数据的存储控制命格式与写数据中的写完全相同,但数据包数据区仅含有一条操作控制参数,没有任何前序的数据内容。在读过程中,每收集齐一个数据包(本发明实现的实施例中可为4个字节)即上传,收到命令完成信息后,将缓存待发的数据包上传。

一优选实施例中,基于操作序列选择,以控制数据为对象,执行写入、读取、擦除、自定义命令的步骤S500后还包括:

S600针对每一存储控制命令反馈一控制响应。

本发明中,固件的远程更新方法按照请求-响应(REQ-ACK)方式进行交互,每个REQ请求都必须有ACK响应。例如,单个数据控制请求包可以包含多个操作命令,每个操作命令都必须有一条响应。如果是读数据请求,除对命令的响应外,额外还有更多的数据响应。具体实现时,控制响应(ACK)只有一个数据条目,其高位区域包含了响应的REQ组序号信息、长响应序列的序号,低位区域是命令执行的反馈或读加回的Flash数据。由于控制操作序列是可任意组合的,所以针对每一个数据控制请求,都有一个ACK。对于组合的多个数据控制请求,返回多个ack,这样可以确认组合中的单个更新操作的执行状态。

一优选实施例中,控制数据可由用户自定义,例如发送数据控制请求至PET设备内的主控芯片的步骤S300前还包括:定义任意长度的字节流数据至控制数据,其中字节流数据包括SPI-Flash命令、SPI-Flash地址、SPI-Flash数据和dummy字节;对控制数据的操作选择位写使能,并填充数据包数据区的读写长度域为n-1。具体地,定义任意长度的字节流数据,其内容为要操作此SPI-Flash的命令、地址、数据或dummy字节。FPGA主控接收到数据控制请求后,向SPI-Flash通讯接口发送数据区定义的字节流,并同时接收SPI-Flash所有返回的字节流,并在集齐一条数据或指定长度的命令流完成时,上传收到的数据。通过该配置,可兼容任意Flash命令集。FPGA更新逻辑上集成了读写数据等通常命令序列,通过用户设定的标志组合,根据SPI-Flash的命令集,分解为多条来实现。对于未直接集成实现的操作,可使用此方法做扩展,非常便捷。可以理解的是,例如可选的用户数据的控制数据指,根据Flash操作命令的需要,附加的数据。没有附加数据时,可只有操作控制参数一个数据条目。擦除、读ID、读数据等操作不需要附加的用户数据。写入操作需要在控制序列之前附加指定数据的用户数据。

也就是说,用户自定义数据控制请求,填充在控制请求的数据区内。它可以补充FPGA固件对标准Flash命令操作之外,各个厂家不同的扩展命令的支持,可极大增加灵活性。理论上,可以支持任意的读写序列。再者实现时,将实际要发送的操作控制参数(假设长度为N)填充在数据包数据区中。然后在存储控制命令中,将操作选择位中的自定义功能位置1使能,并填充读写长度域为N-1。在Flash硬件读写接口上,依次发送这N个字节,并返回Flash器件对每一个发送字节的响应。发送端接收这N个响应字节,然后根据自定义命令的设计,提取需要的响应数据。

下面给出一个本方法具体实现的实例,是方法在于XilinxAurora64/66b通讯接口(数据条目宽度64bits,即以8Byte单位)的一种实现。

REQ请求方法的定义如下:

定义HEAD为64'hffffffff_ffffffff。

定义TAIL为64'hffffffff_fffffffe。

定义ROUTER:(1)[63:61]为TYPE包类型,请求类型值为3'b101;(2)[60:57]为模块组序号;(3)[52:49]为模块序号;(4)[36:32]为功能标识序号,Flash更新功能定义为5'h0D;(5)[31:29]为RW读写标志,读定义为3'b001;(6)[28:0]为LEN包长度,长度以字节为单位,如果仅有Flash控制序列,该值为29'd8。(7)未定义的位为保留用途。

定义DATA区长度为N,即各条目编号为data[0]~data[N-1]。则data[N-1]控制命令,其它为可选数据。

定义data[N-1]各bit如下:(1)[7:0]为func,[0]:Sectorerase,[1]writedata,[2]readid,[3]readdata,[7]usercommand,其中[1:0]为写请求,[3:2]为读请求,[7]为用户自定义命令。当[1]或[7]置位时,在data[0]~data[N-2]中还包含其它数据。(2)[31:8]为要读写的用户数据长度,读n字节,则值设置为n-1。(3)[63:32]为读写地址,其有效值与实际使用的Flash器件容量有关。

ACK响应方法的定义如下:

定义ACK:(1)[63:61]为TYPE包类型,响应类型值为3'b100;(2)[60]为读写标识,读为1写为0;(3)[69:56]为模块组序号;(4)[55:54]为模块组序号;(5)[52:49]为模块组内序号;(6)[46:41]为功能标识序号,与请求包兼容,值为6'h0D;(70)[39:32]为响应id序号,从0到255循环递增;(8)[31:0]为命令的响应或读回的数据。对命令的响应填充在[31:24],具体意义由用户实现。对读数据的响应,按字节充由低到高填充,每个响应可以填充4个用户数据,依次记为B0~B3。

实例1:写Flash数据。对地址0x000100处写入8个字节,[0x100]=0x10,[0x101]=0x32,…,先擦除后写入。收到3个ACK响应,分别为擦除、写入和总体执行完毕的结果,00,00,06。

实例2:读Flash ID。读回的3字节的ID数据为20-BA-18,及读操作的结果03。

实例3:自定义命令读Flash ID。命令序列为9F 00 00 00,硬件接口读回的数据序列为00-20-BA-18,读操作结果为03。

本发明还公开了一种数据远程更新系统,包括:拆分模块,基于待发送数据包,根据主控芯片缓存大小、和数据地址的对齐要求,拆分为多个数据控制请求,数据控制请求包括数据包包头、数据包路由、数据包数据区、数据包包尾;定义模块,定义数据包数据区包括n-1条控制数据及1条操作控制参数,控制数据包括固件数据或自定义命令字节流,操作控制参数包括操作地址、操作长度、操作序列选择;转发模块,根据数据包路由内的地址,转发控制数据至PET设备内的主控芯片;主控芯片顺序缓存n-1条控制数据,并在接收到操作控制参数后,基于操作序列选择,以控制数据为对象,执行写入、读取、擦除、自定义命令,并基于命令序列选择在指定读写地址上执行指定长度的控制命令。

本发明又公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的步骤。

应当注意的是,本发明的实施例有较佳的实施性,且并非对本发明作任何形式的限制,任何熟悉该领域的技术人员可能利用上述揭示的技术内容变更或修饰为等同的有效实施例,但凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何修改或等同变化及修饰,均仍属于本发明技术方案的范围内。

相关技术
  • 一种PET设备的数据远程更新方法、系统及计算机可读存储介质
  • 一种图数据的更新方法、系统、计算机可读存储介质及设备
技术分类

06120112837503