串行通信方法

文档序号:6416786阅读:271来源:国知局
专利名称:串行通信方法
技术领域
本发明涉及一种通信方法,特别涉及一种可提高串行通信效率的通信方法。
所谓串行通信是指数据在一根线路上一位元接着一位元依序传送的通信方式,而这种方式已广泛运用于通信产品中,成为一种很重要的技术。一般而言,通信的装置间会遵守一定的协议,来决定在进行通信时哪一个装置可以通信以及在何时通信。简言之,这些协议可视作在具有相似功能的通信装置间,关于数据通行程序以及传输规则等的指令集。
传统上的串行通信的流程如

图1所示。当两个处于点对点通信状态下的装置间欲传送数据时,装置A会先发送一个先行的命令给装置B以寻求双方的连通,如步骤102所示。经过数个时脉振荡周期之后先行命令被传送出去,如步骤104所示,而装置A随即暂停一切动作进入等待的状态。此时,依据不同的设定各个装置会有不同的闲置时间112,当装置B收到由装置A所传来的先行命令时,会通过串行端回馈一个确认信号(ACK)给装置A以确定两装置间通信关系的建立,如步骤106所示。接着装置A将在步骤108处判断是否收到确认信号,若在闲置时间内装置A接收到了由装置B所传来的确认信号则表示双方的通信已然建立,之后流程将进入步骡108,装置A将开始发送所欲传递的数据给装置B。若在闲置时间内装置A并未接收到由装置B所传来的确认信号ACK,则表示双方的通信尚未建立,此时流程将回到步骤102,装置A会重发一个先行命令给装置B并重复上述的动作,直到双方的通信关系建立为止。
由于串行通信是以双工的方式工作,也就是说当装置A向装置B发送命令时,装置B也可能同时向装置A发送命令。由于当装置A即装置B在发送完信号后会同时进入闲置状态并等待对方的确认信号,如此使得通信的程序陷入死结(dead lock)而导致通信的失败,此状况即所谓的总线竞争。假若装置A和装置B有相同的闲置时间,当双方结束第一次失败的等待后,即便是重新发出先行命令,依然会因为发出命令的时间相同而陷入第二次的死结,如此总线竞争的状态将永远无法解脱。
图2A与图2B表示了传统上通过给定两装置不同闲置时间以解决总线竞争的方法。参见图2A以装置A为例,首先在步骤201处发这一个先行命令给装置B,经过如步骤203所示的几个时脉周期的先行命令发送时间后,装置A将通过串行端接收由装置B所发出的确认信号,如步骤205所示。由于此时装置A与装置B同时传送了先行命令而造成了总线竞争,因此在步骤207处装置A将不会收到任何确认信号。接着装置A在步骤209处清除自身所发出的先行命令,再在步骤211处清除由装置B所接收到的先行命令,然后如步骤213所示等待Idle1的闲置时间。假定装置A的闲置时间Idle1比装置B的闲置时间Idle21(见图2B)来的短,当装置A进入步骤215重新发送先行命令给装置B时,由于装置B仍处于闲置状态,故不会发生总线竞争的情形。接着如步骤217所示,装置A等待由装置B所发送的确认信号,并在步骤219处接收到该确认号后,再进入步骤221传送后续的数据包,到此时双方面的通信即成功建立。至于装置B则等候装置A的数据发送完毕后再行传送自身的数据。
图2B表示了在上述排除总线竞争的方法下装置B传输数据的流程。首先在步骤202处发送一个先行命令给装置A,经过如步骤204所示的几个时脉周期的先行命令发送时间后,装置B将通过串行端接收由装置A所发出的确认信号,如步骤206所示。在步骤208处判断装置B是否收到任何确认信号,而由于此时存在总线竞争的情形,装置B将不会收到任何确认信号。接着装置B在步骤210处清除自身所发出的先行命令,再在步骤212处清除由装置A所接收到的先行命令,然后如步骤214所示等待Idle2的闲置时间。依据先前的假定装置B的闲置时间Idle2比装置A的闲置时间Idle1(见图2A)来的长,在装置B结束闲置前会收到来自装置A的先行命令,并配合装置A完成数据传输的动作。当装置A的数据传输完毕后,装置B进入步骤216重新发送先行命令给装置A时,接着如步骤218所示,装置B等待由装置A所发送的确认信号,并在步骤220处接收到该确认号后,再进入步骤222传送后续的数据包,至此双方面的通信即告完成。
上述的方法在解决总线竞争问题时,必须放弃两个进行点对点通信的装置间第一次寻求通信周期中所有的命令,而需等到第二次寻求通信的周期中才能够建立双方的连接。如此当发生总线竞争时这样的方法就显的没有效率,因此亟需提出一种新的方法来有效的解决总线竞争的问题,并提高串行通信间的效率。
本发明的目的为在提供一种串行通信的方法,用以解决当两个装置进行点对点通信时所遭遇的总线竞争问题,并通过本发明提高串行通信在遭遇总线竞争时的传输效率。
本发明提出一种预先区分通信装置传输数据优先顺序以克服总线竞争的串行通信方法,该方法通过对通信装置预先给定优先等级的步骤,来规范发生总线竞争时的串行通信的秩序。
首先将两个进行点对点通信的装置区分出数据传递时优先顺序。当发生总线竞争时,优先等级较高的装置会将优先等级较低的装置的命令接收下来后再置之不理,并等持对方对该命令的回应。而优先等级较低的装置会配合挂起自身的命令,并给予优先等级较高的装置一个确认信号。当优先等级较高的装置收到确认信号后,会开始传送数据数据给对方,等其数据数据传送完毕后,优先等级较低的装置会重新发送自身的命令并传递完其所欲发送的数据。
图1为传统的串行通信流程示意图。
图2A为传统中克服总线竞争的串行通信方法的流程示意图。
图2B为传统中克服总线竞争的串行通信方法的流程示意图。
图3A为本发明中优先通信装置的串行通信方法流程示意图。
图3B为本发明中非优先通信装置的串行通信方法流程示意图。
图4A为已知技术的串行通信时脉图。
图4B为本发明的串行通信时脉图。
为了改善传统的串行通信方法面对总线竞争时必须放弃第一次先行命令的时脉周期的缺点,本发明提出一种预先给定装置通信优先等级的方式,以使得通信双方在发送第一次先行命令时即可完成连通。通过以下所述的实施例,将对本发明的精神与实施方法做一更具体的描述。
预先决定两个进行点对点通信的装置A与装置B,其中一个装置在发生总线竞争的情况下,其命令与数据必须优先传送完毕后,再进行另一装置命令与数据的传送。假定装置A为所有数据与命令必须优先传送的第一优先装置,而装置B为稍后传送数据与命令的第二优先装置。如图3A所示,装置A在步骤302处传送一个第一优先命令(即由第一优先装置所发送的先行命令)给装置B。接着经过如步骤304所示大约数个时脉周期的第一优先命令发送时间后,装置A将通过串行端接收由装置B所发出的确认信号,如步骤306所示。由于装置B在装置A发送出第一优先命令的同时亦发出一个第二优先命令(即由第二优先装置所发送的先行命令),于是造成了总线竞争的情况。此时装置A在步骤308处判断其所收到的信号。一般而言,当装置A可以收到一种ACK(06h)的信号,此信号即为来自装置B的确认信号,代表着装置B已正确地收到了来自装置A的第一优先命令。或者装置A会收到一种NAK(15h)的信号,代表着装置B虽然收到但不能识别来自装置A的命令。若此时装置A所收刮的信号既非ACK(06h)亦非NAK(15h),即表示装置A与装置B问发生了总线竞争的情形。由于装置A的命令已被指定必须先行完成,所以装置A会在步骤310处直接略过由装置B所传送来的第二优先命令并等待来自装置B的确认信号。当装置A在步骤314处接收到来自装置B所发出的第二确认信号(即由第二优先装置所发送的确认信号)即进入步骤316传送后续的数据包(Package),亦即表示装置A通信状态已成功的建立。
参照图3B所示,图中显示了被设定成第二优先装置的装置B,在配合装置A优先完成数据传输后,接着传送自身数据的通信流程。装置B在步骤301处传送一个第二优先命令(即由第二优先装置所发送的先行命令)给装置B。接着经过如步骤303所示大的数个时脉周期的第一优先命令发送时间后,装置B将通过串行端接收由装置A所发出的确认信号,如步骤305所示。由于装置B与装置A间发生了总线竞争,因此装置B在步骤307处必不会收到由装置A所传来第一确认信号。再因装置A的命令必须先于装置B的命令被执行,装置B会在步骤309处配合装置A的动作清除自身的先行命令,接着响应第一优先命令回馈一个第二确认信号给装置A,如步骤311所赤。当装置B发送出第二确认信号之后即进入闲置状态,如步骤313,一直等待到装置A所有欲传送的数据传输完毕后,再进入步骤315重发第二优先命令给装置A。然后如步骤317所示,装置B会等待由装置A所传送来的第一确认信号。当收到由装置A传来的确认信号后,即步骤319,装置才将其原本所欲传送给装置A的数据发送出去而完成通信,如步骤321所示。
当两个进行点对点通信的装置若发生总线竞争,其间第一大的联络即可因本发明的预先给定通信优先顺序的方式而避免通信时脉周期的浪费。通过图4A与图4B的比较,将可更清楚显现本发明的优点。
图4A为传统中克服总线竞争的方法。在区段401处,装置A与装置B同时发送先行命令给对方,假定此区段花费一个时脉周期。区段403表示经过一个周期后,装置A与装置B通过自身的串行端接收到对方所发出的先行命令,并判定总线竞争发生。根据已知技术的作法,此时装置A与装置B同时会进入闲置状态。假定装置A的闲置周期405较装置B的闲置周期407为短,因此当装置A走完自身的闲置周期(Udke1)时,装置B仍会处于闲置状态。接着装置A在区段409处再发送一个先行命令给装置B,而此时装置B正处于闲置状态下,故能够顺利地接收到该先行命令。接着装置A在区段411处等待确认命令,而装置B则于此区段发送出确认命令给装置A。最后在区段413处装置A收到了来自装置B的确认信号,而完成了两个装置间的连通。至于从发生总线竞争到通信成功总计需要花费区段405、区段409,与区段411总和的时间。
图4B则为本发明的串行通信方法。假定装置A为第一优先装置,而装置B为第二优先装置。在区段402处装置A与装置B同时发送先行命令给对方,假定此区段花费一个时脉周期。区段404表示经过一个周期后,装置A与装置B通过自身的串行端接收到对方所发出的先行命令并判定总线竞争发生。本发明中由于装置A的命令必须优先完成,因此装置A会直接忽略装置B所发出的先行命令(第二优先命令)并等待由装置B所传来的确认信号(第二优先确认信号),同时装置B会配合装置A挂起自身的命令,并发送一个确认信号给装置A,如区段406所示。接着于区段408处装置A收到由装置B所传来的确认信号(第二优先确认信号),至此即表示双方的通信已成功建立。由图4B中可以知道本发明自总线竞争发生起,至通信成功建立只总共花费区段406的时间。若与图4A的传统通信方式比较,还可节约区段408的时间。
本发明以一较佳实施例说明如上,诸如图4A与图4B中的时脉仅为说明方便的假设值,仅用于藉以帮助了解本发明的实旌,非用以限定本发明的精神。而熟悉此技术者在领悟本发明的精神后,在不脱离本发明的精神和范围内,当可伏些许更动、润饰及等效的替换,因此,保护范围应由所附权利要求书来限定。
权利要求
1.一种串行通信方法,用以提高串行通信效率,其特征在于,该方法至少包含下列步骤给定进行点对点的通信装置数据传输优先顺序,用以区别出第一优先装置与第二优先装置,其中该第一优先装置的优先顺序较第二优先装置为高;当发生总线竞争时,取消由所述第二优先装置所发出的第二优先命令,并响应于所述第一优先装置所发出的第一优先命令,以输出第二优先确认信号给所述第一优先装置;及所述第一优先装置响应由所述第二优先装置所发出的所述第二优先确认信号,并传送所述第一优先装置的数据包至所述第二优先装置。
2.如权利要求1所述的串行通信方法,其特征在于,上述第一优先装置响应由所述第二优先装置所发出的第二优先确认信号,还包含下列步骤重发所述第二优先命令给第一优先装置;所述第一优先装置回应所述第二优先命令而发送第一优先确认信号;及所述第二优先装置响应所述第一优先确认信号,并传送所述第二优先装置数据包至所述第一优先装置。
3.如权利要求1所述的串行通信方法,其特征在于,上述总经竞争是指当所述第一优先装置与所述第二优先装置在互相通信过程中,同时发出所述第一优先命令与第二优先命令,而使得所述第一优先装置与所述第二优先装置同时进入闲置状态。
4.如权利要求3所述的串行通信方法,其特征在于,上述闲置状态是指当所述第一优先装置或所述第二优先装置发送所述第一优先命令或所述第二优先命令后,进入闲置模式,以等待所述第二优先确认信号与所述第一优先确认信号。
5.如权利要求1所述的串行通信方法,其特征在于,上述第二优先确认信号是指当所述第二优先装置收到所述第一优先命令后,所传送给所述第一优先装置的信号。
6.如权利要求1所述的串行通信方法,其特征在于,当上述第一优先装置收到所述第二优先确认信号后,才进行所述第一优先装置的数据包的传输动作。
7.如权利要求2所述的串行通信方法,其特征在于,上述第一优先确认信号是指当所述第一优先装置收到所述第二优先命令后,所传送给所述第二优先装置的信号。
8.如权利要求7所述的串行通信方法,其特征在于,当上述第二优先装置收到所述第一优先确认信号后,才进行所述第二优先装置的数据包的传输动作。
9.如权利要求1所述的串行通信方法,其特征在于,上述第一优先装置的通信内容及程序必须先于所述第二优先装置完成。
10.一种串行通信方法,用以提高串行通信效率,其特征在于,所述方法至少包含下列步骤给定进行点对点的通信装置数据传输优先顺序,用以区别出第一优先装置与第二优先装置,其中所述第一优先装置的优先顺序较第二优先装置为高;当发生总线竞争时,取消由所述第二优先装置所发出的第二优先命令,并响应于所述第一优先装置所发出的第一优先命令,以输出第二优先确认信号给所述第一优先装置;所述第一优先装置响应由所述第二优先装置所发出的所述第二优先确认信号,并传送所述第一优先装置的数据包至所述第二优先装置;重发所述第二优先命令给所述第一优先装置;所述第一优先装置响应所述第二优先命令而发送第一优先确认信号;及所述第二优先装置响应所述第一优先确认信号,并传送所述第二优先装置的数据包至所述第一优先装置。
11.如权利要求10所述的串行通信方法,其特征在于,上述总线竞争是指当所述第一优先装置与所述第二优先装置在互相通信的过程中,同时发出所述第一优先命令与所述第二优先命令,而使得所述第一优先装置与所述第二优先装置同时进入闲置状态。
12.如权利要求11所述的串行通信方法,其特征在于,上述闲置状态是指当所述第一优先装置或所述第二优先装置发送所述第一优先命令或所述第二优先命令后,进入闲置模式,以等待所述第二优先确认信号与所述第一优先确认信号。
13.如权利要求10所述的串行通信方法,其特征在于,上述第二优先确认信号是指当所述第二优先装置收到所述第一优先命令后,所传送给所述第一优先装置的信号。
14.如权利要求13所述的串行通信方法,其特征在于,当上述第一优先装置收到所述第二优先确认信号后,才进行所述第一优先装置的数据包的传输动作。
15.如权利要求10所述的串行通信方法,其特征在于,上述第一优先确认信号是指当所述第一优先装置收到所述第二优先命命后,所传送给所述第二优先装置的信号。
16.如权利要求15所述的串行通信方法,当上述第二优先装置收到所述第一优先确认信号后,才进行所述第二优先装置的数据包的传输动作。
17.如权利要求10所述的串行通信方法,其特征在于,上述第一优先装置的通信内容及程序必须先于所述第二优先装置完成。
18.一种串行通信方法,用以解决串行端间的总线竞争并提高通信效率,其特征在于,所述方法至少包含下列步骤给定进行点封点的通信装置数据传输优先顺序,用以区别出第一优先装置与第二优先装置,其中所述第一优先装置的优先顺序较请第二优先装置为高;敢消由所述第二优先装置所发出的第二优先命令,并响应于所述第一优先装置所发出的第一优先命令,以输出第二优先确认信号给第一优先装置;所述第一优先装置响应由所述第二优先装置所发出的所述第二优先确认信号,并传达所述第一优先装置的数据包至所述第二优先装置;重发所述第二优先命令给所述第一优先装置;所述第一优先装置响应所述第二优先命令而发送第一优先确认信号;及所述第二优先装置响应所述第一优先确认信号,并传送所述第二优先装置的数据包至所述第一优先装置。
19.如权利要求18所述的串行通信方法,其特征在于,上述总线竞争是指当所述第一优先装置与所述第二优先装置在互相通信的过程中,同时发出所述第一优先命令与所述第二优先命令,而使得所述第一优先装置与所述第二优先装置同时进入闲置状态。
20.如权利要求19所述的串行通信方法,其特征在于,上述间置状态是指当所述第一优先装置或所述第二优先装置发送所述第一优先命令或所述第二优先命令后,进入间置模式,以等待所述第二优先确认信号与所述第一优先确认信号。
21.如权利要求18所述的串行通信方法,其特征在于,上述第二优先确认信号是指当所述第二优先装置收到所述第一优先命令后,所传送给所述第一铖先装置的信号。
22.如权利要求21所述的串行通信方法,其特征在于,当上述第一优先装置收到所述第二优先确认信号后,才进行所述第一优先装置的数据包的传输动作。
23.如权利要求18所述的串行通信方法,其特征在于,上述第一优先确认信号是指当所述第一优先装置收到所述第二优先命命后,所传送给所述第二优先装置的信号。
24.如权利要求23所述的串行通信方法,其特征在于,当上述第二优先装置收到所述第一优先确认信号后,才进行所述第二优先装置的数据包的传输动作。
25.如权利要求18所述的串行通信方法,其特征在于,上述第一优先装置的通信内容及程序必须先于所述第二优先装置完成。
全文摘要
本发明提出一种预先区分通信装置传输数据优先顺序,用以克服总线竞争的串行通信方法,该方法包含一种对进行点对点通信的装置预先给定优先等级的步骤。当发生总线竞争时,优先等级较低的装置所发出的命令先被挂起,而优先等级较高的装置所发出的命令则会先行满足。当优先等级较高的装置所欲传送的数据传输完毕之后,再处理优先等级较低的装置所欲传送的数据,以完成整个数据的传输过程。
文档编号G06F13/26GK1271897SQ9911365
公开日2000年11月1日 申请日期1999年4月22日 优先权日1999年4月22日
发明者赖振兴, 潘邕, 钱毅锋 申请人:英业达集团(南京)电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1