数据传输的检错方法与系统的制作方法

文档序号:7682785阅读:167来源:国知局
专利名称:数据传输的检错方法与系统的制作方法
技术领域
本发明涉及一种数据传输的检错以及校正方法,特别是涉及一种大量串
行数据传输的^r错以及校正方法。
背景技术
串行数据传输方法普遍用于两个不同电子装置之间的数据的传输。为了 能够在两个装置之间进行传输,通常通过一时钟信号线让数据在两个电子装 置之间同步,而通过一数据线进行数据的传输。 一般而言,数据线有一电路 造成的默认值,用以表示没有数据传输时的数据线的电压电平。为了确保电 子装置之间的数据传输正确性,当传送端的电子装置传送完一串行数据后会 传送一响应信号至接收端的电子装置,此响应信号与默认值相反。接收端的 电子装置便可检查此响应信号,以判断传送端的电子装置是否完成动作。
然而,在一些情况下,当两电子装置同步后,传送端的电子装置可能会 遗失部分的时钟,延迟了信号的传送。接收端的电子装置并不知道传送端的 电子装置遗失了部分时钟,因而接收到错误的数据,有可能把数据的部分误 认为响应信号,产生误判,使得接收端以为接到的数据是正确的而继续接收 数据,等到接收一段数据后才发现数据错误,必须重送整个数据。换言之, 若于传输时,其中一方因为失去了时钟信号而没有实时的接收或传送数据, 造成数据传输时的错误或延迟,并没有有效的错误检测机制可以实时发现并 通知传送端的电子装置重传该笔串行数据,因此即使只有其中一笔串行数据 发生错误,仍需要重新传送整个周期的数据段,使得传输效率降低。

发明内容
本发明的一实施例为一种数据传输的检错方法,适用于一数据传输系统, 该数据传输系统包括一第一装置、 一第二装置与一数据线。该方法包括传 送一时钟信号,用以同步该第一装置与该第二装置;根据该时钟信号,由该 第一装置传送至少一串行数据至该第二装置;在该第一装置送出该串行lt据
4后,传送一响应信号至该第二装置;以及当送出该响应信号后,该第一装置 读取该数据线以得到一读取值,并依据该读取值以及该数据线的一默认值, 决定该串行数据是否正确。
本发明的另 一 实施例为 一种数据传输系统,包括一第 一以及一第二装置 以及一数据线。数据线具有一默认值,用以传输一比特流于该第一装置以及 该第二装置之间,该比特流至少包括一第一数据段,至少包括m位,用以表 示一起始地址;以及多个第二数据段,位于该第一数据段之后,每一所述数 据段包括一串行数据、 一响应信号以及至少一位的检测信号。其中,当该第 一装置送出 一 第二数据段的该串行数据以及该响应信号后,读取该数据线以 得到该检测信号,并依据该检测信号以及该数据线的该默认值,决定该串行 数据是否正确。
本发明的另 一实施例为一种数据传输的检错方法,适用于一数据传输系 统,该数据传输系统包括一第一装置、 一第二装置与一数据线,该方法包括 传送一时钟信号,用以同步该第一装置与该第二装置;根据该时钟信号,由 该第一装置接收至少一串行数据;在接收该串行数据后,接收一响应信号; 以及当接收该响应信号后,该第一装置读取该数据线以得到一读取值,并依 据该响应信号、该读取值以及该数据线的一默认值,决定该串行数据是否正 确。


图1示出了一依据本发明实施例的一数据传输系统的示意图。 图2示出了 一依据本发明的数据传输方法所使用的比特流的数据格式的 示意图。
图3示出了依据本发明一实施例的数据传输的错误检测以及处理的示意图。
图4示出了依据本发明另一实施例的数据传输的错误检测以及处理的示 意图。
附图符号说明
110-主装置;
120-从装置;
130-时钟信号线;
5140-数据线;
210-第一数据段;
220-第二数据段;
230-第三数据段;
240-第四数据段;
250-第五数据段;
260-数据段;
262-串行数据;
264-响应信号;
266-检测信号。
具体实施例方式
本实施例提供一种数据传输的错误检测方法,适用于包括一第一装置 (Host)、 一第二装置(Slave)与一数据线的一数据传输系统。
图1示出了依据本发明的一串行数据传输系统的一实施例的示意图。串 行数据传输系统100包括主装置(Host) 110、从装置(Slave) 120、时钟信 号线130以及数据线140。时钟信号线130耦接主装置110的时钟输出端CLK_H 与从装置120的时钟输入端CLK—S。数据线140耦接主装置110的数据传输 端Data-H与从装置120的数据传输端Data —S,且数据线140具有一默认值, 此默认值可以是Q或1。主装置110通过时钟信号线130传送一时钟信号至 从装置120,使得主装置110与从装置120间的数据传输可以同步。当主装 置110与从装置120同步后,主装置110通过数据线140传递一比特流 (bitstream)与从装置120进行数据传输的动作。
请注意, 一般的传输中,当主装置110欲读取从装置120上的数据时, 主装置11G会在读取每一笔数据前先传送地址及读取指令,接着从装置120 在接收到地址及读取指令后,会回传一笔数据,并在该笔数据后附上一个响 应信号ACK给主装置110。当主装置110收到响应信号ACK后,又再传送下 一笔数据的所在地址至从装置120。但在本实施例中,从装置120可在接收 到地址及读取指令后,传送一个周期的数据块给主装置110,以加快数据传 输的速度。
图2显示依据本发明的数据传输方法所使用的一比特流的数据格式的示
6意图。在此实施例中,该比特流的数据格式用于说明主装置110读取从装置
120上的数据时的数据格式。比特流200包括多个数据段(segment )或字段 (data field),如一第一数据段210、 一第二数据段220、 一第三数据段 230、 一第四数据段240、 一第五数据段250以及一数据段260。其中,第一 数据段210至第四数据段240是由主装置所发出。第五数据段250与数据段 260是由主装置所发出。第一数据段210包含至少一位,作为一重置信号 RESET,用以重置一个数据传输周期。第二数据段220包含至少一位,作为一 启动信号START,用以表示重新开始一个传送周期。第三数据段230包含至 少m位,包含一地址信息,用以表示存放数据段26Q的数据段的一起始内存 地址。在此实际例中,数据段230的起始内存地址可能为主装置110写入从 装置120的数据要储存在从装置120的一储存装置的起始地址,也可以是主 装置110写入从装置120的数据是位于主装置110中的一储存装置的地址。 第四数据段240包含至少一位,作为一读取/写入(R/W)信号,用以表示主 装置对从装置执行一写入动作或一读取动作。第四数据段240亦可利用多个 位来表示不同的写入动作或读取动作。第五数据段250包含至少一位,由从 装置UO发出,作为一响应(acknowledge)信号。当从装置120接收到主装 置110所发出的读取/写入指令及起始地址后,从装置120发出响应信号并回 传给主装置110,用以通知主装置110其已收到读取/写入指令及起始地址。 于此实施例中,响应信号的位的逻辑电压电平可为'T,或"0"。数据段260 包含多个(M个)数据块,数据块#0至数据块并M-1,用以表示一个周期的数 据段,每一数据块包含一个n位串行数据262、 一响应信号(ACK) 264以及至 少一检测信号266。 n位串行数据262包含有要传送或接收的数据,响应信号 264则在从装置U0传送完一笔n位串行数据262后所发出,用以通知主装 置110已经将n位串行数据262发出。检测信号ED包含至少一检测位,用以 检测所传送或接收的数据是否有错误。检测信号ED的检测位的值是在接收或 传送信号后,由数据线140上所读取到的读取值。在此实施例中,检测信号 ED里的检测位是一位,用以检测一位的数据错误。在另一实施例中,检测位 可以超过一位,用以检测超过一位的数据错误。
图3显示依据本发明实施例的一数据传输的错误检测以及处理的示意 图。如图所示,CLK表示时钟信号在线的时钟,Data — S与Data—H则分别表示 从装置120以及主装置110于数据线的数据传输时序,且数据线140的预设
7电压电平为 "0"。在另一实施例中,数据线140的默认值也可以为'T,。 在此实施例中,假设每一数据块的串行数据的长度(n)为8位,且主装置110 正在接收从装置120的数据块#11, n<M-l,数据块并n具有数据DO-D乙请注意, 在此实施例中,假设每一数据块的串行数据的长度为8位,但并非用以限定 本发明仅止于此。举例来说,在另一实施例中,每一数据块的串行数据的长 度可为16位或其它任意位。
请参阅图3,假设主装置110与从装置U0在时间TO时完成同步,此时 主装置110预期开始接收从装置120送出的数据D0。然而,由于传输时发生 了延误或错误,使得从装置120并未收到时间T0产生的时钟信号,而在时间 Tl时才开始传送数据DO,而此时主装置110将从装置120送出的数据DO视 为数据Dl。因此,经过时间T2至T7,主装置IIO预期从装置120的数据D0-D7 已经接收完毕,接着把时间T8时接收到的数据视为响应信号ACK。然而此时, 在时间T8时,从装置120传送出的数据为数据D7。换言之,主装置110将 把数据D7视为响应信号ACK。
接着,在时间T9时,从装置120送出真正的响应信号ACK,此响应信号 ACK的值为'T,,与默认值"0"相反。此时,主装置110因已接收到数据 D7所代表的响应信号,因此便去读取数据线140上的值,于是读到从装置120 送出的响应信号ACK的值(其值为"l")。接着主装置IIO便依据接收到的响 应信号ACK (即D7)以及读取值ED,判断接收到的数据是否正确。有以下几种 可种的情形。
(1) 如果响应信号ACK的值为'T'以及读取值ED为"0"时,表示接收 到的数据DO-D7是正确的,因此主装置110可以继续接收下一个数据块#11+1
的数据。
(2) 如果读取值ED为'T,时,不管ACK的值为"0"或T ,表示接收 到的数据DO-D7是不正确的,亦即有一个位的错误发生,此时主装置110可 决定是否要求从装置120重传区块#11的数据。假设主装置110不要求从装置 120重传数据块fn的数据时,主装置110在时间T10时送出一个其值等于默 认值(即"0")的信号,以通知从装置12Q继续传送下一笔数据块h+l。
假设主装置IIQ要求从装置120重传数据块紐的数据时,主装置110在 时间T10时送出一个重传信号RESEND,其值为'T,,以通知从装置120数 据有错。在时间T10时,从装置120已经传完响应信号ACK,于是将读取数据线140上以得到一读取值ED。由于此时数据线140上为重传信号RESEND, 从装置120将读取到重传信号RESEND,视为其读取值ED。当从装置120发现 读取值为'T,时,并不等于默认值"0",于是便知道传送至主装置110的 数据有错误,因此,便于下一时间Tll时立即重新传送区块#11的数据。换言 之,藉由此重传信号RESEND,主装置IIG可告知从装置120数据有错误并主 动要求从装置120重新传送这一笔数据。
(3)如果ACK的值且读取值ED也为0时,表示接收到的数据DO-D7是不 正确的,且有超过一个位的错误发生,在此格式下并无法修复,必须重传整 个数据段。于是,主装置110必须重新下达一个重传整个数据段的命令,以 告知从装置120重新由数据块#0开始传送。举例来说,主装置110可下达一 个包含一个重置信号、开始信号、起始地址以及读取/写入信号的命令格式指 示从装置120重新传送第m个周期的数据段。
除了用于主装置IIO读取从装置120时的检错,本发明也可用于主装置 110写入从装置120时的检错。请参见图4。
图4显示依据本发明另一实施例的数据传输的错误检测以及处理的示意 图。类似地,如图所示,CLK表示时钟信号在线的时钟,Data —S与Data —H则 分别表示从装置以及主装置110的数据线的情形,且数据线140的默认 值为"0"。在另一实施例中,数据线140的默认值也可以为1。于此实施例 中,假设每一数据块的串行数据的长度为8位。
请参阅图4,假设主装置110与从装置120于时间TO时完成同步,此时 主装置110开始传送数据DO至从装置120。然而,由于传输时发生延误或错 误,使得从装置120并未收到时间TO产生的时钟信号,而于时间Tl时才开 始接收主装置110传送的数据D0,而此时从装置120将主装置110送出的数 据D1视为数据D0。因此,经过时间T2至T8,从装置120预期主装置110的 数据DO-D7已经接收完毕,接着于时间T9时传送一个响应信号ACK,此响应 信号ACK的值为"1"。
此时,主装置110因已送出响应信号ACK,便去读取数据线的值以得到 读取值ED,于是读到从装置120送出的响应信号ACK的值(其值为'T,)。 接着主装置110便依据读取值ED,判断从装置120接收到的数据是否正确。 类似地,有以下几种可种的情形。
(l)如果ACK的值为'T,以及读取值ED为"0"时,表示从装置120接收到的数据DO-D7是正确的,因此从装置120可以继续接收下一个区块#11+1 的数据。
(2) 如果读取值ED为"1"时,不管ACK的值为0或1,表示接收到的数 据D0-D7是不正确的,亦即有一个位的错误发生,此时主装置110可决定是 否要求从装置120重新写入区块fn的数据。假设主装置110要求从装置120 重新写入区块并n的数据时,主装置110在时间T10时送出一个重写信号 REWRITE,其值为'T,,以通知从装置120数据有错。在时间T10时,从装 置120已经传完响应信号ACK,于是将读取数据线14上以得到一读取值ED。 由于此时数据线14上为重写信号REWRITE,从装置120将读取到重写信号 REWRITE,视为其读取值ED。当从装置120发现读取值为"1"时,并不等于 默认值,于是便知道接收到的主装置110的数据有错误,因此,便于下一时 间Tll时立即重新接收区块h的数据。换言之,藉由此重写信号,主装置110 可告知从装置12Q数据有错误并主动要求从装置120重新接收这一笔数据。
(3) 如果ACK的值且读取值ED也为"0"时,表示接收到的数据D0-D7是 不正确的,且有超过一个位的错误发生,在此格式下并无法修复,必须重新 写入整个数据段。于是,主装置110必须重新下达一个重新写入整个数据段 的命令,以告知从装置120重新由数据块#0开始接收。举例来说,主装置110 可下达一个包含一个重置信号、开始信号、起始地址以及读取/写入信号的命 令格式指示从装置120重新接收第m个周期的数据段。
藉由本发明的检错方法,利用响应信号之后新增的检测信号里的检测位 ED可及时检测出发生问题的区块,立即传送,无须重传整个周期的数据,不 仅提供及时的错误检测以及重传机制,也有效提升传输的效率。
值得注意的是,上述实施例中是以一个位的检错进行说明,然本发明亦 可适用具有n位的错误的检错。举例来说,在另一实施例中,可配置两个读 取位ED,以纟全测两个位的4晉误。
虽然本发明已以具体实施例揭露如上,然其仅为了易于说明本发明的技 术内容,而并非将本发明狭义地限定于该实施例,任何所属技术领域中具有 通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰, 因此本发明的保护范围当视本发明的申请专利范围所界定者为准。
10
权利要求
1. 一种数据传输的检错方法,适用于一数据传输系统,该数据传输系统包括一第一装置、一第二装置与一数据线,该方法包括下列步骤传送一时钟信号,用以同步该第一装置与该第二装置;根据该时钟信号,由该第一装置传送至少一串行数据至该第二装置;在该第一装置送出该串行数据后,传送一响应信号至该第二装置;以及当送出该响应信号后,该第一装置读取该数据线以得到一读取值,并依据该读取值以及该数据线的一默认值,决定该串行数据是否正确。
2. 如权利要求1所述的方法,还包括若该读取值与该默认值相同时,判定该串行数据是正确,传送下一串行数据;以及若该读取值与该默认值相反时,该第一装置判定该串行数据是错误,决定是否要求重新写入该串行数据。
3. 如权利要求2所述的方法,还包括传送一重写信号,用以通知该第二装置重新接收该串行数据;以及当该第二装置接收到该重写信号时,重新接收该串行数据。
4. 如权利要求3所述的方法,其中,该重写信号的值不等于该默认值。
5. 如权利要求1所述的方法,其中,该响应信号的值与该默认值相反。
6. —种数据传输系统,包括一第一以及一第二装置;一数据线,其具有一默认值,用以传输一比特流于该第一装置以及该第二装置之间,该比特流至少包括一第一数据段,至少包括m位,用以表示一起始地址;以及多个第二数据段,位于该第一数据段之后,每一所述数据段包括一串行数据、 一响应信号以及至少一位的^r测信号,其中,当该第一装置送出一第二数据段的该串行数据以及该响应信号后,读取该数据线以得到该检测信号,并依据该检测信号以及该数据线的该默认值,决定该串行数据是否正确。
7. 如权利要求6所述的数据传输系统,其中,还包括一时钟信号线,耦接至该第一装置以及该第二装置,用以传送一时钟信号,以同步该第一装置与该第二装置。
8. 如权利要求6所述的数据传输系统,其中,若该^r测信号与该默认值相同时,该第一装置判定该串行数据是正确,传送下一串行数据至该第二装置;以及若该检测信号与该默认值相反时,该第一装置判定该串行数据是错误。
9. 如权利要求6所述的数据传输系统,其中,该比特流更包含一第三数据段,位于该第一数据段及该第二数据段间,且包括至少一个位,用以表示读/写状态。
10. —种数据传输的检错方法,适用于一数据传输系统,该数据传输系统包括一第一装置、 一第二装置与一数据线,该方法包括下列步骤传送一时钟信号,用以同步该第一装置与该第二装置;根据该时钟信号,由该第 一装置接收至少 一 串行数据;在接收该串行数据后,接收一响应信号;以及当接收该响应信号后,该第一装置读取该数据线以得到一读取值,并依据该响应信号、该读取值以及该数据线的一默认值,决定该串行数据是否正确。
11. 如权利要求IO所述的方法,还包括若该响应信号与该默认值相反且该读取值与该默认值相同时,判定该串行数据是正确,传送下一串行数据;以及若该读取值与该默认值相反时,该第一装置判定该串行数据是错误。
12. 如权利要求11所述的方法,其中,若该读取值与该默认值相反时,该方法还包括传送一重传信号,用以通知该第二装置重传该串行数据,其中,该重传信号的值不等于该默认值;以及当该第二装置接收到该重传信号时,重传该串行数据。
全文摘要
一种数据传输的错误检测方法,适用于包括一第一装置、一第二装置与一数据线的一数据传输系统。首先,传送一时钟信号,用以同步第一装置与第二装置。接着,根据时钟信号,由第一装置传送至少一串行数据至第二装置。在第一装置送出串行数据后,传送一响应信号至第二装置。之后,当送出响应信号后,第一装置读取数据线以得到一读取值,并依据读取值以及数据线的一默认值,决定该串行数据是否正确。
文档编号H04L1/00GK101488825SQ20081000400
公开日2009年7月22日 申请日期2008年1月16日 优先权日2008年1月16日
发明者陈振德 申请人:宏达国际电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1