CN100361433C - 使用三步通信缓存的通信设备 - Google Patents

使用三步通信缓存的通信设备 Download PDF

Info

Publication number
CN100361433C
CN100361433C CNB031063691A CN03106369A CN100361433C CN 100361433 C CN100361433 C CN 100361433C CN B031063691 A CNB031063691 A CN B031063691A CN 03106369 A CN03106369 A CN 03106369A CN 100361433 C CN100361433 C CN 100361433C
Authority
CN
China
Prior art keywords
data
communication
buffer memory
communication buffer
equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CNB031063691A
Other languages
English (en)
Other versions
CN1441566A (zh
Inventor
李英俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LS Electric Co Ltd
Original Assignee
LG Industrial Systems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Industrial Systems Co Ltd filed Critical LG Industrial Systems Co Ltd
Publication of CN1441566A publication Critical patent/CN1441566A/zh
Application granted granted Critical
Publication of CN100361433C publication Critical patent/CN100361433C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及使用三步通信缓存来临时存储接收到的数据或在串行通信设备与中央处理单元(CPU)之间发送的数据的一种通信设备。为了防止由于串行通信设备和CPU在读/写数据时同步访问通信缓存而导致的错误,允许在系统时钟信号的不同沿对通信缓存进行访问,这样就使两次访问之间有时间差。

Description

使用三步通信缓存的通信设备
技术领域
本发明涉及使用三步通信缓存和数据发送/接收设备的通信设备,或者更具体地说,涉及一种通信设备,它使用了三步通信缓存,其中串行通信设备和中央处理单元(CPU)可以一直访问该三步通信缓存。
背景技术
在串行通信终端设备中使用的、用于通信的大规模集成电路芯片和电路板都具有串行通信设备(例如,通用异步接收器/发送器,简称UART)和用于临时存储数据的通信缓存。这时,提供的通信缓存可以被两个外围设备所访问。外围设备包括:串行通信设备,用于通过通信线与外部设备进行数据的发送/接收;和CPU,用于从串行通信设备接收数据或者处理将通过串行通信设备发送的数据。
发送/接收设备和CPU异步地使用通信缓存,因此可以同时访问通信缓存。不过,这样做不利之处是,当访问数据不完整时会导致读写数据的错误。
下面将详细解释这种错误。
图1A和图1B图示了根据现有技术,只使用一个通信缓存的通信设备的问题。其中图1A图示了数据同步失败的例子,图1B图示了发生不完整数据读取的例子。
图1A图示了串行通信设备100和CPU 200在一个通信缓存300中写数据的例子。此时,写和读都有特定的方向,也就是说,CPU 200将来自通信缓存300的上层数据存储到通信缓存300的下层,并且串行通信设备100从通信缓存300上层到它的下层顺序地读取数据,然后将数据发送到外部设备(图中未画出)。
然而在上述过程中,一旦在串行通信设备100在CPU 200没有完成数据的写操作的情况下读取待发送的数据,或者是在串行通信设备100将新收到的数据存储到通信缓存300之前,由于CPU 200和串行通信设备100的异步而导致处理速度差异CPU 200,对事先存储在通信缓存300中的数据进行了读取的情况下,则数据没有及时更新。也就是说,数据没有进行同步。
图1B图示的例子中,串行通信设备100和CPU 200同步访问通信缓存300中的相同存储区。其中,当串行通信设备100和CPU 200同时访问通信缓存300中的相同存储区时,数据可能被不完全读取。
据此,为了解决在使用一个通信缓存时所产生的问题,就使用了三步通信缓存。
下面将参考附图,详细地解释根据现有技术的使用了三步通信缓存的通信设备和数据的发送/接收方法。
图2是一个结构图,它图示了根据现有技术的三步通信缓存。
如图2所示,该通信设备包括:串行通信设备100,用于以串行方式与外部设备(图中未示出)进行数据的发送/接收;CPU 200,用于访问和处理外部设备的数据,以及处理内部设备的数据;由DOUT1_BUF_PTR、DOUT2_BUF_PTR和DOUT3_BUF_PTR分别指定的、用于临时存储数据的三步通信缓存BUF1、BUF2和BUF3;中断发生器500,用于对CPU200产生中断;以及状态缓存400,用于向CPU 200发送三步通信缓存BUF1、BUF2和BUF3的各自状态。
下面将详细地解释根据现有技术的使用了三步通信缓存的通信设备和数据的发送/接收方法。
每个通信缓存BUF1、BUF2和BUF3都被设置为具有“读”、“写”、“等待”和“未使用”几种状态之一。设置信息存储在状态缓存400中。接着,通信设备利用存储在状态缓存400中的状态信息,为各个通信缓存BUF1、BUF2和BUF3分配指针DOUT1_BUF_PTR、DOUT2_BUF_PTR和DOUT3_BUF_PTR,从而启动了读、写操作。
这样,串行通信设备100与CPU 200之间的处理速度差异以及处理位置的重叠等情况就不会发生,使得它们可以在任何时候访问各自的通信缓存。
下面将详细地解释根据现有技术的使用了三步通信缓存的通信设备和数据的发送/接收方法。
1)接收数据的方法
串行通信设备100选择一个通信缓存BUF1并使之处于数据的“写”状态。选择通信缓存BUF1只是作为例子,也可以选择其他通信缓存如BUF2和BUF3。通信缓存BUF1指定,然后接收的数据被写到通信缓存BUF1。
接着,当数据的接收完成以后,串行通信设备100将通信缓存BUF1的状态改为存储有最近数据的通信缓存所具有的状态。状态信息存储在状态缓存400。
然后,当数据的接收完成后,串行通信设备100将产生一个中断,以通知中断发生器500。中断发生器500将中断信号应用到CPU 200。接着,CPU 200检查状态缓存400,以检查最近的数据存储在哪一个通信缓存中。
如果CPU 200检查状态缓存400,则存有最近数据的通信缓存BUF1的状态转为“读”状态。然后,CPU 200访问转为“读”状态的通信缓存BUF1,读取其中存储的数据。
像这样,在接收和存储最近数据的过程中,由于三个通信缓存BUF1、BUF2和BUF3中至少有一个通信缓存不被使用,因此CPU 200能够在任何时候访问数据而不会在CPU 200与串行通信设备100之间产生干涉。
2)发送数据的方法
与所述接收方法相对照,CPU 200通过状态缓存400检查可读通信缓存,在可读通信缓存BUF3中存储发送数据,并将通信缓存BUF3的状态信息转为待发送数据被存储的状态。然后,串行通信设备100从外部设备收到发送数据的请求,为其中存有数据的通信缓存BUF3分配“可读”状态,并从缓存BUF3读取数据,从而发送到外部设备。
像这样,由于在CPU 200与串行通信设备100之间的操作不会重叠或相互干涉,因此根据现有技术使用了三个通信缓存的通信设备就能够执行可靠的数据处理。
然而,实际上CPU 200总是在当干涉发生或写入发送数据时读取状态缓存400,来检查每个通信缓存的状态信息以发现一个具有相应状态的通信缓存,以及执行数据的读或写,因而有着复杂的操作和延迟的时间。
发明内容
因此,本发明的一个目的是提供一种通信设备,它使用三步通信缓存来防止由于CPU与串行通信设备在读和写数据时同步地访问三步缓存所导致的错误。
本发明的另一个目的是提供一种使用三步通信缓存的通信设备,其中CPU与串行通信设备能够互访而不会产生干涉,并且通过省略检查每个缓存状态的步骤而消除时间延迟。
为了取得以上优点并且符合本文中所体现的并被广泛阐述的本发明的目的,本发明提出了:通信设备,它使用三步通信缓存组成串行通信设备,用于从另一个通信设备接收数据或发送数据到所述的另一个通信设备;CPU,用于读取和处理从串行通信设备接收的数据,或为串行通信设备提供要发送到另一个通信设备的数据;中断发生器,用于产生中断信号,该信号在串行通信设备完成数据接收时输出到CPU;系统时钟发生器,用于产生时钟信号,以同步通信设备;第一通信缓存,它连接到串行通信设备,用于临时存储从串行通信设备接收到的数据,或者临时存储来自CPU的、将要发送到所述的另一个通信设备的数据,并且用于为串行通信设备提供数据;第三通信缓存,连接到中央处理单元,它在时钟信号发生器的时钟信号处于上升或下降的沿时启动,用于接收并临时存储数据,或者输出存储的数据;第二通信缓存,它连接第一通信缓存和第三通信缓存,在时钟信号发生器的时钟信号处于不同于启动第三通信缓存所需的信号沿的一个沿时启动,用于接收和临时存储来自第一通信缓存的数据,或者将存储的数据输出到第一通信缓存。
在下面参考附图对本发明的详细描述中,前述的和其他的有关本发明的目的、特征、方面和优势将会愈加明显。
附图说明
附图用于进一步地理解本发明,它们组成或作为本说明的一部分用于解释本发明的实施例,以及与描述文字一起用于解释本发明的原则。
在附图中:
图1A和图1B图示了根据现有技术只使用一个通信缓存的通信设备的问题;
图2是一个方框图,它图示了根据现有技术使用三步通信缓存的通信设备;
图3是一个方框图,它图示了根据本发明的一个实施例使用三步通信缓存的通信设备;并且
图4是一个方框图,它图示了根据本发明的另一个实施例使用三步通信缓存的通信设备。
具体实施方式
下面将对本发明的优选实施例作一详细的介绍,其中的几个例子将在附图中解释。
图3是一个方框图,它图示了根据本发明使用三步通信缓存的通信设备。
如图3所示,根据本发明的第一实施例,通信设备包括:串行通信设备(例如,通用异步收发器,简称UART)600,用于接收来自另一个通信设备的数据,或者将来自CPU的数据发送到所述的另一个通信设备;CPU 700,用于读取和处理从串行通信设备接收的数据,或者为串行通信设备600提供向另一个通信设备发送的数据;中断发生器900,用于产生中断信号并且在串行通信设备完成数据接收时,将信号输出到CPU 700;系统时钟发生器1000,用于产生时钟信号,以同步通信设备;第一通信缓存BUF1,它连接到串行通信设备600,用于临时存储从串行通信设备600接收到的数据,或者临时存储来自CPU700的、将要发送到所述的另一个通信设备的数据,并且用于为串行通信设备600提供数据;第三通信缓存BUF3,它在来自时钟信号发生器1000的时钟信号处于上升沿或下降沿时启动,用于接收并临时存储数据,或者输出存储的数据;第二通信缓存BUF2,它连接在第一通信缓存BUF1和第三通信缓存BUF3之间,在时钟信号发生器的时钟信号处于不同于启动第三通信缓存BUF3所需的信号沿的一个时钟沿时启动,用于接收和临时存储来自第一通信缓存BUF1的数据,或者将存储的数据输出到第一通信缓存BUF1。
作为例子,所述数据为5个字节的二进制数据,可逐字节地存储在第一到第三通信缓存BUF1~3所指定地址的存储区中。第一到第三通信缓存BUF1~3的存储区可具有触发器。一旦第一到第三通信缓存BUF1~3的存储区具有触发器,则第一通信缓存BUF1的触发器由通信时钟发生器(图中未示出)启动。当从串行通信设备600或CPU700接收到的数据中检测出通知数据发送开始的数据时,通信时钟发生器产生通信时钟信号。而且,第二通信缓存BUF2的每个触发器在系统时钟发生器1000的时钟信号的上升沿同时启动,从而同时地接收来自第一通信缓存BUF1的数据,或者将存储的数据同时地输出到第一通信缓存BUF1。另外,第三通信缓存BUF3的触发器在系统时钟发生器的时钟信号的下降沿同时启动,并同时地接收来自第二通信缓存BUF2的数据,或者将存储的数据同时地输出到第二通信缓存BUF2。一旦第二通信缓存BUF2的每个触发器同时由时钟信号的下降沿所启动,则第三通信缓存BUF3的触发器在时钟信号的上升沿同时启动。
下面将解释根据本发明的第一实施例使用了三步通信缓存的通信设备的操作。
首先要解释在从另一个通信设备接收数据的情况下,根据本发明的第一实施例使用了三步通信缓存的通信设备的操作。这里所述的另一个通信设备可以是与本发明的第一实施例的通信设备同等创建的通信设备进行通信的通信设备,或者是另一个与本发明的通信设备进行数据通信的通信设备。
当串行数据设备600开始接收来自另一个通信设备的数据时,从串行数据设备600接收的数据接着将逐字节地存储于第一通信缓存BUF1。更确切地说,例如,收到了5字节的数据,并分别逐字节地存储在第一通信缓存BUF1的00、01、02、03、04和05地址触发器。然后当来自系统时钟发生器1000的、输入给第二通信缓存BUF2的时钟信号处于下降沿,就启动第二通信缓存BUF2以同步地同时接收存储在第一通信缓存BUF1中的数据。也就是说,接收到的、逐字节地存储于第一通信缓存BUF1的00、01、02、03、04和05地址触发器的数据被同步地同时输出到第二通信缓存BUF2的00、01、02、03、04和05地址触发器并临时存储下来。
接下来,当来自通信时钟发生器1000的、输入到第三通信缓存BUF3的时钟信号处于上升沿时,就启动了第三通信缓存BUF3以从第二通信缓存BUF2同步地接收5字节的数据。也就是说,逐字节地分别存储于第二通信缓存BUF2的00、01、02、03、04和05地址触发器的数据同步地输出到第三通信缓存BUF3的00、01、02、03、04和05地址触发器。
同时,连接到串行数据设备600的中断发生器900将来自串行数据设备600的接收数据与根据通信协议预先设定和存储、用于指示发送完成的数据相比较,从而检查数据接收是否完成。此时,一旦有与预先设置的、用于指示发送完成的数据相同的数据存在于从串行通信设备600接收的数据中,“接收完成”状态就被识别,并且一个通知“接收完成”状态的中断信号被输出到CPU 700。
CPU 700通过接收中断信号识别新数据的接收,并且根据预先设定的、存储的优先级中止或完成执行进程。然后,CPU 700读取和处理从第三通信缓存BUF3接收的数据,从而完成接收操作。
同时,下面将要解释根据本发明的第一实施例使用了三步通信缓存向另一个通信设备发送数据的通信设备的操作。
首先,如果CPU 700将要发送到另一个通信设备的5字节的输出数据写入(即,输出)到第三通信缓存BUF3,则第三通信缓存BUF3分别将要发送的5字节的数据逐字节地存储到第三通信缓存BUF3的00、01、02、03、04和05地址触发器。然后,当来自系统时钟发生器1000的、输入到第三通信缓存BUF3的时钟信号处于上升沿时,就启动了第三通信缓存BUF3,使它同步地发送5字节的数据到第二通信缓存BUF2。也就是说,逐字节地分别存储于第三通信缓存BUF3的00、01、02、03、04和05地址触发器的数据被同步地输出并存储到第二通信缓存BUF2的00、01、02、03、04和05地址触发器。
接下来,当来自系统时钟发生器1000的、输入到第二通信缓存BUF2的时钟信号处于下降沿时,将启动第二通信缓存BUF2,使它同步地发送5字节的数据到第一通信缓存BUF1。也就是说,逐字节地分别存储于第二通信缓存BUF2的00、01、02、03、04和05地址触发器的数据被同步地输出并临时存储到第一通信缓存BUF1的00、01、02、03、04和05地址触发器。最后,串行通信设备600逐字节地读取第一通信缓存BUF1中存储的待发送数据,并且接着发送到另一个目标通信设备,从而完成了发送操作。
如前所述,在根据本发明的第一实施例使用了三步通信缓存的通信设备中,对通用缓存的访问是在时钟信号的互不相同的沿进行的,也就是说,在其它时间点,这样将防止因干涉造成的不完整数据的读和写。而且,由于不必一直更新显示通信缓存状态的指针,并且不需要管理选择被访问缓存的指针,因此可以在所有时间的任何时间点通过相应的缓存接收或发送数据。
图4是一个方框图,它图示了根据本发明的第一实施例使用了三步通信缓存的通信设备。
如图4所示的依照本发明的另一个实施例的通信设备的组成包括:串行通信设备(通用异步收发器,简称UART)600,用于接收来自另一个通信设备的数据,或者将来自CPU的数据发送到所述的另一个通信设备;CPU 700,用于读取和处理从串行通信设备接收的数据,或者为串行通信设备600提供向另一个通信设备发送的数据;中断发生器900,用于产生中断信号并且在串行通信设备完成数据接收时,将信号输出到CPU 700;系统时钟发生器1000,用于产生时钟信号,以同步通信设备;第一通信缓存BUF1,它连接到串行通信设备600,用于临时存储从串行通信设备600接收到的数据,或者临时存储来自CPU 700的、将要发送到所述的另一个通信设备的数据,并且用于为串行通信设备600提供数据;第三通信缓存BUF3,它在来自时钟信号发生器1000的时钟信号处于上升沿或下降沿时启动,用于接收临时存储的数据,或者输出存储的数据;第二通信缓存BUF2,它连接在第一通信缓存BUF1和第三通信缓存BUF3之间,在时钟信号发生器的时钟信号处于不同于启动第三通信缓存BUF3所需的信号沿的一个沿时启动,用于接收和临时存储来自第一通信缓存BUF1的数据,或者将存储的数据输出到第一通信缓存BUF1;第一门电路G1,它连接在第一通信缓存BUF1和第二通信缓存BUF2之间,允许或阻断第一通信缓存BUF1向第二通信缓存BUF2、或者第二通信缓存BUF2向第一通信缓存BUF1进行的数据发送;第二门电路G2,它连接在第二通信缓存BUF2和第三通信缓存BUF3之间,允许或阻断第二通信缓存BUF2向第三通信缓存BUF3、或者第三通信缓存BUF3向第二通信缓存BUF2进行的数据发送;门电路控制器800,用于输出第一指令信号,该信号通过响应来自CPU 700的指令信号来指示要发送到第二门电路G2的数据,或用于输出第二指令信号,当从串行通信设备600或CPU 700收到指示发送完成的数据时,该信号指示要发送到第一门电路G1的数据。这里,当从门电路控制器800收到第二指令信号时,第一门电路G1允许数据的发送;当从门电路控制器800收到第一指令信号时,第二门电路G2允许数据的发送。
作为例子,所述数据为5个字节的二进制数据,逐字节地存储在第一到第三通信缓存BUF1~3所指定地址的存储区中。第一到第三通信缓存BUF1~3的存储区可具有触发器,可以由一通信时钟信号或通信时钟发生器1000产生的时钟信号所启动。
第一门电路G1有一对收/发“与”门并联地连接到一起并且输入和输出具有不同的方向。此时,接收“与”门的一个输入端连接到门电路控制器800的第二指令信号的输出端口,另一个输入端连接到第一通信缓存BUF1,输出端连接到第二通信缓存BUF2。发送“与”门的一个输入端连接到门电路控制器800的第二指令信号的输出端口,另一个输入端连接到第二通信缓存BUF2,输出端连接到第一通信缓存BUF1。
第二门电路G2像第一门电路G1一样,可以具有一对收/发“与”门并联地连接到一起并且输入和输出具有不同的方向。此时,接收“与”门的一个输入端连接到门电路控制器800的第一指令信号的输出端口,另一个输入端连接到第二通信缓存BUF2,输出端连接到第三通信缓存BUF3。发送“与”门的一个输入端连接到门电路控制器800的第一指令信号的输出端口,另一个输入端连接到第三通信缓存BUF3,输出端连接到第二通信缓存BUF2。
门电路控制器800具有简单指令缓存,它在接收到二进制“1”时,输出二进制信号到第一门电路G1和第二门电路G2。其中,该二进制“1”与来自CPU700的指示第一门电路G1和第二门电路G2的数据发送的信号对应。
下面将解释一下根据本发明的另一个实施例使用了三步通信缓存的通信设备的操作。
首先要解释在从另一个通信设备接收数据的情况下,根据本发明的另一个实施例使用了三步通信缓存的通信设备的操作。
当串行数据设备600开始接收来自另一个通信设备的数据时,从串行数据设备600接收的数据接着将逐字节地存储于第一通信缓存BUF1。更确切地说,例如,收到了5字节的数据,分别逐字节地存储在第一通信缓存BUF1的00、01、02、03、04和05地址触发器。此时,门电路控制器800连接到串行通信设备600,将从串行通信设备600收到的、指示发送完成的数据与根据预先设置的通信协议指示发送完成的参考数据相比较。这里,如果数据与参考数据一致,则门电路控制器800识别到数据接收完成,从而输出第二指令信号到第一门电路G1,例如,一个二进制的“1”信号指示待发送的数据。然后,当系统时钟发生器1000产生的、输入到第二通信缓存BUF2的时钟信号处于下降沿时,就启动了第二通信缓存BUF2,使它同步地接收来自第一通信缓存BUF1的数据。也就是说,逐字节地存储在第一通信缓存BUF1的00、01、02、03、04和05地址触发器的数据被同步地输出和临时存储到第二通信缓存BUF2的00、01、02、03、04和05地址触发器。
然后,当CPU 700输出指令信号到门电路控制器800,以便于读取接收的数据时,门电路控制器800响应指令信号,输出第一指令信号(例如,二进制信号“1”)到第二门电路G2。并且第二门电路G2(也就是接收“与”门)变成允许数据发送的状态。
接下来,当来自系统时钟发生器1000的、输入到第三通信缓存BUF3的时钟信号处于上升沿时,就启动第三通信缓存BUF3,使它可以通过第二门电路G2的接收“与”门,同步地接收来自第二通信缓存BUF2的5字节数据。也就是说,逐字节地存储于第二通信缓存BUF2的00、01、02、03、04和05地址触发器的数据被同步地输出和存储到第三通信缓存BUF3的00、01、02、03、04和05地址触发器。
同时,连接到串行数据设备600的中断发生器900将来自串行数据设备600的接收数据与根据通信协议预先设定和存储用于指示发送完成的数据相比较,从而检查数据接收是否完成。此时,一旦有与预先设置的、用于指示发送完成的数据相同的数据存在于从串行通信设备600接收的数据中,“接收完成”状态就被识别,并且通知“接收完成”状态的中断信号被输出到CPU 700。
CPU 700通过接收中断信号识别新数据的接收,并且根据预先设定的优先级中止或完成执行进程。然后,CPU 700输出指令信号到门电路控制器800,并且读取和处理从第三通信缓存BUF3接收的数据,从而完成接收操作。
同时,下面将要解释一下根据本发明的第二个实施例使用了三步通信缓存的通信设备发送数据到另一个通信设备的操作。
首先,如果CPU 700将要发送到另一个通信设备的5字节的输出数据写入到(或者说输出到)第三通信缓存BUF3,则第三通信缓存BUF3分别将要发送的5字节的数据逐字节地存储到第三通信缓存BUF3的00、01、02、03、04和05地址触发器。
然后,当5字节待发送的数据完成向第三通信缓存BUF3的发送时,CPU 700输出一指令信号到门电路控制器800。门电路控制器800响应指令信号,分别输出第一和第二指令信号到第二门电路G2和第一门电路G1,以使得第二门电路G2和第一门电路G1被控制为允许数据发送的状态。
然后,当来自系统时钟发生器1000的、输入到第三通信缓存BUF3的时钟信号处于上升沿时,就启动第三通信缓存BUF3,使它可以通过第二门电路G2同步地发送5字节的数据到第二通信缓存BUF2。也就是说,逐字节地存储于第三通信缓存BUF3的00、01、02、03、04和05地址触发器的数据被同步地输出和存储到第二通信缓存BUF2的00、01、02、03、04和05地址触发器。
接下来,当来自系统时钟发生器1000的、输入到第二通信缓存BUF2的时钟信号处于下降沿时,就启动第二通信缓存BUF2,使它同步地发送5字节的数据到第一通信缓存BUF1。也就是说,逐字节地存储于第二通信缓存BUF2的00、01、02、03、04和05地址触发器的数据被同步地输出和临时存储到第一通信缓存BUF1的00、01、02、03、04和05地址触发器。
最后,串行通信设备600逐字节地读取第一通信缓存BUF1中存储的待发送数据,并且接着发送到另一个目标通信设备,从而完成发送操作。
如前所述,在根据本发明的另一个实施例使用了三步通信缓存的通信设备中,在发送和接收的时间内,当完整的接收数据或发送数据存储在通信缓存中时,允许对通信缓存的访问,从而与本发明的第一实施例相比提高了通信的可靠性。
作为本发明的又一个实施例,如果在不使用门电路控制器800的情况下将数据写入到指定的地址或上一个地址,则创建数据将自动地发送到下一个通信缓存中是有可能的。也就是说,如果在接收数据时将数据写入到第一通信缓存的指定地址或上一个地址,则数据将自动地发送到第二通信缓存,从而防止由于CPU 700和串行通信设备600之间的干涉而导致的错误。
作为本发明的再一个实施例,它通过访问在系统时钟发生器1000和第二通信缓存BUF2之间的或者在系统时钟发生器1000和第三通信缓存BUF3之间的时延电路,有可能创建不完整的待发送数据,从而在当第一通信缓存BUF1与第三通信缓存BUF3分别访问第二通信缓存BUF2时产生时间差。
还是本发明的另一个实施例,通过使用双端口的随机存储器(RAM)而不是第二通信缓存BUF2,不允许进行同步访问的串行通信设备与CPU对该RAM可以进行双向访问。
由于本发明可以以若干个实施例的形式来体现,因此只要不偏离其中的精神或主要特点,对实施例的上述描述不仅仅局限于前面任何描述的细节,除非特别指出。而且应该在本发明的权利要求书中所定义的精神和范围内被广泛地理解,因此在权利要求书及其等价的所有范围内的任何改动和修订都应该为所附的权利要求书所包含。

Claims (8)

1.一种使用三步通信缓存的通信设备,包括:
串行通信设备,用于接收来自另一个通信设备的数据,或者将数据发送到所述的另一个通信设备;
中央处理单元,用于读取从串行通信设备接收的数据,或者为串行通信设备提供向另一个通信设备发送的数据;
中断发生器,用于产生中断信号,并且在串行通信设备完成数据接收时,将中断信号输出到中央处理单元;
系统时钟发生器,用于产生时钟信号,以同步通信设备;
第一通信缓存,其连接到串行通信设备,用于临时存储从串行通信设备接收到的数据,或者临时存储来自中央处理单元的、将要发送到所述的另一个通信设备的数据,并且用于为串行通信设备提供数据;
第三通信缓存,其连接到中央处理单元,在时钟信号发生器的时钟信号处于上升沿或下降沿时启动,用于接收并临时存储数据,或者输出存储的数据;以及
第二通信缓存,其连接在第一通信缓存和第三通信缓存之间,在处于不同于启动第三通信缓存的时钟信号沿的一个沿时启动,用于接收和临时存储来自第一通信缓存的数据,或者将存储的数据输出到第一通信缓存。
2.如权利要求1所述的设备,进一步包括:
连接在第二通信缓存和第三通信缓存之间的门电路装置,其允许或阻断从第二通信缓存向第三通信缓存、或者从第三通信缓存向第二通信缓存进行数据发送;以及
门电路控制器,用于响应来自中央处理单元的指令信号,以及输出一个指示允许数据发送到门电路装置的指令信号。
3.如权利要求2所述的设备,其中,门电路装置是与门,其包括:
一个输入终端,用于输入数据;
另一个输入终端,用于输入来自门电路控制器的指令信号;以及
输出终端,用于输出数据。
4.如权利要求2所述的设备,其中门电路控制器是一个缓存,用于输出来自中央处理单元的指令信号到门电路装置。
5.如权利要求1所述的设备,进一步包括:
第一门电路装置,其连接在第一通信缓存和第二通信缓存之间,允许或阻断第一通信缓存向第二通信缓存、或者第二通信缓存向第一通信缓存进行数据发送;
第二门电路装置,其连接在第二通信缓存和第三通信缓存之间,允许或阻断第二通信缓存向第三通信缓存、或者第三通信缓存向第二通信缓存进行数据发送;
门电路控制器,用于以响应来自中央处理单元的指令信号的方式,输出用于指示允许数据发送到第二门电路装置的第一指令信号,或者用于在收到来自串行通信设备或中央处理单元的、用于指示发送完成的数据时,输出用于指示允许数据发送到第一门电路装置的第二指令信号。
6.如权利要求1所述的设备,其中通过系统时钟发生器的时钟信号沿分别启动的第二通信缓存和第三通信缓存是多个触发器,用于接收数据并且临时存储起来,或者输出所存储的数据。
7.如权利要求1所述的设备,其中第二通信缓存是一个双端口的随机存储器,其中串行通信设备与中央处理单元在双向都可以访问该随机存储器,但是不能同时对其进行访问。
8.如权利要求1所述的设备,进一步包括:
时延电路,其连接在系统时钟发生器和第二通信缓存之间,或者连接在系统时钟发生器和第三通信缓存之间,用于在当第一通信缓存与第三通信缓存分别访问第二通信缓存时产生时间差。
CNB031063691A 2002-02-26 2003-02-26 使用三步通信缓存的通信设备 Expired - Lifetime CN100361433C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2002-0010303A KR100464257B1 (ko) 2002-02-26 2002-02-26 통신장치의 3단 통신 버퍼
KR10303/2002 2002-02-26

Publications (2)

Publication Number Publication Date
CN1441566A CN1441566A (zh) 2003-09-10
CN100361433C true CN100361433C (zh) 2008-01-09

Family

ID=27751960

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031063691A Expired - Lifetime CN100361433C (zh) 2002-02-26 2003-02-26 使用三步通信缓存的通信设备

Country Status (5)

Country Link
US (1) US6772242B2 (zh)
JP (1) JP3559272B2 (zh)
KR (1) KR100464257B1 (zh)
CN (1) CN100361433C (zh)
DE (1) DE10308159B4 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060129713A1 (en) * 2004-12-15 2006-06-15 Xie Ian Z Pipeline architecture for content creation for the portable media player from the internet
CN100372406C (zh) * 2005-02-25 2008-02-27 华为技术有限公司 基站板间传输数据的方法及装置
US8291143B1 (en) * 2009-02-11 2012-10-16 Brocade Communication Systems, Inc. Single line communication
CN103901831B (zh) * 2012-12-30 2018-10-16 比亚迪股份有限公司 多控制器之间的通信系统
CN109240947A (zh) * 2018-08-13 2019-01-18 武汉普利商用机器有限公司 智能卡数据接收方法及装置
DE102019131603A1 (de) * 2019-11-22 2021-05-27 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Vorrichtung und verfahren zur gepufferten übertragung von daten

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0907178A2 (en) * 1997-10-03 1999-04-07 Hewlett-Packard Company Variable rate reading and writing
JP2001014259A (ja) * 1999-06-28 2001-01-19 Hitachi Ltd データ処理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4833655A (en) * 1985-06-28 1989-05-23 Wang Laboratories, Inc. FIFO memory with decreased fall-through delay
US5245553A (en) * 1989-12-14 1993-09-14 Options Unlimited Research Full-duplex video communication and document generation system
GB9019022D0 (en) * 1990-08-31 1990-10-17 Ncr Co Work station or similar data processing system including interfacing means to microchannel means
JPH0872327A (ja) * 1994-09-07 1996-03-19 Fujitsu Ltd 電子写真式ページプリンタ
US5515007A (en) * 1994-12-22 1996-05-07 National Semiconductor Corporation Triple buffered amplifier output stage
JP3344139B2 (ja) * 1995-02-03 2002-11-11 松下電器産業株式会社 通信装置
JP2770782B2 (ja) * 1995-05-31 1998-07-02 日本電気株式会社 Lan間接続装置
KR100227308B1 (ko) * 1997-06-30 1999-11-01 김영환 Mpu 보드에서 프로그램 가능한 장치 및 방법
US6079024A (en) * 1997-10-20 2000-06-20 Sun Microsystems, Inc. Bus interface unit having selectively enabled buffers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0907178A2 (en) * 1997-10-03 1999-04-07 Hewlett-Packard Company Variable rate reading and writing
JP2001014259A (ja) * 1999-06-28 2001-01-19 Hitachi Ltd データ処理装置

Also Published As

Publication number Publication date
KR20030070773A (ko) 2003-09-02
JP2003258922A (ja) 2003-09-12
JP3559272B2 (ja) 2004-08-25
DE10308159B4 (de) 2005-11-03
KR100464257B1 (ko) 2005-01-03
CN1441566A (zh) 2003-09-10
DE10308159A1 (de) 2003-09-18
US6772242B2 (en) 2004-08-03
US20030163607A1 (en) 2003-08-28

Similar Documents

Publication Publication Date Title
US5778195A (en) PC card
WO2006038717B1 (en) External data interface in a computer architecture for broadband networks
CN101770444A (zh) 从设备以及主设备与该从设备之间的通信方法
CN100361433C (zh) 使用三步通信缓存的通信设备
JP4001511B2 (ja) Icカード及びその制御方法
CN109285580B (zh) 数据预处理装置、方法及异步双端随机存取存储器系统
CN115312094A (zh) Sram控制系统、方法、fpga芯片及电子设备
KR100295683B1 (ko) 인터아이씨의 제너럴콜 어크날리지장치및 방법
JP2006119724A (ja) Cpuシステム、バスブリッジ、その制御方法、及びコンピュータシステム
CN116756078B (zh) pcie数据包的通知方法、装置及存储介质
JP3269530B2 (ja) シリアル通信システムおよびシリアル通信方法
JP6678787B1 (ja) リモートi/oシステム
JP7547079B2 (ja) マスタスレーブ通信システムおよびその制御方法
CN100538618C (zh) 高存取效率的接口电路及方法
CN107850873B (zh) 双重化过程控制装置
JP3265026B2 (ja) 入出力データ交換方式
JP4556484B2 (ja) データ転送装置
JP2508982B2 (ja) 装置内制御方式
KR100216402B1 (ko) 음성사서함 시스템에서 통신 데이타 처리를 위한 단일 복합형 라인 카드
JP3521601B2 (ja) データ伝送装置及びidシステム
JPH09223203A (ja) 非接触icカード
KR100962306B1 (ko) 임베디드 시스템의 양방향 데이터 통신장치 및 그 방법
JP3294305B2 (ja) 遠隔監視制御システムのデータ処理方式
JPH07135688A (ja) データ通信方法および情報処理システム
KR910003497A (ko) 내부 버스라인 수를 줄인 데이타 처리장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20080109