专利名称:以半双工通信协议达成的虚拟全双工通信方法与装置的制作方法
技术领域:
本发明是有关于一种通信方式,特别是一种以半双工通信方式达成虚拟 全只又工il/f言的方法。
背景技术:
传统的RS485(亦称为EIA-485)通信方式是使用一主从架构(master-slave arrangement),其是先由主端(master)发出 一请求,然后再由从端(slave)响应。 这样的系统是一半双工系统(half-duplex system),因为系统中的每个装置(主端 或从端)均无法同时传送及接收信号。如果从端有一笔数据欲传送到主端,从 端必须等待直到其收到从主端发出的请求。如果主端在发出数次请求之间的 时间间隔很长,则从端的数据将无法及时地被传送到主端,因而造成数据传 递的延迟。另一方面,若缩短主端发出请求的时间间隔,将会增加主端中央 处理器以及从端中央处理器的负担。
发明内容
本发明是有关于一种通信方法及装置,可实质上排除一或多个现有技术 的限制与缺点所造成的问题。
本发明的 一 目的是提供 一 虚拟全双工通信(presudo-flill duplex communication)系统及方法,其以RS485作为底层的通信协议。
本发明另外的特征与优点将在以下的详细说明中提出,且其中部分可由 详细说明明显看出或是由其中得到教示。本发明的目的及其它优点可由以详 细说明、专利申请范围及附加图标特别指出的结构所实现及得到。
为达成依据本发明的目的上述及其它优点,本发明提供一种系统,包含 一主端,该主端包含一第一处理器、 一以一第一緩冲存储器连接至该第一处 理器的第一逻辑电路以及一连接于该第一逻辑电路的第一收发器;其中该第 一收发器适于连接至一通信链接(communication link);且其中该第一逻辑电路 是以该通信链接来传送初始化请求,以经由该通信链接接收确收消息,以及因应于所接收的确收消息由该通信链接传送多个确收消息或是多个伴随来自 其緩冲存储器的数据的确收消息。本系统还包含一从端,该从端包含第二处 理器、 一以一第二緩冲存储器连接至该第二处理器的第二逻辑电路、以及一
连接于该第二逻辑电路的第二收发器;其中该第二收发器是连接至该通信链
接;其中该第二逻辑电路经由该通信链接接收多个初始化请求及多个来自该 第一逻辑电路的确收消息,以及因应于所接收的初始化请求传送多个确收消 息或是多个伴随其緩冲存储器的数据的确收消息至该第一逻辑电路。
在本发明的另一观点中,本发明提供一种由一主端所执行的通信方法, 该主端包含一处理器、 一以一緩冲存储器连接至该处理器的逻辑电路,以及 一连接于该逻辑电路的收发器,该收发器适于连接至一通信链接,该方法包
含下列步骤该处理器传送数据至该緩冲存储器或传送来自该緩冲存储器的 数据;该逻辑电路由该通信链接传送多个初始化请求或是多个伴随来自其緩 冲存储器的数据的初始化请求;该逻辑电路由该通信链接接收确收消息;该 逻辑电路因应于所接收的确收消息由该通信链接传送多个确收消息或是多个 伴随来自其緩冲存储器的数据的确收消息。
在本发明的再一观点中,本发明提供一种主端与从端之间的通信方法, 该主端包含一第一处理器、 一以一第一緩冲存储器连接至该第一处理器的第 一逻辑电路、以及一连接至该第一逻辑电路的第一收发器。该从端包含一第 二处理器、 一以一第二緩冲存储器连接至该第二处理器的第二逻辑电路、以 及一连接至该第二逻辑电路的第二收发器。该方法包含下列步骤该第一处 理器传送数据至该第一緩冲存储器或传送来自该第一緩冲存储器的数据;该 第二处理器传送数据至该第二緩冲存储器或传送来自该第二緩沖存储器的数 据;该第一逻辑电路传送多个初始化请求或是多个伴随来自其緩冲存储器的 数据的初始化请求至该第二逻辑电路;该第二逻辑电路因应于该些初始化请 求传送多个确收消息或是多个伴随来自其緩冲存储器的数据的确收消息至该 第一逻辑电路;该第一逻辑电路因应于来自该第二逻辑电路的确收消息传送 多个确收消息或是多个伴随来自其緩冲存储器的数据的确收消息至该第二逻 辑电路;及该第二逻辑电路因应于来自该第一逻辑电路的确收消息传送多个 确收消息或是多个伴随来自其緩冲存储器的数据的确收消息至该第一逻辑电 路。
在本发明的再一观点中,本发明提供一种系统,至少包含 一主端,该
7主端包含一第一处理器、 一连接至该第一处理器的第一逻辑电路、 一可被该 第一处理器及该第一逻辑电路存取的第一緩冲存储器,以及一连接于该第一
逻辑电路的第一收发器;其中该第一收发器是适于连接至一通信链接 (communication link);其中该第 一处理器可将一第一笔数据存储于该第一緩冲 存储器中,该第一笔数据经由该通信链接传送,该第一处理器并可由该第一 緩冲存储器中取出由该通信链接所接收的一第二笔数据;及其中该第一逻辑 电路可在该第一中央处理器不介入的情况下被操作以使用该第一收发器由该 通信链接传送该第 一緩冲存储器中的该第 一笔数据,并且以该第 一 收发器经 由该通信链接接收该第二笔数据,并将该第二笔数据存储于该第 一缓沖存储 器中。
在本发明的再一观点中,本发明提供一种通信方法,由一主端所执行, 该主端包含一处理器、 一连接至该处理器的逻辑电路、 一可被该处理器及该 逻辑电路存取的緩冲存储器,以及一连接于该逻辑电路的收发器,该收发器 适于连接至一通信链接,该方法至少包含下列步骤(a)该处理器将一第一笔 数据存储于该緩冲存储器,该第一笔数据被经由该通信链接传送(b)该逻辑电 路可在该中央处理器不介入的情况下使用该收发器以经由该通信链接传送该 緩冲存储器中的该第一笔数据,并且使用该收发器以经由该通信链接接收该 一第二笔数据,并将该第二笔数据存储于该緩冲存储器中;及(c)该处理器由 该緩冲存储器中取出该第二笔数据。
在本发明的再一观点中,本发明提供一种主端与从端间的通信方法,该 主端包含一第一处理器、 一连接至该第一处理器的第一逻辑电路、 一可被该 第一处理器及该第一逻辑电路存取的第一緩冲存储器,该从端包含一第二处 理器、 一连接至该第二处理器的第二逻辑电路、 一可被该第二处理器及该第 二逻辑电路存取的第二緩沖存储器, 一通信链接连接该主端及该从端,该方 法至少包含下列步骤(a)该第一处理器将一第一笔数据存储于该第一緩沖存 储器;(b)该第二处理器将一第二笔数据存储于该第二緩冲存储器;(c)该第一 及第二逻辑电路可在该第一及第二中央处理器不介入的情况下由该通信链接 传送来自该主端的该第 一緩冲存储器中的该第 一笔数据至该从端的该第二緩 冲存储器,并且由该通信链接传送来自该从端的该第二緩沖存储器中的该第 二笔数据至该主端的该第一緩冲存储器;(d)该第一处理器从该第一緩冲存储 器中取出该第二笔数据;及(e)该第二处理器从该第二緩冲存储器中取出该第一笔数据。
本发明的前述说明及以下的详细说明仅是例示,旨在提供本发明专利请 求范围的进一步说明。
图1是以图示说明一具有主端与从端的系统双方以本发明的一实施例方 式沟通。
图2是以图示说明主端与从端之间以本发明的 一 实施例方式进行通信。 图3A至3C是以图示说明主端以本发明的一实施例方式进行通信。 图4A至4B是以图示说明从端以本发明的一实施例方式进行通信。 图5是以本发明一实施例的通信方式说明一^1盘-影像-鼠标切换器系统。
主要组件符号说明
10
12
13 21
主端
现场可编程门阵列
通用异步接收/传送器
中央处理器
22a:緩沖存储器
11:中央处理器 12a:緩冲存储器 20:从端
22:现场可编程门阵列 23:通用异步接收/传送器
具体实施例方式
虽然本发明的详细实施例揭露如下,但是本发明所述的技术、系统及操 作方式仍可以不同的方式实施之,其中某些可能不同于此处所揭露的实施例。 因此,此处所揭露的特定架构及功能仅为代表性说明,其目的上应视为提供 最佳实施例及定义本发明范围的权利要求项的依据。以下详细说明本发明的 较佳实施例以及不同的实施例。
本发明的实施例提供一种以半双工通信协议(例如RS485)达成虚拟 (presudo)全双工的方法及装置。如图5所示,键盘-影像-鼠标 (keyboard-video-mouse)切换系统是本发明的通信方法的一种特殊的应用。键 盘-影像-鼠标切换器110是一种将一或多个使用者控制台130(每一皆具有一 屏幕、键盘及/或鼠标)连接至多台计算机120的切换装置,如此每一使用者控制台130可选择性地控制任何一台计算机120。在图5所示的系统中,计算 机120是经由Cat5(5类线)缆线连接至键盘-影像-鼠标切换器110。此Cat5(5 类线)缆线可使计算机120位于键盘-影像-鼠标切换器110的一远距离(高达数 百英尺)以外。此键盘-影像-鼠标切换器110及计算机120均使用RS485相互 沟通。此键盘-影像-鼠标切换器110及每一台计算机120均使用 一或多个通用 异步4妄4欠Af专送器(universal asynchronous receiver/transmitter)以经由Cat5纟览线 传送及接收信号。在此系统中,此键盘-影像-鼠标切换器110是RS485通信 架构下的主端(master),而每台计算机120是从端(slave)。
图1是显示一依据本发明实施例的系统,其中一主端10与一从端20之 间相互以RS485的通信协议方式进行沟通。在图5的键盘-影像-鼠标 (keyboard-video-mouse)切换系统中,主端10与从端20可分別为4建盘-影像-鼠标切换器110及一计算机120。更广泛地说,主端10与从端20可分别为 任何一种以RS485通信协议彼此沟通的主端或是从端的装置。如图l所示, 主端10包含一中央处理器11、一连接至此中央处理器11的逻辑电路12以及 一收发器(transceiver),例如一连接至逻辑电路12的通用异步接收/传送器 (UART)13。在此实施例中,此收发器13是一RS485收发器。在此,收发器 一词泛指任何兼具接收与传送功能的装置。类似地,从端20包含一中央处理 器21、 一连接至中央处理器21的逻辑电路22以及一收发器(transceiver),例 如一连接至逻辑电路22的通用异步接收/传送器(UART) 23。主端10与从端 20的通用异步接收/传送器13及23之间通过一连接于主端10与从端20之间 的通信链接(例如一 Cat5缆线40)传送与接收信号。 一般来说,收发器13及 23可为任何适当的收发装置,且通信链接40可为任何适当的链接,包含有 线或是无线连结方式。中央处理器11及21分别执行主端10与从端20的一 般正常功能。逻辑电路12及22以详述于下的方式处理主端与从端之间的通 信。逻辑电路12与22可以现场可编程门阵列(field-programmable gate arrays; FPGAs)、特歹未用途集成电路(application-specific integrated circuits; ASICs)、 处理器或其它适当的硬件架构来实施之。以下的是以现场可编程门阵列为例 (但并非限定)进行说明。
图1的主端10与从端20与现有的主端与从端并不相同。在一现有的主 端中,中央处理器是直接连接至一通用异步接收/传送器,且经由通用异步接 收/传送器传送一请求至从端以执行初始化RS485通信的功能。类似地,在一现有的从端中,中央处理器是直接连接至一通用异步接收/传送器,且中央处
理器会处理接收来自主端的请求,并经由通用异步接收/传送器传送回应至主
-山 碼。
在图1所示依据的本发明实施例的系统中,主端10的中央处理器11将 任何被传送到从端20的数据存储至现场可编程门阵列12的一緩冲存储器12a 中,且例如其是以直接存储器存取(direct memory access; DMA)的方式存储。 类似地,从端20的中央处理器21将任何传送至主端10的数据存储至现场可 编程门阵列22的一緩冲存储器22a中。主端10与从端20之间实际的通信是 分别由其个别的现场可编程门阵列12及22所处理。接收自另一端的数据被 分别地存储于现场可编程门阵列12及22的緩沖存储器12a及22a当中,且 中央处理器11及21分別自缓冲存储器12a及22a当中将数据取出以利其用。
图2是以图示说明主端IO的现场可编程门阵列12与从端20的现场可编 程门阵列22之间一般的通信流程。主端IO的现场可编程门阵列12开始通信 的方式是传送一请求及其緩冲存储器中的一笔数据(如果有)至从端20 (由主 端IO起始请求)。从端20的现场可编程门阵列22响应主端10的方式是传送 一确收(acknowledgement)信号及其緩冲存储器中的数据(如果有)至主端(由从 端20回应)。在传送此确收消息之前,从端20会先辨识是否成功地由主端10 接收到数据,并判断从端20是否具有任何数据必须传送至主端10。依据上 述辨识及判断的结果,从端20所传送的确收消息是下列四种确收消息之一 ACK1 (第一种确收消息),表示由另一端接收的最后一笔传送已经成功地接 收,且数据已经伴随着此确收消息传送;ACK2(第二种确收消息),表示由另 一端接收的最后一笔传送已经成功地接收,但是并无数据伴随着此确收消息 传送出去;NAK1 (第一种否定确收消息),表示由另一端接收的最后一笔传送 并未成功地接收,且数据已经伴随着此确收消息传送出去;及NAK2(第二种 否定确收消息),表示由另一端接收的最后一笔传送并未成功地接收,且无数 据伴随着此确收消息传送出去。在第一种确收消息ACK1与第一种否定确收 消息NAK1之后会跟随着从端20的数据传送,但是第二种确收消息ACK2 与第二种否定确收消息NAK2之后并没有跟随着从端20的数据传送。
在接收到来自从端20的传送之后,主端10的现场可编程门阵列12的响 应方式是传送一确收消息及其緩冲存储器中的数据(如果有)至从端20 (由主 端10回应)。在传送此确收消息之前,主端IO会先辨识是否已经成功地自从端20接收数据(如果有),并判断主端10是否有任何数据必须传送至从端20。 如果来自从端20的确收消息为NAK1或是NAK2,主端10将会再次传送此 最后一笔尚未成功传送至从端20的数据,而非传送新的一笔数据。视上述辨 识与判断的结果而定,主端IO所传送的确收消息是前述四种确收消息之一, 亦即确收消息ACK1、 ACK2、 NAK1与NAK2。确收消息ACK1与NAK1之 后是跟随着来自主端的数据传送,而确收消息ACK2与NAK2之后则无。
之后,主端10与从端20以上述方式来回地相互响应,其中每次的响应 包含一确收消息与数据(如果有)。此确收消息是前述定义的四种确收消息之 一,亦即确收消息ACK1、 ACK2、 NAK1及NAK2,且确收消息ACK1与 NAK1之后跟随着数据传送。响应的内容则视自另一端收到何种确收消息而 定,从另一端传送来的数据是否成功地接收,以及一端的装置是否在其緩冲 存储器当中有数据必须传送至另一端。如果从另一端接收的确收消息是确收 消息ACK1或NAK1 (两者皆表示数据伴随着确收消息传送), 一端的装置将 会辨识从另一端装置传来的数据是否成功地接收。如果由另一端所接收的确 收消息是确收消息ACK1或ACK2 (两者皆表示一端装置的最后一笔数据是成 功地被另 一端所接收),此装置会判断其的緩冲存储器是否有任何数据必须传 送至另一端。另一方面,如果从另一端接收到的确收消息是确收消息NAK1 或NAK2 (两者皆表示一端的装置的最后一笔数据并未成功地被另一端所接 收),此装置将会再次传送此最后一笔数据,而非传送其緩冲存储器中新的一 笔数据。
现场可编程门阵列12与22之间的通信过程是以图3A至图3C及图4A 至图4B作详细说明。图3A至图3C是说明主端10的现场可编程门阵列12 的运作,图4A至图4B是说明从端20的现场可编程门阵列22的运作。为便 于说明,以下之描述所称"主端"与"从端"是指现场可编程门阵列12及现 场可编程门阵列22。亦请注意图3A图至图3C及图4A至图4B是说明应用 于逻辑电路12与22中的方法逻辑流程,且此逻辑流程可以任何其它适当方 式应用之。
当主端初始化通信时此通信开始(步骤S301)。此时若主端的緩冲存储器 中有数据必须传送至从端(步骤S302的"是"),主端会传送第一笔请求至从端, 表示数据正伴随着此请求传送,且传送其緩沖存储器中的数据(步骤S303)。 如果主端没有数据需要传送(步骤S302的"否"),主端将会传送一第二请求至
12从端,表示并无数据被传送(步骤S304)。在传送之后,主端会等待来自从端 的一确收消息(步骤S322)。步骤S301至步骤S304是主端的初始化请求。
一旦收到主端的初始化请求,从端的反应如图4A所示。如果从端接收 一第二请求(步骤S401的"是"),从端会判断其緩冲存储器中是否有数据必须 传送至主端(步骤S405)。若是(步骤S405的"是"),从端会传送一第一确收消 息ACK1至主端,表示主端最后一次的传送成功且数据正伴随着此确收消息 传送,并且传送其緩冲存储器中的数据(步骤S406)。若从端没有数据需要传 送(步骤S405的"否"),从端会传送一第二确收消息ACK2,表示主端最后一 次的传送成功且从端没有数据被传送(步骤S407)。
如果从端接收到的是第一请求而非第二请求(步骤S401的"否,,及步骤 S402的"是"),从端会辨识是否数据已经成功地由主端接收,包括检查从端 的緩冲存储器是否可获得足够的空间来存储数据(步骤S403)。如果成功地接 收数据(步骤S404的"是,,),从端会判断其緩冲存储器数据中是否有数据必须 传送给主端(步骤S405)。然后从端会以前述方法传送一第一确收消息ACK1 及此数据或者是传送一第二确收消息ACK2 (步骤S405、步骤S406及步骤 S407)。在步骤S404当中,如杲从端判断来自主端的数据并未成功地接收(步 骤S404的"否,,),则从端会判断其援冲存储器中是否有数据要传送给主端(步 骤S408)。如果判断结果是(步骤S408的"是,,),从端会传送第一否定确收消 息(a first negative acknowledgement) NAK1给主端,表示主端最后一笔传送并 未成功且数据是伴随着此确收消息传送,并且传送其緩冲存储器当中的数据 (步骤S409)。如果从端没有数据要传送(步骤S408的"否,,),从端会传送一第 二否定确收消息(a second negative acknowledgement) NAK2给主端,表示主端 最后一笔传送并未成功且当中无数据传送(步骤S410)。在传送适当的确收消 息及数据(如果有)之后(步骤S406、步骤S409及步骤S410),从端会等待主端 传来新的确收消息(图4B的步骤S420)。
在接收来自从端的传送后,主端的动作端视于收到何种确收消息而定(图 3A至图3C)。在图3A当中,如果主端接收到一第一确收消息ACK1 (步骤S305 的"是"),表示数据伴随着此确收消息传送,主端会辨识是否数据成功地由从 端所接收,包括辨识主端的緩冲存储器是否可获得足够的空间来存储数据(步 骤S306)。在第3B图当中,如果成功地接收到数据(步骤S308的"是"),主端 会判断其緩冲存储器中是否有数据要传给从端(步骤S309)。如果判断结果是(步骤S309的"是"),主端会传送一第一确收消息(a first acknowledgement) ACK1给从端,表示已经成功接收到从端的最后一笔传送且数据是伴随着此 确收消息传送,并且传送其緩冲存储器当中的数据至从端(步骤S310)。如果 判断结果是否(步骤S309的"否"),主端会传送第二确收消息(a second acknowledgement) ACK2给从端,表示已经成功接收到从端的最后一笔传送且 没有数据传送(步骤S311)。在步骤S308当中,如果主端判断数据并未成功地 由从端所接收(步骤S308的"否"),则主端会判断其緩冲存储器中是否有数据 要传给从端(步骤S312)。如果判断结果是(步骤S312的"是"),主端会传送一 第 一否定确收消息(a first negative acknowledgement) NAK1给从端,表示并未 成功接收到从端的最后一笔传送且数据伴随着此确收消息传送,并且传送其 缓冲存储器当中的数据至从端(步骤S313)。如果没有数据要传送(步骤S312 的"否"),主端会传送一第二否定确收消息(a second negative acknowledgement) NAK2给从端,表示并未成功接收到从端的最后一笔传送且没有数据传送(步 骤S314)。在传送适当的确收消息及数据(如果有)之后(步骤S310、步骤S311、 步骤S313及步骤S314),主端会等待从端传来新的确收消息(图3A的步骤 S322)。
在图3A当中,如果主端没有接收到来自从端的第一确收消息ACK1 (步 骤S305的"否,,)但是接收到来自从端的第二确收消息ACK2 (步骤S307的 "是,,),主端会重复步骤S301以再次起始化沟通。如果主端没有接收到第一 确收消息ACK1或第二确收消息ACK2 (步骤S307的"否"),但是接收到第一 否定确收消息NAK1 (第三C图步骤S315的"是,,),表示数据是伴随着此确收 消息传送,主端会辨识来自从端的数据是否成功地接收(步骤S316)。如果成 功地接收数据(步骤S317的"是,,),主端会传送第一确收消息ACK1给从端, 表示从端的最后一笔传送是成功的且数据是伴随着此确收消息传送,并且再 次传送之前主端传送过的最后一笔数据给从端(步骤S319)。如果来自从端的 数据未被成功地接收(步骤S317的"否"),主端会传送一第一否定确收消息(a first negative acknowledgement) NAK1给从端,并且再次传送之前主端传送过 的最后一笔数据给从端(步骤S318)。
如果主端没有接收到第 一、第二确收消息或是第 一否定确收消息(步骤 S315的"否"),但是有接收到第二否定确收消息NAK2 (步骤S320的"是"), 主端会传送第一确收消息ACK1给从端,并且再次传送之前主端传送过的最
14后一笔数据给从端(步骤S319)。如果主端在一段预设时间内没有接收到前述 四种确收消息的任何一种(步骤S320的"否"及步骤S321的"是,,),主端会判断 为时间终了且回到开始发出初始请求之前的状态。在主端适当地处理来自从 端的传送并传送适当的响应后(步骤S310、步骤S311、步骤S313、步骤S314、 步骤S318或步骤S319),或是如果主端没有接收到任何来自从端的确收消息 但时间尚未终了(步骤S321的"否,,),主端会继续等待来自从端的确收消息(步 骤S322)。
从端在接收到主端的传送后的反应端视于接收到何种确收消息而定(图 4A至图4B)。在图4B中,如果从端接收到第一确收消息ACK1 (步骤S斗ll 的"是,,),表示数据正随着此确收消息传送,从端会辨识是否成功地接收来自 主端的数据(步骤S403及步骤S404),并判断从端是否有任何数据要传送给主 端(步骤S405及步骤S408),且基于前述方法中的这些判断进行一适当的传送 (步骤S406、步骤S407、步骤S409或步骤S410)。如果从端没有接收到第一 确收消息ACK1 (步骤S411的"否,,)但是有接收到第二确收消息ACK2 (步骤 S412的"是"),从端会判断是否有任何数据要传送给主端(步骤S405),且基于 前述方法中的此一判断进行一适当的传送(步骤S406或步骤S407)。
如果从端没有接收到第一、第二确收消息(步骤S412的"否"),但是有接 收到第一否定确收消息NAK1 (步骤S413的"是,,),表示数据是随着确收消息 传送,从端会辨识是否已经成功地接收来自主端的数据(步骤S414)。如果数 据成功地接收(步骤S415的"是"),从端会传送一第一确收消息ACK1给主端, 并且再次传送之前由从端传送过的最后一笔数据给主端(步骤S416)。如果主 端的数据未被成功地接收(步骤S415的"否,,),从端会传送一第一否定确收消 息NAK1给主端,并再次传送之前从端传送过的最后一笔数据给主端(步骤 S417)。
如果从端没有接收到第一、第二确收消息或是第一否定确收消息(步骤 S413的"否"),但是有接收到第二否定确收消息NAK2 (步骤S418的"是"), 从端会传送第一确收消息ACK1给主端,并且再次传送之前从端传送过的最 后一笔数据给主端(步骤S416)。如果从端在一段预设时间内没有接收到前述 四种确收消息的任何一种(步骤S418的"否,,及步骤S419的"是"),从端会判断 为时间终了且回到接收到初始化请求之前的状态(步骤S401)。在从端适当地 处理来自主端的传送并传送一适当响应后(步骤S406、步骤S407、步骤S409、步骤S410、步骤S416或步骤S417),或是如果从端没有接收到任何来自主端 的确收消息但时间尚未终了(步骤S419的"否"),从端会继续等待来自主端的 确收消息(步骤S420)。
由以上的说明描述,可以看出主端10的现场可编程门阵列12以及从端 20的现场可编程门阵列22可自动地相互沟通并且维持无需中央处理器11及 21介入(intervention)的通信。主端10的中央处理器11及从端20的中央处理 器21会将待传送至另 一端的数据分别传送到现场可编程门阵列12及22的缓 沖存储器当中,但无需采取任何行动来完成主端10与从端20之间实际的数 据传输。因此,即使现场可编程门阵列12与现场可编程门阵列22之间实际 的通信方式为半双工方式(half-duplex),由中央处理器11及12的观点来看, 其间的通信方式是全双工方式(fUll-duplex),这表示主端10的中央处理器11 不需要初始化通信,且从端20的中央处理器21不需要等待主端10的中央处 理器11初始化通信。
本发明上述的虚拟全双工通信方法与装置所具有的优点是中央处理器及 主端的高阶应用程序接口(API)不需要考虑以传送请求来开始通信。本方法可 增加通信的传输速度^人端可以实时的方式将其数据传给主端),同时减少主端 及从端中央处理器的负担。本发明特別的优点在于通信时可传递相对大量的 数据。上述通信方式是以键盘-影像-鼠标切换器系统(KVM switch system)(参 见图5)进行远程通用串行总线(USB)存取为实施例说明,其中键盘-影像-鼠标 切换器110 (主端)可由远程访问大量存储装置(mass storage device),例如是计 算机120(从端)上的通用串行总线装置,其需要在连接键盘-影像-鼠标切换器 与此计算机的Cat5缆在线进行大量的数据传送。
本发明的上述方法亦适用于主端与多个从端之间的通信。图l是说明主 端10 (例如图5中的键盘-影像-鼠标切换器)与一个从端20 (例如一台计算机 120)之间的连结。主端IO的现场可编程门阵列12可经由一或多个异步接收/ 传送器13及一切换器连接至多个从端。对每一个从端执行图2、图3A至3C 及图4A至4B所描述的通信方法。为与多个从端进行通信沟通,可适当地修 改主端所执行的方法。例如,在图3A的步骤S301之前增加一步骤,使得主 端可依序对每一个从端开始通信。
虽然本发明是以RS485的通信方式说明,但是本发明亦适用于其它通信 方法,例如RS422、 RS432等。熟悉本领域的技术人员可以理解的是在不悖离本发明的精神或是范围的 情况下,可对本发明的通信方法及装置进行不同的改良。因此,上述旨在说 明本发明应涵盖请求范围及其等效所及的不同改良及变化。
权利要求
1.一种系统,至少包含一主端,该主端包含一第一处理器、一连接至该第一处理器的第一逻辑电路、一被该第一处理器及该第一逻辑电路存取的第一缓冲存储器,以及一连接于该第一逻辑电路的第一收发器;其中该第一收发器适于连接至一通信链接;其中该第一处理器将一第一笔数据存储于该第一缓冲存储器中,该第一笔数据经由该通信链接传送,该第一处理器并由该第一缓冲存储器中取出由该通信链接所接收的一第二笔数据;及其中该第一逻辑电路可在该第一处理器不介入的情况下被操作以使用该第一收发器由该通信链接传送该第一缓冲存储器中的该第一笔数据,并且以该第一收发器经由该通信链接接收该第二笔数据,并将该第二笔数据存储于该第一缓冲存储器中。
2. 如权利要求1所述的系统,其中该第一逻辑电路可被操作来经由该通 信链接传送多个初始化请求,以经由该通信链接接收多个确收消息,并且因 应于所接收的确收消息经由该通信链接单独传送多个确收消息或是传送多个 伴随至少部分的该第 一笔数据的确收消息。
3. 如权利要求2所述的系统,其中该第一逻辑电路所传送的该些初始化请求包含一第一请求及一第二请求,该第一请求表示数据随着该请求传送中, 该第二请求表示并无数据随着该请求传送;其中该第 一逻辑电路判断该第 一緩冲存储器中是否包含经由该通信链接 传送的该第一笔数据,并依据该判断传送伴随至少部分的该第一笔数据的该 第一请求或是该第二请求;其中该第 一逻辑电路所传送的该些确收消息包含一第一确收消息,表示该第一逻辑电路经由该通信链接成功地接收最后 一笔传送,且数据伴随着该确收消息传送;一第二确收消息,表示该第 一逻辑电路经由该通信链接成功地接收最后一笔传送,且无数据随着该确收消息传送;一第一否定确收消息,表示该第一逻辑电路无法经由该通信链接成功地 接收最后一笔传送,且数据伴随着该确收消息传送;及一第二否定确收消息,表示该第 一逻辑电路无法经由该通信链接成功地接收最后一笔传送,且无数据随着该确收消息传送;其中该第 一逻辑电路判断经由该通信链接的最后一笔传送是否成功地接 收,并判断该第一緩冲存储器是否存有要经由该通信链接的传送的该第一笔 数据,并基于该些判断传送该第一确收消息、该第二确收消息、该第一否定 确收消息及该第二否定确收消息的其中 一个;及其中该第 一逻辑电路在该第 一确收消息及该第 一否定确收消息之后传送 该第 一緩冲存储器中的至少部分该第 一笔数据。
4. 如权利要求1所述的系统,其中该第一处理器以直接存储器存取该第 一緩沖存储器,该第一逻辑电路是一现场可编程门阵列,该第一收发器是一 通用异步接收/传送器,该第一收发器是一 RS485收发器该主端是一键盘-影 像-鼠标切换器。
5. 如权利要求1所述的系统,其还包含一从端,该从端包含一第二处理器、 一连接至该第二处理器的第二逻辑 电路、 一被该第二处理器及该第二逻辑电路存取的第二緩冲存储器,以及一 连接于该第二逻辑电路的第二收发器,该第二处理器使用直接存储器存取方 式该第二缓冲存储器;其中该第二收发器系连接至该通信链接;其中该第二处理器可将该第二笔数据存储于该第二緩冲存储器中,该第 二笔数据被经由该通信链接传送,该第二处理器并由该第二緩冲存储器中取 出由该通信链接所接收的该第一笔数据;及其中该第二逻辑电路可在该第二处理器不介入的情况下被操作以使用该第二收发器由该通信链接传送该第二緩沖存储器中的该第二笔数据,并且以 该第二收发器经由该通信链接接收该第一笔数据,并将该第一笔数据存储于 该第二緩冲存储器中。
6. 如权利要求5所述的系统,其中该第二逻辑电路可被操作来经由该通 信链接接收来自该第 一逻辑电路的多个初始化请求及多个确收消息,并因应 于从该第一逻辑电路所接收的该些初始化请求或是该些确收消息,经由该通 信链接单独传送多个确收消息或是传送多个伴随该第二緩冲存储器中的部分 该第二笔数据的确收消息至该第 一 逻辑电路。
7. 如权利要求6所述的系统,其中该第二逻辑电路所传送的该些确收消息包含一第一确收消息,表示该第二逻辑电路经由该通信链接成功地接收最后 一笔传送,且数据伴随着该确收消息传送;一第二确收消息,表示该第二逻辑电路经由该通信链接成功地接收最后一笔传送,且无数据随着该确收消息传送;一第一否定确收消息,表示该第二逻辑电路无法经由该通信链接成功地 接收最后一笔传送,且数据伴随着该确收消息传送;及一第二否定确收消息,表示该第二逻辑电路无法经由该通信链接成功地接收最后一笔传送,且无数据随着该确收消息传送;其中该第二逻辑电路判断经由该通信链接的最后 一笔传送是否成功地接收,并判断该第二緩冲存储器是否存有要经由该通信链接的传送的该第二笔 数据,并基于该些判断传送该第一确收消息、该第二确收消息、该第一否定 确收消息及该第二否定确收消息的其中 一个;及其中该第二逻辑电路在该第 一确收消息及该第 一否定确收消息之后传送该第二緩冲存储器中至少部分的该第二笔数据。
8. 如权利要求5所述的系统,其中该第二逻辑电路是一现场可编程门阵 列,该第二收发器是一通用异步接收/传送器。
9. 一种主端与从端间的通信方法,该主端包含一第一处理器、 一连接至 该第一处理器的第一逻辑电路、 一被该第一处理器及该第一逻辑电路存取的 第一緩沖存储器,该从端包含一第二处理器、 一连接至该第二处理器的第二 逻辑电路、 一被该第二处理器及该第二逻辑电路存取的第二缓冲存储器,一 通信链接连接该主端及该从端,该方法包含下列步骤(a) 该第 一处理器将一第 一笔数据存储于该第 一緩冲存储器;(b) 该第二处理器将一第二笔数据存储于该第二緩冲存储器;(c) 该第一及第二逻辑电路在该第一及第二处理器不介入的情况下由该通 信链接传送来自该主端的该第一緩冲存储器的该第一笔数据至该从端的该第 二緩沖存储器,并且由该通信链接传送来自该从端的该第二緩冲存储器的该 第二笔数据至该主端的该第一緩冲存储器;(d) 该第 一处理器从该第 一緩冲存储器中取出该第二笔数据;及(e) 该第二处理器从该第二緩冲存储器中取出该第 一笔数据。
10. 如权利要求9所述的方法,其中该步骤(c)还包含该第一逻辑电路传送多个初始化请求或是多个伴随着来自该第一緩冲存储器的至少部分该第一笔数据的初始化请求至该第二缓冲存储器;该第二逻辑电路因应于该些初始化请求传送多个确收消息或是多个伴随 着来自该第二緩冲存储器的至少部分该第二笔数据的确收消息至该第一逻辑 电路;该第一逻辑电路因应于来自该第二逻辑电路的该些确收消息传送多个确 收消息或是多个伴随着来自该第一緩沖存储器的至少部分该第一笔数据的确 收消息至该第二逻辑电路;及该第二逻辑电路因应于来自该第二逻辑电路的该些确收消息传送多个确 收消息或是多个伴随着来自该第二緩冲存储器的至少部分该第二笔数据的确 收消息至该第 一 逻辑电路。
全文摘要
在具有主-从架构及主从两端均以RS485通信协议相互沟通的通信系统中,主端及从端分别具有现场可编程门阵列(FPGA)及缓冲存储器以处理实际的通信。主端及从端的中央处理器传送数据至个别的缓冲存储器或是传送其个别的缓冲存储器中的数据。主端的现场可编程门阵列会开始并维持与从端现场可编程门阵列的通信。主端的现场可编程门阵列与从端的现场可编程门阵列相互间藉由传送请求、确收消息及数据以使用RS485的通信协议相互沟通,使得虽然双方的现场可编程门阵列实际上的通信为半双工方式,但是看似一全双工方式。本通信方法的一特殊应用为键盘-影像-鼠标切换器系统,其中键盘-影像-鼠标切换器为主端,而其连接于此键盘-影像-鼠标切换器的计算机为从端。
文档编号H04L5/14GK101515849SQ200910001638
公开日2009年8月26日 申请日期2009年1月9日 优先权日2008年2月23日
发明者刘一力 申请人:宏正自动科技股份有限公司