使用usb设备进行系统引导的方法、设备、装置及系统的制作方法

文档序号:6356721阅读:253来源:国知局
专利名称:使用usb设备进行系统引导的方法、设备、装置及系统的制作方法
技术领域
本发明涉及系统引导技术,特别涉及一种使用USB设备进行系统引导的方法、一种USB引导设备、一种启动装置以及一种使用USB设备进行引导的系统。
背景技术
系统引导就是CPU上电后,引导操作系统运行前,CPU运行的一段小程序,通常称为Boot Loader (弓丨导装载程序,也称为BIOS或Bootrom等)。Intel X86CPU上,把CPU引导程序分为两部分BIOS加Boot Loader。在htel的术语中,BIOS是CPU上电执行的第一段代码,而Boot Loader是操作系统引导程序,是由 BIOS引导的。即在htel的术语中,Boot Loader和BIOS不是等同的概念。而在其它CPU术语中,Boot Loader和BIOS是等同的概念。本发明中,Boot Loader特指CPU上电执行的第一段代码。Boot Loader主要完成系统硬件的初始化,包括CPU最基本的初始化、初始化串口控制器、LocalBus总线下FLASH/CPLD时序配置、初始化DDR内存控制器、实现存储区的映射等,为最终启动操作系统准备好正确的软硬件环境。系统引导程序Boot Loader都是保存在电子设备内部集成的非易失存储介质中, 如NorFlasKNandFlash等,这些保存Boot Loader的存储介质又称为BootFlash,要求读访问操作简单,以便于CPU上电后,可直接读取指令,一般都是RAM或ROM芯片。图1示出了传统的系统引导示意图。如图1所示,CPU在上电启动或者复位后,输出启动芯片选择信号, 选择相应的启动设备,并从启动设备中读取Boot Loader并运行,完成系统引导。从图1中可以看出,假如非易失存储介质中存放Boot Loader程序的存储空间损坏或者Boot Loader 程序错误,将导致系统无法启动。由于CPU是电子设备的核心,而Boot Loader是CPU上电后最先执行的代码,所以Boot Loader是电子设备可靠性的基础。数据通信设备对可靠性的要求是电子设备中最高的。为提高可靠性,在数据通信设备目前的设计中,多采用逻辑备份(一片非易失存储介质划分两个逻辑空间,分别保存两份Boot Loader)或物理备份(两片非易失存储介质,分别保存两份Boot Loader)的方法进行备份。图2示出了现有Boot Loader物理备份系统的引导示意图。即使采取了备份的方式提高可靠性,但实际应用中,仍小概率存在BootLoader被破坏的风险。例如由于设备硬件器件或者软件功能的升级,BootLoader也可能需要升级,在Boot Loader升级过程中,如果断电或者异常终止升级,将导致Boot Loader程序被破坏;或者由于长期使用,保存Boot Loader程序的存储空间损坏,无法读取或者错误读取 Boot Loader程序,这样都将导致设备无法启动。由于存放Boot Loader的非易失存储介质都是集成在电子设备内部,一旦出现这种小概率情况,不可避免地需要进行维修。为解决Boot Loader损坏问题,现有存放Boot Loader的非易失存储介质一般不是焊死在电路板上,而是用插座的形式内置在电路板上。 这种方式有利于Boot Loader损坏后,返厂快速维修。但这种方式存在以下问题
(1)易用性差,存放Boot Loader非易失存储介质的插座也是内置在电子设备中, 必须拆开电子设备,才能更换Boot Loader非易失存储介质。(2)操作要求高,必须是专业维修人员采用手工方式,才能维修更换Boot Loader 的非易失存储介质。(3)无法实现在线修复,只能从插座上拔掉Boot Loader非易失存储介质,并使用专用存储介质烧片器烧写后,再安装回插座上。(4)信息安全性差,无法在用户处临时启动设备,由用户删除或保存机密重要信肩、ο可见,采用上述方法,用户无法自行维修电子设备,只能返厂维修,重新加载Boot Loader程序或者更换非易失存储设备,维修成本较高。而且,数据通信设备内部的存储介质经常保存用户重要机密信息(如用户网络接入密钥等),用户往往希望在数据通信设备返厂维修前,手动删除或保存一些机密信息,但由于Boot Loader损坏,数据通信设备无法启动,导致用户无法手动删除或保存机密信息。

发明内容
本发明提供了一种使用USB设备进行系统引导的方法、一种USB引导设备、一种启动装置以及一种使用USB设备进行引导的系统,以便在电子设备的Boot Loader程序代码或用于存储Boot Loader的非易失存储介质被损坏时,能够在用户处引导系统启动,从而简便快速地修复故障,并满足用户临时启动系统处理重要信息的需求。本发明提供了一种使用USB设备进行系统引导的方法,包括数据通信设备中的启动装置通过IIC接口访问通用串行总线USB引导设备,将USB 引导设备中的引导装载程序Boot Loader存放至数据通信设备内部的存储器中;数据通信设备中的启动装置控制数据通信设备的CPU复位,将CPU复位后所发出的启动芯片选择信号切换到所述存储器上;数据通信设备中的CPU从所述存储器读取Boot Loader并执行。 进一步地,在数据通信设备中的启动装置通过IIC接口访问USB弓丨导设备之前,可以包括触发数据通信设备从USB引导设备启动;数据通信设备中的启动装置断开数据通信设备中USB控制器与USB连接器之间的连接,并建立数据通信设备中IIC接口与USB连接器之间的连接。较佳地,触发数据通信设备从USB引导设备启动的方式可以包括在数据通信设备内置的Boot Loader启动失败时触发;或者在USB引导设备插入数据通信设备时触发;或者在检测到输入的从USB引导设备启动的指令时触发。本发明还提供了一种USB引导设备,包括IIC接口存储介质、USB连接器和供电模块,其中IIC接口存储介质为具备IIC接口的存储介质,加载有Boot Loader ;USB连接器的电源线和地线分别与供电模块的电源线和地线相连,两根数据线分别与IIC接口存储介质的IIC接口的两根数据线相连;
供电模块用于为USB引导设备供电。本发明还提供了一种启动装置,包括控制逻辑子模块、USB直通子模块、IIC访问子模块、CPU复位控制子模块和启动芯片选择子模块;当触发从USB引导设备启动时,控制逻辑子模块首先控制USB直通子模块断开USB 控制器的数据线与USB连接器的数据线之间的连接,并控制IIC访问子模块建立IIC接口与USB连接器的数据线之间的连接;然后,控制逻辑子模块通过IIC接口从USB引导设备中读取Boot Loader存放至数据通信设备内部的存储器,并控制CPU复位控制子模块复位CPU,CPU复位后输出启动芯片选择信号;随后,控制逻辑子模块控制启动芯片选择子模块将CPU输出的启动芯片选择信号切换到所述存储器,CPU从所述存储器中执行Boot Loader0较佳地,所述装置中可以进一步包括启动逻辑计数器;所述启动逻辑计数器用于在CPU启动之后进行计数,如果CPU启动BootLoader成功,CPU对所述启动逻辑计数器清O,如果所述启动逻辑计数器超时,触发从USB引导设备启动。较佳地,所述装置中可以进一步包括检测子模块;所述检测子模块用于对USB连接器的两根数据线的高低电平进行检测,在检测到 USB连接器的两根数据线均为高电平,并保持预设时长时,触发从USB引导设备启动。较佳地,所述装置中可以进一步包括按键检测子模块;所述按键检测子模块用于检测数据通信设备的触发按键是否被按下,在检测到触发按键被按下时,触发从USB引导设备启动。所述存储器可以设置于所述启动装置内部或外部。本发明还提供了一种使用USB设备进行引导的系统,包括USB引导设备和数据通信设备;所述USB引导设备中集成具有IIC接口的存储介质,所述具有IIC接口的存储介质中加载有Boot Loader,所述具有IIC接口的存储介质的IIC接口的两根数据线分别与所述USB引导设备的USB连接器的两根数据线相连;所述USB弓I导设备通过USB连接器连接到所述数据通信设备;所述数据通信设备内部设置有启动装置;当触发从USB引导设备启动时,所述启动装置首先断开USB控制器的数据线与USB 连接器的数据线之间的连接,并建立Iic接口与USB连接器的数据线之间的连接;然后,从 USB引导设备中读取Boot Loader存放至数据通信设备内部的存储器,并复位CPU,CPU复位后输出启动芯片选择信号;随后,将CPU输出的启动芯片选择信号切换到所述存储器,CPU 从所述存储器中执行Boot Loader。由上述技术方案可见,本发明在数据通信设备无法正常启动时,通过逻辑动态地切换USB接口数据线的功能,将USB接口数据线切换为IIC总线,从而克服了 USB总线协议复杂,USB设备无法应用在CPU Boot阶段的缺点,使得启动装置可以从USB设备中读取Boot Loader ;在此基础上,本发明进一步巧妙利用了数据通信设备内部的存储空间,将从USB设备中读取BootLoader存储于数据通信设备内部的存储器中,并触发CPU从数据通信设备内部的存储器中执行Boot Loader,从而实现了引导系统启动。


图1示出了传统的系统引导示意图;图2示出了现有Boot Loader物理备份系统的引导示意图;图3为本发明一具体实施例的USB Boot的组成结构示意图;图4为本发明一具体实施例的启动装置的组成结构示意图;图5为本发明一具体实施例中使用USB设备进行引导的系统组成示意图;图6为本发明一具体实施例中使用USB设备进行系统引导的方法流程示意图。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。USB (通用串行总线)是一种计算机通用外设连接规范,简单地说,是一种计算机外围串行通讯接口标准。USB具有热插拔、数据传输可靠、扩展方便、低成本等特点,已成为当前电子设备必备的外设接口。数据通信设备也都有USB接口。USB2.0协议规定,USB总线有四根信号线,其中包括两根差分数据线D+和D-,一根供电线和一根地线。USB3. 0协议仍保留USB2. 0定义的4根信号线。USB规范制定了一套复杂的USB设备识别流程,USB主机通过不同的控制命令,反复和USB设备进行交互,才能完成USB主机对USB设备的识别。在本发明描述中,数据通信设备具有USB接口。由于USB数据传输的复杂性,所以 USB数据传输必须有CPU软件参与才能实现,这就导致只有在数据通信设备的CPU Boot Loader启动后,CPU软件准备好,数据通信设备才可支持各种USB设备。目前业界应用中, USB存储介质(例如U盘或USB移动硬盘)都可作为数据通信设备操作系统存放的存储介质,即数据通信设备都支持从USB存储介质启动操作系统和应用软件。由于上述USB数据传输和USB设备识别流程的复杂性,且USB存储介质不支持CPU直接随机访问,所以USB存储介质不能作为数据通信设备Boot Loader的存储介质。CPU 一般支持从 NorFlash 启动 Boot Loader、从 NandFlash 启动 BootLoader 或从 Iic接口的EEPROM中启动Boot Loader。以上三种启动介质都集成在电子设备内部,不支持热插拔功能,不具备通用10接口,一旦发生损坏就无法更换。本发明的主要思想是利用数据通信设备都具备USB接口的特点,以及IIC总线简单传输的特点,将两者相结合,提出一种使用USB设备进行系统引导的方法、设备、装置及系统。基于上述主要思想,本发明提出一种特殊USB设备,以下称为USB Boot (USB引导设备)。USB Boot上具备用于保存Boot Loader的非易失存储介质,并加载好可用的Boot Loader可执行代码。USB Boot仅是借用USB接口数据线进行IIC访问,无需实现USB总线协议功能,数据通信设备可以通过IIC总线访问该USB Boot。当数据通信设备发生小概率内置Boot Loader损坏问题后,数据通信设备启动失败。插入USB Boot,数据通信设备的启动装置通过IIC总线从USB Boot读取Boot Loader到数据通信设备内部的存储器(RAM/ ROM)中。启动装置重新复位CPU,并把CPU复位之后所输出的启动芯片选择信号切到上述存
7储有Boot Loader的存储器,从而,CPU从上述存储器中执行Boot Loader,完成系统引导。 数据通信设备从USB Boot启动后,可尝试修复设备固有的Boot Loader非易失存储设备。 本发明中,启动装置可以是CPLD(复杂可编程逻辑器件)或FPGA (现场可编程门阵列)等。 用于存储从USB Boot读取到的Boot Loader的存储器可以设置于启动装置内部,也可以设置于启动装置外部。图3为本发明一具体实施例的USB Boot的组成结构示意图。参见图3,本发明提供的USB Boot包含三个基本模块USB连接器310、IIC接口存储介质320和供电模块330。 其中USB连接器310,是标准的USB连接器;IIC接口存储介质320,可以是具备IIC接口的EEI3ROM,也可以是带IIC接口的控制器/CPU转换的其它存储介质,只要确保可通过IIC总线访问即可;IIC接口存储介质320 中加载有Boot Loader ;供电模块330,主要利用USB供电功能,给USB Boot供电。USB连接器310的电源线和地线按照与现有技术相同的方式分别连接到供电模块 330的电源线和地线;USB连接器310的两根数据线分别连接到IIC接口存储介质320的 IIC接口的两根数据线上。由于USB连接器具有两根数据线D+和D-,而IIC总线协议恰好是在两根数据线上传输数据的协议,因此,可以通过启动装置的控制,使用USB连接器的这两个数据线,按照IIC协议对USB Boot中的IIC接口存储介质进行访问。例如可以将IIC接口的SCL线连接到USB数据线的D+上,并将IIC接口的SDA线连接到USB数据线的D-上;也可以将IIC接口的SCL线连接到USB数据线的D-上,并将IIC接口的SDA线连接到USB数据线的D+上,只要与数据通信设备内部启动装置的数据线连接设计保持一致即可。即如果启动装置设计上,IIC访问子模块出的SCL线连接到USB数据线的D+上,SDA线连接到USB数据线的D-上,那么USB Boot上的IIC接口存储介质的SCL线就必须连接到USB数据线的D+上,SDA线必须连接到USB数据线的D-上。反之亦然。上述带IIC接口的控制器/CPU转换的其它存储介质是指对于不具有IIC接口的存储介质NorFLash或NandFlash,可以通过嵌入式CPU间接实现将NorFLash或NandFlash 通过IIC接口连接到USB连接器上。在USB Boot上可如此实现嵌入式CPU具有IIC接口,可以通过IIC接口连接到USB连接器上,嵌入式CPU通过设备总线连接一片NorFLash 或 NandFlash。本发明上述具体实施例中提出的USB Boot实际为一块集成IIC接口的存储介质, 并对外出USB接口的设备。USB Boot借用了 USB数据线作为IIC总线,即利用USB D+和 D-两个数据线进行IIC总线数据传输,可使用在任何具有USB接口的电子设备上。本发明一具体实施例中提出的启动装置如图4所示。在实际应用中,该启动装置相当于数据通信设备内部的启动逻辑。本发明启动装置包括以下几部分控制逻辑子模块 410,USB直通子模块420、IIC访问子模块430、存储子模块440、CPU复位控制子模块450和启动芯片选择子模块460。这些逻辑子模块都实现在启动装置CPLD/FPGA内部,其中,存储子模块440也可以实现在启动装置CPLD/FPGA的外部。控制逻辑子模块410是本发明的核心。当从USB Boot启动时,控制逻辑子模块410首先控制USB直通子模块420断开USB控制器的数据线与USB连接器的数据线之间的直连;然后控制IIC访问子模块430接管USB连接器的数据线,通过IIC总线从USB Boot 读取Boot Loader到存储子模块440中;再控制CPU复位控制子模块450,令CPU重新复位, CPU复位后输出启动芯片选择信号,控制逻辑子模块410控制启动芯片选择子模块460将 CPU输出的启动芯片选择信号切换到存储子模块440上,让CPU从存储子模块440中启动 Boot Loader,最终实现从USB Boot启动。USB直通子模块420,在从USB Boot启动的情况下,用于接收来自于控制逻辑子模块410的控制信号,断开USB控制器(可集成在CPU内部,也可以设置在CPU外部)的数据线与USB连接器的数据线之间的直连;在数据通信设备正常启动后,用于将USB控制器的数据线与USB连接器的数据线直接互联,实现正常的USB数据传输。IIC访问子模块430,在从USB Boot启动的情况下,用于接收来自于控制逻辑子模块410的控制信号,接管USB连接器的数据线,并通过IIC总线协议从USB Boot读取Boot Loader到存储子模块440中。存储子模块440,用于临时存放IIC访问子模块430从USB Boot中读取的 BootLoader。当从USB Boot启动时,控制逻辑子模块410控制IIC访问子模块430从USB Boot读取Boot Loader到存储子模块440中,CPU从存储子模块440中启动BootLoader。 存储子模块可以在启动装置的内部,也可以在启动装置外部。CPU复位控制子模块450,用于控制CPU复位管脚,可拉低CPU复位管脚,再拉高 CPU复位管脚,令CPU重新启动。当从USB Boot启动时,控制逻辑子模块410控制CPU复位控制子模块450,令CPU重新复位,输出启动芯片选择信号。启动芯片选择子模块460,用于把CPU输出的启动芯片选择信号输出到相应的启动芯片上。在CPU正常启动时,启动芯片选择子模块460将CPU输出的启动芯片选择信号输出到数据通信设备内部集成的BootFlash上,即CPU从BootFlash上启动BootLoader ;当从USB Boot启动时,启动芯片选择子模块460根据控制逻辑子模块410的控制,将CPU输出的启动芯片选择信号切换到存储子模块440上。为了判断启动装置当前是正常启动还是从USB引导设备启动,可以在启动装置中设置相应的子模块进行判断。例如可以在启动装置中设置启动逻辑计数器,该启动逻辑计数器用于在CPU启动之后进行计数,如果CPU启动Boot Loader成功,CPU对启动逻辑计数器清0,如果启动逻辑计数器超时,触发从USB弓丨导设备启动。也可以在启动装置中设置检测子模块,该检测子模块用于对USB连接器的两根数据线的高低电平进行检测,在检测到USB连接器的两根数据线均为高电平,并保持预设时长时,触发从USB弓丨导设备启动。还可以在启动装置中设置按键检测子模块,该按键检测子模块用于检测数据通信设备的触发按键是否被按下,在检测到触发按键被按下时,触发从USB引导设备启动。本发明一具体实施例中总体的系统设计实现框图如图5所示,本系统包括USB Boot和数据通信设备内部两部分。图5中USB Boot中集成具有IIC接口的存储介质,该存储介质中加载有BootLoader,该存储介质的IIC接口的两根数据线分别与USB Boot的USB连接器的两根数据线相连;
USB Boot通过USB连接器连接到数据通信设备;数据通信设备内部设置有启动装置;图5所示数据通信设备内部的启动装置以 CPLD为例进行说明。在正常应用的情况下,标准的USB设备通过USB连接器与USB控制器直接相连, CPLD透传USB数据线上所传输的数据;当用于存放Boot Loader的存储器损坏或Boot Loader损坏时,触发从USB Boot启动。当触发从USBBoot时,启动装置首先断开USB控制器的数据线与USB连接器的数据线之间的连接,并建立IIC接口与USB连接器的数据线之间的连接;然后,按照IIC总线协议从USB Boot中读取Boot Loader存放至数据通信设备内部的存储器,并重新复位CPU,CPU复位后输出启动芯片选择信号;随后,将CPU输出的启动芯片选择信号切换到上述存储器,CPU从上述存储器中执行BootLoader,从而完成系统引导。本发明一具体实施例中提供的使用USB设备进行系统引导的方法流程如图6所示。参见图6,该方法包括以下步骤步骤O 触发数据通信设备从USB Boot启动。本步骤中,触发的方式可以有以下几种第一种方式数据通信设备内置的Boot Loader启动失败时触发启动装置包含一个启动逻辑计数器,启动装置控制CPU启动后开始使用启动逻辑计数器进行计数,如果CPU启动Boot Loader成功,CPU对启动逻辑计数器清O ;如果CPU 启动Boot Loader失败,就不会清O启动逻辑计数器,因此,当启动逻辑计数器超时时,代表 CPU启动Boot Loader失败。启动装置通过监控其内部的启动逻辑计数器是否超时,来检测 CPU启动BootLoader是否失败。这是一种较通用的方法,双BootFlash应用也是使用这种方法,本发明是进一步扩展,从双BootFlash扩展到USB Boot。第二种方式USB Boot插入触发USB规范要求在无设备接入时,D+和D-均为低电平。USB设备插入,将USB的两根数据线一个拉高,一个拉低,对应不同速率的USB设备。D+高,D-低对应USB高速/全速设备;D-高,D+低对应USB低速设备。为了实现USB Boot插入触发,可以在USB Boot内部设置可控的上拉电路,在USB Boot插入数据通信设备后,上拉电路强制将D+和D-都拉高并保持一段时间,启动装置中的检测子模块检测到USB数据线的这种变化后,就识别出USB Boot插入,这时启动装置触发从USB Boot启动。第三种方式在检测到输入的从USB引导设备启动的指令时触发数据通信设备对外设置触发按键,操作者按下触发按键,启动装置检测到触发按键被按下时,触发从USB Boot启动。举例一数据通信设备面板上通常设置都有Reset键,可采用长按Reset键触发从USB Boot启动(长按10秒以上)。即Reset键连接到启动装置的一根检测管脚上,Reset键没有被按下时,检测管脚处于一个空闲状态(例如高电平);当长按Reset键时,将导致检测管脚处于长时间有效状态(对应低电平),启动装置内部启动一个计数器对检测管脚处于有效状态的时间进行计数,如果发现检测管脚处于长时间有效状态,就认为操作者长按Reset键,触发从USB Boot启动。举例二 在数据通信设备面板上增加一个Boot选择键。Boot选择键连接到启动装置的一根检测管脚上,Boot选择键没有被按下时,检测管脚处于一个空闲状态(例如高电平);按下Boot键,导致检测管脚处于有效状态(对应低电平),启动装置发现检测管脚处于有效状态,就认为操作者按下了 Boot键,触发从USB Boot启动。步骤1 启动装置断开USB连接器与USB控制器之间的数据线直连,通过IIC接口接管USB接口,S卩建立IIC接口与USB连接器之间的连接,从而启动装置可以通过IIC接口访问 USB Boot。步骤2 启动装置按照IIC总线协议读取USB Boot中的Boot Loader代码,并把 Boot Loader代码存放到数据通信设备的内部的存储器中。这里,存储器可以是RAM或ROM, 如前所述,RAM/ROM可以设置于启动装置内部,也可以设置于启动装置内部。步骤3 启动装置将Boot Loader代码搬移到RAM/ROM后,控制CPU复位。步骤4 :CPU复位后,发出启动芯片选择信号,启动装置将该芯片选择信号切换到上述存放Boot Loader代码的RAM/ROM上。步骤5 =CPU从上述RAM/ROM中读取Boot Loader代码,完成BootLoader启动。在本发明上述技术方案的基础上,可以进行以下扩展功能扩展CPU从USB Boot启动后,可以检测数据通信设备内部集成的 Bootflash,判断是否仅是Boot Loader代码被破坏。如果仅是代码被破坏,则把存储子模土夬中的Boot Loader代码写到BootFlash中,从而实现BootLoader自修复。应用扩展CPU可不再从数据通信设备内置的BootFlash启动BootLoader,或者数据通信设备内部不再集成BootFlash,而是CPU仅从USBBoot启动。这种应用扩展适用于信息安全要求较高的应用中,只有插入专用的USB Boot设备才能启动,不插入专用的USB Boot,设备连最基本的初始化都无法进行。由上述技术方案可见,本发明在数据通信设备无法正常启动时,通过逻辑动态地切换USB接口数据线的功能,将USB接口数据线切换为IIC总线,从而克服了 USB总线协议复杂,USB设备无法应用在CPU Boot阶段的缺点,使得启动装置可以从USB设备中读取Boot Loader ;在此基础上,本发明进一步巧妙利用了数据通信设备内部的存储空间,将从USB设备中读取BootLoader存储于数据通信设备内部的存储器中,并触发CPU从数据通信设备内部的存储器中执行Boot Loader,从而实现了引导系统启动。本发明技术方案可以带来以下有益效果1)提高易用性,对于BootLoader损坏问题,无需拆开数据通信设备,只需插入本发明提出的USB Boot设备,就可以引导CPU启动。2)适用范围广,绝大部分电子设备都具有USB接口,可以使用本发明提出的技术方案。3)降低维修成本,一旦出现系统无法启动的情况,用户或者技术支援可以现场插入USB Boot进行维修,如果设备硬件不存在问题,仅是BootFlash中的Boot Loader代码被破坏,通过这种现场维修就可完全修复设备,不需要返厂维修,大大降低了维修成本和时间。
4)提高应急处理能力,可在用户处临时启动BootFlash损坏的设备,由用户删除或保存机密重要信息。5)实现自动修复,如果设备硬件不存在问题,插入USB Boot后,可自动恢复 BootFlash 中的 Boot Loader 代码。6)适用于信息安全性较高的应用场景,用户必须使用USB Boot,才允许设备启动, 可以防止设备被盗用。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种使用USB设备进行系统引导的方法,其特征在于,包括数据通信设备中的启动装置通过Iic接口访问通用串行总线USB引导设备,将USB引导设备中的引导装载程序Boot Loader存放至数据通信设备内部的存储器中;数据通信设备中的启动装置控制数据通信设备的CPU复位,将CPU复位后所发出的启动芯片选择信号切换到所述存储器上;数据通信设备中的CPU从所述存储器读取Boot Loader并执行。
2.根据权利要求1所述的方法,其特征在于,在数据通信设备中的启动装置通过IIC接口访问USB引导设备之前,进一步包括触发数据通信设备从USB引导设备启动;数据通信设备中的启动装置断开数据通信设备中USB控制器与USB连接器之间的连接,并建立数据通信设备中IIC接口与USB连接器之间的连接。
3.根据权利要求2所述的方法,其特征在于,触发数据通信设备从USB引导设备启动的方式包括在数据通信设备内置的Boot Loader启动失败时触发; 或者在USB引导设备插入数据通信设备时触发; 或者在检测到输入的从USB引导设备启动的指令时触发。
4.一种USB引导设备,其特征在于,包括IIC接口存储介质、USB连接器和供电模块, 其中IIC接口存储介质为具备IIC接口的存储介质,加载有引导装载程序BootLoader ; USB连接器的电源线和地线分别与供电模块的电源线和地线相连,两根数据线分别与 IIC接口存储介质的IIC接口的两根数据线相连; 供电模块用于为USB引导设备供电。
5.一种启动装置,其特征在于,包括控制逻辑子模块、USB直通子模块、IIC访问子模块、CPU复位控制子模块和启动芯片选择子模块;当触发从USB引导设备启动时,控制逻辑子模块首先控制USB直通子模块断开USB控制器的数据线与USB连接器的数据线之间的连接,并控制IIC访问子模块建立IIC接口与 USB连接器的数据线之间的连接;然后,控制逻辑子模块通过IIC接口从USB引导设备中读取引导装载程序Boot Loader 存放至数据通信设备内部的存储器,并控制CPU复位控制子模块复位CPU,CPU复位后输出启动芯片选择信号;随后,控制逻辑子模块控制启动芯片选择子模块将CPU输出的启动芯片选择信号切换到所述存储器,CPU从所述存储器中执行Boot Loader0
6.根据权利要求5所述的装置,其特征在于,所述装置中进一步包括启动逻辑计数器; 所述启动逻辑计数器用于在CPU启动之后进行计数,如果CPU启动BootLoader成功,CPU对所述启动逻辑计数器清O,如果所述启动逻辑计数器超时,触发从USB引导设备启动。
7.根据权利要求5所述的装置,其特征在于,所述装置中进一步包括检测子模块;所述检测子模块用于对USB连接器的两根数据线的高低电平进行检测,在检测到USB 连接器的两根数据线均为高电平,并保持预设时长时,触发从USB引导设备启动。
8.根据权利要求5所述的装置,其特征在于,所述装置中进一步包括按键检测子模块;所述按键检测子模块用于检测数据通信设备的触发按键是否被按下,在检测到触发按键被按下时,触发从USB弓丨导设备启动。
9.根据权利要求5至8任一项所述的装置,其特征在于 所述存储器设置于所述启动装置内部或外部。
10.一种使用USB设备进行引导的系统,其特征在于,包括USB引导设备和数据通信设备;所述USB引导设备中集成具有IIC接口的存储介质,所述具有IIC接口的存储介质中加载有引导装载程序Boot Loader,所述具有IIC接口的存储介质的IIC接口的两根数据线分别与所述USB引导设备的USB连接器的两根数据线相连;所述USB引导设备通过USB连接器连接到所述数据通信设备; 所述数据通信设备内部设置有启动装置;当触发从USB引导设备启动时,所述启动装置首先断开USB控制器的数据线与USB连接器的数据线之间的连接,并建立IIC接口与USB连接器的数据线之间的连接;然后,从 USB引导设备中读取Boot Loader存放至数据通信设备内部的存储器,并复位CPU,CPU复位后输出启动芯片选择信号;随后,将CPU输出的启动芯片选择信号切换到所述存储器,CPU 从所述存储器中执行BootLoader。
全文摘要
本发明利用数据通信设备都具备USB接口的特点,以及IIC总线简单传输的特点,将两者相结合,提出了一种使用USB设备进行系统引导的方法、一种USB引导设备、一种启动装置以及一种使用USB设备进行引导的系统。应用本发明能够在数据通信设备无法正常启动时,引导系统启动,从而满足用户临时启动系统处理重要信息的需求。
文档编号G06F9/445GK102169442SQ20111007206
公开日2011年8月31日 申请日期2011年3月24日 优先权日2011年3月24日
发明者张颖, 李星爽, 段琳, 赵志宇, 钱嘉林 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1