CN102169442A - 使用usb设备进行***引导的方法、设备、装置及*** - Google Patents

使用usb设备进行***引导的方法、设备、装置及*** Download PDF

Info

Publication number
CN102169442A
CN102169442A CN2011100720668A CN201110072066A CN102169442A CN 102169442 A CN102169442 A CN 102169442A CN 2011100720668 A CN2011100720668 A CN 2011100720668A CN 201110072066 A CN201110072066 A CN 201110072066A CN 102169442 A CN102169442 A CN 102169442A
Authority
CN
China
Prior art keywords
usb
cpu
guiding device
communications equipment
data communications
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011100720668A
Other languages
English (en)
Other versions
CN102169442B (zh
Inventor
赵志宇
钱嘉林
李星爽
段琳
张颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Information Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201110072066.8A priority Critical patent/CN102169442B/zh
Publication of CN102169442A publication Critical patent/CN102169442A/zh
Application granted granted Critical
Publication of CN102169442B publication Critical patent/CN102169442B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

本发明利用数据通信设备都具备USB接口的特点,以及IIC总线简单传输的特点,将两者相结合,提出了一种使用USB设备进行***引导的方法、一种USB引导设备、一种启动装置以及一种使用USB设备进行引导的***。应用本发明能够在数据通信设备无法正常启动时,引导***启动,从而满足用户临时启动***处理重要信息的需求。

Description

使用USB设备进行***引导的方法、设备、装置及***
技术领域
本发明涉及***引导技术,特别涉及一种使用USB设备进行***引导的方法、一种USB引导设备、一种启动装置以及一种使用USB设备进行引导的***。
背景技术
***引导就是CPU上电后,引导操作***运行前,CPU运行的一段小程序,通常称为Boot Loader(引导装载程序,也称为BIOS或Bootrom等)。
Intel X86CPU上,把CPU引导程序分为两部分BIOS加Boot Loader。在Intel的术语中,BIOS是CPU上电执行的第一段代码,而Boot Loader是操作***引导程序,是由BIOS引导的。即:在Intel的术语中,Boot Loader和BIOS不是等同的概念。
而在其它CPU术语中,Boot Loader和BIOS是等同的概念。
本发明中,Boot Loader特指CPU上电执行的第一段代码。
Boot Loader主要完成***硬件的初始化,包括CPU最基本的初始化、初始化串口控制器、LocalBus总线下FLASH/CPLD时序配置、初始化DDR内存控制器、实现存储区的映射等,为最终启动操作***准备好正确的软硬件环境。
***引导程序Boot Loader都是保存在电子设备内部集成的非易失存储介质中,如NorFlash、NandFlash等,这些保存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 Loader。
较佳地,所述装置中可以进一步包括启动逻辑计数器;
所述启动逻辑计数器用于在CPU启动之后进行计数,如果CPU启动BootLoader成功,CPU对所述启动逻辑计数器清0,如果所述启动逻辑计数器超时,触发从USB引导设备启动。
较佳地,所述装置中可以进一步包括检测子模块;
所述检测子模块用于对USB连接器的两根数据线的高低电平进行检测,在检测到USB连接器的两根数据线均为高电平,并保持预设时长时,触发从USB引导设备启动。
较佳地,所述装置中可以进一步包括按键检测子模块;
所述按键检测子模块用于检测数据通信设备的触发按键是否被按下,在检测到触发按键被按下时,触发从USB引导设备启动。
所述存储器可以设置于所述启动装置内部或外部。
本发明还提供了一种使用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从所述存储器中执行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。以上三种启动介质都集成在电子设备内部,不支持热插拔功能,不具备通用IO接口,一旦发生损坏就无法更换。
本发明的主要思想是:利用数据通信设备都具备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复位之后所输出的启动芯片选择信号切到上述存储有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接口的EEPROM,也可以是带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,该方法包括以下步骤:
步骤0:触发数据通信设备从USB Boot启动。
本步骤中,触发的方式可以有以下几种:
第一种方式:数据通信设备内置的Boot Loader启动失败时触发
启动装置包含一个启动逻辑计数器,启动装置控制CPU启动后开始使用启动逻辑计数器进行计数,如果CPU启动Boot Loader成功,CPU对启动逻辑计数器清0;如果CPU启动Boot Loader失败,就不会清0启动逻辑计数器,因此,当启动逻辑计数器超时时,代表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接口,即:建立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,才允许设备启动,可以防止设备被盗用。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

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 Loader。
6.根据权利要求5所述的装置,其特征在于,所述装置中进一步包括启动逻辑计数器;
所述启动逻辑计数器用于在CPU启动之后进行计数,如果CPU启动BootLoader成功,CPU对所述启动逻辑计数器清0,如果所述启动逻辑计数器超时,触发从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。
CN201110072066.8A 2011-03-24 2011-03-24 使用usb设备进行***引导的方法、设备、装置及*** Active CN102169442B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110072066.8A CN102169442B (zh) 2011-03-24 2011-03-24 使用usb设备进行***引导的方法、设备、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110072066.8A CN102169442B (zh) 2011-03-24 2011-03-24 使用usb设备进行***引导的方法、设备、装置及***

Publications (2)

Publication Number Publication Date
CN102169442A true CN102169442A (zh) 2011-08-31
CN102169442B CN102169442B (zh) 2014-09-10

Family

ID=44490608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110072066.8A Active CN102169442B (zh) 2011-03-24 2011-03-24 使用usb设备进行***引导的方法、设备、装置及***

Country Status (1)

Country Link
CN (1) CN102169442B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473204A (zh) * 2013-09-13 2013-12-25 北京星网锐捷网络技术有限公司 通用串行总线设备供电处理方法、设备及***
CN105068965A (zh) * 2015-08-13 2015-11-18 上海斐讯数据通信技术有限公司 基于I2C总线的NAND Flash存储方法及***
CN105550005A (zh) * 2016-01-27 2016-05-04 南京异或科技有限公司 一种通过usb口进行调试升级的方法
CN105677416A (zh) * 2016-01-07 2016-06-15 上海斐讯数据通信技术有限公司 一种Uboot的升级控制***及方法
WO2021103745A1 (zh) * 2019-11-25 2021-06-03 晶晨半导体(深圳)有限公司 一种引导程序的保护设计方法
CN113254281A (zh) * 2021-04-29 2021-08-13 中国长城科技集团股份有限公司 一种usb控制器的检测方法及检测装置
CN117076365A (zh) * 2023-10-13 2023-11-17 成都申威科技有限责任公司 一种计算机的数据可传输外设接口控制方法及***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2463878Y (zh) * 2001-01-12 2001-12-05 北京先锋博创科技发展有限公司 通用串行总线接口的大容量移动存储器
CN1447227A (zh) * 2002-03-08 2003-10-08 三星电子株式会社 利用与非闪速存储器的引导***及其方法
CN101131650A (zh) * 2006-08-23 2008-02-27 王悦 基于USB Host的引导、升级和维护的仪器及其方法
CN101236499A (zh) * 2007-07-31 2008-08-06 北京理工大学 一种借助USB设备启动在Windows操作***中嵌入内核驱动程序的方法
US20080307157A1 (en) * 2007-06-06 2008-12-11 Yi-Feng Jang Method and system for updating firmware of microcontroller
US20100011199A1 (en) * 2008-07-09 2010-01-14 Au Group Electronics Method and device of bootloader-to-go

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2463878Y (zh) * 2001-01-12 2001-12-05 北京先锋博创科技发展有限公司 通用串行总线接口的大容量移动存储器
CN1447227A (zh) * 2002-03-08 2003-10-08 三星电子株式会社 利用与非闪速存储器的引导***及其方法
CN101131650A (zh) * 2006-08-23 2008-02-27 王悦 基于USB Host的引导、升级和维护的仪器及其方法
US20080307157A1 (en) * 2007-06-06 2008-12-11 Yi-Feng Jang Method and system for updating firmware of microcontroller
CN101236499A (zh) * 2007-07-31 2008-08-06 北京理工大学 一种借助USB设备启动在Windows操作***中嵌入内核驱动程序的方法
US20100011199A1 (en) * 2008-07-09 2010-01-14 Au Group Electronics Method and device of bootloader-to-go

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《现代电子技术》 20050315 梁磊 "基于I2C总线技术的USB接口设计" 第104-106页,第109页 1-4 , 第197期 *
梁磊: ""基于I2C总线技术的USB接口设计"", 《现代电子技术》, no. 197, 15 March 2005 (2005-03-15) *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473204A (zh) * 2013-09-13 2013-12-25 北京星网锐捷网络技术有限公司 通用串行总线设备供电处理方法、设备及***
CN105068965A (zh) * 2015-08-13 2015-11-18 上海斐讯数据通信技术有限公司 基于I2C总线的NAND Flash存储方法及***
CN105677416A (zh) * 2016-01-07 2016-06-15 上海斐讯数据通信技术有限公司 一种Uboot的升级控制***及方法
CN105550005A (zh) * 2016-01-27 2016-05-04 南京异或科技有限公司 一种通过usb口进行调试升级的方法
CN105550005B (zh) * 2016-01-27 2022-05-03 南京沁恒微电子股份有限公司 一种通过usb口进行调试升级的方法
WO2021103745A1 (zh) * 2019-11-25 2021-06-03 晶晨半导体(深圳)有限公司 一种引导程序的保护设计方法
CN113254281A (zh) * 2021-04-29 2021-08-13 中国长城科技集团股份有限公司 一种usb控制器的检测方法及检测装置
CN117076365A (zh) * 2023-10-13 2023-11-17 成都申威科技有限责任公司 一种计算机的数据可传输外设接口控制方法及***
CN117076365B (zh) * 2023-10-13 2024-01-30 成都申威科技有限责任公司 一种计算机的数据可传输外设接口控制方法及***

Also Published As

Publication number Publication date
CN102169442B (zh) 2014-09-10

Similar Documents

Publication Publication Date Title
CN102169442A (zh) 使用usb设备进行***引导的方法、设备、装置及***
US20180074828A1 (en) Setting a startup parameter and controlling startup of a mainboard
CN102200916A (zh) 电子设备、可配置的部件及该部件的配置信息存储方法
CN104679542A (zh) 服务器启动方法与计算机***
CN102945173A (zh) 用户程序在线升级***和升级方法
CN112000351B (zh) Bmc固件的更新方法、更新装置、更新设备及存储介质
CN102722394A (zh) 一种嵌入式设备的启动升级方法
CN105468390A (zh) Boot在线升级装置及方法
CN109582332A (zh) 互联网摄像机的***升级方法及装置
CN104010077A (zh) 一种信息处理方法及电子设备
CN101916216B (zh) 一种嵌入式操作***中bootrom的自动修复装置和控制方法
CN111756858A (zh) 嵌入式设备的远程开发处理***、方法及装置
CN104158709A (zh) 一种光模块识别的方法及端口扩展设备
CN103890713B (zh) 用于管理处理***内的寄存器信息的装置及方法
CN104166521A (zh) 计算机
CN101303674A (zh) 包含自身设备驱动程序的usb设备
CN105404467B (zh) 便携式电子装置及其中用户数据的存取方法
CN103345456B (zh) 调节BootLoader启动地址的电路及方法
CN102023906B (zh) 便携式终端的微处理器、便携式终端及其修复方法
CN107093408B (zh) 智能设备开机时背光点亮的控制方法及装置
CN108287670B (zh) 一种***关机时保护数据的方法及bmc
CN102184721B (zh) 带两级fpga芯片的子板及大屏控制***
CN102193609B (zh) 电源锁定的设定方法及其电子装置
CN101950160B (zh) 一种电器抗干扰的方法、控制***及相应电器
CN104035784A (zh) 一种设备启动***及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: NEW H3C TECHNOLOGIES Co.,Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230629

Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: H3C INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466

Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd.