专利名称:用于更新通信系统中软件代码的方法
技术领域:
本发明一般涉及通信系统领域,尤其涉及一种用于更新通信系统中的软件代码的方法。
现代数字通信系统包括成对的收发信机在传输介质上发送消息。每个收发信机所含的操作系统典型地存储在存储器中。操作系统指示收发信机如何对开销消息进行响应。例如在有线通信系统中,在一次通信进程中,其中一个收发信机可能检测到通信信道有噪声。根据这一信息,该收发信机会向另一收发信机发送转发到新通信信道的消息。这一转发消息属于开销消息,另一收发信机必须知道如何去响应以继续该通信进程。操作系统可能指示另一收发信机调谐到预定备选信道,或指示它调谐到能为它分配开放信道的系统接入信道上,用该开放信道继续通信。
收发信机的操作系统可能不得不周期性地进行更新以改正错误或添加新特征。在典型的有线通讯系统中,这要求系统操作者向每个含有收发信机的地点派送技术人员。技术人员然后在上述各点的收发信机上安装新的操作系统。这种运作开支十分庞大而且耗时。因此,系统操作者不太愿意在用户地点收发信机中添加新特征或更改正错误。对于其它通信系统也是一样,如蜂窝系统、移动无线电、无线数据和广域网。
因此,需要一种用于更新通信系统中收发信机上的软件代码的方法,要求它价廉并能迅速完成。
图1是一有线通讯系统方框图;图2是一电缆接入单元的方框图;图3是软件代码更新的信号方框图;图4为软件代码更新的替换信号方框图;图5是使用新软件代码时电缆接入单元复位与重启的流程方框图;图6-10列出了信号方框图2和3中用到的每个消息特征表;图11是系统广播信道原理图12是在有线通讯系统中用到的频率分配原理图;以及,图13是用于有线通讯系统的时分复用方案原理图。
总的来说,本发明提供了一种用于更新通信系统中的软件代码的方法。该方法包括下载软件代码和用此软件代码重启时所用的协议。本发明结合有线通讯系统来描述,但显然并不局限于此。本发明可广泛用于任何通信系统。
图1是有线通讯系统10的方框图。操作管理中心(OMC)12控制并协调有线通讯系统10的开销功能。OMC 12连接到电缆控制单元(CCU)14,以它作为有线通讯系统10与公共交换电话网(PSTN)16的接口。CCU 14包括多个电缆端口收发信机(CPX)18。每个CPX 18能在某个从光纤-同轴电缆混合电缆设备20上获得的其中一个通信信道上进行整个通信进程。复用/解复用器(MVX/DEMVX)22将来自多个CPX18的传输合并到有线设备20上。MUX/DEMUX 22还分解并分配进入CPX18的信号。电缆设备20由光纤光缆24、同轴电缆26和光电转换器28构成。同轴电缆26输出并连接到多个电缆接入单元(CAU)30上。这些CAU 30置于用户地点32的外部。CAU 30的其中一个功能是将同轴电缆26中的射频数字信号转换为简单旧式电话业务(POTS)电话机34所用的模拟信号。
图2是电缆接入单元(CAU,用户单元)30的方框图。CAU 30有一个接到同轴电缆26上的收发信机40。收发信机40从电缆26发送信号和接收信号。收发信机40将从电缆26来的信号分离为POTS信号42和可用于其它业务的信号44。这些其它业务包括ISDN(综合业务数字网)基本速率接口(BRI)线路、以太网线路和RS232线路。收发信机40接到处理器46上,由它执行软件代码(操作代码、操作软件),来控制与某个CPX18维持通信进程的开销功能。软件代码存储在存储器48中。存储器48分为第一存储部分(活动代码存储区、代码区、存储器第一部分)与第二存储部分(指定代码存储区)。非易失存储器50接到处理器46上并包含指向活动代码存储区的指针、代码版本(版本)和其它信息。处理器46还接到用户环路接口(SLI)52上。SLI 52将数字信号转换成POTS所用的模拟信号42。
在备选实施方式中,存储器分成多个代码存储区。这些代码存储区为下列每种业务提供活动代码存储区与备份代码存储区POTS、RS232、以太线路和BRI线路。在另一种实施方式中,这些代码存储区分成活动操作系统,它包含所有业务用到的活动驱动程序,以及在其自身的代码存储区中为每个业务所提供的备份驱动程序。
图3是软件代码更新的信号方框图。OMC 12负责保证所有的CAU 30拥有最新版本的操作软件(新操作软件)。当OMC 12判定CAU 30的软件代码需要更新时,它给CCU 14下载软件代码。在一种实施方式中,CCU 14保存软件代码用于日后下载(缓存)。在另一种实施方式中,CCU 14马上给CAU 30下载软件代码。CCU 14向相应的CAU 30或一组CAU 30发出告警(通知)。每个CAU 30对应CAU逻辑单元有一个告警ID,对应每条电话线路也有一个。当CAU 30在告警消息中接收到与该CAU逻辑单元相关的告警ID时,它就知道紧接着的通信进程是关于CAU 30内部操作的,而非电话呼叫。CAU30和CCU 14然后执行系统接入处理102。CAU 30然后发送告警确认(确认)104。该响应告知CCU 14 CAU 30接收到了告警消息100并作好了处理的准备。CCU 14发送写请求(电缆文件传输协议{CFTP}写请求)106作为响应。它通知CAU 30,CCU 14将要传送一个文件。CAU30用CFTP确认108来响应。CCU 14然后就开始发送数据块或数据包(CFTP数据)110。当每个数据包被无错接收时,CAU 30发送CFTP确认112。重复如上过程直到给某个CAU或多个CAU 30的所有软件代码传送完毕。然后CCU 14会发送一个释放消息114或复位消息116。如果CCU 14发送的是释放消息,在以后它还必须向CAU 30发送复位消息116,如图4所示。CCU 14然后向OMC 12报告说软件代码已经被下载了。
图4所示的是CAU 30用新软件代码进行延迟复位与重启。OMC 12指示120该CCU 14以使CAU 30用新软件代码复位并重启。CCU 14首先发送包含对应此CAU逻辑单元的告警ID的告警100。CCU 14和CAU 30然后进行系统接入处理102。CAU 30以告警确认104作为响应。CCU 14向CAU 30发送复位消息116。在一种可选实施方式中,CAU 30用复位确认来响应。CCU 14向OMC 12报告CAU 30接收到了复位消息。CCU 14和CAU 30然后执行层2链路释放122。该CAU 30接着重启并重新初始化业务124。当CAU30重新初始化业务时,它通知CCU 14它所正在使用的软件代码的版本。
在此所描述的软件代码更新方法是为了避免几个潜在的缺陷而设计。CAU 30经常有两个不同版本的软件操作代码。其中一个版本存储在高端存储器(第一存储部分)中,另外一个版本存储在低端存储器(第二存储部分)中。当CCU 14发送写请求106时,它包括有关软件代码存储到第一存储部分还是第二存储部分的信息(指定存储器存储区)。在非易失存储器50中的指针指明第一还是第二存储部分是活动操作软件代码(活动操作软件)。CAU 30始终不会写覆盖活动软件代码。CCU 14所作的任何用新软件代码(新代码版本)去写覆盖106活动软件代码的企图都会产生一个错误消息。这样可避免覆盖活动软件代码(活动软件版本)。
图5是软件代码更新方法的流程方框图。此方法可避免CAU 30在试图用遭到破坏的软件代码来重启时陷入死循环。处理从步骤150开始,接着是CAU 30在步骤152接收复位命令。然后在步骤154,CAU 30用新版本来更新其非易失存储器以及新软件代码的代码存储区。在步骤156,CAU用新软件代码重启。当在步骤158重启失败时,CAU使用其它包含旧软件代码(第二软件代码)的代码存储区(第二代码存储区),并在步骤160用第二个版本来更新其非易失存储器。CAU在步骤162从旧软件代码重启。由于CAU曾经在此旧软件代码下运行,CAU重启不会有什么问题。在步骤166,CAU重新初始化业务并发送它所在运行的软件版本。当在步骤158的重启成功时,处理将跳到步骤166。在步骤168,CCU比较CAU正在使用的软件代码的活动版本与它发送给CAU的新软件代码的版本。当步骤168的比较结果显示两个版本是不同的时候,在步骤170向OMC发送一个错误消息(错误条件)。然后在步骤172结束处理。当在步骤168的比较显示两个软件代码版本是一样的时候,在步骤172结束处理。
图5所描述的处理确保了如果下载给CAU 30的新软件代码存在问题的时候,它不会导致CAU 30无法工作。CAU 30始终有一个测试版的操作软件代码。如果新软件发生了错误,CAU 30使用测试版软件代码(第二软件代码)。
图6是在CFTP写请求消息106中所提供的信息列表。消息类型200指明此消息是一写请求,它占用一个字节。传输模式202告诉CAU文件类型是二进制的、加密的、压缩的还是其它格式的。版本204包括多个信息,有标识符、该版本软件代码长度以及用于在CAU 30中保存软件代码的指定代码存储区。
图7是在CFTP数据块消息110中所提供的信息列表。消息类型200指明该消息是数据块,它占用一个字节。块号码206指明哪个数据块正在被传送。数据块208是正在被传输的原始数据,每个数据块消息中可多达252个字节。
图8是在CFTP确认消息108中所提供的信息列表。消息类型200指明该消息是一个确认,它占用一个字节。块号码206指明哪个数据块是被最后接收的。
图9是在CFTP错误消息中所提供的信息列表。消息类型200指明该消息是一个错误消息,它占用一个字节。原因210解释为何会产生错误。
图10是在复位消息116中所提供的信息列表。消息类型200指明该消息是复位消息,它占用一个字节。版本(软件版本代码、新软件版本代码)204告知CAU当重启时应使用哪个版本的软件代码。
本发明设计成当在同一CAU中同时存在电话连接时能下载软件代码。这借助于两件事来实现。首先是针对CAU逻辑单元的告警ID与针对电话线路的告警ID是不同的。告警ID是在系统广播信道上传送的。系统广播信道220结构如图11所示。系统广播信道220在其消息净负荷222中包括有一个告警信道224和一个系统信息信道(SIC)226。告警信道224传送告警ID(多个告警标识符)。CCU能向与该CAU关联的CAU逻辑单元或电话线路发出告警。当向该相关CAU逻辑单元或电话线路发出告警时,该CAU执行系统接入并在指示下调谐到一业务信道上。
该业务信道的载波频率与系统广播信道的是不同的。图12显示的是有线通讯系统所采用的频率分配。上行业务(从CAU到CCU)限制在5-42MHz之间。下行业务(从CCU到CAU)限制在50-750MHz之间。一个6MHz的频谱区240被分成十个600KHz宽的载波242。每个600KHz宽的载波242分成8个时隙250,如图13所示。每个时隙250是一个业务信道250。一个业务信道250包括一个同步信道252、一个控制信道254一个慢信道256、一个快信道258和一个错误信道260。
如果当CCU试图下载软件代码时CAU正处于一个电话连接(电话通信),它通过慢信道256向此CAU逻辑单元发送告警ID。软件代码在某个空闲时隙250用与用于电话连接的业务信道相同载波频率下载。如果有呼入要占用相应电话线路时CAU正在下载,该CAU通过CCU正在下载软件的业务信道的慢信道256收到告警。如果正在下载软件代码的同时CAU试图接收呼叫,该CAU会请求通过系统接入信道接入到业务信道上。在所有情形下,该CAU将不得不使用相同载波频率的业务信道用于下载和电话连接。
至此已经描述了一种在通信系统中更新软件代码的方法,它的开支不大而且实现迅速快捷。本方法减少了技术人员去逐个更新用户单元的需要。另外,本方法并不干扰正在进行的通信进程,在新软件代码出错时还提供了一种失败安全机制。尽管在此是结合具体的实施方式来描述本发明的,可以保证,对本技术熟练人员来说,在上面的描述的启发下显然会有许多备选、修正和变型的方式。相应地,在所附的权利要求书中会试图包容所有这些可选、修正和变型的方式。
权利要求
1.一种用于在有线通讯系统中更新软件代码的方法,包括如下步骤(a)接收一个通知;(b)接收软件代码;以及,(c)用该软件代码复位和重启。
2.权利要求1所述的方法,其中步骤(c)还包括步骤(c1)接收复位命令。
3.权利要求1所述的方法,其中步骤(a)还包括步骤(a1)发送一个确认;以及,(a2)接收一个写请求。
4.权利要求3所述的方法,其中步骤(a2)还包括步骤(i)确定一指定代码存储区来存放软件代码;(ii)核查指定代码存储区是否与活动代码存储区相同;以及,(iii)当该指定代码存储区与此活动代码存储区相同时,拒绝此软件代码。
5.权利要求4所述的方法,还包括步骤(iv)当该指定代码存储区与此活动代码存储区不同时,在该指定代码存储区中保存此软件代码。
6.一种在有线通讯系统中更新软件代码的方法,包括如下步骤(a)从一个操作管理中心接收软件代码;(b)向电缆接入单元发送一个告警;(c)发送该软件代码;以及(d)发送一个复位命令。
7.一种在有线通讯系统中更新软件代码的方法,包括如下步骤(a)用一个版本和一个代码存储区更新存储器;以及(b)用该软件代码重启电缆接入单元。
8.权利要求7所述的方法,还包括如下步骤(c)当重启步骤失败时切换到第二种软件代码;(d)用第二版本和第二代码存储区更新存储器;以及,(f)用第二种软件代码重启该电缆接入单元。
9.一种在通信系统的用户单元更新软件代码的方法,包括如下步骤(a)提供包含第一存储部分与第二存储部分的用户单元;(b)在第一存储部分中提供一个活动代码版本;(c)加载新代码版本到第二存储部分;(d)用该新代码版本重启此用户单元;以及,(e)作为对重启失败步骤的响应,用此活动代码版本重启此用户单元。
10.权利要求9所述的方法,还包括步骤(f)作为对使用新代码版本重启成功的响应,指定该新代码版本为活动代码版本。
全文摘要
一种在有线通讯系统(10)中更新软件代码的方法,包括用一电缆接入单元(30)接收一个通知(100)的步骤。接着,该电缆接入单元(30)接收(110)此软件代码。软件代码接收(110)后,CAU(30)用此软件代码复位(114)并重启。
文档编号G06F9/00GK1180428SQ97190137
公开日1998年4月29日 申请日期1997年1月31日 优先权日1997年1月31日
发明者理查德·J·科里根, 迈克尔R·麦恩内特, 詹航, 内维恩·格罗弗 申请人:摩托罗拉公司