基于CPLD实现嵌入式系统高可靠启动的方法与流程

文档序号:33737741发布日期:2023-04-06 08:38阅读:119来源:国知局
基于CPLD实现嵌入式系统高可靠启动的方法与流程

本发明属于航空计算机控制,涉及一种基于cpld实现嵌入式系统高可靠启动的方法。


背景技术:

1、随着计算机技术、微电子技术、现代制造工艺和设计能力的不断进步和发展,硬件的集成度越来越高,为使嵌入式系统在生产生活中发挥嵌入式设备的性能,需要一个强大的操作系统,而在操作系统运行之前需要一段程序完成基本的初始化操作进而启动操作系统,bootloader就是这段程序。此举实现了系统从硬件启动到操作系统启动的过渡,它固化在硬件中,被认为是嵌入式系统不可缺少的不易部分,其作用类似于pc上的bios和grub。待引导的嵌入式操作系统包括但不限于liunx或vxworks。

2、一般嵌入式系统只有一套u-boot和操作系统,一旦程序存储区域数据损坏或者存储器损坏,则系统无法启动。在有些应用场景采用双boot设计,能在一定程度上增加系统可靠性,但一旦存储器损坏,系统仍然无法正常启动。

3、中国发明专利202110513916.7公开了一种基于双系统板卡根据槽位自动选择操作系统的方法,通过不同静态配置,启动不同的操作系统;通过判断槽位号,得到该槽位需要启动什么系统;vxworks系统通过在dos引导时复制bcd文件,然后重启实现到windows系统的切换;windows系统通过调用bcdedit命令,然后重启实现到vxworks系统的切换,从而实现了在无需人为干预的情况下,安装了双系统的功能板卡自动根据槽位选择操作系统。该发明通过槽位自动选择操作系统,实现vxworks系统和windows系统启动,并没有对biso或u-boot双备份。

4、中国发明专利202010590193.6公开了一种嵌入式双系统中分阶段启动的控制方法,针对现有技术所存在的技术缺陷,采取无缝切换的双系统,由于目前系统启动是分阶段进行引导,在本发明中,某个阶段引导失败时找到对应的备份,直接从该阶段重新引导,无需重启,从而对于用户来说,不会感知到系统的切换。具体地,系统引导启动,每个阶段的启动都需要返回启动结果,进一步地,系统判断返回结果,如果成功,继续加载该系统的其他部分,如果失败,在特定分区记录本次失败,作为下次启动时的参考,找到该部分对应的备份系统,加载,后续其他阶段的启动和上述方案类似,直到全部加载完成,启动结束。本发明流程简单、实用性强、使用方便、具有极高的商业价值。该发明将系统分阶段启动,某阶段失败则读取对应备份程序。该方法仅仅对系统文件进行备份,对boot文件损坏则无法实现自动切换,而且一旦存储器芯片发生故障,系统仍然无法启动。


技术实现思路

1、(一)发明目的

2、本发明的目的是:提供一种基于cpld实现嵌入式系统高可靠启动的方法,通过cpld实现u-boot和操作系统备份启动,通过2个独立的存储器存储主备boot和系统文件。

3、(二)技术方案

4、为了解决上述技术问题,本发明提供一种基于cpld实现嵌入式系统高可靠启动的系统,包括cpu、cpld、nor flsah主存储器、nor flsah备用存储器、外置看门狗电路、外置eeprom存储器、数据存储器。

5、cpu、cpld、nor flsah主存储器、nor flsah备用存储器通过localbus局域总线连接,完成总线数据交互;其中,cpu与cpld通过一级局域总线连接,cpld与nor flsah主存储器和nor flsah备用存储器通过二级局域总线连接;cpld和外置eeprom存储器通过i2c连接;主备2个boot和文件系统分别存储到2个独立的存储器,默认情况下系统上电复位后,cpld通过i2c总线读取eeprom特定地址空间,如果该位为1,则默认从主存储器启动。cpld通过译码电路将主存储器映射到cpu总线,cpu读取主存储器的引导程序和内核、根文件系统、应用程序等,系统正常启动。系统启动阶段cpld通过硬件定时器定时喂狗,保证系统正常启动。系统正常启动后,cpu配置cpld切换到软件喂狗模式,由cpu通过局域总线控制cpld的io定时软件喂狗。一旦程序空间损坏或者存储器损坏,系统无法正常启动,超过cpld设置的喂狗时间窗口后,cpld通过i2c总线将eeprom特定空间清零并发出复位信号。复位信号保证单板或系统可靠复位,cpld检测eeprom特定空间,如果检测结果为0,则将局域总线信号切换到备用存储器,cpu从备用存储器读取引导程序和内核、根文件系统等,实现系统正常启动。所述数据存储器挂在在cpu存储接口,用于存储应用产生的数据,实现数据的存储、删除等操作,充分保障程序存储器不被误操作。

6、本发明还提供一种基于cpld实现嵌入式系统高可靠启动的方法,步骤如下:

7、(1)看门狗电路上电复位整个系统;

8、(2)cpld判别从哪个存储器启动

9、步骤(1)复位结束后,cpld通过i2c总线访问eeprm特定地址,如果该地址为1则默认从主存储器启动,cpld将主存储器挂载在二级局域总线;如果该地址内容为0,则从备用存储器启动,cpld将备用存储器挂载在二级局域总线;

10、(3)引导系统启动

11、cpu从存储器读取u-boot信息,对底层硬件进行初始化操作,包括cpu内部寄存器,内存控制器配置,以太网接口配置等。初始化完毕,cpu加载内核和根文件系统到系统内存。在上述软件操作流程中,cpld内部逻辑通过喂狗模块实现硬件喂狗,保证系统加载过程不会被看门狗电路复位;

12、(4)启动软件喂狗

13、cpu如果在预定时间窗口内加载完毕,应用软件启动后,通过总线修改cpld内部寄存器,将喂狗模式由硬件喂狗修改为软件喂狗。后续cpu通过cpld io定期喂狗,保证系统不被重启。一旦出现系统死机,则看门狗电路热复位,系统重新启动,从步骤(2)重新开始;

14、(5)异常处理

15、在预定时间窗口内,系统没有正常加载,则cpld判别软件版本出现异常。cpld发出复位信号,复位整个单板。cpld状态机记录启动过程,如果重新启动三次系统仍然无法正常启动,则认为该存储器损坏。cpld向eeprom特定地址写入数据0x00,将启动存储器修改为备用存储器,然后cpld发送复位信号复位系统。系统启动后,cpld通过eeprom判别从备存储器启动,则将二级地址总线连接到备用存储器,从而系统从备用存储器启动,整个启动过程与主存储器启动过程类似。

16、(三)有益效果

17、上述技术方案所提供的基于cpld实现嵌入式系统高可靠启动的方法,与现有技术相比,采用cpld实现主备boot和系统启动和切换,并将主备程序存储到两个独立的存储器,防止一个存储器损坏或者cpu误操作破坏系统文件导致系统无法启动。主备boot和操作系统切换电路主要通过cpld硬件方式实现,系统高集成度高,大大提升系统可靠性。



技术特征:

1.一种基于cpld实现嵌入式系统高可靠启动的系统,其特征在于,包括:cpu、cpld、norflsah主存储器、nor flsah备用存储器、外置看门狗电路、外置eeprom存储器;cpu、cpld、nor flsah主存储器、nor flsah备用存储器通过localbus局域总线连接,完成总线数据交互;其中,cpu与cpld通过一级局域总线连接,cpld与nor flsah主存储器和nor flsah备用存储器通过二级局域总线连接;cpld和外置eeprom存储器通过i2c连接;nor flsah主存储器、nor flsah备用存储器各存储一组boot和文件系统,系统上电复位后,cpld通过i2c总线读取外置eeprom存储器特定地址空间,如果该位为1,则默认从nor flsah主存储器启动,cpld通过译码电路将nor flsah主存储器映射到cpu总线,cpu读取nor flsah主存储器的引导程序和内核、根文件系统、应用程序,系统正常启动;系统启动阶段cpld通过硬件定时器定时喂狗,保证系统正常启动;系统正常启动后,cpu配置cpld切换到软件喂狗模式,由cpu通过局域总线控制cpld的io定时软件喂狗,若程序空间损坏或者存储器损坏,系统无法正常启动,超过cpld设置的喂狗时间窗口后,cpld通过i2c总线将外置eeprom存储器特定地址空间清零并发出复位信号,复位信号保证系统可靠复位,cpld检测外置eeprom存储器特定空间,如果检测结果为0,则将局域总线信号切换到nor flsah备用存储器,cpu从nor flsah备用存储器读取引导程序和内核、根文件系统,实现系统正常启动。

2.如权利要求1所述的基于cpld实现嵌入式系统高可靠启动的系统,其特征在于,还包括:数据存储器,挂在cpu存储接口,用于存储应用产生的数据,实现数据的存储、删除操作。

3.如权利要求2所述的基于cpld实现嵌入式系统高可靠启动的系统,其特征在于,所述localbus局域总线包括地址总线,数据总线,片选信号,读写控制信号,cpu采用cs0作为系统启动片选信号,该信号经过逻辑译码分配给nor flsah主存储器、nor flsah备用存储器;cpld内部地址空间采用除cs0以外的片选信号,经过地址译码实现寄存器读写操作。

4.如权利要求3所述的基于cpld实现嵌入式系统高可靠启动的系统,其特征在于,所述cpld与外置看门狗电路通过通用输入输出接口连接,看门狗电路和cpld逻辑一起完成上电复位以及系统是否正常启动判别;看门狗电路具备上电复位功能,上电后复位信号发送给cpld,cpld将复位信号分发给cpu、cpld内部逻辑和外设。

5.如权利要求4所述的基于cpld实现嵌入式系统高可靠启动的系统,其特征在于,所述cpld中包括喂狗模块,在系统启动时间窗口内,喂狗模块定时生成喂狗信号;系统正常启动后,cpu通过局部总线发送配置信息,将cpld喂狗模式寄存器修改为软件喂狗,后续cpu通过cpldio定时发送喂狗信号;若超时看门狗设定时间,未收到喂狗信号,看门狗电路发送复位信号复位整个系统,保证系统不会死机。

6.如权利要求5所述的基于cpld实现嵌入式系统高可靠启动的系统,其特征在于,所述外置eeprom存储器通过i2c总线连接在cpld上,在cpld内部通过逻辑实现i2c读写时序,在外置eeprom存储器特定地址空间定义从哪个存储器启动,如果该地址寄存器内容为1,则默认从nor flsah主存储器启动,如果该寄存器内容为0则从nor flsah备用存储器启动。

7.如权利要求6所述的基于cpld实现嵌入式系统高可靠启动的系统,其特征在于,所述数据存储器采用独立的芯片存储数据信息,实现程序存储区和数据存储器完全物理隔离。

8.一种基于cpld实现嵌入式系统高可靠启动的方法,其特征在于,所述方法基于权利要求7所述的基于cpld实现嵌入式系统高可靠启动的系统实现启动,包括以下步骤:

9.如权利要求8所述的基于cpld实现嵌入式系统高可靠启动的方法,其特征在于,步骤(2)中,在步骤(1)复位结束后,cpld通过i2c总线访问外置eeprom存储器特定地址空间,如果该地址为1则默认从nor flsah主存储器启动,cpld将nor flsah主存储器挂载在二级局域总线;如果该地址内容为0,则从nor flsah备用存储器启动,cpld将nor flsah备用存储器挂载在二级局域总线;步骤(3)中,cpu从选用的启动用存储器读取u-boot信息,对底层硬件进行初始化操作,包括cpu内部寄存器,内存控制器配置,以太网接口配置;初始化完毕,cpu加载内核和根文件系统到系统内存;步骤(4)中,cpu如果在预定时间窗口内加载完毕,应用软件启动后,通过总线修改cpld内部寄存器,将喂狗模式由硬件喂狗修改为软件喂狗,后续cpu通过cpldio定期喂狗,保证系统不被重启;一旦出现系统死机,则看门狗电路热复位,系统重新启动,从步骤(2)重新开始。

10.如权利要求9所述的基于cpld实现嵌入式系统高可靠启动的方法,其特征在于,步骤(5)中,在预定时间窗口内,系统没有正常加载,则cpld判别软件版本出现异常,cpld发出复位信号,复位整个系统,cpld状态机记录启动过程,如果重新启动三次系统仍然无法正常启动,则认为该存储器损坏,cpld向外置eeprom存储器特定地址空间写入数据0x00,将启动存储器修改为备用存储器,然后cpld发送复位信号复位系统;系统启动后,cpld通过eeprom判别从备存储器启动,则将二级地址总线连接到备用存储器,从而系统从备用存储器启动。


技术总结
本发明公开了一种基于CPLD实现嵌入式系统高可靠启动的系统及方法,系统包括:CPU、CPLD、NOR FLSAH主存储器、NOR FLSAH备用存储器、外置看门狗电路、外置EEPROM存储器,方法采用CPLD硬件方式实现主备程序自动切换,保证主存储空间损坏后,自动切换到备用存储器;对操作系统进行主备存储,对BOOT引导程序实现主备存储;在系统启动阶段通过CPLD硬件方式喂狗,保证加载系统阶段不被复位;在系统启动后,切换到软件喂狗模式,保证软件死机后,系统可靠复位;通过EEPROM特定空间指示从主存储器启动还是备用存储器启动;数据存储器实现程序存储空间和数据存储空间物理隔离,有效降低程序存储空间被误擦除或损坏概率。

技术研发人员:刘勇,张保全
受保护的技术使用者:天津津航计算技术研究所
技术研发日:
技术公布日:2024/1/12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1