嵌入式系统软件加载装置及方法

文档序号:6572843阅读:336来源:国知局
专利名称:嵌入式系统软件加载装置及方法
技术领域
本发明涉及嵌入式系统,特别的,涉及一种针对嵌入式控制与处理系统的软件快速加载的装置和方法。
本发明的核心思想如下在系统正常运行的情况下,单板软件是从主板上的BOOT Flash的BOOT区启动的。初始情况下,BOOT区中没有任何版本,系统无法启动。此时将编程控制卡插到主板的编程卡接口上(该接口引出了主板CPU的控制线、数据线和地址线),编程卡上有两块BOOT芯片(BOOT芯片中一般存放的是系统引导、初始化程序,负责嵌入式系统的最小系统初始化与软件版本的加载,即将大容量Flash中的程序拷贝至系统RAM中,并启动RAM内的程序),BOOT1与BOOT2,其中BOOT1存放的是编程卡控制程序,由于控制程序比较简短,整个程序可以放入BOOT1执行;BOOT2存放的是调试好的主板的BOOT程序或软件版本,BOOT1中的控制程序要将BOOT2中的数据写入主板上的BOOTFlash(BOOT Flash为主板上的大容量Flash存储芯片,它被分割为BOOT区与Program Memory区,与一般的Flash芯片的空间分配不同,也不同于一般的小容量BOOT ROM)。上电后,主板上的编程卡控制逻辑就会把系统的初始控制权移交给编程控制卡,系统将从编程控制卡的BOOT1启动,把位于卡上的BOOT2中的程序加载到主板BOOT Flash的BOOT区。同样,对于软件版本的加载操作与此类似。编程操作完成后,取下编程控制卡,重新上电主板即可从BOOT Flash引导并启动软件版本。整个编程过程可通过扩展后的编程卡上的指示灯表示(见图6)。
本发明构造了一种嵌入式系统软件加载装置,包括主板和编程卡;所述的主板包括嵌入式CPU、后台接口、RAM、调试与外围接口、BOOT Flash和编程卡接口;所述的嵌入式CPU通过所述的后台接口接收数据,数据从所述的嵌入式CPU送至所述的调试与外围接口,经所述调试与外围接口对应的其它器件处理后由所述后台接口发送到背板。所述的编程卡接口接收嵌入式CPU的控制信号和数据,进行编程卡片选控制、通过所述的嵌入式CPU对所述的BOOTFlash进行写保护和模式译码;所述的编程卡包括BOOT1、BOOT2和连接器。通过所述的编程卡接口将所述嵌入式CPU的地址总线、数据总线、总线控制信号、片选信号连接至所述的BOOT1与所述的BOOT2;所述的编程卡接口还包括可编程逻辑器件CPLD(Complex ProgrammableLogic Device)和与编程卡连接的连接插座。所述的可编程逻辑器件CPLD进行编程卡与主板的片选控制当编程卡在位时,所述可编程逻辑器件CPLD将主板上所述嵌入式CPU的BOOT片选信号指向所述编程卡上的BOOT1;当编程卡不在位时,所述的BOOT片选信号被指向主板上所述的BOOT Flash;所述可编程逻辑器件CPLD还对主板BOOT Flash的BOOT区进行写保护当编程卡不在位时,将屏蔽对主板BOOT Flash中BOOT区的写操作;所述的BOOT Flash内部空间分为BOOT区、隔离区和Program Memory区三个部分;所述的BOOT区大小由所述的编程卡接口CPLD中的写保护功能确定;所述的隔离区大小也由编程卡接口CPLD的写保护功能确定,余空间为所述的Program Memory区;所述的CPLD包括片选控制逻辑和写保护控制逻辑,所述的片选控制逻辑判断当前编程卡是否在位,如果在位,则将CS0信号连接至编程卡BOOT1;如果编程卡不在位,则为正常启动流程,CS0连接至主板BOOT Flash,主板由所述的BOOT Flash中的BOOT区启动;所述的写保护控制当编程卡不在位时,在逻辑中根据当前模式及地址读写范围,屏蔽对BOOT区的写信号;所述的CPLD还包括模式译码逻辑,根据编程卡的模式拨码开关设置实现多种工作模式的译码;所述的编程卡还包括大容量Flash,存放较大的软件版本;拨码开关,设定三种工作模式BOOT下载模式,调试接口模式和软件版本下载模式;编程指示LED,指示编程过程与编程结果;调试接口,接收由编程卡接口从主板引出的信号。
本发明还提出了一种嵌入式系统软件加载方法,包括以下步骤1、判别工作模式,如果是调试接口模式,则转步骤4,如果是软件版本下载模式,则转步骤3,否则判断是BOOT下载模式;2、进行BOOT下载,下载完毕后转步骤5;
3、进行软件版本下载,转步骤5;4、进行接口调试,转步骤9;5、校验下载数据;6、判断下载是否正确,如不正确则转步骤8;7、标记判断正确,转步骤9;8、标记烧写错误;9、结束。
本发明提出的嵌入式系统软件快速下载装置和方法,只需在主板的逻辑中加入编程卡在位、工作模式以及片选控制的处理,使得编程卡简单易行,可适用于任何嵌入式系统的BOOT、软件版本的加载、升级。整个加载程序在主板嵌入式CPU中执行,不需要PC与专用编程器,降低了生产成本,提高了效率。由于主板上不再采用插座连接小容量BOOT,也提高了系统的可靠性,同时由于大容量Flash Memory可以方便的配置为不同总线宽度,因而对于启动时总线宽度大于8位的嵌入式系统也是适用的。


图1是现有的嵌入式系统(如PowerPC系列、MIPS系列、ARM系列)版本加载示意图。板上存储器件包括随机存储器RAM(Random Access Memory)、BOOT、Flash Memory等,其中BOOT一般采用小容量EEPROM芯片,程序采用编程器烧入,由于调试、BOOT改版等需要,该芯片需要经常擦写,故只能通过插座焊接到主板上。在BOOT引导后,由后台或调试口下载软件版本到板上大容量Flash。在板上不能对BOOT ROM芯片执行写操作,故无法对BOOT程序在线升级。由于现有的EEPROM芯片编程速度较Flash Memory慢得多,而且需要PC机与专用的编程器,这种方法存在诸如生产效率低、成本高等缺点。由于BOOT芯片需要采用插座连接到主板,增加了系统的不可靠性。另外,BOOT的总线宽度一般只能固定为8位,限制了系统的通用性,特别的,不适用于有些对于BOOT宽度大于8位的嵌入式CPU,如采用MPC7xx系列构成的主从系统。(本方法通过对图中A、B两部分的改进,并提供了编程卡装置,实现了现场快速软件下载。)图2是本发明所述的软件快速加载装置结构图。根据图5所示,在系统主板上将主板的BOOT Flash分为两个独立的读写区域,将主板的BOOT程序与软件版本分别放在BOOT Flash的这两个区域中,从而避免采用传统的小容量BOOT ROM+Flash Memory的结构,这种结构采用连接器件将BOOT ROM连接至PCB(Printed Circuit Board),震动与插座老化降低了系统的可靠性,更重要的,这种结构无法进行BOOT的在线升级。在本装置中,主要包括主板和编程卡两个部分,其中,主板包括嵌入式CPU、后台接口、RAM、外围接口、BOOTFlash和编程卡接口等部分,编程卡至少包括以下几个部分BOOT1 ROM、BOOT2 ROM、连接器,其中BOOT1 ROM存储编程卡的控制程序,BOOT2 ROM存储主板的主板BOOT程序或软件版本。编程卡上不带CPU和电源,通过与主板的编程卡接口连接获得电源与其它需要的信号,同时编程卡通过编程卡接口向主板给出模式设置信号(编程卡接口结构见图3所示)。主板上的嵌入式CPU执行编程卡上BOOT1 ROM存储的编程卡控制程序,自动将BOOT2 ROM中的主板BOOT程序或软件版本写入主板上BOOT Flash不同的两个区域,这样,在生产过程中或工程现场版本更新时,就无需PC监控和专用编程器。从而实现BOOT的快速升级与版本的现场下载。而且由于主板上不再使用小容量BOOT芯片及插座,降低了主板成本,提高了可靠性。此外,由于大容量Flash可以方便的配置成不同总线宽度,因而可适用于非8位启动总线宽度的嵌入式CPU,大大增强了装置的灵活性和通用型。
图3是图2中所述的主板上的编程卡接口结构图。该编程卡接口主要包括可编程逻辑器件CPLD和与编程卡连接的插接件。主要为编程卡提供数据总线、地址总线、片选控制以及主板BOOT Flash的写保护。图中,C部分为编程卡向编程卡接口提供的模式信息,由图6中的拨码开关完成;D部分为主板嵌入式CPU提供编程卡工作的各种信号。编程卡的电源由该接口提供。
图4是图3中CPLD完成的主要功能片选控制与写保护逻辑的功能框图。在逻辑芯片CPLD中主要完成如下功能片选控制,一般的嵌入式CPU中上电默认片选为CS0,用于BOOT的片选。当编程卡在位时,嵌入式CPU将执行编程卡BOOT1 ROM上的加载程序。由于与主板正常上电的程序入口不同,所以需由主板编程卡接口中的CPLD判断当前编程卡是否在位,如果在位,则将CS0信号连接至编程卡BOOT1 ROM。如果编程卡不在位,则为正常启动流程,CS0连接至主板BOOT Flash,主板由BOOT Flash启动。
写保护控制,由于主板上的BOOT Flash是可读写的,当编程卡不在位时,为防止程序误操作将BOOT区程序改写,在逻辑中根据当前模式及地址读写范围,屏蔽对BOOT区的写信号。如果当前BOOT Flash的写操作由CS0发起,且地址在BOOT Flash的BOOT区与隔离区以内,则由编程卡接口的CPLD屏蔽该次写操作,从而保护主板BOOT Flash的BOOT区被非法改写。
此外,根据图6扩展的编程卡结构,在CPLD中还实现了模式译码,根据编程卡的模式拨码开关设置实现多种工作模式的译码,即BOOT ROM下载模式、Flash版本下载模式、调试模式等三种工作模式,具体情况参见图7。
图5是主板BOOT Flash的区间划分与各区间的读写信号分配示意图。与图1中B部分Flash Memory相比,本方法将Flash Memory的内部空间分为两部分,即BOOT区与Program Memory区,并根据编程卡在位信号对各区间的分配不同读写权限。BOOT区的大小可由主板编程卡接口CPLD中的写保护功能确定。为防止编程时发生BOOT区与Program Memory地址重叠,在它们中间插入了隔离区,该空间大小也由编程卡接口CPLD的写保护功能确定,余下空间为Program Memory区。当编程卡在位时,主板上整个区间由CS3读写,此时CS0指向编程卡BOOT1;当编程卡不在位时,CS0指向主板Flash Memory,对于BOOT区与隔离区,CS0只能进行读操作,对于Program Memory区间,可以进行读写操作,该功能由编程卡接口中的CPLD完成,从而实现对主板BOOT Flash的BOOT区的硬件写保护。
由图2对编程卡进行扩展,得到图6。图6是本发明所述实施例的结构图。在图6中对编程卡扩展了大容量Flash,可以放入大的软件版本,增加编程卡的适用性;增加了拨码开关,实现多种工作模式的选择;增加了编程指示LED,用于指示编程过程与编程结果;还增加了调试接口,该调试接口信号由编程卡接口从主板引出,可供开发时使用。具体实现的时候有以下三个步骤第一步,对于图6所示扩展后的编程卡,需设置编程控制卡工作模式。编程控制卡有三种预留工作模式BOOT ROM下载模式、Flash版本下载模式、调试模式,模式设置由编程控制卡上的拨码开关设置完成。BOOT ROM下载模式即通过主板CPU执行编程卡BOOT1的控制程序将做好的主板BOOT程序(放入编程卡BOOT2中)快速写入主板Flash Memory的BOOT区(主板BOOT Flash区域划分见图5)。Flash版本下载与BOOT ROM下载模式类似,不同的是它将编程卡存储器上的软件版本写入主板BOOT Flash的Program Memory区。调试模式即通过编程卡提供调试接口,不执行软件下载操作,该模式在主板BOOT程序与软件版本开发、调试时用,调试完成的BOOT程序与软件版本可通过该模式下载到编程卡存储器BOOT2,然后编程卡可以工作于BOOT ROM下载模式与Flash版本下载模式。第二步,连接编程控制卡,然后打开主板电源(编程控制卡电源由主板连接插座引入),主板通过连接插座得到编程控制卡在位指示以及编程卡工作模式后,主板的控制逻辑就会把系统的初始片选指向编程控制卡BOOT1所对应的地址空间,而把主板上的BOOT Flash的片选指向系统中的另外一片地址空间,然后系统就会执行编程卡上的加载程序,将编程卡上的BOOT2的程序或软件版本下载到主板BOOT Flash相应区域。第三步,等待编程控制卡上面的状态指示灯的指示,直至单板软件加载完毕。关闭电源,取下编程控制卡。版本更新完毕后,主板可脱离编程卡运行。重新上电后,主板由BOOT Flash引导、启动。
图7是本发明所述的编程卡工作方法流程图。如果编程卡在位,则首先执行编程卡上的控制程序。编程程序启动后,首先判断编程卡工作模式,分别为BOOT下载模式该模式将编程板内的BOOT程序写入主板BOOT Flash中的BOOT区,只有在该模式下才允许对BOOT区进行写操作;调试接口模式该模式提供了调试接口,用于将调试完成的BOOT、软件版本下载到编程卡上的存储区;软件版本下载模式该模式与BOOT下载模式类似,不同的是该模式将软件版本下载到主板BOOT Flash中的Program Memory区。在下载操作完成后,校验编程数据是否正确,并做出相应指示后,结束程序的执行。
该编程卡结构非常简单,成本低廉,整个编程过程由主板嵌入式CPU完成,无需使用其它辅助仪器、设备,同时,在主板上不再使用小容量BOOT ROM,降低了系统成本。将BOOT放入主板BOOT Flash后,通过编程卡解决了BOOT编程与软件下载的问题,实现了BOOT程序的现场升级与软件版本的快速下载。通过对主板BOOT Flash的不同配置,也可以实现不同数据总线宽度的BOOT引导方式。
权利要求
1.一种嵌入式系统软件加载装置,包括主板,其特征在于,还包括编程卡;所述的主板包括嵌入式CPU、后台接口、RAM、调试与外围接口、BOOT Flash和编程卡接口;所述的嵌入式CPU通过所述的后台接口接收数据,数据从所述的嵌入式CPU送至所述的调试与外围接口,经所述调试与外围接口对应的其它器件处理后由所述后台接口发送到背板;所述的编程卡接口接收嵌入式CPU的控制信号和数据,进行编程卡片选控制、通过所述的嵌入式CPU对所述的BOOT Flash进行写保护和模式译码;所述的编程卡包括BOOT1、BOOT2和连接器;通过所述的编程卡接口将所述嵌入式CPU的地址总线、数据总线、总线控制信号、片选信号连接至所述的BOOT1与所述的BOOT2。
2.如权利要求1所述的嵌入式系统软件加载装置,其特征在于,所述的编程卡接口还包括可编程逻辑器件CPLD和与编程卡连接的连接插座;所述的可编程逻辑器件CPLD进行编程卡与主板的片选控制当编程卡在位时,所述可编程逻辑器件CPLD将主板上所述嵌入式CPU的BOOT片选信号指向所述编程卡上的BOOT1;当编程卡不在位时,所述的BOOT片选信号被指向主板上所述的BOOT Flash;所述可编程逻辑器件CPLD还对主板BOOT Flash的BOOT区进行写保护当编程卡不在位时,将屏蔽对主板BOOT Flash中BOOT区的写操作。
3.如权利要求1所述的嵌入式系统软件加载装置,其特征在于,所述的BOOTFlash内部空间分为BOOT区、隔离区和Program Memory区三个部分;所述的BOOT区和所述的隔离区大小都由所述的编程卡接口CPLD中的写保护功能确定,余下空间为所述的Program Memory区。
4.如权利要求1所述的嵌入式系统软件加载装置,其特征在于,所述的编程卡还包括大容量Flash,用于存放较大的软件版本;拨码开关,用于设定三种工作模式BOOT下载模式、调试接口模式和软件版本下载模式;编程指示LED,用于指示编程过程与编程结果;调试接口,用于接收由编程卡接口从主板引出的信号。
5.如权利要求2或4所述的嵌入式系统软件加载装置,其特征在于,所述的CPLD实现片选控制逻辑和写保护控制逻辑,所述的片选控制逻辑判断当前编程卡是否在位,如果在位,则将CS0信号连接至编程卡BOOT1;如果编程卡不在位,则为正常启动流程,CS0连接至主板BOOT Flash,主板由所述的BOOT Flash中的Flash Memory启动;所述的写保护控制当编程卡不在位时,在逻辑中根据当前模式及地址读写范围,屏蔽对BOOT区的写信号。
6.如权利要求5所述的嵌入式系统软件加载装置,其特征在于,所述的CPLD还实现模式译码逻辑,根据编程卡的模式拨码开关设置实现多种工作模式的译码。
7.一种嵌入式系统软件加载方法,包括以下步骤1)判别工作模式,如果是调试接口模式,则执行步骤4),如果是软件版本下载模式,则执行步骤3),否则判断是BOOT下载模式;2)进行BOOT下载,下载完毕后执行步骤5);3)进行软件版本下载,执行步骤5);4)进行接口调试,执行步骤9);5)校验下载数据;6)判断下载是否正确,如不正确则执行步骤8);7)标记判断正确,执行步骤9);8)标记烧写错误;9)结束。
全文摘要
本发明提出一种嵌入式系统软件加载装置,包括主板和编程卡,编程卡包括BOOT1、BOOT2和连接器件,BOOT1为编程卡的控制程序,BOOT2为主板的主板BOOT程序或软件版本。卡上仅需要编程控制程序与需下载的软件版本,通过编程卡接口上的连接插座与主板相连,利用主板上的嵌入式CPU执行编程卡BOOT1上的编程控制程序,将编程卡BOOT2上的软件版本或BOOT程序加载到主板上的BOOTFlash。通过设定编程控制卡的工作模式,可以实现BOOT程序、软件版本等快速下载,还可以提供调试接口。在主板的BOOT Flash中按存储内容不同分为BOOT区与软件版本区,同时在BOOT区与软件版本区插入了一定长度的隔离区,防止BOOT区与软件版本区发生重叠。本装置通用性好,设置灵活,可适用于任何嵌入式系统的BOOT、软件版本的加载、升级,系统的可靠性较高。
文档编号G06F1/16GK1425963SQ0114266
公开日2003年6月25日 申请日期2001年12月11日 优先权日2001年12月11日
发明者石松, 马立军, 钟爽莉 申请人:深圳市中兴通讯股份有限公司上海第二研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1