设备的升级方法及系统与流程

    专利查询2022-07-06  171



    1.本发明涉及设备升级技术领域,具体涉及一种设备的升级方法、和一种设备的升级系统。


    背景技术:

    2.目前断点续传升级相关专利的创新点集中在有数据缓冲区,可以是mcu(microcontroller unit,微控制单元)内部flash(flash memory,快闪存储器)、外挂flash、eeprom(electrically erasable programmable read-only memory,带电可擦可编程只读存储器)等掉电数据不丢失存储介质方案,即先把升级文件或数据完整的或部分的保存到数据缓冲介质,异常掉电或其他情况下重新上电需要恢复升级的,可以通过上述缓冲介质保存的数据实现断点续传的功能。
    3.然而,上述方案大多未考虑实际应用场景对产品硬件成本的要求,例如设备对产品硬件成本的要求,实现上述方案往往需要采用具备大容量内部flash的mcu或者需要外挂大容量flash或eeprom等掉电数据不丢失存储介质。对于此类应用场景,上述方案不可行,因此有必要提出其他创新方案进行替代。


    技术实现要素:

    4.本发明为解决上述技术问题之一,提出了如下技术方案。
    5.本发明第一方面实施例提出了一种设备的升级方法,设备内设置有eeprom存储器,所述eeprom存储器用于保存升级进度,所述方法包括以下步骤:
    6.s1,在所述设备需要升级且处于bootloader程序时,服务器发送升级请求帧给所述设备;
    7.s2,所述设备基于所述升级请求帧确定此次升级为断点续传升级或者全新升级;
    8.s3,在此次升级为断点续传升级时,所述设备从所述eeprom存储器中获取升级进度,并根据所述升级进度确定当前续传断点;
    9.s4,所述设备根据所述当前续传断点,回复断点升级状态应答帧给所述服务器,所述断点升级状态应答帧包含断点续传升级字节和待请求的下一个分包索引;
    10.s5,所述服务器接收到所述断点升级状态应答帧后,根据所述下一个分包索引给所述设备发送分包数据帧,其中,每个分包数据帧中包括对应分包的索引和有效数据;
    11.s6,所述设备获取当前升级进度,并将所述当前升级进度写入所述eeprom存储器;
    12.s7,所述设备将所述有效数据按照顺序写入app(application,应用程序)分区,返回步骤s5,直至分包数据帧发送完毕;
    13.s8,所述设备在所述分包数据帧写入完毕后,跳转至app程序,进行软件版本信息的更新。
    14.另外,根据本发明上述实施例的设备的升级方法还可以具有如下附加的技术特征。
    15.根据本发明的一个实施例,所述eeprom存储器包括:app版本信息分区、app版本信息备份分区和升级进度管理分区,其中,所述app版本信息分区用于保存当前app程序的版本信息,所述app版本信息备份分区用于保存待升级的app程序的版本信息,所述升级进度管理分区用于保存当前断点续传升级的升级进度信息。
    16.根据本发明的一个实施例,所述设备基于所述升级请求帧确定此次升级为断点续传升级或者全新升级,包括:
    17.所述设备接收到所述升级请求帧后,发送应答信息给所述服务器;
    18.所述服务器接收到所述应答信息之后,发送第一固件信息给所述设备,所述第一固件信息包括固件版本;
    19.所述设备接收所述服务器发送的所述第一固件信息,并提取所述第一固件信息中的固件版本;
    20.所述设备读取所述app版本信息备份分区中的固件版本,并判断提取的固件版本与读取的固件版本是否一致;
    21.如果提取的固件版本与读取的固件版本一致,则确定所述此次升级为断点续传升级;
    22.如果提取的固件版本与读取的固件版本不一致,则确定所述此次升级为全新升级。
    23.根据本发明的一个实施例,根据所述升级进度确定当前续传断点,包括:
    24.所述设备确定所述升级进度中的上一个分包数据帧;
    25.所述设备校验上一个分包数据帧是否完整地写入所述设备内部的flash;
    26.如果上一个分包数据帧已经完整地写入所述设备内部的flash,则根据上一个分包索引确定当前续传断点;
    27.如果上一个分包数据帧未完整地写入所述设备内部的flash,则将上一个分包数据帧所在页擦除,并根据所在页的索引确定当前续传断点。
    28.根据本发明的一个实施例,在所述服务器发送升级请求帧给设备之前,还包括:
    29.所述设备上电并进入bootloader程序;
    30.所述设备读取所述app版本信息分区中的第二固件信息,所述第二固件信息包括固件长度和固件crc(cyclic redundancy check,循环冗余校验)码;
    31.所述设备根据所述第二固件信息,确定所述设备是否需要升级。
    32.根据本发明的一个实施例,设备的升级方法,还包括:所述主设备在上电时,检测与所述从设备之间是否配对成功:如果配对成功,则设置plc通信方式为单播方式,进入正常工作模式;如果未配对成功,则等待直至配对成功。
    33.根据本发明的一个实施例,所述设备根据所述第二固件信息,确定所述设备是否需要升级,包括:
    34.根据所述固件长度计算app分区数据的固件crc码;
    35.判断计算出的固件crc码与读取到的固件crc码是否一致;
    36.在计算出的固件crc码与读取到的固件crc码一致时,读取所述升级进度管理分区的升级请求标志,并判断所述升级请求标志是否置位;
    37.在所述升级请求标志置位时,确定所述设备需要升级;
    38.在所述升级请求标志未置位时,确定所述设备不需要升级;
    39.在计算出的固件crc码与读取到的固件crc码不一致时,确定所述设备需要升级。
    40.根据本发明的一个实施例,设备的升级方法,还包括:
    41.在所述此次升级为全新升级时,所述设备将接收到的第一固件信息写入app版本信息备份分区,并擦除app分区的所有数据;
    42.所述设备回复全新升级状态应答帧给所述服务器,所述全新升级状态应答帧包含全新升级字节;
    43.所述服务器接收到所述全新升级状态应答帧后,发送分包数据帧给所述设备。
    44.根据本发明的一个实施例,所述当前升级进度包括:升级状态、接收的分包数量和最近一次分包索引。
    45.根据本发明的一个实施例,所述有效数据的长度与设备内部的flash页数呈整数倍关系。
    46.本发明第二方面实施例提出了一种设备的升级系统,包括:设备和与所述设备进行通信的服务器,其中,设备内设置有eeprom存储器,所述eeprom存储器用于保存升级进度,所述设备包括第一确定模块、第二确定模块、回复模块、第一写入模块、第二写入模块和更新模块,所述服务器包括第二发送模块;
    47.第一发送模块,用于在所述设备需要升级且处于bootloader程序时,发送升级请求帧给所述设备;
    48.第一确定模块,用于基于所述升级请求帧确定此次升级为断点续传升级或者全新升级;
    49.第二确定模块,用于在此次升级为断点续传升级时,从所述eeprom存储器中获取升级进度,并根据所述升级进度确定当前续传断点;
    50.回复模块,用于根据所述当前续传断点,回复断点升级状态应答帧给所述服务器,所述断点升级状态应答帧包含断点续传升级字节和待请求的下一个分包索引;
    51.第二发送模块,用于接收到所述断点升级状态应答帧后,根据所述下一个分包索引给所述设备发送分包数据帧,其中,每个分包数据帧中包括对应分包的索引和有效数据;
    52.第一写入模块,用于获取当前升级进度,并将所述当前升级进度写入所述eeprom存储器;
    53.第二写入模块,用于将所述有效数据按照顺序写入application分区,返回所述第二发送模块,直至分包数据帧发送完毕;
    54.更新模块,用于在所述分包数据帧写入完毕后,跳转至app程序,进行软件版本信息的更新。
    55.本发明实施例的技术方案,只需要增加一颗小容量eeprom即可实现断点续传升级功能,实现方案简单、实现成本较低,且可以提高升级数据写入时的可靠性。
    附图说明
    56.图1为本发明实施例的设备的结构示意图。
    57.图2为本发明实施例的mcu内部的flash的分区示意图。
    58.图3为本发明实施例的设备的升级方法的流程图。
    59.图4为本发明一个实施例的eeprom存储器的划分分区示意图。
    60.图5为本发明一个示例的对设备进行升级的流程图。
    61.图6为本发明一个示例的实现断点续传升级的流程图。
    62.图7为本发明一个示例的更新软件版本信息的流程图。
    63.图8为本发明实施例的设备的升级系统的方框示意图。
    具体实施方式
    64.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
    65.图1为本发明实施例的设备的结构示意图。
    66.如图1所示,本发明实施例的设备内设置有eeprom存储器,eeprom存储器用于保存升级进度,设备内还包括mcu,设备可以是逆变器设备。
    67.本发明实施例的硬件组成:如图2所示,由于mcu内部flash容量限制,只保留bootloader分区和application分区(app分区),其中bootloader分区是系统应用程序的引导分区。为实现断点续传升级功能,同时考虑产品成本要求,在可接受的范围内小幅度增加产品成本,通过增加一颗小容量eeprom(1kbit及以下即可满足要求)用于存放断点续传等信息,即可实现软件断点续传升级。
    68.图3为本发明实施例的设备的升级方法的流程图。
    69.如图3所示,该设备的升级方法包括以下步骤s1至s8。
    70.s1,在设备需要升级且处于bootloader程序时,服务器发送升级请求帧给设备。
    71.本发明实施例中的设备与服务器之间的通信可以是有线方式,也可以是无线方式,比如rs232串行总线、rs485串行总线、wifi、蓝牙、zigbee、iot等。为实现断点续传功能,需要服务器(也可称为主机端)和设备端的交互配合。
    72.具体地,在设备需要升级且处于bootloader程序时,服务器发送升级请求帧给设备,其中,升级请求帧可以理解为请求设备进行升级的数据帧,在接收升级数据之前,设备需要跳转到bootloader程序。
    73.s2,设备基于升级请求帧确定此次升级为断点续传升级或者全新升级。
    74.具体地,在设备接收到升级请求帧后,基于升级请求帧确定此次升级属于断点续传升级还是全新升级,其中,断点续传升级是指在上一次升级过程中发生中断后此次从中断点处恢复升级的升级,全新升级是指重新进行的升级。
    75.如果为全新升级,则设备需要擦除整个app分区(application分区);如果为断点续传升级,则设备需要从断点处恢复升级。
    76.s3,在此次升级为断点续传升级时,设备从eeprom存储器中获取升级进度,并根据升级进度确定当前续传断点。
    77.需要说明的是,本发明实施例中服务器将升级数据传输给设备时,服务器设备将升级数据进行分包发送,设备每接收一次分包数据,就将当前的升级状态、续传进度(通过分包索引等来体现)写入eeprom,然后才会将升级数据中的有效数据写入mcu内部flash的
    app分区(即application分区)。
    78.具体地,当设备确定出此次升级为断点续传升级时,从eeprom存储器中获取升级进度,其中,升级进度包括:升级状态、接收的分包数量、最后一次分包索引和crc码,进而可根据升级进度确定当前续传断点,当前续传断点是指服务器给设备传输升级数据包的传输断点。
    79.s4,设备根据当前续传断点,回复断点升级状态应答帧给服务器,断点升级状态应答帧包含断点续传升级字节和待请求的下一个分包索引。
    80.其中,断点续传升级字节是指断点升级应答帧中表示设备此次的升级为断点续传升级的一个字节,待请求的下一个分包索引是指服务器待发送的下一个分包数据帧的索引。
    81.s5,服务器接收到断点升级状态应答帧后,根据下一个分包索引给设备发送分包数据帧,其中,每个分包数据帧中包括对应分包的索引和有效数据。
    82.其中,有效数据的长度与设备内部的flash页数呈整数倍关系。
    83.具体地,设备根据当前续传断点回复断点升级状态应答帧给服务器,服务器接收到断点升级状态应答帧后,即可知晓此次升级为断点续传升级以及此次升级的当前续传断点,进而服务器根据下一个分包索引给设备发送对应的分包数据帧,每个分包数据帧中包括该分包的索引(序号)和有效数据,其中,索引用于定位及获取分包,有效数据可以理解为设备进行软件版本升级时需要应用到的数据。之后,设备等待接收服务器发送的升级数据即分包数据帧。
    84.需要说明的是,考虑到数据在写入过程中可能因为芯片异常掉电而发生写错误(小概率事件),在保存了升级进度的基础上考虑升级进度的回卷,于是使有效数据的长度与设备内部的flash页数呈整数倍关系,由于数据帧中有效数据长度和mcu内部flash页大小的整数倍关系,最多回卷一个页的数据,从实现角度来讲也是完全合理和可接受的。
    85.s6,设备获取当前升级进度,并将当前升级进度写入eeprom存储器。
    86.其中,当前升级进度包括:升级状态、接收的分包数量、最近一次分包索引(,是指最近一次分包数据帧的索引,也可称为上一次分包索引)和crc码。
    87.可以理解的是,设备没接收一次分包数据,当前升级进度就会发生变化,于是设备没接收一次分包数据,就首先将当前升级进度写入eeprom存储器。
    88.s7,设备将有效数据按照顺序写入app分区,返回步骤s5,直至分包数据帧发送完毕。
    89.具体地,设备接收每次接收一次服务器发送的分包数据,设备首先把当前的升级状态、续传进度(通过分包索引等来体现)写入eeprom,然后才会把有效数据写入设备内部flash的application分区,如此循环,直至服务器将升级数据发送完毕。
    90.s8,设备在分包数据帧写入完毕后,跳转至app程序,进行软件版本信息的更新。
    91.具体地,在升级完成后,设备进入bootloader程序,校验app分区的crc码,在校验通过时,设备跳转到app程序,进行初始化,并更新软件版本。
    92.本发明实施例为实现断点续传,需要在通信协议层面解决断点续传的问题,这里有几个关键点:1、升级包分包发送,每个包中包含该包数据的索引(序号),并且每包数据里面的有效数据长度和mcu内部flash页大小呈整数倍关系,这样可以避免升级包数据写入
    flash的过程中出现跨页的情况,进而避免跨页写失败后续传恢复的复杂度;2、设备每次接收到服务器发送的分包数据后,设备首先把当前的升级状态、续传进度(通过分包索引等来体现)写入eeprom,然后才会把有效数据写入mcu内部flash的app分区。
    93.本发明实施例中只需要增加一颗小容量eeprom即可实现断点续传升级功能,投入成本低,产出功能效益高;不需要flash内部的数据缓冲分区即可实现断点续传功能,方案实现简单、可靠性好,而且可以避免升级包数据写入flash的过程中出现跨页的情况,进而避免跨页写失败后续传恢复的复杂度。
    94.由此,本发明实施例的设备的升级方法,只需要增加一颗小容量eeprom即可实现断点续传升级功能,实现方案简单、实现成本较低,且可以提高升级数据写入时的可靠性。
    95.需要说明的是,本发明实施例基于小容量eeprom实现断点续传升级,为了更好地实现断点续传升级,将eeprom划分为多个分区。
    96.即在本发明的一个实施例中,eeprom存储器包括:app版本信息分区、app版本信息备份分区和升级进度管理分区,其中,app版本信息分区用于保存当前app程序的版本信息,app版本信息备份分区用于保存待升级的app程序的版本信息,升级进度管理分区用于保存当前断点续传升级的升级进度信息。
    97.具体地,如图4所示,可将eeprom存储器划分为4个分区,分别是:设备铭牌信息分区,用于保存系统的铭牌等只读信息;app版本信息分区,用于保存当前app程序的版本信息;app版本信息备份分区,用于保存即将升级的app程序的版本信息;升级进度管理分区,用于保存当前断点续传升级进度相关信息。
    98.在本发明的一个实施例中,上述步骤s2可包括:设备接收到升级请求帧后,发送应答信息给服务器;服务器接收到应答信息之后,发送第一固件信息给设备,第一固件信息包括固件版本;设备接收服务器发送的第一固件信息,并提取第一固件信息中的固件版本,设备读取app版本信息备份分区中的固件版本,并判断提取的固件版本与读取的固件版本是否一致;如果提取的固件版本与读取的固件版本一致,则确定此次升级为断点续传升级;如果提取的固件版本与读取的固件版本不一致,则确定此次升级为全新升级。
    99.需要说明的是,本发明实施例中将服务器发送的固件信息称为第一固件信息,其包括的固件版本为设备当前固件的版本。而设备从app版本信息备份分区中读取的固件版本为设备即将升级后的固件的版本。
    100.具体而言,如图5所示,服务器发送升级请求帧后,设备接收并应答,服务器接收到应答信息后,发送第一固件信息给设备,该固件信息包括设备的当前的固件版本,设备接收到该固件信息后,从其中提取出固件版本,并从app版本信息备份分区中读取固件信息,并读取该固件信息中的固件版本(该固件版本为即将升级的固件版本),判断提取的固件版本和读取的固件版本是否一致,在一致时,校验成功,说明此次升级为断点续传升级,于是开启断点续传升级处理;在不一致时,校验失败,说明此次升级为全新升级。
    101.在本发明的一个实施例中,确定当前续传断点,可包括:设备确定升级进度中的上一个分包数据帧;设备校验上一个分包数据帧是否完整地写入设备内部的flash;如果上一个分包数据帧已经完整地写入设备内部的flash,则根据上一个分包索引确定当前续传断点,即当前续传断点可以为上一个分包索引;如果上一个分包数据帧未完整地写入设备内部的flash,则将上一个分包数据帧所在页擦除,并根据所在页的索引确定当前续传断点,
    此时当前续传断点可以为该所在页的索引。
    102.具体而言,参照图5,设备在获取到升级进度之后,从升级进度中确定出上一个分包数据帧,校验上一个分包数据帧是否完整地写入flash,如果是,则可将上一个分包索引作为当前续传断点,进而设备根据当前续传断点请求下一包数据,以进行断点续传升级;如果否,则将上一个分包数据帧所在页擦除后将所在页的索引作为当前续传断点。
    103.如图6所示,在进行断点续传升级时,首先,校验最近一个分包数据帧是否写入完毕,如果是,则根据当前分包索引请求下一包数据,以继续进行断点续传升级;如果否,则设备重新请求当前分包数据帧,之后可校验最近一个分包数据帧是否写入错误,如果是,则对当前分包数据帧所造的flash进行页擦除,之后根据当前flash页索引重新请求数据帧。
    104.在本发明的一个实施例中,在服务器发送升级请求帧给设备之前,还可包括:设备上电并进入bootloader程序;设备读取app版本信息分区中的第二固件信息,第二固件信息包括固件长度和固件crc码;设备根据第二固件信息,确定设备是否需要升级。
    105.需要说明的是,本发明实施例中将app版本信息分区中的固件信息称为第二固件信息,为设备当前(升级前)的固件信息。
    106.进一步地,设备根据第二固件信息,确定设备是否需要升级,可包括:根据固件长度计算app分区数据的固件crc码;判断计算出的固件crc码与读取到的固件crc码是否一致;在计算出的固件crc码与读取到的固件crc码一致时,读取升级进度管理分区的升级请求标志,并判断升级请求标志是否置位;在升级请求标志置位时,确定设备需要升级;在升级请求标志未置位时,确定设备不需要升级;在计算出的固件crc码与读取到的固件crc码不一致时,确定设备需要升级。
    107.具体而言,参照图5,设备进入bootloader程序后,读取app版本信息分区中的固件信息,该固件信息包括固件长度、软件版本、分包数量和固件crc码,从而读取到固件长度和固件crc码,之后设备可根据固件长度计算app分区数据的固件crc码,得到计算出的固件crc码,判断计算出的crc码和读取到的crc码是否一致,如果一致,则读取升级进度管理分区的升级请求标志,并判断升级请求标志是否置位,在升级请求标志置位时,确定设备需要升级,于是设备停留在bootloader程序,等待服务器发送升级请求;在升级请求标志未置位时,则说明设备无需升级,于是设备可跳转至app程序;如果计算出的crc码和读取到的crc码不一致,则说明设备需要升级,于是设备停留在bootloader程序,等待服务器发送升级请求。
    108.需要说明的是,参照图5,如果设备在跳转至app程序后,接收到服务器发送的升级请求,则将升级请求标志位置位后写入升级进度管理分区,之后,复位芯片。
    109.也就是说,设备在接收升级数据前,都需要跳转到bootloader程序,设备接收到服务器的升级请求并应答后,服务器接着发送升级程序的版本信息,设备验证当前接收到的版本比本地软件版本不一致后,继续判断是否为全新升级,当判断此次升级为续传升级后开启断点续传功能处理。
    110.在本发明的一个实施例中,设备的升级方法,还可包括:在此次升级为全新升级时,设备将接收到的第一固件信息写入app版本信息备份分区,并擦除app分区的所有数据;设备回复全新升级状态应答帧给服务器,全新升级状态应答帧包含全新升级字节;服务器接收到全新升级状态应答帧后,发送分包数据帧给设备。
    111.具体而言,参照图5,在此次升级为全新升级时,设备将接收到的第一固件信息写入app版本信息备份分区,并擦除app分区的所有数据,之后,设备回复全新升级状态应答帧给服务器,全新升级状态应答帧包含全新升级字节,该字节表示此次升级为全新升级,之后,等待服务器发送的分包数据帧,服务器接收到全新升级应答帧后发送分包数据帧,设备接收数据并应答,之后将升级数据顺序写入app分区,在数据包发送完毕时,升级结束,在数据包未发送完毕时,设备继续等待接收分包数据帧。
    112.其中,设备在将有效数据写入后,判断当前包是否为最后一包,如果是,则说明发送完毕,结束升级;如果否,则说明发送未完毕,服务器继续发送升级数据。
    113.每次升级完成后,可按照图7所示的流程实现app程序跳转和软件版本信息的更新。
    114.如图7所示,在升级完成后,首先,设备进入bootloader程序,校验app分区的crc码,在校验通过时,设备跳转到app程序,进行初始化,并更新eeprom中app版本信息分区的信息,实现软件版本的更新。
    115.综上所述,通过本发明实施例的技术方案进行断点续传升级时,只需要增加一颗小容量eeprom即可实现断点续传升级功能,投入成本低,产出功能效益高;不需要数据缓冲分区即可实现断点续传功能,方案实现简单、可靠性好。
    116.对应上述实施例的设备的升级方法,本发明还提出一种设备的升级系统。
    117.图8为本发明实施例的设备的升级系统的方框示意图。
    118.如图8所示,设备的升级系统包括:设备100和与所述设备100进行通信的服务器200,其中,设备100内设置有eeprom存储器,所述eeprom存储器用于保存升级进度,所述设备100包括第一发送模块10、第一确定模块20、第二确定模块30、回复模块40、第一写入模块50、第二写入模块60和更新模块70,所述服务器包括第二发送模块80。
    119.第一发送模块10,用于在所述设备需要升级且处于bootloader程序时,发送升级请求帧给所述设备;第一确定模块20,用于基于所述升级请求帧确定此次升级为断点续传升级或者全新升级;第二确定模块30,用于在此次升级为断点续传升级时,从所述eeprom存储器中获取升级进度,并根据所述升级进度确定当前续传断点;回复模块40,用于根据所述当前续传断点,回复断点升级状态应答帧给所述服务器,所述断点升级状态应答帧包含断点续传升级字节和待请求的下一个分包索引;第二发送模块80,用于接收到所述断点升级状态应答帧后,根据所述下一个分包索引给所述设备发送分包数据帧,其中,每个分包数据帧中包括对应分包的索引和有效数据,所述有效数据的长度与设备内部的flash页数呈整数倍关系;第一写入模块50,用于获取当前升级进度,并将所述当前升级进度写入所述eeprom存储器;第二写入模块60,用于将所述有效数据按照顺序写入app分区,返回所述第二发送模块80,直至分包数据帧发送完毕;更新模块70,用于在所述分包数据帧写入完毕后,跳转至app程序,进行软件版本信息的更新。
    120.进一步地,所述eeprom存储器包括:app版本信息分区、app版本信息备份分区和升级进度管理分区,其中,所述app版本信息分区用于保存当前app程序的版本信息,所述app版本信息备份分区用于保存待升级的app程序的版本信息,所述升级进度管理分区用于保存当前断点续传升级的升级进度信息。
    121.需要说明的是,该设备的升级系统的具体实施方式可参见上述设备的升级方法的
    具体实施方式,为避免冗余,此处不再详细赘述。
    122.本发明实施例的设备的升级系统,只需要增加一颗小容量eeprom即可实现断点续传升级功能,实现方案简单、实现成本较低,且可以提高升级数据写入时的可靠性。
    123.在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。“多个”的含义是两个或两个以上,除非另有明确具体的限定。
    124.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对相同的实施例或示例。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
    转载请注明原文地址:https://tc.8miu.com/read-453.html

    最新回复(0)