一种以DPRAM做媒介实现数据软交换通信的控制方法转让专利

申请号 : CN200510030806.6

文献号 : CN1758627B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李焕炀周畅

申请人 : 上海微电子装备有限公司

摘要 :

本发明公开了一种以DPRAM做媒介实现数据软交换通信的控制方法,其特征在于:使用了DPRAM作为数据软交换的媒介。有益效果为不仅实现和提高了不同总线系统间的高速实时数据交换的控制效果,而且还保证了系统数据软交换控制的实时性和准确性。

权利要求 :

1.一种以DPRAM做媒介实现数据软交换通信的控制方法,

其特征在于包括以下步骤:

1)由一总线系统A利用双端口随机存储器DPRAM作为不同总线系统的交换媒介发起对另一总线系统B的数据软交换通信;

2)对数据报文设置六个域:所有权控制域即Owner域、状态域即Status域、报文长度域即Length域、要求应答域即NeedReply域、返回状态域即ReturnState域和数据域即Data域;其中Owner域是表明DPRAM的读写控制权;这里的读写控制权有A总线系统或B总线系统,Status域表明DPRAM所处控制状态,Status域有空闲Idle、繁忙Busy和完毕Ready三种控制状态;Length域表明数据包中单个报文的长度;NeedReply域表明数据包的报文交换过程中是否需要接收方返回应答的信息;ReturnState域表明软交换应答数据包报文的报文接收状态的信息;Data域存储软交换发送数据形成的报文内容和报文应答的返回信息内容;

3)A总线系统查询DPRAM中的Owner域是否为A总线系统控制状态,若Owner域是A总线系统控制状态,则跳转到4;若Owner域不是A总线系统控制状态,则继续查询Owner域的控制状态;

4)A总线系统在DPRAM中写数据包第i个报文内容,其中i≤n,i为数据包的报文序号,n为数据包的报文个数;

5)A总线系统在DPRAM中写报文报头的Status域、Length域、NeedReply域,最后将Owner域写为B总线系统控制状态,A总线系统对B总线系统发出请求B总线系统接收数据的中断;

6)B总线系统查询DPRAM中的Owner域是否为B总线系统控制状态,若Owner域是B总线系统控制状态,则跳转到7;若Owner域不是B总线系统控制状态,则继续查询Owner域的控制状态;

7)B总线系统在DPRAM中写数据包第i个报文内容;

8)B总线系统在DPRAM的Data域中写入应答报文内容,将报头写在DPRAM的Status域、Length域、ReturnState域中,最后将Owner域写为A总线系统控制状态,B总线系统对A总线系统发出数据已经接收的应答中断;

9)A总线系统查询DPRAM中的Status域是否为Ready状态,若Status域中的状态为Busy状态,则A总线系统继续发起数据软交换通信;若Status域中的状态为Ready状态,则跳转到10;

10)A总线系统结束数据软交换通信;

其中,Idle状态是A总线系统和B总线系统初始化后的状态,该Status域处于Idle状态时,A总线系统和B总线系统都能够发起数据软交换,但有发起方优先的原则,处于该状态下,A总线系统或B总线系统在对DPRAM进行读写前,要先将Owner域写为本方控制,在完成对DPRAM报文内容和除Owner域以外的域进行读写后,才能在Owner域将DPRAM的控制权交给对方;Busy状态表明A总线系统或B总线系统正在进行多报文传送,多报文传送的数据包未传输交换完毕,还需要继续进行软交换,不能接收对方对DPRAM的写控制,即不能接收对方发起的通信数据包或应答数据包,只能接收未发送完数据包的总线系统继续发起的数据包;Ready状态表明单报文的数据包和多报文的数据包已经传输交换完毕,可以接收下一个数据包或对方的通信数据包和应答数据包。

2.如权利要求1所述的以DPRAM做媒介实现数据软交换通信的控制方法,其特征在于:所述Owner域在被发送或应答的报文的报头中,Owner域有a、b两种控制状态,分别对应A总线系统和B总线系统对DPRAM读写的控制所有权,若Owner域的状态为a,则A总线系统对DPRAM享有读写控制权,是由B总线系统控制写入;若Owner域的状态为b,则B总线系统对DPRAM享有读写控制权,是由A总线系统控制写入。

3.如权利要求1所述的以DPRAM做媒介实现数据软交换通信的控制方法,其特征在于:所述Status域,通过不同总线系统对该域中的值的读写进行控制的方法,实现了不同总线系统对DPRAM的多次读写状态控制,该读写状态控制表明了多报文发送的状态,该Status域在被发送或应答的报文的报头中。

4.如权利要求1所述的以DPRAM做媒介实现数据软交换通信的控制方法,其特征在于:通过对所述Length域的读写进行控制,不同的总线系统给发送的对方传递被传递报文的数据长度;该Length域在被发送或应答的报文的报头中;Length域的长度单位是Bytes、Words或32bits的DWords,或将该Length域的长度定义为需要进行软交换的数据包的长度。

5.如权利要求1所述的以DPRAM做媒介实现数据软交换通信的控制方法,其特征在于:所述NeedReply域表明发起数据软交换一方是否需要对方作出应答,回复本方发起的数据交换。

6.如权利要求1所述的以DPRAM做媒介实现数据软交换通信的控制方法,其特征在于:所述ReturnState域给报文发送方显示报文接收的状况,该ReturnState域在应答的报文的报头中。

说明书 :

技术领域

本技术属于工业控制、数据通信领域,尤其涉及一种利用DPRAM(双端口随机存储器)缓存空间进行软交换,实现在不同数据总线上进行数据通信的控制方法。

背景技术

在通讯领域,对于不同的总线控制技术,其总线控制的方法各有不同,因而不能直接实现数据交换,所以需要一个交换数据的方法,通过某种媒介或时序转换方法,实现不同总线系统的数据交换和实时通信,但现有技术使用时序转换的方法使得数据交换应用起来很困难,它需要有硬件支持,将不同总线的时序转化成双方都能识别的时序,在读写时序上不能很好地兼容不同总线系统,况且,由于不同总线系统的读写控制周期不同,实现起来非常复杂,即使实现了这两种总线系统的数据,对于第三种总线控制技术又无法兼容已经设计好的时序转换。因此需要设计一种利用硬件做媒介,通过设计控制模块实现不同总线系统的数据软交换。

发明内容

本发明需要解决的技术问题在于提供一种利用双端口随机存储器DPRAM缓存空间进行软交换,实现在不同数据总线上进行数据通信的控制方法。
本发明的技术方案包括以下步骤:
1)由一总线系统A利用双端口随机存储器DPRAM作为不同总线系统的交换媒介发起对另一总线系统B的数据软交换通信;
2)对数据报文设置六个域:所有权控制域即Owner域、状态域即Status域、报文长度域即Length域、要求应答域即NeedReply域、返回状态域即ReturnState域和数据域即Data域,其中Owner域是表明DPRAM的读写控制权;这里的读写控制权有A总线系统或B总线系统,Status域表明DPRAM所处控制状态,Status域有空闲Idle、繁忙Busy和完毕Ready三种控制状态;Length域表明数据包中单个报文的长度;NeedReply域表明数据包的报文交换过程中是否需要接收方返回应答的信息;ReturnState域表明软交换应答数据包报文的报文接收状态的信息;Data域存储软交换发送数据形成的报文内容和报文应答的返回信息内容;
3)A总线系统查询DPRAM中的Owner域是否为A总线系统控制状态。若Owner域是A总线系统控制状态,则跳转到4;若Owner域不是A总线系统控制状态,则继续查询Owner域的控制状态;
4)A总线系统在DPRAM中写数据包第i个报文内容其中i≤n,i为数据包的报文序号,n为数据包的报文个数;
5)A总线系统在DPRAM中写报文报头的Status域、Length域、NeedReply域,最后将Owner域写为B总线系统控制状态,A总线系统对B总线系统发出请求B总线系统接收数据的中断;
6)B总线系统查询DPRAM中的Owner域是否为B总线系统控制状态,若Owner域是B总线系统控制状态,则跳转到7;若Owner域不是B总线系统控制状态,则继续查询Owner域的控制状态;
7)B总线系统在DPRAM中写数据包第i个报文内容;
8)B总线系统在DPRAM的Data域中写入应答报文内容,将报头写在DPRAM的Status域、Length域、ReturnState域中,最后将Owner域写为A总线系统控制状态,B总线系统对A总线系统发出数据已经接收的应答中断;
9)A总线系统查询DPRAM中的Status域是否为Ready状态,若Status域中的状态为Busy状态,则A总线系统继续发起数据软交换通信;若Status域中的状态为Ready状态,则跳转到10;
10)A总线系统结束数据软交换通信。
上述A和B字母并无特殊,只是表示不同总线系统的代码,或用其他字母表示不同的总线系统。
为了实现不同总线系统对该公共交换空间DPRAM的所有权控制,在DPRAM中定义了所有权控制域Owner域,通过不同总线系统对该域中的值的读写进行控制的方法,实现了不同总线系统对DPRAM的读写控制,该控制域在被发送或应答的报文的报头中。Owner域有a、b两种控制状态,分别对应A总线系统和B总线系统对DPRAM读写的控制所有权。若Owner域的状态为a,则A总线系统对DPRAM享有读写控制权,是由B总线系统控制写入;若Owner域的状态为b,则B总线系统对DPRAM享有读写控制权,是由A总线系统控制写入。
为了实现不同总线系统通过对DPRAM的多次读写,用多报文连续发送一个完整的数据包,需要在DPRAM中定义状态控制域Status域,通过不同总线系统对该域中的值的读写进行控制的方法,实现了不同总线系统对DPRAM的多次读写状态控制,该读写状态控制表明了多报文发送的状态,该Status域在被发送或应答的报文的报头中。Status域有Idle、Busy和Ready等三种控制状态,这三种状态的意义是:
a.Idle状态是A总线系统和B总线系统初始化后的状态,该控制域处于Idle状态时,A总线系统和B总线系统都能够发起数据软交换,但有发起方优先的原则,处于该状态下,A总线系统或B总线系统在对DPRAM进行读写前,要先将Owner域写为本方控制,在完成对DPRAM报文内容和除Owner域以外的域进行读写后,才能在Owner域将DPRAM的控制权交给对方。
b.Busy状态表明A总线系统或B总线系统正在进行多报文传送,多报文传送的数据包未传输交换完毕,还需要继续进行软交换。不能接收对方对DPRAM的写控制,即不能接收对方发起的通信数据包或应答数据包,只能接收未发送完数据包的总线系统继续发起的数据包。
c.Ready状态表明单报文的数据包和多报文的数据包已经传输交换完毕。
可以接收下一个数据包或对方的通信数据包和应答数据包。
为了表明每个报文中传送数据的长度,定义了一个数据长度域Length域,通过对该域的读写进行控制的方法,不同的总线系统给发送的对方传递被传递报文的数据长度。该数据长度域在被发送或应答的报文的报头中。Length域是实现数据软交换的报文内容的长度,该长度的单位可以是Bytes,Words或DWords(32bits)。在实际设计实现时,也可以将该域定义为需要进行软交换的数据包的长度。
为了方便实现双工通信和单工通信的可控,在进行数据软交换的报文报头中定义了是否需要应答的控制域NeedReply域,用于控制当前报文是否需要应答报文回复。NeedReply域是表明发起数据软交换一方是否需要对方作出应答,回复本方发起的数据交换。
为了表明报文数据接收的状态,在报文发送的对方应答的报文中定义了应答状态域ReturnState域,它给报文发送方显示了报文接收的状况,该应答状态域在应答的报文的报头中。ReturnState域是反映软交换应答数据包报文的报文接收状态的信息。
给报文定义了数据域Data域,它是要实现不同总线系统软交换的数据,是报文发送和应答的主要内容。Data域是软交换发送数据形成的报文内容和报文应答的返回信息内容。
该方法将双中断机制运用在对DPRAM的读写触发,从而实现全双工通信设计,实现了两个不同总线系统的数据软交换功能。一个中断是由A总线系统给B总线系统发出的,是在A总线系统对B总线系统进行数据软交换时给出的触发信号,或者是在B总线系统给A总线系统进行数据软交换后,A总线系统给B总线系统发出的应答触发信号;另一个中断是由B总线系统给A总线系统发出的,是在B总线系统对A总线系统进行数据软交换时给出的触发信号,或者是在A总线系统给B总线系统进行数据软交换后,B总线系统给A总线系统发出的应答触发信号。
本发明的有益效果是,与现有技术相比,由于使用了DPRAM作为数据软交换的媒介,不仅实现和提高了不同总线系统间的高速实时数据交换的控制效果,而且还保证了系统数据软交换控制的实时性和准确性。

附图说明

图1是本发明的系统流程图;
图2-图4是本发明实施例的数据软交换流程图。
具体实施
以下结合附图和具体实施例对本发明作详细说明。
结合图1到图4,本发明的具体实施例如下:
以一控制系统为例,Driver(驱动器)的Power PC(一种微处理机)系统的VME(Versas Module Eurocard,IEEE标准)总线与Firmware的DSP(数字信号处理器)系统的TI-DSP内部总线间的高速实时数据软交换通信的技术难题,运用本发明所述的软交换技术方法能够成功实现这一数据交换功能。本案例中的A总线系统是Driver运行在VME总线上PowerPC,B总线系统是Firmware运行在TI-DSP内部总线上的DSP,它们之间的数据软交换具体流程如下所述。
(1)A对B发送数据进行数据软交换的流程,A发起数据交换时写入数据包报文的过程如图2。
假设由A总线系统先发起数据软交换,则在DPRAM中的Owner域控制权被初始化时,应初始化为a(DPRAM交换区的读写控制权为A总线系统)。A总线系统首先检查Owner域的状态是否是由A总线系统来控制的,若不是,则继续等待;若是,则写数据包第i个报文内容其中i≤n,i为数据包的报文序号,n为数据包的报文个数,然后分别写数据包报头中Status域、Length域、NeedReply域,再将Owner域写为B总线系统控制状态,接着写入A总线系统对B总线系统的中断,并等待B总线系统对A总线系统的应答报文中断,收到应答报文中断后,查询Status域是否为Ready状态,是则结束数据交换,否则,继续发送数据包报文。
(2)B总线系统接收数据报文的过程,B总线系统接收数据报文的过程如图三。
B总线系统相应A总线系统发出的发送数据包报文中断,查询Owner域是否为B总线系统控制状态,若不是,则B总线系统发送应答数据包报文,告知接收不正确,请求重新发送;若是,则读取A总线系统发送的数据包报文。然后,给A总线系统写入应答数据报文及其中断。接着,查询Status域的状态是否为Ready状态,若是,结束数据交换;若不是,继续接收数据包报文。
(3)B总线系统应答A总线系统的过程,B总线系统应答A总线系统的过程如图4所示。
B总线系统在接收完A总线系统数据包报文后,在DPRAM中的Data域中写入应答报文的内容,再在DPRAM中的Length域中写入应答报文长度,又在ReturnState域中写入应答状态,然后,给A总线系统写入应答中断。最后,查询Status域中的状态是否为Ready域,若是,则结束数据交换;若不是,则继续查询接收数据包报文。
虽然已公开了本发明的优选实施例,但本领域技术人员将会意识到,在不背离权利要求书中公开的本发明的范围的情况下,任何各种修改、添加和替换均属于本发明的保护范围。