CN200310115609.5
2003.11.10
CN1574871A
2005.02.02
授权
有权
授权|||实质审查的生效|||公开
H04M11/06; H04L29/06; H04L29/10
汤姆森许可贸易公司
韦尔·本伊斯梅尔; 克里斯特尔·黑泽尔茨
法国布洛里
2002.11.13 EP 02447218.5
中科专利商标代理有限责任公司
戎志敏
本发明涉及一种电子设备,如调制解调器等,所述电子设备具有在正常操作中以完整协议栈代码进行操作的接口,并且包括如闪速存储器等包含有用于引导所述设备的代码的非易失性存储器。所述设备的特征在于,在所述设备的引导操作期间、通过所述接口更新所述设备的软件,而且所述引导代码包括针对所述接口的轻型协议栈代码,所述轻型协议栈包括完整协议栈的层的子集。
1、 一种电子设备,如调制解调器等,所述电子设备具有在正常操作中以完整协议栈代码进行操作的接口,并且包括如闪速存储器等包含有用于引导所述设备的代码的非易失性存储器,其特征在于,在所述设备的引导操作期间、通过所述接口更新所述设备的软件,而且所述引导代码包括针对所述接口的轻型协议栈代码(lightweightprotocol stack code),所述轻型协议栈包括完整协议栈的层的子集。2、 按照权利要求1所述的设备,其特征在于所述引导代码包括用于检测所述接口的控制代码和用于通过所述接口进行传输和接收的协议处理代码。3、 按照前述权利要求之一所述的设备,其特征在于所述接口为USB接口。4、 按照权利要求3所述的设备,其特征在于所述引导代码包括所述完整协议栈代码的以太网在USB上的映射部分。5、 按照权利要求3或4所述的设备,具有第二存储器,其特征在于所述第二存储器包括用于在广域网(WAN)上进行通信的完整USB协议栈代码。6、 按照前述权利要求之一所述的设备,其特征在于还包括以太网接口和用于在引导操作期间、通过所述以太网接口进行传输和接收的代码。7、 一种将文件下载到按照上述实施例之一所述的电子设备中的系统,所述系统包括所述设备和设置有针对所述接口的驱动器的计算机,其特征在于,所述计算机通过所述接口与所述设备相连,其中,所述远程计算机包含可执行程序代码,以便与所述设备进行通信,并提供要被下载的文件。8、 按照权利要求7所述的系统,其中所述接口是USB接口,其特征在于在USB接口的端点(EP)4和5上分别建立连接,以允许向USB设备发送和从USB设备发送帧。9、 一种用于将文件下载到设置有USB连接的电子设备的存储部分中的方法,所述方法包括以下步骤:—将所述文件存储在一台或多台计算机中,其中,至少一台计算机设置有USB接口;—至少通过通用串行总线(USB),将所述设备与一台或多台计算机相连;—利用与完整USB协议栈相比较的缩减USB协议栈、通过所述USB接口、从所述设备向所述一台或多台计算机至少发送一条引导请求;—从所述一台或多台计算机向所述设备至少发送一条引导回复;—从所述设备向所述一台或多台计算机中的一台计算机发送文件传送请求;—从所述一台计算机向所述设备发送所述存储文件。10、 按照权利要求9所述的方法,用于将文件下载到设置有USB和以太网连接的电子设备的存储部分中,其特征在于所述电子设备通过以太网连接与至少一台计算机相连。
通过USB连接的软件更新 技术领域 本发明涉及一种电子设备,如调制解调器等,所述电子设备具有在正常操作中以完整协议栈代码进行操作的接口,并且包括如闪速存储器等包含有用于引导所述设备的代码的非易失性存储器。 背景技术 目前,存在着几种通过其向用户分布针对电子设备等的软件更新、隐错修正的机制。第一种可能的机制是:技术人员到达需要更新的设备所处的地点,更换需要更新的存储部分。 在全操作模式下更为有效的软件更新也已经是公知的,例如,可以通过通用串行总线(USB)进行。按照一种公知的方法,在完整的操作软件上进行软件更新,其中,首先将新软件下载到SDRAM中,随后下载到闪速存储器中。但是,这样做存在以下风险:如果在下载到闪速存储器中的期间发生任何故障,该设备将变得不能工作。 此外,已经公知的是,通过以太网接口、在引导操作期间下载文件。按照这种解决方案,闪速存储器包含引导代码,通常驻留在闪速存储器的顶部,并通过闪存程序设计工具对其进行编程。在上电设备板时,启动此引导代码,并用于通过以太网接口下载文件。为此目的,引导代码包括用于通过以太网端口发送自引导协议(bootstrapprotocol)(BOOTP)请求的自展协议(BOOTP)和用于通过以太网端口下载文件的普通文件传送协议(TFTP)。这种设备可以具有USB,其中,USB协议栈代码通常在操作软件中提供,而不在引导代码中提供,因为USB代码的规模太大,而不能放入具有如4Mb的通常规模的闪速存储器中。因此,在引导操作期间、通过USB更新软件是不可能的。 发明内容 本申请的目的在于提供一种设备、一种系统和一种方法,其在引导操作期间提供了更广泛的更新选项。 本发明提供了一种电子设备,如调制解调器等,所述电子设备具有在正常操作中以完整协议栈代码进行操作的接口,并且包括如闪速存储器等包含有用于引导所述设备的代码的非易失性存储器,其中,可以在所述设备的引导操作期间、通过所述接口更新所述设备的软件,而且所述引导代码包括针对所述接口的轻型协议栈代码(lightweight protocol stack code),所述轻型协议栈包括完整协议栈的层的子集。 在所述设备的正常操作中,在用于控制此接口的全部操作和处理与此接口相关联的所有协议的操作软件中通常提供了完整的协议栈代码。例如,典型的接口为USB、USB2或防火墙。为了提供更广泛的更新选项,以如下方式组织按照本发明的设备:通过此类接口,在引导操作期间,也可以更新所述设备的软件。 完整的协议栈代码通常占用大量的内存,并不适用于闪速存储器中的引导代码。按照设备的成本价格,希望限制闪速存储器的规模。因此,本发明的另一目的在于,使非易失性存储器中的相关引导代码的规模较小。此目的通过利用只包含了用于在引导操作期间处理接口的轻型协议栈代码的引导代码来实现。 按照本发明的另一实施例,所述引导代码包括用于检测所述接口的控制代码和用于通过所述接口进行传输和接收的协议处理代码。此引导代码能够通过此接口发送数据,可以将该数据放入所述设备的存储器中,以便更新此设备的软件。 在本发明的优选实施例中,所述接口为USB接口。通常在操作软件中提供作为相对较大的协议栈的完整的USB协议栈,然而,只利用轻型协议栈使引导代码较小,即减小存储器规模。 本发明的另一目的涉及一种电子设备,如调制解调器等,所述电子设备具有在正常操作中以完整协议栈代码进行操作的USB接口,其中,通过所述USB接口,在所述设备的引导操作期间,可以对所述设备的软件进行更新。 因此,在本发明的另一方面中,所述引导代码包括关于所述完整协议栈代码的USB映射部分的以太网。此部分并不支持在广域网(WAN)上进行通信所需地AAL5/ATM/USB(ATM:异步传送模式;AAL:ATM适配层)映射。换句话说,去除了一些层。但是,此部分确保了能够向如计算机等至少通过USB端口与所述电子设备相连的适当设备成功传输BOOTP请求必需的封装。更具体地,在引导操作期间使用BOOTP、用户数据报协议(UDP)和因特网协议(IP),以便允许在以太网上的BOOTP/UDP/IP封装。此外,与完整的栈相比,此USB上的以太网协议栈是轻型协议栈,因此,得到了较小的引导代码。 因此,在本发明的另一方面中,第二存储器包括用于在广域网(WAN)上进行通信的完整USB协议栈代码。此代码支持在正常操作期间、在广域网(WAN)上进行通信所需的AAL5/ATM/USB映射。 在优选实施例中,所述调制解调器还包括以太网接口,其中,引导代码包括用于在引导操作期间、通过所述以太网接口进行发射和接收的代码。这样使所述调制解调器能够通过USB接口或者以太网接口进行软件更新。 本发明还涉及一种将文件下载到按照上述实施例之一所述的电子设备中的系统,所述系统包括所述设备和设置有针对所述接口的驱动器的计算机,其中,所述计算机通过所述接口与所述设备相连,所述远程计算机包括可执行程序代码,以便与所述设备进行通信,并提供要被下载的文件。在USB接口的情况下,USB驱动器控制计算机内部的USB硬件,并且计算机上的软件可以通过一组程序接口与此驱动器进行通信。 此可执行程序代码通常在PC上表现为更新向导程序,所述更新向导程序是通过利用一系列对话框的过程、逐步指导用户的程序。 如果所述电子设备包括USB和以太网接口,则所述更新向导程序将能够通过USB或通过以太网端口进行更新。 在通常为计算机的USB主机与USB设备之间的基本通信原语是管道和端点(EP)。端点是USB主机与USB设备内部的一些功能之间的逻辑传输路径。端点通常在于只沿一个方向发送数据,并且将其应用于如管道等更为高级的通信路径。 按照根据本发明的系统的特定实施例,在USB接口的端点(EP)4和5上分别建立连接,以允许向USB设备发送和从USB设备发送的帧。端点与特定协议的应用相关,EP4和EP5的选择与在引导操作期间所使用的轻型协议有关。 为了使此连接成为可能,所述引导代码支持用于控制的EPO、用作块模式中软件下载接口的EP4和用作块模式中确认接口的EP5。其他端点在引导操作中被禁止,并且将除EP4和EP5之外的端点上的所有通信业务丢弃。 本发明也涉及一种用于将文件下载到设置有USB连接的电子设备的存储部分中的方法,所述方法包括以下步骤: —将所述文件存储在一台或多台计算机中,其中,至少一台计算机设置有USB接口; —至少通过通用串行总线(USB),将所述设备与一台或多台计算机相连; —利用与完整USB协议栈相比较的缩减USB协议栈、通过所述USB接口、从所述设备向所述一台或多台计算机至少发送一条引导请求; —从所述一台或多台计算机向所述设备至少发送一条引导回复; —从所述设备向所述一台或多台计算机中的一台计算机发送文件传送请求; —从所述一台计算机向所述设备发送所述存储文件。 按照此方法的优选方面,所述引导请求和引导回复使用BOOTP协议。对所述文件传送请求和所述存储文件的发送最好使用普通文件传送协议(TFTP)来进行。当文件被存储在设备的存储部分中时,方便地,可以根据下载的文件类型,从所述文件进行引导。 在此方法的特定实施例中,所述电子设备也通过以太网连接与至少一台计算机相连。在这种情况下,向USB和以太网接口发送引导请求。按照第一种可能,通过首先接收到引导回复的接口建立文件传送。按照另一种可能,所述设备查看从通过USB接口相连的计算机接收到的引导回复和从通过以太网接口相连的计算机接收到的引导回复。例如,根据要传送的文件的重要性或版本,所述设备可以将优先级赋予两个计算机之一。 附图说明 通过以下参照附图对本发明优选实施例的详细描述,本发明的其他特征和优点将变得更加清楚,其中: 图1是按照本发明的调制解调器系统的主要硬件部件的方框图; 图2按照本发明的方法示出了引导调制解调器系统的过程的流程图; 图3按照本发明的实施例示出了用于本系统的协议栈的方框图; 图4按照本发明的方法描述了在引导操作期间、调制解调器设备与计算机之间的通信过程; 图5是按照本发明示出了调制解调器设备的闪速存储器中不同的软件部件的示意图; 图6是描述了利用按照本发明的方法、通过USB实现软件的更新、包括调制解调器和计算机的系统的方框图; 图7是按照本发明描述了调制解调器的方框图,所述调制解调器通过以太网接口与第一PC相连,并且通过USB接口与第二PC相连。 具体实施方式 参照图1,给出了本发明调制解调器设备1的主要硬件部件的示意图。此硬件体系结构形成了电话线与一台或多台计算机之间的链路。电话线接口3通常为利用RJ-11连接器的DSL终端接口。 ADSL调制解调器设备1还包括第一模块2,第一模块2包含模拟前端和专用集成电路(ASIC),用于端接模拟线路接口,并将来自主控制器4的数字数据转换为模拟带通信号,ASIC将被称为ADSL ASIC。模拟前端模块由以下部分构成:高通滤波器,用于滤除简易老式电话业务(POTS)信号,以及允许ADSL信号通过;混合电路,如无源网络等,执行2线到4线转换,或反向转换,用于在上行和下行信号之间进行分离;上行线路驱动器;以及下行接收机滤波器。ADSL ASIC提供模数(A/D)和数模(D/A)转换。 主控制器4实质上包括数字ADSL调制解调器ASIC、以太网-ATM适配器和微处理器。 数字ADSL调制解调器ASIC包含信号调制器/解调器,利用DMT(数字多音频)调制方法,对来自以太网或USB接口的信号进行调制,并将其传送给ADSL ASIC,并进行相反的操作。 控制器具有联合存储池,由同步动态随机存取存储器5(SDRAM)和闪速电可编程序只读存储器(EPROM)6构成,闪速EPROM6是可以在模块中进行擦除和再次编程的非易失性存储器。闪速EPROM的大小通常为2Mb,可扩展到8Mb。通常具有8Mb大小的SDRAM通过具有如32位等宽度的总线与控制器进行通信。闪速EPROM通常允许16位存取。 以太网接口7通过专用接口与控制器相连。以太网接口7通常是具有RJ-45连接器的10/100BaseT接口。 包括专用USB集成电路的USB接口11通过并行接口与主控制器4相连,例如,并行接口由16位宽的数据总线和1位宽的地址总线构成。 此设备还设置有与内部电源8相连的标准电源插头9。电源在其输出提供了多个电压,例如,12V、3.3V和1.8V。这些电源为硬件部件提供了所需的电能。 此外,此设备通常包括多个视觉指示器——未示出——如LED(发光二极管)等,以给出对此设备不同的硬件部件的行为的指示。 在调制解调器的正常操作期间,此设备如下进行操作。利用封装在AAL5中的特定的虚通道和虚通路组合,从电话线接收ADSL信号,并转换为标准的ATM信元。这些组合确定输入的通信业务是否由操作和维护通信业务构成,或者是由不变地发送给USB或以太网的桥接以太网帧构成,或者是由要转发给USB或以太网的路由IP分组构成,在其由操作和维护通信业务构成的情况下由单板处理器进行路由和处理。 图2示出了引导调制解调器系统的过程的流程图。当板上电时,控制器开始执行来自内部ROM的代码,于是,跳转到闪速存储器中的引导代码的起始地址,这是板支持包(BSP)的入口点。现在,开始执行BSP。 将BSP中仍未执行的部分与引导代码一起复制到SDRAM中,后面是全局变量和初始数据。将程序计数器设置到SDRAM中的代码,并由控制器开始执行。在BSP完成其初始化时,程序跳转到引导代码的入口点。 现在,发送BOOTP请求消息,并开始运行BOOTP响应定时器。将参照图3和图4,对此消息的内容和所使用的协议栈进行详细的描述。之后,此设备等待回复。 在超时或无效回复的情况下,如箭头16所示,发送新的请求。例如,此再次发送的次数可以依赖于指定了在超时或无效回复的情况下重试次数的请求参数。在接收到有效回复消息的情况下,设置IP地址,并检查此回复消息的内容,如检查框17所示。 当回复消息包含文件名时,此过程中接下来的步骤是利用普通文件传送协议(TFTP)的文件下载,如方框18所示。这意味着,从主机向SDRAM传输数据分组,如以下详细描述的那样。 每次下载,均对传送文件的文件头进行检查。例如,文件具有以下格式:40 1 2 3文件格式标识符目的地起始地址数据字段的循环冗余校验和板类型标签区域大小标签代码数值……(n个字节)…………文件数据(实际数据) …… 表1 表1中的每一行表示4个字节。文件头的前四个字节表示文件格式标识符,例如,包含BLI1,表示引导装入程序图像版本一。 在包含有SDRAM或闪速存储器中的目的地起始地址的接下来的四个字节中可以找到文件的目的地。 标签代码是可选的,并且可以包含所有类型的信息,例如,指定用于从文件进行引导的地址,文件数据总的大小等。 仍然参照图2,根据目的地,或者将数据留在SDRAM中,或者如参考数字22所示,将其闪存在闪速存储器中。在闪存在闪速存储器中的情况下,擦除包括了闪存认证图样的目的地区域,并写入数据;然后,例如,通过重新计算和比较出现在所发送文件的文件头(参见表1)中的循环冗余校验(CRC),对写入的数据进行检查。如果调制解调器所产生的校验数据于所发送的校验数据相同,则写入闪存认证图样。如果不相同,如线24所示,执行重新引导。 由询问框25所确定的过程中接下来的步骤依赖于BOOTP回复消息中的标记。选项为:在特定的文件入口点进行引导,由方框26表示,或者,如果在询问27出现了板支持包(BSP),根据此包执行二次引导,或者如果未出现板支持包,则从开始重新引导。 应当清楚的是,上面的描述只提供了处理中主要的步骤,而且大多数的操作使用了具有循环的超时方法,根据特定类型的调制解调器,可以重复多次。同样,可以执行一些额外的测试。 图3示出了引导代码所使用的协议栈:Init、普通文件传送协议(TFTP)、引导协议(BOOTP)、用户数据协议(UDP)、因特网控制消息协议(ICMP)、IP(因特网协议)、地址解析协议(ARP)、以太网、ETH USB(用于将以太网直接映射到USB的协议)。下面将解释各个协议的任务。 现在,参照图4,是描述了在引导操作期间下载文件并且未发生任何误码时、在调制解调器设备M与计算机PC之间的通信的示意图。首先,从调制解调器设备向PC发送BOOTP请求,如箭头28所示。此消息包含如MAC(媒体访问控制)地址、制造商指定信息等信息,并且在以太网和USB接口上进行发送。 参照图3,现在将解释如何对此BOOTP请求进行格式化。在初始化INIT模块30时,首先构成BOOTP请求的第一字段,并将其传递给BOOTP模块31,BOOTP模块31将构成完整的BOOTP请求,包括如MAC地址等信息。然后,UDP33、IP39和依赖于接口的以太网36或USB-以太网35模块在BOOTP帧向下通过协议栈时,将它们的报头添加在BOOTP帧上。在其到达物理层时,根据有效接口,通过USB和/或以太网网络进行广播。 MAC层34控制对以太网或USB接口的访问,地址解析协议(ARP)38用于将IP地址转换为用于传输帧的物理地址。因特网控制消息协议(ICMP)允许通过发送ICMP消息,考虑如阻塞问题等功能异常。当接收到这种消息时,由IP解决此问题。 在发送BOOTP请求时,调制解调器设备M将开始等待BOOTP回复。有效BOOTP回复必须包含所需信息,例如,分配给调制解调器的IP地址、包含在按照本实施例的PC中的TFTP服务器的信息、具有要下载的全路径的文件名等。当首先从USB接口接收到BOOTP回复时,通过USB接口进行进一步的通信,其中,对于以太网接口也是如此。在此实施例中,首先回复的PC获得优先级。如背景介绍中所解释的那样,其他实现方式是可能的,例如,将优先级赋予存储了最新更新文件的PC。 箭头29和40描述了,在调制解调器设备已经接收到有效BOOTP回复时,调制解调器设备初始化TFTP传送,向处于BOOTP回复中所指定的IP地址的TFTP服务器发送TFTP请求。此请求也可以包含对于8192字节的TFTP块大小的选择协商。 现在,调制解调器等待第一数据分组到达。当数据分组到达时,对文件头进行分析,确定起始地址,该起始地址表示是必须闪存该文件,还是立即放置于SDRAM中的正确地址处,在必须闪存该文件的情况下,必须首先在SDRAM中进行缓存。 在已经将第一分组的数据成功地放置在SDRAM中之后,向计算机发送确认分组(ACK),如箭头42所示。重复这些步骤,直到接收到最后一个分组为止。 图5示意性地示出了驻留在通常具有2Mb大小的闪速存储器中的不同的软件部件。引导代码50通常填充闪速存储器的上128kb,并包括USB代码的以太网协议处理部分(ETH USB)。此区域还使用板支持包(BSP),以访问如LED和定时器等几个硬件部件。 闪速存储器还包括52中的操作软件、针对正常操作目的的文件系统和文件系统所使用的空间。 现在,参照图6,是描述了在调制解调器设备M的软件更新期间所使用的、在通过USB63或以太网62接口与所述调制解调器相连的PC上运行向导61的协议的方框图。当USB接口63有效时,并且在启动向导61时,建立到USB驱动器的连接。 当调制解调器M通过USB接口与向导相连时,向导将监听调制解调器M发送的BOOTP请求。从调制解调器的USB接口通过EP5到达的BOOTP请求将被封装在UDP/IP/ETH/USB帧中。USB驱动器64对此帧进行解封装,解为UDP/IP/ETH帧,因此,将对这些帧进行进一步的解封装,并传送给向导61。 然后,向导61向USB驱动器64发送BOOTP回复,此BOOTP回复将被封装在UDP/IP/ETH中。然后,USB驱动器将所接收到的分组通过EP4转发给USB设备。 以相同的方式,调制解调器M然后发送将被向导61接收到的TFTP请求,依次将通过利用TFTP发送所请求的文件,进行回复。 当调制解调器M通过以太网接口与向导相连时,发生模拟过程。 参照图7,调制解调器M通过以太网接口与第一PC1相连,并通过USB接口68与第二PC2相连。在这种情况下,向导61将只向针对TFTP传送进行了初始化的接口上载软件,而不是向以太网和USB接口都传送。 这里描述和示出的描述性实施例具体地涉及了一种基于PC的操作系统。但是,应当理解的是,本发明并不局限于基于PC的操作系统,也可以利用Unix和Macintosh系统或具有USB接口的任何其他系统,来应用本发明。 尽管这里已经描述和阐述了特定的实施例,应当清楚的是,本发明也包括修改和变化;本发明的范围根据所附权利要求而确定。
《通过USB连接的软件更新.pdf》由会员分享,可在线阅读,更多相关《通过USB连接的软件更新.pdf(20页珍藏版)》请在专利查询网上搜索。
本发明涉及一种电子设备,如调制解调器等,所述电子设备具有在正常操作中以完整协议栈代码进行操作的接口,并且包括如闪速存储器等包含有用于引导所述设备的代码的非易失性存储器。所述设备的特征在于,在所述设备的引导操作期间、通过所述接口更新所述设备的软件,而且所述引导代码包括针对所述接口的轻型协议栈代码,所述轻型协议栈包括完整协议栈的层的子集。 。
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有经营许可证编号:粤ICP备2021068784号-1