用于单信道双向无线通信的半双工通用异步收发信机控制器的制作方法

文档序号:7575143阅读:145来源:国知局
专利名称:用于单信道双向无线通信的半双工通用异步收发信机控制器的制作方法
技术领域
本发明涉及到无线通信,特别是涉及到仅仅使用一个通信信道的双向通信。
困扰无线单信道通信的一个公知的问题是,接收机部分总是会不希望地接收到同一设备或系统的发射机发送的信号。用来避免这种不应有的接收问题的一种方案是在一个信道中发送信号,而在不同的信道中接收响应。然而,按照这种技术,有时候无法或不可能使用不同的信道来发送和接收信号。
防止不希望的信号接收过程的另一种方案是发送一部分数据,然后删除在发送数据之后很短时间内接收到的同等数量的数据。然而,为了确定哪些接收的数据需要清除或是刷新,设备必须要对数据发送的定时保持跟踪,因而会使这种方案变得非常复杂。
使用发送数据的数字信号格式可以简化刷新数据的问题。这当然是因为可以知道发送的准确数据量,因而可以删除等量的数据。例如,设备可以确定它已经发送了N个字节。因此,在从另一个设备接收到响应之前,现有的设备必须要删除它接收到的最后N个字节。由此可见,按照这种实施例,一个设备可以接收它发送的数据,但是通过精确的数据管理就可以在从另一个设备接收实时数据之前删除这种数据。然而,实现这种系统的一个障碍在于必须很快地删除接收的数据,不能干扰对另一个设备发送的实际信号的接收。
受到上述问题困扰的一种设备是产生非相干光的红外发射机/接收机,这种光倾向于发散而不是按照直线的路径。在一种采用公知的红外数字信号协议,例如是红外数字组合(INFRARED DIGITALASSOCIATION(IrDA))的设备中,信号的发送和接收是在同一个“信道”上进行的,这是因为在频域中发送的信号不能象来自诸如VHF或UHF等其他频谱中的其他电磁波那样很容易分成多个信道。因此,如果周非相干光作为信号媒体,同一系统或是设备的光滤波器就会频繁地接收到发送的信号。因此通常是采用单信道红外系统来消除每次发送之后接收到的数据,因为这种接收信号正是刚刚发送的信号。
然而,如上所述,消除由同一设备的红外发射机发送的不希望的接收信号的困难在于用来消除数据的响应时间很短,因为接收机必须随时准备接收来自另一个设备的立即应答。
因此,在那些采用发光二极管(LED)并且用光检测器作为接收机的系统或是其他各种形式的无线单信道通信系统中,确实存在着接收到设备本身发送的信号的问题。因此需要有一种能够防止设备自身的接收机接收到设备本身发送的信号的装置和方法,这种装置和方法需要节省处理资源,并且占用的执行时间应该更短,这样才能尽量避免错过由另一个设备作为响应而发送的数据块中的起始部分。
本发明公开了一种装置和方法,其中的双向通信是在单个通信信道中执行的,它可以避免不必要的处理,并且可以在单一信道的环境下实现更加有效的数据传输过程。本发明的装置包括一个逻辑电路,它可以自动地关闭和启动UART(通用异步收发信机)的接收机部分,以避免UART接收到设备本身的发射机发送的数据。采用这种逻辑电路至少可以获得两个特别的优点。
第一,不会由于不必要地接收到UART本身的发射机发送的数据而产生和处理在接收数据时由UART的接收机部分产生的、和必须进行处理的软件中断处置。这样就能明显地减少必须进行处理的不必要的软件中断次数。第二,由于UART总是需要在一个很短并且精确的时间内准备从另一个系统中接收临近的立即响应,在实际的时间限制内消除不应有的数据不会再成为问题,因为实际上没有必要消除这种数据。本发明的装置和方法回避了在实时系统中必须快速消除不需要的数据的时间限制,其方法是采用这样一种电路和方法,使得可以在发送过程中自动地关闭接收机,并且在出现发送间断时启动接收机进行接收。
在一个实施例中公开了一种UART内部的UART控制电路,这种UART控制电路包括一个用来接收半双工模式信号的输入端。如果接收到半双工模式的操作指示,UART控制电路就使UART按照半双工操作模式工作。在半双工的操作模式下,如果在至少一个输入端接收到至少一个信号,UART就关闭其接收机,并且指示出UART正在发送数据。
在一个实施例的UART控制电路中包括来自FIFO寄存器组和数据存储器的输入,分别用来指示其中有没有需要由UART发送的数据。逻辑单元中还包括来自处理单元的输入,表示是否设置了一个标准的UART接收机启动标记。UART控制电路还包括一个用来接收上述半双工启动模式信号的输入端。如果规定了半双工的操作模式,并且发射机的FIFO和发射机的数据存储器都是空的,就启动UART接收机。在还没有确定半双工的操作模式时仍然启动接收机。否则就关闭接收机。
本发明的方法包括如果处理单元没有设置接收机启动标记,就关闭接收机。如果设置了接收机启动标记,而外部的处理器没有确定半双工的操作模式或者发射机的数据存储器和FIFO寄存器组都是空的,就启动接收机。否则,如果确定了半双工操作模式并且发射机的数据存储器或是FIFO寄存器组不是空的,就关闭接收机。
通过参照附图对最佳实施例的详细说明可以更加全面地理解本发明的方法和系统,在附图中

图1是UART的一个实施例的示意性框图;图2是包括一个逻辑电路的UART的一个实施例的示意性框图;图3是一个逻辑图,表示在本发明一个实施例的逻辑电路中的逻辑元件及其连接方式;图4是一个流程图,表示本发明方法的一个实施例的逻辑流程。
参见图1,在图中表示了一个实施例的UART 100,它通过数据总线102连接到一个CPU 110。如图所示,发送数据存储器120的作用是为准备由发射机140发送的数据排队。分别通过线路104和106将发送FIFO 130连接在数据存储器120和发射机140之间。FIFO 130向UART处理单元150提供一个信号,表示FIFO 130是否包含通过线路108发送的数据。当发射机140发出一个信号160时,接收机170就接收这一信号,接收机170通过线路112向存储器180发送该信号。然后,存储器180通过线路114向处理单元150指示出已经从接收机170接收到一个数据块。然后,作为对此的响应,处理单元150就通过线路116指令存储器180删除这个数据块。如果在发射机140发送一个信号160之后的很短时间内接收到一个作为信号的数据块,处理单元150通常就会指示存储器180删除这个数据块。具体地说,由发射机140产生一个中断,每当其发送信号160时就通过线路118将中断发送给处理单元150。与此类似,由接收机170产生一个中断,每当其接收到一个信号160时就通过线路122将中断发送给处理单元150。因此,如图所示,每当发射机140发送一个信号160时,处理单元150必须要处理从接收机170接收到的中断,因为接收机170会接收到这同一个信号。此处还应该注意到,PU124通过线路124向接收机170发送一个接收机启动标记,以允许接收机170接收信号。当发射机140正在发送以及发射机140没有发送但是系统接通时,线路124上通常就会建立这一接收机启动标记。
如上所述,使用数字信号格式可以简化信号的刷新。其原因当然在于可以知道准确的发送数据量,因而就可以删除等量的数据。例如,设备可以确定已经发送的字节数N。因此,在从另一个设备接收到一个响应之前,当前的设备必须要删除最后接收到的N个字节。如图所示,按照本实施例,设备可以接收它发送的数据,但是,通过精确的数据管理,就可以在从另一个设备接收真实数据之前删除这种数据。然而,实现这种系统的障碍在于必须要快速删除接收到的数据,这样才不会干扰对另一个设备发送的实际信号的接收。
图2表示包括逻辑电路的一个UART的框图。具体地说,通过数据总线202和模式控制线路204将UART 200连接到外部CPU 210。用线路206将发送数据存储器220连接到发送FIFO 230。另外用线路208将发送FIFO 230连接到发射机240。这样,当UART 200通过数据总线202从CPU 210接收到用于发送的数据时,发送数据存储器220就开始为准备发送的存储数据排队。然后,发送数据存储器220向发送FIFO 230发送准备由发射机240发送的数据。按照公知的技术,发送FIFO 230的作用是为发射机240提供数据发送的定时。如图所示,当发射机240通过线路208从发送FIFO 230接收到一字节的数据时,就将该字节的数据当作信号250发送。同时,通过线路212连接到处理单元260的发射机240将通过线路212向处理单元260发送一个软件中断,表示已经发送了一字节的数据。
同样,当接收机270接收到信号250时,就产生一个软件中断,通过线路214将这一软件中断发送给处理单元260。接收机270还通过线路216将接收的信号发送给接收数据存储器280。
如上文所述,在图1的UART中,处理单元150通过线路124向接收机170发送一个接收机启动标记。可用这一接收机启动标记来启动或是关闭接收机。无论UART是正在发送还是正在接收信号,接收机总是使启动标记设定在逻辑1。然而,在图2所示的本发明的实施例中,接收机启动标记是通过线路218发送给逻辑单元290的,而不是象现有技术那样发送给接收机。逻辑单元290同时还通过线路222接收一个输入信号,该信号表示发送数据存储器220是不是空的,并且通过线路224接收一个信号,该信号表示发送FIFO 230是不是空的。根据从线路222,224,218以及模式控制线路204上接收到的各个信号的逻辑状态,逻辑单元290就能确定是否通过线路226启动或是关闭接收机270。
在图2的实施例中,只有当线路218上设定的接收机启动标记为是、并且模式控制线路204上的信号指示出全双工操作模式而不是半双工操作模式时,逻辑单元290才启动接收机270接收一个信号250,如果该信号代表半双工操作模式,则从线路222和224上接收的信号就分别表示发送数据存储器220和发送FIFO 230是空的。因此,举例来说,如果在线路218上接收到的接收机启动标记被设定在是、并且模式控制线路204反映出已经启动了半双工操作模式,只有当线路222和224上指示出发送数据存储器220和发送FIFO 230都是空的时,逻辑单元290才会通过线路226启动接收机270接收一个信号250。因此,按照数据存储器220或发送FIFO 230内具有用于直接发送的数据的指示,当UART 200处在发送的操作模式时,如果外部CPU210已经通过线路204规定了半双工的操作模式,接收机270就自动关闭。
图2的UART 200包括一个包含在UART 200内部的处理单元260。这一处理单元260所执行的功能和CPU 210是完全相同的。在本实施例中,向处理单元260提供信号的每条线路上的信号和提供给外部CPU 210处理的信号是相同的。
参见图3,在图中表示了图2所示实施例的逻辑单元290的逻辑框图。如图所示,图3的逻辑单元300是由一个AND门310、一个OR门320、以及第二AND门330构成的。AND门310的两个输入端接收线路222和224上承载的来自图2的发送数据存储器220和发送FIFO230的信号,这些信号分别反映出数据存储器220和发送FIFO 230是不是空的。AND门310的逻辑输出通过线路312传送给OR门320的一个输入端。通过图2中的线路204从CPU 210提供给UART 200的半双工模式的操作信号被连接到一个反向器340,它在信号被发送给OR门320的第二输入端之前改变信号的状态。然后通过线路314将OR门320的逻辑输出传送给AND门330的一个输入端。从图中可见,AND门330包括两个输入端,一个是OR门320的输出,另一个输入端在图2的线路218上接收Rx启动标记。AND门330的输出是一个Rx启动信号,它通过图2的线路226提供给接收机270,用来启动或是关闭接收机270。如图所示,接收机270是按照以下的逻辑表达式由图3中的逻辑单元来启动的Rx Enable=((Data Store Empty AND Transmit FIFO Emety)OR Half Dupl ex Di sable)AND Rx Enable Flag很显然,上述的表达式以及图3的电路可以有许多能够获得同样结果的逻辑等效物。例如,半双工关闭信号就等于半双工启动信号的逻辑非。本领域的技术人员很容易根据本发明的提示来实现等效的逻辑电路和表达式。
以下参见图4,在图中表示了本发明方法的一个实施例。步骤410包括确定是否已经设置了Rx启动标记。如果没有,就在步骤420关闭接收机。如果设置了Rx启动标记,在步骤430中包括确定是否已经规定了半双工操作模式。如果没有,就在步骤440启动接收机。然而,如果已经规定了半双工操作模式,本发明的方法就包括在步骤450中确定发送数据存储器是不是空的。如果数据存储器不是空的,就在步骤460关闭接收机。然而,如果发送数据存储器是空的,本发明的方法就包括在步骤470中确定发送FIFO是不是空的。如果发送FIFO不是空的,就在步骤460关闭接收机。然而,如果发送FIFO是空的,就在步骤440启动接收机。然而,在不脱离本发明精神的条件下,本领域的技术人员很容易用不同的顺序安排上述的步骤。例如,步骤470可以放在步骤450前面。在另一个实施例中,步骤410可以最后执行。
根据上述的说明,本领域的技术人员应该能够充分地认识到本发明的装置和方法可以明显地减少软件中断处理,并且能减少处理器的负担。根据上述的说明,本发明的优点还包括加快UART从另一个系统接收一个响应时的读出速度,因此,不会有接收不到输入信号的可能性。
尽管在上文中已经参照附图详细地说明了本发明的方法和装置的实施例,此处还应该指出,本发明并不仅限于上述的实施例,在不脱离以下的权利要求书所限定的本发明的精神和范围的条件下还可以实现各式各样的改动,修改和替换。
权利要求
1.UART内部的一种控制电路,其特征是包括一个用来接收半双工模式启动信号的输入端,这种半双工模式启动信号使上述UART按照半双工操作模式和全双工操作模式工作;用来接收至少一个信号的至少一个输入端,该信号表示有没有需要UART发送的数据;以及用来关闭上述UART的接收部分的电路,该电路被连接到用来接收上述半双工模式启动信号的上述输入端,同时还连接到上述用来接收至少一个信号的至少一个输入端,并且上述电路的输出端被连接到上述UART的上述接收部分,用来启动上述接收部分进行接收。
2.按照权利要求1的UART控制电路,其特征是上述至少一个输入端包括来自FIFO寄存器组的一个输入端,用来接收一个FIFO空闲信号,该信号表示在FIFO寄存器组中没有需要由UART发送的数据。
3.按照权利要求2的UART控制电路,其特征是,只有在没有接收到半双工模式启动信号时、以及在接收到半双工模式启动信号但是从上述FIFO寄存器组接收到的上述FIFO空闲信号指示出在FIFO中没有需要发送的数据时,上述输出端才启动上述UART的上述接收机进行接收。
4.按照权利要求3的UART控制电路,其特征是上述至少一个输入端还包括来自数据存储器的一个输入端,用来接收一个数据存储器空闲信号,该信号表示在上述数据存储器中没有需要由UART发送的数据。
5.按照权利要求4的UART控制电路,其特征是,只有在没有接收到上述半双工模式启动信号时、以及在接收到半双工模式信号但是来自上述FIFO寄存器组的上述FIFO空闲信号指示出在FIFO中没有数据、并且在从上述数据存储器接收到的上述FIFO空闲信号指示出数据存储器中没有需要由UART发送的数据时,上述输出端才启动上述UART的上述接收机。
6.按照权利要求5的UART控制电路,其特征是进一步包括来自一个处理单元的一个输入端,用来指示是否已经设置了UART接收机启动标记,只有在上述处理单元的输入端指示出已经设置了上述的UART接收机启动标记时,上述UART控制电路输出才启动上述接收机。
7.用于单信道通信的一种UART,其特征是包括一个发送数据存储器,用来从外部源接收数据,用这种发送数据存储器来存储需要由上述UART发送的信号的数据;用来发送信号的发射机端口;一个发送数据寄存器组,用来临时保存需要由上述发射机端口发送的预定量的数据,用这一发送数据寄存器组接收来自上述发送数据存储器的数据,并且用来向上述发射机端口发送数据;用来接收信号的接收机端口;连接到上述接收机端口的接收机数据存储器,用来接收代表上述接收到的发送信号的数据;用于控制UART操作的一个处理单元;以及连接到上述接收机端口、上述发送数据存储器、以及发送数据寄存器组的一个逻辑单元,用来按照选择的时间启动和关闭上述接收机端口。
8.按照权利要求7的UART,其特征是上述逻辑单元进一步包括用来接收半双工模式启动信号的一个输入端,该输入端连接到一个外部设备。
9.按照权利要求8的UART,其特征是进一步包括用来接收UART启动标记的一个输入端,该输入端连接到上述处理单元。
10.一种用于UART中的方法,该UART包括用于发送FIFO的数据存储器、发射机、接收机、用于接收的数据存储器、数据输入和输出线路、以及用来控制模式的输入端,该方法包括以下步骤确定用来控制操作模式的上述输入是否规定了半双工操作模式;确定上述发射机FIFO是不是空的;确定上述发送数据存储器是不是空的;如果规定了上述的半双工启动模式并且上述发送FIFO和数据存储器都是空的,就启动上述接收机进行接收;如果没有规定上述的半双工操作模式,就启动上述接收机进行接收;以及当规定了上述半双工模式并且上述发送FIFO不是空的,就关闭上述接收机,并且在规定了上述半双工启动模式并且上述数据存储器不是空的时,就关闭上述的接收机。
全文摘要
本发明是一种包括逻辑单元的UART,每在UART正在处理无线传输的数据时,就用逻辑单元自动地启动或是关闭UART接收机端口。具体地说,将一个逻辑单元连接到数据存储器、发送FIFO、一个UART处理单元、以及一个外部CPU,用逻辑单元分析来自各个具体连接点的各个信号的逻辑状态,从中确定是否要启动或是关闭接收机单元。本发明同时还涉及到一种方法,只有当数据存储器和发射机FIFO都是空的、接收机启动标记被设置为是并且已经由外部CPU规定了半双工操作模式时,逻辑单元才启动接收机。否则,只有在规定了全双工操作模式、并且接收机启动标记被设置为逻辑1时,逻辑单元才启动接收机。
文档编号H04L5/14GK1225212SQ97196234
公开日1999年8月4日 申请日期1997年5月6日 优先权日1996年5月8日
发明者B·G·穆恩 申请人:艾利森公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1