数据传输电路的制作方法

文档序号:6754332阅读:166来源:国知局
专利名称:数据传输电路的制作方法
技术领域
本发明涉及使用FIFO(先入先出)缓冲器进行数据传输的数据传输电路。
背景技术
作为这种现有技术,有专利文献1特开2003-23469号公报。
图2是使用FIFO缓冲器的现有的数据传输电路的结构图,是组合在用于例如,在PHS(个人手机系统)和笔记本型个人电脑(以下称为个人电脑)之间传输数据的数据通信卡。
这种数据传输电路,例如是能把数据从连接在图左侧的PHS传输到连接在图右侧的个人电脑的那种,有FIFO存储器1、计数器2、缓冲器3和选择器4。
FIFO存储器1,根据写入控制信号WEN依次存入写入数据WDT,并根据读出控制信号REN从原来的开始依次读出数据,把其作为读出数据RDT输出。计数器2是把FIFO存储器1内存储的数据数作为计数值CNT输出的装置,由升降计数器构成,根据写入控制信号WEN增大计数值CNT,根据读出控制信号REN减少计数值CNT。
缓冲器3根据状态读出信号SR1,把计数器2输出的计数值CNT作为计数值WCT输出。选择器4根据状态读出信号SR2,选择FIFO存储器1的读出数据RDT或是选择计数器2的计数值CNT,把它作为数据DAT输出。
在这样的数据传输电路里,当产生应从PHS一侧传输到个人电脑一侧的数据的情况下,PHS一侧根据状态读出信号SR1读出计数器2的计数值CNT,确认能够写入的数据数后,把写入数据WDT写入到FIFO存储器1。另一方面,个人电脑一侧根据状态读出信号SR2周期地读出计数器2的计数值CNT,确认能读出的数据数后,读出FIFO存储器1内的数据。这样,进行自PHS一侧到个人电脑一侧的非同步数据传输。
然而,上述数据传输电路存在着如下问题从PHS一侧将写入数据WDT写入FIFO存储器1时,从个人电脑一侧读出的计数器2的计数值CNT会读出不确定的计数值CNT,使读出的读出数据RDT比实际的存储数据多。
同样存在如下问题当在个人电脑一侧从FIFO存储器1读出读出数据RDT时,从PHS一侧读出计数器2的计数值CNT时会读出不确定的计数值CNT,写入了超出空白区域的写入数据WDT。

发明内容
本发明旨在提供一种数据传输电路,能预防不确定计数值CNT所引起的数据传输误动作、可靠地传输数据。
本发明的数据传输电路,其特征在于包括FIFO存储器,用于根据由第一装置供给的数据和写入控制信号依次存储该数据,并根据由第二装置供给的读出控制信号按其存储顺序读出该被存数据;计数器,通过按照上述写入控制信号增大其计数、按照上述读出控制信号减少其计数,输出存储在上述FIFO存储器内数据的计数;第一冲突检测单元,当上述第二装置进行从上述FIFO存储器的数据读出时,在检测出用于从上述第一装置读出上述计数器的计数值的第一状态读出信号的情况下,不论该计数器计数值的大小如何,都将显示该FIFO存储器全满的值输出到该第一装置;以及第二冲突检测单元,当上述第一装置进行向上述FIFO存储器的数据写入时,在检测出用于从上述第二装置读出上述计数器的计数值的第二状态读出信号的情况下,不论该计数器计数值的大小如何,都将显示该FIFO存储器全空的计数值输出到该第二装置。
在本发明中,第一冲突检测单元在第二装置进行从FIFO存储器的数据读出时,检测到用于从第一装置读出计数器的计数值的状态读出信号,就不论该计数器的计数值的大小如何,都向第一装置输出表示FIFO存储器全满的值,而第二冲突检测单元在第一装置进行向FIFO存储器的数据写入时,检测到用于从第二装置读出计数器的计数值的状态读出信号,就不论该计数器的计数值的大小如何,都向第二装置输出表示FIFO存储器全空的值。
因此在发生存取冲突的情况下,第一装置判断FIFO存储器全满,则抑制对该FIFO存储器的写入。以及,第二装置判断FIFO存储器全空,则抑制从该FIFO存储器的读出。因此,具有可防止由于不确定的计数值所引发的数据传输误动作、能进行可靠的数据传输的效果。


图1是显示本发明实施例的数据传输电路的结构图。
图2是现有的数据传输电路的结构图。
图3是显示图1中的冲突检测单元20动作例的信号波形图。
具体实施例方式
本发明的上述及其它目的以及新颖的特征,在下面参照附图结合对最佳实施例的说明进行阅读,就能完全理解。但是,这些图仅用作解说,并不作为本发明范围的限定。
图1是显示本发明实施例的数据传输电路的结构图。凡与图2共同的构件都使用相同的符号。
该数据传输电路,例如,是用于从与图左侧连接的第一装置(如PHS)向与右侧连接的第二装置(如个人电脑)传输数据的。除了与图2同样的FIFO存储器1、计数器2、缓冲器3和选择器4之外,还包括冲突检测单元10和冲突检测单元20。
FIFO存储器1根据写入控制信号WEN依次存入由PHS一侧供给的写入数据WDT,根据由个人电脑一侧供给的读出控制信号REN从原有的开始依次读出、作为读出数据RDT输出。计数器2把存储在FIFO存储器1内的数据数作为其计数值CNT输出,它由升降计数器构成,当供给写入控制信号WEN时计数值CNT就仅增1,当供给读出控制信号REN时计数值CNT就仅减1。
缓冲器3根据从PHS一侧供给的状态读出信号SR1,输出冲突检测单元10控制的计数值WCT。以及选择器4根据从个人电脑一侧供给的状态读出信号SR2选择FIFO存储器1的读出数据RDT或由冲突检测单元20控制的计数值RCT,把其作为数据DAT输出。
冲突检测单元10是这样的装置例如在个人电脑一侧正在从FIFO存储器1读出读出数据RDT时,检测出从PHS一侧将要读出计数器2的计数值CNT时的存取冲突,为了禁止该PHS一侧向FIFO存储器1写入,输出表示全满状态的计数值WCT。另一方面,冲突检测单元20是这样的装置例如,在PHS一侧正在对FIFO存储器1写入写入数据WDT时,检测出当个人电脑一侧将要读出计数器2的计数值CNT时的存取冲突,为了禁止个人电脑一侧从FIFO存储器1读出,输出表示全空状态的计数值RCT。
冲突检测单元10包括用于保持从计数器2输出的计数值CNT的寄存器11,用于使PHS一侧供给的状态读出信号SR1只延迟预定时间的两级延迟单元(DLY)12和13,以及用于保持从个人电脑一侧供给的读出控制信号REN的触发器(以下称FF)14和15。
状态读出信号SR1在被提供到延迟单元12的同时,也被提供到FF14的时钟端C。将延迟单元12输出的延迟信号DL1提供到延迟单元13的输入端和寄存器11的时钟端C,将延迟单元13输出的延迟信号DL2提供到FF15的时钟端C。延迟信号DL2再经反相器16反相后提供给双输入逻辑与门(以下称AND)17的一个输入端。此AND17的另一输入端提供的是延迟信号DL1。而AND17输出的置位信号ST1被提供到FF14、15的置位端S。
FF14、15分别在延迟信号DL1、DL2的脉冲后沿的定时内保持提供给数据端D的读出控制信号REN,并从输出端Q输出,当把″H″的电平置位信号ST1供给置位端S时,保持内容被强制地置于″H″。FF14、15的输出端Q连接在双输入的逻辑与非门(以下称NAND)18的输入一侧。该NAND18输出的置位信号SET被提供到寄存器11的置位端S。
寄存器11在提供给时钟端C的延迟信号DL1的脉冲后沿的定时内保持计数器2的计数值CNT,当将″H″的置位信号SET提供给置位端S时,保持内容的全部二进位被强制地置于″H″。寄存器11的保持内容作为计数值WCT提供到缓冲器3。
冲突检测单元20包括用于保持从计数器2输出的计数值CNT的寄存器21,用于将从个人电脑一侧提供的状态读出信号SR2只延迟预定的时间的两级延迟单元22、23,以及用于保持从PHS一侧供给的写入控制信号WEN的触发器FF24、25,状态读出信号SR2在被提供给延迟单元22的同时,也提供给FF24的时钟端C。延迟单元22输出的延迟信号DL3被提供给延迟单元23的输入端和寄存器21的时钟端C,而延迟单元23输出的延迟信号DL4被提供给FF25的时钟端C。延迟信号DL3再经反相器26反相后被提供给双输入的AND27的一个输入端,而状态读出信号SR2被提供到此AND27的另一输入端。由AND27的输出一侧输出的置位信号ST2提供给FF24、25的置位端S。
FF24、25分别在延迟信号DL1、DL2的脉冲后沿的定时内保持提供给数据端D的写入控制信号WEN,并从输出端Q输出,当把″H″的电平置位信号ST2供给置位端S时,保持内容被强制地置于″H″。FF24、25的输出端Q连接在双输入的NAND28的输入侧,而从该NAND28输出的复位信号RST被提供给寄存器21的复位端R。
寄存器21在时钟端C供给的延迟信号DL3的脉冲后沿的定时内保持计数器2的计数值CNT,当把″H″的置位信号RST提供给复位端R时,保持内容的全部二进位被强制地置于″L″。寄存器21的保持内容作为计数值RCT被提供给选择器4。
图3是显示图1中的冲突检测单元20的动作的一个例子的信号波形图。以下,参照图3说明图1的动作。
图1的时刻t0,完全没有对FIFO存储器1进行存取,从PHS一侧输出的写入控制信号WEN和状态读出信号SR1,以及从个人电脑一侧输出的读出控制信号REN和状态读出信号SR2,全位于″H″。此时计数器2的计数值CNT取为cnt1。由于状态读出信号SR2连续是″H″,延迟信号DL3、DL4也是″H″,AND27输出的置位信号ST2是″L″。如后所述,FF24、25按照状态读出信号SR2的脉冲前沿被置位,FF24、25输出的信号S24,S25也是″H″。因此,NAND28输出的复位信号RST变成″L″,寄存器21内仍原样保持在前一个定时保持着的计数器2的计数值CNT(=cnt0),作为计数值RCT输出。
在时刻t1,为了从个人电脑一侧读出计数器2的内容,把状态读出信号SR2设为″L″。此时,如果PHS一侧不进行对FIFO存储器1的写入动作,则写入控制信号WEN是″H″。由于状态读出信号SR2成为″L″,选择器4选择寄存器21这一侧,从该寄存器21输出的计数值RCT作为数据DAT向个人电脑一侧输出。而且,利用状态读出信号SR2的脉冲后沿,FF24保持着写入控制信号WEN,而由该FF24输出的信号S24仍保持原来的″H″。
在时刻t2,一经过延迟单元22的延迟时间,从该延迟单元22输出的延迟信号DL3就从″H″变成″L″。这样一来,计数器2的计数值CNT(=cnt1)被保持在寄存器21内,通过选择器4作为数据DAT输出。
在时刻t3,一经过延迟单元23的延迟时间,从该延迟单元23输出的延迟信号DL4就从″H″变成″L″。利用延迟信号DL4的脉冲后沿,FF25保持着写入控制信号WEN,该FF25输出的信号S25仍保持原来的″H″。因而,从NAND28输出的复位信号RST保持不变,仍是原来的″L″。保持在寄存器21内的计数器2的计数值CNT(=cnt1),继续作为计数值RCT输出。
在时刻t4,状态读出信号SR2返回″H″,选择器4输出的数据DAT被切换成FIFO存储器1的读出数据RDT。另一方面,AND27输出的置位信号ST2成为″H″,FF24、25被置位。这时,因为FF24、25输出的信号S24、S25已经是″H″,所以没有变化。
在时刻t5,一经过延迟单元22的延迟时间,从该延迟单元22输出的延迟信号DL3就从″L″变成″H″。因此,AND27输出的置位信号ST2成为″L″,在时刻t6,一经过延迟单元23的延迟时间,从该延迟单元23输出的延迟信号DL4从″L″变成″H″。因此,返回与t0相同的状态。
这样,在PHS一侧和个人电脑一侧没有存取冲突的情况下,个人电脑一侧能正确地读出计数器2的计数值CNT。
接着,在时刻t11,为了从个人电脑一侧读出计数器2的内容,把状态读出信号SR2设为″L″。这时,如果PHS一侧不进行对FIFO存储器1的写入动作,写入控制信号WEN为″H″。由于状态读出信号SR2成为″L″,选择器4选择寄存器21一侧,将从该寄存器21输出的计数值RCT作为数据DAT输出。进而,利用状态读出信号SR2的脉冲后沿,写入控制信号WEN被保持在FF24中,而从该FF24输出的信号S24仍是原来的″H″。
在时刻t12,一开始从PHS一侧向FIFO存储器1的写入动作,写入控制信号WEN就伴随该写入动作而成为″L″,计数器2的值被更新了。于是,计数器2的计数值CNT成为不确定(invalid,无效)值。
在时刻t13,一经过延迟单元22的延迟时间,从该延迟单元22输出的延迟信号DL3就从″H″变成″L″。这样,计数器2的计数值CNT(=invalid,无效)被保持在寄存器21内,通过选择器4作为数据DAT输出。
在时刻t14,一经过延迟单元23的延迟时间,此延迟单元23输出的延迟信号DL4就从″H″变成″L″。利用延迟信号DL4的脉冲后沿,写入控制信号WEN被保持在FF25中,该FF25输出的信号S25成为″L″。因而,从NAND28输出的复位信号RST成为″H″。寄存器21内的保持内容被复位成“0”,该“0”被作为计数值RCT输出。在个人电脑一侧,由于读出的计数值RCT是“0”,判断出该FIFO存储器1内不存在数据后,不必进行对该FIFO存储器1的读出动作。但因为个人电脑一侧按一定周期读出计数器2的计数值CNT,所以,如果在下一个读出定时(时限)内没有发生与PHS一侧的冲突,就读出正确的计数值,能够读出保持在该FIFO存储器1中的数据。
在时刻t15,状态读出信号SR2返回″H″,选择器4输出的数据DAT被切换成FIFO存储器1的读出数据RDT。另一方面,从AND27输出的置位信号ST2成为″H″,FF24、25被置位,信号S24、S25成为″H″。
在时刻t16,一经过延迟单元22的延迟时间,从该延迟单元22输出的延迟信号DL3就从″L″变成″H″。这样,从AND27输出的置位信号ST2成为″L″。
在时刻t17,一经过延迟单元22的延迟时间,从该延迟单元23输出的延迟信号DL4就从″L″变成″H″。
在时刻t18,从PHS一侧向FIFO存储器1的写入动作一结束,写入控制信号WEN就成为″H″,计数器2的计数值CNT被更新成为cnt2,返回与t0相同的状态。
另外,冲突检测单元10的动作也和冲突检测单元20的大致相同。只不过在冲突检测单元10中,在个人电脑一侧的FIFO存储器1的读出动作与PHS一侧的计数器2的读出动作发生冲突时,冲突检测单元10会对PHS一侧输出表示FIFO存储器1全满的计数值WCT。
这样,本实施例的数据传输电路所包括的冲突检测单元10、20具有如下功能只有在一侧的装置(例如个人电脑)读出计数器2的计数值CNT的定时的前和后时刻不从另一侧(例如PHS)对FIFO存储器进行存取,才向该一侧的装置输出计数器2的计数值CNT,除此之外,都输出表示不需读出或不能写入的计数值。因此,本实施例的数据传输电路的优点是,能防止因存取冲突而读出不确定的计数值CNT,从而防止发生错误的读写动作。
另外,以上说明的实施例只是一个了解本发明技术内容的例子而已。本发明不应狭义地解释为限于上述的实施例,在本发明权利要求书的范围内,可实施种种变更。这类变更例如有
(a)(本文)已说明了从PHS一侧将数据传输到个人电脑一侧的数据传输电路,用同样的电路也可以进行从个人电脑一侧到PHS一侧的数据传输,(b)进行数据传输的装置,不限于PHS和个人电脑,(c)冲突检测单元10、20的电路结构不限于本例所示。只要能检测对计数器2的同时存取,就能对将要读出该计数器2的计数值CNT的读出装置输出停止数据传输的计数值CNT就同样能适用。
权利要求
1.一种数据传输电路,其特征在于包括先入先出存储器,用于根据由第一装置供给的数据和写入控制信号依次存储该数据,并根据由第二装置供给的读出控制信号按其存储顺序读出该被存数据;计数器,通过按照上述写入控制信号增大其计数、按照上述读出控制信号减少其计数,输出存储在上述先入先出存储器内数据的计数;第一冲突检测单元,当上述第二装置进行从上述先入先出存储器的数据读出时,在检测出用于从上述第一装置读出上述计数器的计数值的第一状态读出信号的情况下,不论该计数器计数值的大小如何,都将显示该先入先出存储器全满的值输出到该第一装置;以及第二冲突检测单元,当上述第一装置进行向上述先入先出存储器的数据写入时,在检测出用于从上述第二装置读出上述计数器的计数值的第二状态读出信号的情况下,不论该计数器计数值的大小如何,都将显示该先入先出存储器全空的计数值输出到该第二装置。
2.如权利要求1所述的数据传输电路,其特征在于上述的第一冲突检测单元包括第一延迟单元,用于延迟上述第一状态读出信号、输出第一延迟信号,第二延迟单元,用于延迟上述第一状态读出信号、输出第二延迟信号,第一保持单元,用于在上述第一状态读出信号的定时中保持上述读出控制信号的状态,第二保持单元,用于在上述第二延迟信号的定时中保持上述读出控制信号的状态,以及第一寄存器,在上述第一延迟信号的定时中保持上述计数器的计数值,并且,当上述第一保持单元和第二保持单元之一或两者保持着显示上述第二装置正在从上述先入先出存储器进行数据读出时,保持表明该先入先出存储器全满的值代之以该计数器的计数值,将其输出到上述第一装置;上述的第二冲突检测单元包括第三延迟单元,用于延迟上述第二状态读出信号、输出第三延迟信号;第四延迟单元,用于延迟上述第三延迟信号、输出第四延迟信号;第三保持单元,用于在上述第二状态读出信号的定时中保持上述写入控制信号的状态;第四保持单元,用于在上述第四延迟信号的定时中保持上述写入控制信号,以及第二寄存器,在上述第三延迟信号的定时中保持上述计数器的计数值,并且,当上述第三保持单元和第四保持单元之一或两者保持着显示上述第一装置正在从上述先入先出存储器进行数据写入时,保持表明该先入先出存储器全空的值代之以该计数器的计数值,将其输出到上述第二装置。
全文摘要
本发明旨在防止因两个装置间的存取冲突而引发的数据传输误动作。其解决的方法是在冲突检测单元10内,当第二装置正在从FIFO存储器1读出数据时,若检测出用于从第一装置读出计数器2的计数值的状态读出信号SR1,则不论计数器2的计数值的大小,都对第一装置输出表示FIFO存储器1全满的值。此外,在冲突检测单元20内,当第一装置向FIFO存储器1写入数据时,若检测出用于从第二装置读出计数器2的计数值的状态读出信号SR2,则不论计数器2的计数值的大小,都对第二装置输出表示FIFO存储器1全空的值。
文档编号G11C7/00GK1627280SQ20041010068
公开日2005年6月15日 申请日期2004年12月8日 优先权日2003年12月12日
发明者品川德明 申请人:冲电气工业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1