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

一种压缩分帧加密算法的远程更新方法及系统

文献发布时间:2023-06-19 18:37:28


一种压缩分帧加密算法的远程更新方法及系统

技术领域

本发明涉及智能硬件领域,尤其涉及一种压缩分帧加密算法的远程更新方法及系统。

背景技术

在显示器系统的设计与开发过程中,需要对显示器内部的视频处理固件和背光、触摸等固件进行版本迭代和优化升级。对于处理器的加载和集成芯片的配置大多数都是采用本地方式:使用专用仿真器将配置程序加载到芯片中,或者固化在FLASH、EEPROM等非易失存储器中,对于已经安装和集成完整的显示器再进行固件版本更新。如果受限于专用仿真器进行固件版本更新,需要对显示器进行重新拆卸和安装,使用仿真器进行烧写时,由于数据量比较大,需要更新的节点比较多,需要通过仿真器对显示固件、背光固件、本地管理固件、触摸固件等依次进行烧写,每一项固件的更新都需要对显示器内部模块进行拆卸和安装。完成一台显示器的固件更新需要的时间和人力成本比较大,在批量生产时,将花费巨大的时间和人力成本。

发明内容

本发明的目的在于针对上述现有技术的不足,提供了一种压缩分帧加密算法的远程更新方法及系统,提供统一的上位机远程更新的方法,降低烧写难度和复杂度,提高设备的可靠性。

为实现上述目的,本发明采用了如下技术方案:

本发明提供了一种压缩分帧加密算法的远程更新方法,HID接收上位机的数据,然后通过MCU的内部转换,将固件数据存储到MCU和FPGA同时挂载的SPI FLASH中。

进一步,所述上位机,包括以下步骤:

S101、当用户选择了固件数据并点击了开始更新按钮后,上位机通过HID协议获取MCU读到的FPGA的固件版本号,并在界面上进行显示;

S102、获取到FPGA固件版本后读取用户选择的固件数据,实用LZO压缩算法对FPGA固件数据进行压缩;

S103、对压缩后的数据进行分帧加密;

S104、分帧加密完成后,通过HID将加密后的小帧发送给MCU,直到最后一帧发送完成后,在界面显示更新完成。

进一步,所述S3中的分帧是:将压缩后的数据分成若干个固定字节的小帧;

所述加密是:将每个小帧加上帧头、帧尾、帧类型和帧校验。

进一步,所述帧头为四个字节;所述帧尾为固定的四个字节;所述帧类型为两个字节;所述帧校验为四个字节。

进一步,所述MCU,包括以下步骤:

S201、MCIU在获取到FPGA的软件版本号后,通过复位管脚将FPGA复位,使FPGA失去对SPI FLASH的访问权限;

S202、当SPI FLASH只能被MUC访问,由MCU对SPI FLASH进行全片擦除,擦除成功后将结果回传给所述上位机,然后等待接收数据;

S203、MCU在接收到HID数据后,根据所述帧类型确定当前帧是否为最后一帧;若为最后一帧,则表示若干小帧接收完毕;

S204、然后根据帧序号将所有的小帧组合成一个大帧;

S205、对数据整帧进行CRC校验,校验通过后得到最终的FPGA固件数据。

进一步,所述大帧数据需要使用LZO算法解压缩后,才能得到完整的固件数据。

本发明还提供一种基于HID和压缩分帧加密算法的远程更新系统,所述系统用于实现基于HID和压缩分帧加密算法的远程更新方法,

还包括:主控制器为一片MCU;一片FPGA芯片;FPGA外部挂载一片FLASH作为数据存储节点;

FLASH同时接在所述FPGA芯片和所述MCU的SPIFLASH控制器上,需要更新节点FLASH数据时,使用MCU将FPGA复位,使FPGA失去对FLASH的访问权限,由MCU接管FLASH,同时将需要更新的数据,烧写到FLASH中。

进一步,待更新完成之后,将解除对FPGA的复位,恢复FPGA失去对FLASH的访问权限,使FPGA从SPI FLASH中重新启动。

本发明的有益效果为:其中包含一个MCU和一个FPGA,每个处理器都有外挂自己的存储空间。在显示器设计过程中,为了加快对显示器相关显示固件的更新速度,并减少对已经安装完成的显示器的拆装的操作;通过USB接口的HID协议和压缩分帧加密算法对烧写的数据进行快速、高效和安全的更新;提供统一的上位机远程更新的APP,降低烧写难度和复杂度,提高设备的可靠性。减少对传统JTAG线缆和仿真器的依赖和束缚,提高系统开发调试的效率和便利性。

附图说明

图1为本发明一种压缩分帧加密算法的远程更新方法的上位机的流程图;

图2为本发明一种压缩分帧加密算法的远程更新方法的MCU的流程图;

图3为本发明一种压缩分帧加密算法的远程更新系统的方框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

请参阅1,一种压缩分帧加密算法的远程更新方法,

HID接收上位机的数据,然后通过MCU的内部转换,将固件数据存储到MCU和FPGA同时挂载的SPI FLASH中。

所述上位机,包括以下步骤:

S101、当用户选择了固件数据并点击了开始更新按钮后,上位机通过HID协议获取MCU读到的FPGA的固件版本号,并在界面上进行显示;

S102、获取到FPGA固件版本后读取用户选择的固件数据,实用LZO压缩算法对FPGA固件数据进行压缩;

S103、对压缩后的数据进行分帧加密;

S104、分帧加密完成后,通过HID将加密后的小帧发送给MCU,直到最后一帧发送完成后,在界面显示更新完成。

所述S3中的分帧是:将压缩后的数据分成若干个固定字节的小帧;

所述加密是:将每个小帧加上帧头、帧尾、帧类型和帧校验。

所述帧头为四个字节;所述帧尾为固定的四个字节;所述帧类型为两个字节;所述帧校验为四个字节。

表1分帧加密算法的组成部分

请参阅图2,所述MCU,包括以下步骤:

S201、MCIU在获取到FPGA的软件版本号后,通过复位管脚将FPGA复位,使FPGA失去对SPI FLASH的访问权限;

S202、当SPI FLASH只能被MUC访问,由MCU对SPI FLASH进行全片擦除,擦除成功后将结果回传给所述上位机,然后等待接收数据;

S203、MCU在接收到HID数据后,根据所述帧类型确定当前帧是否为最后一帧;若为最后一帧,则表示若干小帧接收完毕;

S204、然后根据帧序号将所有的小帧组合成一个大帧;

S205、对数据整帧进行CRC校验,校验通过后得到最终的FPGA固件数据。

所述大帧数据需要使用LZO算法解压缩后,才能得到完整的固件数据。

请参阅图3,一种压缩分帧加密算法的远程更新系统,所述系统用于实现压缩分帧加密算法的远程更新方法,

还包括:主控制器为一片MCU1;一片FPGA芯片2;FPGA外部挂载一片FLASH3作为数据存储节点;

FLASH3同时接在所述FPGA芯片2和所述MCU1的SPI FLASH控制器上,需要更新节点FLASH数据时,使用MCU将FPGA复位,使FPGA失去对FLASH的访问权限,由MCU接管FLASH,同时将需要更新的数据,烧写到FLASH中。

待更新完成之后,将解除对FPGA的复位,恢复FPGA失去对FLASH的访问权限,使FPGA从SPIFLASH中重新启动。

具体的,基于HID和压缩分帧加密算法的显示器远程更新系统实现方法,主要通过MCU的HID接口更新FPGA的SPI Flash显示固件。更新FPGA的SPI Flash显示固件时:通过USB线缆连接到MCU,MCU启动后,初始化完成各接口,使用GPIO将FPGA的复位管脚拉低,使FPGA处于复位状态,解除对SPI FLASH的访问权限,待MCU对SPI Flash完成擦除、烧写等过程后,解除对FPGA的复位管脚的控制,FPGA就可以从Flash固件中更新固件并启动。

本发明的具体实现方式为:

本发明采用硬件搭建远程更新电路,FPGA的启动是从SPI FLASH中加载固件然后启动的,因此将FPGA的固件“*.bin”文件可靠的从上位机转运然后存储到FPGA外挂的FLASH中即可实现远程更新FPGA的功能。为了方便远程更新,被广泛运用且在显示器上本身就有的USB接口是最好的选择,而HID又是USB协议中免驱的协议,因此本发明采用HID接收上位机的数据,然后通过MCU的内部转换,将固件数据存储到MCU和FPGA同时挂载的SPI FLASH中。MCU存储数据和FPGA加载数据不在同时进行,避免了相互干扰的问题。为了保证远程更新的效率更高和数据安全性,采用LZO压缩算法,将固件数据进行压缩。为保证传输的可靠性和数据的安全性,将压缩后的固件数据进行分帧加密传输,每一帧都会加上特有的帧头、帧尾、帧类型和校验算法,如果某一帧出错,则会进行重传,MCU在收到所有的帧且正确无误后进行组帧解密和整帧校验,在确认以上步骤都正确执行后,最后将固件数据写入到FLASH中。

本发明中包含MCU的二级Boot程序与上位机应用程序。首先向MCU的内部存储空间的固定地址中烧写二级Boot程序,如MCU的UART、USB、SPI等远程更新所必需的接口,其次还需要将LZO压缩算法和分帧加密算法、组帧和校验方法移植到二级Boot应用程序中,在上位机选择需要更新的“*.bin”文件,再通过HID接口接收数据,再烧写到待更新的FLASH中。在FLASH中的数据更新完成后,对板卡重新上电启动。

本发明基于HID协议的远程更新硬件电路进行的压缩分帧加密算法,使得远程更新更加便利。压缩分帧加密算法是运用了LZO压缩算法来缩短远程更新的时间,从而提高更新效率。在LZO压缩算法的基础上,加上本系统独有的分帧加密算法,该分帧加密的特征是在分帧的同时对每个小帧增加了帧头、帧尾、帧类型、帧校验,从而提高了传输的容错率,也保证了数据传输的安全。

本发明提出的MCU的二级Boot方法,可以避免远程更新过程中出现突然断电或者链路断开后使系统宕机,运用此方法,在恢复供电和链路重新连接后可以重新进行远程更新,提高了系统的稳定性。

以上所述实施例仅表达了本发明的实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求。

技术分类

06120115638151