数据通信系统及其使用方法 本发明涉及一种数据通信系统和其使用方法,且尤其涉及一种串行-类数据通信系统及其使用方法,在该系统和方法中使用了具有固定长度的数据块而该数据块被分割为多个与将被发射的每一部分数据长度相对应的子-数据块。
一种用于数据传输的常规数据通信系统或用于控制数据传输装置的系统。该通信系统用于例如个人计算机或便携式信息终端间的有线(或无线)通信系统。这样的数据通信系统已被设计成不同的种类系统,正如在由Takashi Iida编辑,由AsachiNewspaper Co.,Ltd.在1994年十月5日所出版的“新协议手册”PP200-206页中所描述的。
Xmodem方法为在常规数据通信系统中使用的一种基本方法,其中在发射方被发射的数据被分割为具有固定长度的数据组,且这些全部数据组被分别发射到接收方。
图10说明了用于Xmodem方法中的数据块的结构。表示“报头开始(SOH)”的引导码被放置在数据块地前端。然后,用二进制的数据组编号(BLK)表示该数据块的逻辑顺序(例如数据组应在接收方重组的顺序)且其补码(用在BLK上加一横线表示)被置于BLK部分之后。在数据组补码之后提供其中具有数据的数据(DATA)部分。在数据块的未端部分设置校验和码(SUM),其用于指示数据组是否存在错误。
图11简略地表示出在Xmodem系统中的数据传送方(及其操作)和数据接收方(及其操作)。
首先,数据接收方(图11中的右侧)发射表示接收方准备接收一数据的数据组(或另一个数据组)的具有1字节长度(步骤S101)的异常接收码(NAK)(同样也指“否定应答”)。
然后,数据发射方(例如图11中的左侧)发射一第一数据组(步骤S102)。数据的第一数据组的格式与图10(或下面讨论的图12)中所示的格式相同。数据接收方接收此数据,并使用校验和码来检查其错误。使用和码来进行错误检查对该领域的一般技术人员而言是众所周知的,因此,为了简化起见,这里不再对其细节进行描述。
当不存在错误时,接收到的数据被存储,并将1字节的正常接收的码(ACK)(同样也指“确认”)发射回发射方(步骤S103及S107)以表示对接收和存储数据的确认。如果检测到错误,则被接收的数据被消除,且NAK信号从接收方发射回发射方(步骤S105)。
当接收到下一个ACK信号时,下一个数据的数据组被从发射方发射到接收方(步骤S104)。如果接收到NAK信号,由发射方再次发射同一数据组(步骤S106)直到接收到ACK信号为止。
重复上述程序,直到最后的数据组被发射之后(步骤S108)数据发射方发射一表示发射结束的1-字节终止码(EOT)为止,当数据接收方接收到EOT信号时,接收方向发射方发出一ACK信号,该过程结束(步骤S109)。
在其它的通信系统中,例如Xmodem方法系统或一种Zmodem方法系统,使用的是一种更复杂的程序。这样的系统可以容纳大量的数据及更多的文件或其它内容。
然而,对于诸如Xmodem方法/系统的传统的通信系统其存在一些问题。
首先,当被发射的数据的长度比使用固定长度数据组的通信系统中的数据组的长度大时例如在Xmodem系统中,必须使用多个数据组和数据组的部分。当使用数据组的部分时,各数据组的剩余未被使用的部分必须被填充进补充码(SUB)(也叫“替代码”),且必须如图12中所示被传输。类似地,当要被传输的数据的长度比数据组的固定长度短时,固定长度数据组的未使用的部分必须由补充码填入(例如,完成)。补充码浪费了本来可以被用来传输有用数据的空间,但对于固定长度的数据组被整体地发射和接收是必要的。
常规通信系统的第二个问题在于对于固定长度数据组系统可能使用长(例如扩展长度)数据组。使用长固定长度数据组的常规的固定长度数据组系统由于其需要很频繁的再传输过程从而其传输效率很低。扩展数据组长度的过程也许会造成错误,其结果很可能需要进行重新传输。例如,由于数据组的加长而产生的传输错误,并由此导致传输噪音的相应增加。通常地,数据组的长度越长,其产生的噪声也会越多。
对于减少数据组长度的固定长度数据组系统(例如具有较小数据组的系统)存在第三个问题。当传输大量数据时,这种系统传输数据很慢,这是因为当系统用较小数据组长度传送数据时,则需要传输同样数据量的数据组的数目会增加。由于每一数据组必须被格式化和被确认,那么对于一给定的数据量,则传输大量短数据组所需的时间比传输少量长数据组所需的时间要多。
对于使用可变长度数据组系统,第四个问题在于与该系统相关的过程非常复杂。使用可变长度数据组的通信系统为限定发送方和接收方间的数据组长度需要复杂的程序,由此降低了通信速度且增加了相应的错误。
此外,Ymodem方法和Zmodem方法也存在问题。例如,Ymodem方法具有很多与上面描述的Xmodem方法同样的问题,这是因为它使用了与Xmodem方法相类似的具有固定数据组长度的协议。
此外,由于Zmodem方法使用了一可变数据组长度的协议并因此不再需要补充码,但该协议非常复杂因此是不适合的。
因此,常规的方法/系统具有很多问题。
针对常规系统和方法的前面所述的问题,本发明的一个目的是提供一种用于数据通信系统的结构和方法,以有效利用固定数据组中的未被使用的空间而与此同时保持高可靠性的数据传输。
其中的第一个方面,根据本发明用于传输数据的串行数据通信系统,包括用于传输固定长度数据组信息的发射机和用于从发射机接收固定长度数据组的接收机。固定长度数据组包括多个子-数据组,每一子-数据组具有根据数据进行变化的可变长度。
按照本发明所提供的特定和普通的结构和方法,提供了一种数据通信系统,在该系统中通过固定长度数据块来执行串行数据通信,而其中当被传输的数据数比固定长度数据组的尺寸小时,本发明在数据块内重复设置传输数据以便完整地利用固定长度数据组。因此,由于不存在(或少量)未被使用的数据组部分,从而效率提高了,而且相应的错误也减少了。
根据本发明,数据块可包含一数据错误识别码(例如检测和码或类似物)或一错误校正码。通常,由于多错误消除系统/方法很复杂且效率很低,从而一个码就足够了(例如只使用其中的一个错误消除系统)。
此外,对于本发明,最好选择不包含错误(或包含可被校正的错误)的数据。当接收方接收到这类最佳选择的数据时,向发射方发送一响应码。相反地,当发射方没有收到响应码时,数据被再次发送。
因此,对于本发明,只使用了很少量的补充码,且既可向被发射的数据中加入数据错误识别码或者也可加入错误校正码。然后,在数据接收方,从在接收方的被接收的数据块中选择最佳的无错误(或可被校正的错误)的数据。如果数据中含有错误,则执行一请求数据组再次传输的操作。
本发明的另一方面,当数据文件超过尺寸时,由于第二数据组包含一冗余数据部分(例如一冗余“文件(2/2)”),从而在第二数据组中的数据错误的几率比常规方法(例如Xmodem方法)要低。例如,传统Xmodem方法的第二数据块没有这样的冗余数据部分,且其错误也与本发明的第二个实施例中的相类似。
通过下面结合附图对本发明最佳实施例的详细描述会对前面所述及其它的目的、方面及优点有更清楚的了解。
图1为根据本发明的数据通信系统的示意方框图;
图2为根据本发明由数据通信系统最佳使用的数据块段的示意图;
图3为根据本发明由数据通信系统使用的数据块的数据区的示意图;
图4为根据本发明由数据通信系统使用的数据块的另一个数据区的示意图;
图5为根据本发明由数据通信系统使用的数据块的又一个数据区实例的示意图;
图6为根据本发明的数据通信系统的在数据传送方所进行的操作程序的流程图;
图7为根据本发明的数据通信系统的在数据接收方所进行的操作程序的流程图;
图8为根据本发明由数据通信系统所使用的字的示意图;
图9A描绘了当数据(如一个文件)比数据组尺寸大时进行传输的本发明的第二个实施例,且为了进行比较,图9B描绘了当使用传统的Xmodem系统进行此种传输的情况;
图10为常规Xmodem系统数据块的示意图;
图11为传统Xmodem系统操作程序的示意图;及
图12为传统Xmodem系统数据块的示意图。
现在参照附图对本发明的最佳实施例进行描述。图1描绘了本发明最佳实施例的结构。
在图1中,随机存取存储器(RAM)2被划分为数据存储区21和通信缓冲区22。区域21用于存储被发射或接收的数据,因此该区域的尺寸最好不固定。最好区域21的尺寸可动态调节。区域22用于通信缓冲以便此区域的尺寸与数据组的尺寸相等。在数据存储区域21存储要被发射及接收的数据。通信缓冲区22为能够连续发送或接收与一个数据组相应的数据的暂时数据存储存储器。
只读存储器(ROM)3存储用于数据通信系统的程序,并包括用于存储传输软件的传输软件存储区和用于存储接收软件的接收软件存储区32。
串一并行(S/P)数据转换器4分别地将在中央处理器(CPU)1使用的并行数据转换为串行数据(在串行通信中使用),或将串行数据转换为并行数据。根据包含在ROM3中的程序,CPU1控制ROM3、RAM2和S/P数据转换器4之间的数据传输操作,其中每个部分都由公共系统总线5连在一起。
在传输操作中,数据通过外部输入设备(未显示)被输入到数据存储区21。在数据存储区21内的数据的一个数据组被放在通信缓冲区22内。必须注意的是数据组的尺寸不是固定的,但相反地使用者可预先根据设计的需要和考虑来选择合适的数据组尺寸。然而,正如本领域中的普通技术人员所了解的,必须提前选择同样规模的发射机和接收机。
在发射软件存储区31内的传输软件处理在通信缓冲区22内的数据组,并将数据输出到S/P转换器4。转换器4将数据转换并将数据输出到接收方。
在接收操作中,通过S/P转换器4来对数据的数据组进行接收和转换。接收软件存储区32内的接收软件控制操作来将数据的数据组存入通信缓冲区22。如果被接收的数据的数据组无错误(例如由检验和码确定或其它诸如CRC错误识别码确定)或错误校正码,则向发射部分发送一确认信号(ACK)以允许随后的数据组被发射。来自通信缓冲区22的数据组被合并在数据存储区21内。一旦完成数据的传输,在数据存储区21内累积的数据被输出到输出装置(未显示)。
图2为用于本发明的数据通信系统中的典型的传输数据块的示意图。
首先,1-字节引导码(SOH)被放置在数据组的前导端以表明数据块的开始(“报头开始”)。在下一相邻的位置,1-字节数据组(BLK)表示数据组的逻辑顺序(例如,在被编号的顺序中应该由接收方重组的全部数据组)。
与BLK数据组相邻的为1-字节数据长度码(BLL),其代表被发射数据的长度(例如字节数)。在以上描述的最佳实施例中,在1个数据组中被传输的数据的长度少于256字节。很明显地,在以上所述的实施例中,数据组中的数据区最多为256字节,也可以将此值设定的更高。BLL变量长度可以为倍增的字节。例如,如果BLL有2字节,则数据区可增加到65536字节。
在SOH、BLK和BLL字节之后设置一3字节检验和码(SUM1),在SUM1码后设置要被发射的N-字节的数据。根据以上所讨论的结构,在一个数据组中的全部字节数变为N+4(例如SOH、BLK、BLL、SUM1),其中N为被传输数据的字节数。尤其是,N代表数据块的固定长度。
图3详细描绘了N-字节数据区。数据区包括在BLL字节中要被发射的数据(DATA)和1-字节检验和码(SUM2)。
如图3中所示,DATA和SUM2字段形成-子数据组。因此,子-数据组中的字节数为(BLL+1)字节。与补充码(SUB)字节数目相等(N-BLL-1)的字节被插到SUM字段之后数据区的未被使用的部分。相反地,如果子-数据组中的字节数与数据区的固定长度相等(例如(BLL+1)=N),如图4中所示,就不需要补充码。
图5描绘了一个数据组结构的实例,其中数据长度码BLL(例如对每一子-数据组)的尺寸至少比数据区尺寸的一半少2字节。(即,BLL≤(N-2)/2)。例如,假设N(总字节)为6,如果DATA(BLL)等于3,由于(6-2)/2等于2从而方程不成立。然而,如果N等于6且DATA等于2(例如对于每个子-数据组)则方程成立。如果DATA(BLL)等于3,N将等于8这样的一种结构允许将多个子-数据组放入一单个数据区内从而补充码(SUB)的字节数被减至最小。
检测和码被用于以常规的方式检验传输的数据是本领域中的普通技术人员公知的。尤其是,检验和码被用来检测数据中的错误。例如,选择SUM1从而SOH+BLK+BLL+SUM1的总值的和等于0。其原因在于这样的和代表在传输中存在(当不为0时)错误或不存在错误(当等于0时)。
类似地,当SUM2的值比数据区中每一数据的总值少1字节时,SUM2值变为0。此为一种常规的检验顺序。SUM2为用于数据区中的数据的检测和码(例如全部BLL字节)。
此后,参考图6-7的流程图对本发明最佳实施例的操作进行描述,其分别描绘了在数据传输方和在数据接收方的操作。
在数据传送方的操作
对于数据传送方的操作,参考图6,在步骤101程序开始,此后,所提供的变量Vi的初始值设定为0,而BLK的初始值被设定为1(步骤S02)。正如在下面还要详细描述的,当被传输的最后一个数据的长度少于N字节时(例如当数据组为最后数据组时),V1被设置为1。否则的话,V1为0。如上所述,BLK为数据组顺序号并且被加到每个数据组中。
在步骤S03中,确定V1是否为1。如果V1是1,发射一传输终止信号(EOT)(步骤S04)并且程序正常终止(步骤S05)。
如果V1的值为0(例如在步骤S03中为“否”),那么程序继续到步骤S06。在步骤S06中,判定所剩余的传输数据(例如被传输全部数据的剩余数据块)是否小于N(例如数据的长度比数据区(N字节)的长度小)(步骤S06)。更具体地说,处理随后的数据组直到最后一个数据组为止。然后检验最后一个数据组看其是否小于N。
当所剩余的传输数据小于N字节时,该数据组变为最后数据组,从而变量V1被设为1(步骤S07),且变量BLL被设定为发射数据的剩余字节数(步骤S08)。然后,BLL字节被从数据区(例如图1的数据存储区21)输出到缓冲区(例如图1的通信缓冲区22),并被用来计算SUM1和SUM2(在步骤S10)。如上所述,BLL字节会影响检验和值。
本发明还减少(即降至最小)了在一单一数据区中确定可放置多少子-数据组所需的补充码(SUB)的数目。
尤其是,变最V2被设定与N的整数部分相等N/(BLL+1)(例如{INT(N/(BLL+1)}(步骤S11)。然后,在缓冲器22中由多个子-数据组组成数据组(步骤S12)。
相反地,在步骤S06,当剩余值多于N字节时,BLL在数据区内被初始设定为字节数(例如在步骤S13,N-1)。BLL字节被从 数据区21输入到缓冲器22(步骤S14),并被用来计算SUM1和SUM2(步骤S15)。然后,由缓冲器22中的信息形成数据组(步骤S16)。
在数据组的结构完成之后,将其传输。被用来计算再发射次数的变量V3被设定为0(步骤S17)。这样的一种特征可以由硬件及/或软件作为增量计算器来实现,并且对该领域中的普通技术人员是公知的。因此,为简化起见,这里对其结构和操作不再详细讨论。
然后,发射一个数据组(步骤S18),且变量V3增加1(步骤S19)。此后,发射方等待一预定的时间T1以接收来自接收方响应码(步骤S20)。
如果接收方将ACK码返回到发射方(步骤S21)且如果BLK的值为256(步骤S22),则BLK被设为0(步骤S23)。
相反地,如果接收方将ACK码返回到发射方(步骤S21)而BLK的值不是256(正好在步骤S22中所确定的),BLK增加1(步骤S24)且操作返回到步骤S03用于下一步的处理。当响应码不是ACK码时,操作返回到步骤S18以便进行数据组再发射操作。
如果在步骤S20中未检测到来自接收方的响应码,但跟随传输的预定时间段T1还没过去(步骤25),则操作又返回到响应码接收确定步骤(步骤S20)。如果时间T1已过去但还没进行M次(如3)试发射(步骤S26),则程序返回到发射操作(步骤S18)以重新发射数据组。如果时间T1已过且已对同一数据组进行了M次(如3)试发射,则程序以非正常状态完成(步骤S27)且被推测为非正常的终止。
因此,时间段T1为等待来自接收方响应码的时间。如果当T1过后没检测到响应码,则执行数据组的再发射。变量M为数据组发送的最大允许次数(如在以上的实例中设为3;具体地说,数据组被发射一次然后为了总数为3次的数据组发射再重新发射2次)。当未检测到响应码且执行了M次发射时,程序非正常终止。
变量T1和M为预定值且在发射方和接收方根据设计者的需要和限定分别预先设定,因此,T1和M可以为根据设计者的考虑和需要而设定的任意合适值。
参考图7中的流程,其描绘了在数据接收方的操作,在步骤S28程序开始。变量V6和V5的初始值被设定为0(步骤S29和S30)。变量V5用做存储响应码被发射的次数,而V6用做存储前面所接收的数据组的数据组个数。
接收缓冲器22被清除(步骤S31),变量V5增加1(步骤S32)。然后,操作等待来自发射方所发射的数据的检测(步骤S33)(如数据接收方等待接收数据)。
当检测到数据传输时,对发射的第一个字节进行检测以确定其是否为EOT码(步骤S34)。如果该字节是EOT码,则接收方向发射方发射-ACK码(步骤S35),程序正常结束(步骤S36)。
相反地,在步骤S34中,如果第一个字节不是EOT码且数据没被检测到,则执行一接收操作,并确定是否已接收到一完整的数据组(N+4字节)(步骤S37)。这样的确认可由具有与发射方相同EOT码的接收方和基于接收的该发射的比较来完成。如果第一字节不是EOT,发射机将发射一完整的数据组,从而接收机将接收到一完整的数据组。
在接收一个数据组未完成的情况下,当发射响应码时对时间段T1进行计算(步骤S38)(如确定在开始数据接收操作后是否已过T1)。如果未过T1,操作接着返回到接收操作(步骤S33)来接收数据。当T1过去后,变量V5与预定值M进行比较(步骤S39)。M为响应码可被发射的所允许的最大次数。
如果V5比M小,从数据接收方向发射方发送一否定应答(NAK)(步骤S53),操作再次返回到缓冲器清除操作(步骤S31)以再次执行一接收操作。如果T1已过且V5与M相等,程序被非正常地停止(步骤S40)(如“一种非正常终止”)。
时间段T1用于等待来自发射方的数据块。如果在时间段T1内没有接收到数据块,本发明的方法再次执行一响应码发射操作(如再次发射操作)。当在时间段T1内没有接收到数据块时则发射M次确认码,程序终止并被判定为非正常终止。T1和M为预先设定的值,并在发射方和接收方提前设定。须注意的是,在发射方和接收方的T1和M是一样的。
当已经接收到数据组时(如一个数据组),SUM1被计算(步骤S41)并通过使用上面描述的求和方程来确定SOH、BLK和BLL是否正确(步骤S42)(例如确定SOH+BLK+BLL+SUM1是否等于0)。如果SOH、BLK和BLL不正确,在此数据组中的所有数据都是不可靠的。因此,最好首先判定这些码是否正确。
如果在步骤S42中检测到错误,从接收方向发射方发送一否定应答(NAK)(步骤S53),且操作返回到缓冲器清除操作(步骤S31)并再次执行接收操作。
如果SUM1正常(如在步骤S42为“OK”),则对变量BLK进行检测以确定BLK=V6或BLK=V6+1是否成立(步骤S43)。如果BLK=V6,则可判定数据块为被重新传输的数据块。如果BLK=V6+1,则可判定数据组为与前面接收到的数据组相随(相邻)的下一次数据组。
由于上面的两个判定都代表正常的程序,变量V6被设为BLK(步骤S45),且操作进入下一步骤。然而,如果BLK不是V6+1,则可判定在通信程序中已发生了冲突(错误),操作被非正常终止(步骤S44)。
在步骤S46中,包含在接收到的数据组中子-数据组的数目是参考N的整数部分(BLL+1)计算的,且整数部分可代替变量V4。然后,V4数据组中的SUM2被计算(通常它包含1个字节但也可更大)。如图4中所示,N(字节)-BLL(字节)=SUM2(步骤S47)。这种运作在计算数据组中包含多少个子-数据组时是很有意义的。计算之后,接收机开始搜寻一正确的子数据组。
然后,对子-数据组中的数据进行检测其目的是通过使用SUM2来检测每一子-数据组而对子数据组中的数据进行校正。(步骤S48)。
如果未检测到错误(如在步骤S42中确认SUM2为“0K”),则子-数据组中的数据被存入数据存储区21中(步骤S49)。如果确认数据组与前面的数据组一样,则用当前的数据传输代替前面的数据。如果确认数据为下一个数据组(如与前面输送的数据组相邻),则其位置紧跟着(相随)前面接收到的数据。此操作后,向发射方发射确认(ACK)(步骤S50),且操作返回到接收下一个数据组的程序(步骤S30)。
当检测到错误时(例如在步骤S48SUM2被确定不是“OK”),V4被减少1(步骤S51),并对下一个子-数据组进行类似的操作。对此操作重复进行直到V4=0并对全部子-数据组的数据是否正确作出确认(步骤S52)。
当一个或多个子-数据组中的数据不正确时,由接收方向发射方发射-否定应答(NAK)(步骤S53),且操作返回到缓冲器清除操作(步骤S31)并执行另一接收操作。
如果发射方和接收方根据前面所述的程序一起操作且发射方和接收方两方都正常终止,则可判断数据已正确传送到接收方。
同时,在如上所述的最佳实施例中,检测和已被用于作为对每一子-数据组的数据错误判别码,同样也可使用数据错误校正码。例如,可提供这样一种方法,其中数据错误校正码被分解为数据部分(X个比特)、一个错误校正码部分(BCH码)(Y个比特)、和以1个字(4字节)为一单位的奇偶校验位部分(1个比特),而这些如图8中所示,都可包含于一个子-数据组之中。如果数据部分X=21个比特而错误校正码Y=10个比特,可在数据部分中对2比特的数据错误进行校正。由于错误校正码(ECC)的使用是众所周知的,为简化起见这里不再详细描述。
尤其是,在数据错误校正程序中,首先在发射方将发射数据转换为字(例如图8中所示)以使用此字代表该子-数据组。
如果存在一个错误,则接收方根据字对子-数据组执行一错误校正,并修复相应的错误数据。如果不能进行错误校正(例如一个字包含在其中不能进行错误校正的一个子-数据组中),则该子-数据组不适用。如上所述,如果其中一个子-数据组包含一个错误,则向发射方发送一重新发射请求。因此,只要在-数据组中被重复设置的所有子-数据组中的数据不能被使用,则针对发射方进行一重新发射请求。
从前述的描述中可知,根据本发明的数据通信系统,即使当被传输数据的长度比固定数据组的长度小时,也可执行一高可靠性和更加有效的通信过程。此外,本发明使用了一固定长度数据组通信相关的简单通信协议。本发明的方法和结构提高了通信响应并降低了能源消耗。
尤其是,与在背景部分内所描述的可变长度数据组方法相比,本发明更加简单。一般地,使用可变长度数据组的协议需要BOF(字段开始)、EOF(字段结束)和CE(控制换码)等。处理这些码是很复杂的。本发明提供了一种更加简单和更加容易的协议。
由于在一个数据组中存在多重子-数据组,只要全部子-数据组中的数据无错误,就不需再发射操作,由此使得固定长度数据组传输的次数降低了。
第二实施例
需注意的是,在前面描述了这样一种情形,即其中数据组的长度比固定长度数据字段的长度的一半要小的同时,其也可使用较大尺寸的即比固定长度数据字段长的数据组。
尤其是,本发明的第二个实施例讨论了这样一种情况,其中如图9A中所示,文件比数据组的尺寸大。与之相反,传统的Xmodem方法是如图9B中所示的处理此种情况。这些数据清楚地示出了本发明第二个实施例的优点。
在图9A中,在具有固定长度的第一数据组中,在数据组的开始使用了PRE和SUM1而在数据组的结尾使用了SUM2。而数据(如“文件(1/2)”)介于它们之间。PRE部分包含SOH+BLK+BLL。
在图9A的第二数据组中,显示了传输协议,其在第一文件(如“文件(2/2)”)部分之间包括PRE和SUM1,而SUM2紧随其后,紧跟着是第二(冗余)“文件(2/2)”部分和另一个SUM2码。发射以SUB码而结束。因此,图9A的第二个数据组包括一双(冗余)“文件(2/2)”,因此数据组错误的概率比图9 B中所示传统Xmodem方法要低。
尤其是,在图9B中所示的传统Xmodem系统中,PRE码和SUM码分别处于第一数据组的“文件(1/2)”部分的第一和第二端部。在第二数据组中,PRE码后随着“文件(2/2)”部分,随后分别为大的SUB码部分和SUM码。
因此,对本发明的第二个实施例,在第二数据组中的数据组错误的概率,由于9A的第二数据组包含一冗余“文件(2/2)”而被降低。与之相反,如图9B中所示的传统Xmodem方法的第二数据组没有这样的冗余“文件(2/2)”,因此很可能发生错误。
以上已结合最佳实施例对本发明进行了描述,但其不仅仅局限于此而是包含对本领域的普通技术人员所公知的所有改变。