一种串行通信的方法及系统的制作方法

文档序号:6356469阅读:241来源:国知局
专利名称:一种串行通信的方法及系统的制作方法
一种串行通信的方法及系统
技术领 域本发明涉及一种通信方法及系统,特别涉及一种用于高速串行通信的方法及系 统。
背景技术
串行通信是指通信双方使用一条信号对二进制位进行传输的一种通信方法。串行 通信作为一种灵活、方便、可靠的通信技术,长期以来被广泛应用在信息技术以及工业控制 领域。串行通信要求通信双方遵守相同的串口协议,从而使得双方完成数据的收发。一般 来讲,串行通信方式一次只能实现两个设备之间的点对点传输,若需要局部端的多个设备 和主机端的一个设备进行通信则需要主机端的设备依次和局部端的设备连接实现。通常使 用专用器件来实现该问题,但由于串行通信标准多、灵活性大,就目前而言还不能够提供将 局部端多路串行数据合成一路发送给主机端、将主机端一路高速串行数据分解成多路并自 动发送给局部端指定设备的收发器件。为解决一对多通信的问题,中国专利申请号为ZL200710200309. 5,设计出了一种 通用异步串行接口通信电路。该通信电路由多个相同的模块电路组成,该模块电路包括中 央处理器、设备区分装置和多路器。设备区分装置用于定义设备之间的主从关系;主设备的 多工器配合中央处理器用来选通需要进行通信的从设备。整个通信由主设备发起,主设备 向所有的从设备发送某一设备标志,同时中央处理器控制多路器开启需要通信的通路,保 证主设备只能接收到所选择的从设备的数据。所有的从设备接收到该设备标志后,判断主 设备是否选现在自己。若是,则发送数据开始通信;若不是,则不处理。主设备需要和另一 设备通信时,同样设置多路器,发送设备标志。虽然该方法可以实现主从设备之间的通讯, 但是该方法并不能完全的解决主从设备之间一对多的通信问题,该方法需要在每一个设备 上都实现该电路,随着多路设备的增加,成本亦成倍增加;而且在通信过程需要有主设备发 起传输,从设备不具有发起传输的功能,同时该电路只能是从设备交替与主设备通信,两个 设备在通信时,其它设备只能处于等待状态,不能完成多路设备的同时收发。中国专利号为CN1115019C,设计了一种通迅控制器,该控制器由接收部分和发 送部分组成,接收部分中有多个串行数据接收器,发送部分中有多个串行数据发送器,分别 完成多路数据的接收和发送。接收部分和发送部分都通过总线外部存储器进行读写操作。 同时该控制器还提供了一种将多路串行数据通过接收部分写入外部存储器(进行处理或发 送),外部控制部分控制发送部分从外部存储器中读取数据,并控制由发送部分的哪个发生 器发送。虽然该方法是一种多路数据的收发通信,但是并不能完全适用于多个接收端对应 一个发送端及一个接收端对应多个发送端的收发通信。基于以上所述,有必要提供一种一对多路串行通信的方法和装置,以实现局部端 多路设备与主机端一路设备高速的通信;本发明将提供一种成本低廉、方法简单且容易实 现的局部端多路设备和主机端一路设备高速通信的方法和装置。
发明目的
本发明的目的在于提供一种用于实现多路局部端或从机端设备与一路主机端设置进 行高速串行通信的方法和装置,以实现主从设备之间一对多的高速串行通信。本发明提供一种串行通信的装置,该装置包括第一端口和第二端口,所述第一端 口包括第一接收器、第一发送器、第一接收缓存、第一发送缓存、第一数据处理单元和第一 接口 ;所述第二端口包括第二接口、多个第二接收器,多个第二发送器、多个第二接收缓存、 多个第二发送缓存和第二数据处理单元;所述第二接收器与第二接口相连,用于监测并接 收第二接口的数据;所述第二接收缓存与第二接收器相连,用于将所述第二接收器接收的 数据进行存储;所述第二数据处理单元与第二接收缓存、第一发送缓存相连,用于对所述第 二接收缓存中的数据进行处理,并将处理的数据发送至第一发送缓存中;所述第一发送器 与第一发送缓存,第一接口相连,用于接收第一发送缓存的数据,并将接收的数据发送至第 一接口 ;所述第一接收器与第一接口相连,用于监测并接收第一接口的数据;所述第一接 收缓存与第一接收器相连,用于将所述第一接收器接收的数据进行存储;所述第一数据处 理单元与第一接收缓存、第二发送缓存相连,用于对所述第一接收缓存中的数据进行处理, 并将处理的数据发送至第二发送缓存中;所述第二发送器与第二发送缓存,第二接口相连, 用于接收第二发送缓存的数据,并将接收的数据发送至第二接口。在本发明一实施例中,一种串行通信的装置还包括第一数据发送控制单元,所述 第一端口还包括第一数据发送控制单元和第一数据处理控制单元;第二端口还包括第二数 据发送控制单元和第二数据处理控制单元;所述第一数据发送控制单元与第一发送器、第 一发送缓存相连,用于控制将所述第一发送缓存中的数据发送至第一发送器中;所述第一 数据处理控制单元与第一接收缓存相连,用于判断第一接收缓存中的数据是否到达阈值, 当到达阈值时,控制将所述第一接收缓存中数据发送至第一数据处理单元;所述第二数据 发送控制单元与第二发送器、第二发送缓存相连,用于控制将所述第二发送缓存中的数据 发送至第二发送器中;所述第二数据处理控制单元与第二接收缓存相连,用于判断第一接 收缓存中的数据是否到达阈值,当到达阈值时,控制将所述第二接收缓存中数据发送至第 二数据处理单元。在本发明一实施例中,第一端口为主机端;所述第二端口为局部端或从机端。
在本发明一实施例中,所述第二接收器与所述第二接收缓冲相连为一一对应;所 述第二发送器与第二发送缓冲相连为一一对应;
本发明提供一种串行通信的方法,该包括以下步骤步骤一监测接口数据,对接口数 据进行实时监测;步骤二 判断是否有数据,当监测到接口有数据时,接收该数据并将该数 据进行缓存;步骤三判断缓存的数据量是否达到阈值,当缓存的数据量达到阈值时,对缓 存的数据进行处理,并将处理完毕的数据进行发送;步骤四对发送的数据进行接收和存 储,对发送的数据进行接收并将接收的数据进行存储,且将存储的数据进行处理;
在本发明一实施例中,所述判断是否有数据的步骤时,若没有监测到数据,则需要继续 对数据进行监测;
在本发明一实施例中,当判断缓存中的数据量未达到阈值时,则需要继续接收并缓冲 数据。
在本发明一实施例中,所述存储的数据进行处理步骤包括对存储数据的传输和显
7J\ ο通过本发明的串行通信的方法及装置能够实现局部端多路设备和主机端一路设 备进行高速、全双工通信,同时,本发明的方法简单、通用性强,对不同的串口数量和不同的 波特率都比较容易实现、且成本 较低。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式 作详细说明如下,其中相同的标号指示同样或相似的单元或步骤。


图1为本发明实施例的串行通信系统结构示意图。图2为本发明实施例的串行通信系统信号流示意图。图3为本发明实施例的串行通信系统方法流程图。图4为本发明实施例的串行通信系统操作方法流程图。
具体实施例方式请参考图1,本实施方式串行通信系统结构示意图,包括局部端和主机端两部分, 其中局部端包括多个局部接收器11,多个局部发送器12,多个局部接收缓存13,多个局部 发送缓存14,局部数据处理控制单元15,局部数据发送控制单元16,局部数据处理单元17 ; 主机端包括主机数据处理单元18,主机数据发送控制单元19,主机发送缓存20,主机接收 缓存21,主机数据处理控制单元22,主机发送器23,主机接收器24 ;其中,局部数据处理控 制单元15控制局部接收缓存13的数据何时进入局部数据处理单元17进行处理;主机发送 控制单元19对主机发送缓存20及主机发送23进行控制;局部数据发送控制单元16对局 部发送缓存14和局部发送器12进行控制;主机数据处理控制单元22控制主机接收缓存21 的数据何时进入主机数据处理单元18进行处理。如上所说的局部端串行接收器与发送器的数量可以根据实际情况进行增减和设 置,无论局部端接收器与发送器的数量为多少,则主机端的接收器和发送器的数量均为一 个。而本实施方式中可以使用性能较高的处理器,并且可支持5Mbuad以上的波特率,实现 高速传输。请参考图2,本实施方式的串行通信的信号流(未标出箭头方向)示意图;首先局部 端的信号流为局部接收器11检测局部端接口 10是否的数据,当检测到有数据时,接收局 部端接口 10的数据,并将接收的数据传送至局部接收缓存13中,局部数据处理控制单元15 控制局部接收缓存13的数据进入局部数据处理单元17,局部数据处理单元17对接收的数 据进行处理,并将处理的数据发送至主机发送缓存20中,则主机数据发送控制单元19控制 主机发送缓存20的数据进入主机发送器23中,则主机发送器23将接收的数据发送至主机 端接口中;然后主机端的信号流为主机接收器24检测主机端接口 25是否的数据,当检测 到有数据时,接收主机端接口 25的数据,并将接收的数据传送至主机接收缓存接收21中, 主机数据处理控制单元22控制主机接收缓存21的数据进入主机数据处理单元18,主机数据处理单元18对接收的数据进行处理,并将处理的数据发送至局部发送缓存14中,则局部 数据发送控制单元16控制局部发送缓存14的数据进入局部发送器12中,则局部发送器12 将接收的数据发送至局部端接口中; 从局部端到主机端组成的通路工作过程为局部接收器11与局部接收缓存13相连接; 局部发送器12与局部发送缓存14相连接。局部端的多个局部接收器11监测局部端接口 是否有数据,当检测到有数据时就将数据写入与之相对应的局部接收缓存13中;局部接收 缓存13分别与局部数据处理单元15和局部数据处理单元17相连接,而局部数据处理单元 17的另一端与主机端的主机发送缓存20相连接;则经过局部数据处理单元17处理完毕的 数据发送给主机发送缓存20 ;其中局部数据处理控制单元15控制着局部接收缓存13的数 据何时进入局部端处理单元17进行处理。同时局部数据处理控制单元15进行判断局部接 收缓存13中的数据量是否达到阈值,当数据量达到阈值时,启动局部数据处理单元17,将 局部接收缓存13中的数据进行读取,并将读取的数据进行处理;然后将处理完毕的数据打 包写入主机发送缓存20中;即首先,需要向主机发送缓存中写入包头、包长;然后写入局部 接收缓存13中所对应的通道标识,以便使主机知道该数据是从哪一路通道中发送来的;其 次将从局部接收缓存13中读出并通过局部数据处理单元15处理的数据写入到主机发送缓 存20中;最后,进行校验。主机发送缓存20另一端与主机发送器23相连接;而主机发送控 制单元19分别与主机发送缓存20和主机发送器相连,并控制主机发送缓存20的数据何时 进入主机发送器23中,当该主机发送缓存20中有数据,并且主机发送器23此时也空闲,则 便需要启动主机发送器23,将主机发送缓存20中的数据发给主机发送器23,再由主机发送 器23将数据发送至主机端接口 25,由主机端接口 25将数据传输至微处理器进行处理。从 而主机端可以依次来判断接收的数据是来自于哪个设备。请参考图3和图4,图3为本实施方式串行通信的流程图,主要步骤包括监测接 口数据111 局部接收器11或主机接收器23实时监测局部接口 10或主机接口 25的数据; 判断接口是否有数据121 当局部接收器11或主机接收器23监测到局部接口 10或主机接 口 25有数据时,对该数据进行接收并将该数据发送至局部接收缓存13或主机接收缓存21 ; 判断缓存的数据量是否达到阈值131 由局部数据处理控制单元15或主机数据处理控制单 元22判断局部接收缓存13或主机接收缓存21的数据量是否达到阈值,当局部接收缓存13 或主机接收缓存21的数据量达到阈值时,由局部数据处理控制单元15或主机数据处理控 制单元22控制局部接收缓存13或主机接收缓存21的数据进入局部数据处理单元17或主 机数据处理单元18,并由局部数据处理单元17或主机数据处理单元18对数据进行处理; 对发送的的数据进行接收和存储141 当数据处理完毕之后,由局部数据处理单元17或主 机数据处理单元18将处理完毕的数据发送至主机发送缓存20或局部发送缓存14中;由主 机数据发送控制单元18或局部数据发送控制单元16控制主机发送缓存20或局部发送缓 存14的数据发送至主机发送器23或局部发送器12中,并通过主机发送器23或局部发送 器12将接收的数据发送至主机端接口 25或局部端接口 10中;并有主机端接口 25或局部 端接口 10发送至微处理器(未显示)中进行处理。图4为本实施方式的串行通信系统操作方法流程图;具体步骤为主机接收器11 或局部接收器24对相对应的主机端接口 25和局部端接口 10进行监测(如步骤211);监测 其接口是否有数据(如步骤221 ),当没有监测到数据时,则需要继续监测(如步骤222),当监测主机端接口 25或局部端接口 10有数据时,将数据进行接收,并将接收的数据传送至主 机接收缓冲21或局部接收缓存13中(如步骤231);由局部数据处理控制单元15或主机数 据处理控制单元22监测局部接收缓存13或主机接收缓存21中的数据量是否达到阈值(如 步骤241 ),若没有达到阈值则需要局部接收缓存13或主机接收缓存21继续接收数据(如步 骤242),当数据量达到阈值时,将局部接收缓存13或主机接收缓存21中的数据传送至局部 数据处理单元17或主机数据处理单元18,并由局部数据处理单元17或主机数据处理单元 18对数据进行处理,并将处理的数据发送至主机发送缓存20或局部发送缓存14中(如步 骤251);同时,主机数据发送控制单元19或局部数据发送控制单元16监测主机发送缓存 20或局部发送缓存14中是否有接收到数据(如步骤261 ),若没有接收到数据则需要继续监 测主机发送缓存20或局部发送缓存14 (如步骤262),当监测到有数据时,由局部数据处理 单元17或主机数据处理单元18控制将主机发送缓存20或局部发送缓存14中的数据发送 至主机发送器23或局部发送器12中(如步骤271 ),然后由局部数据发送控制单元16或主 机数据发送控制单元19控制将主机发送器23或局部发送器12接收的数据发送至主机端 接口 25或局部端接口 10 (如步骤281),并通过主机端接口 25或局部端接口 10将数据传 送至微处理器进行处理;其中当局部端的多个局部接收器同时有数据接收时,微处理器控 制多个设备的数据将以中断方式分别写入各自对应的局部接收缓存中;而局部数据处理控 制单元15或主机数据处理控制单元22将不间断的对局部接收缓存13或主机接收缓存21 中的数据量进行查询和计算,若某个或多个局部接收缓存或主机接收缓存中的数据量阈值 时,如设置的阈值可能为10bytes,20 bytes或其他数据;此时需要启动局部端数据处理单 元,使之将局部接收缓存或主机接收缓存中的数据读取出来,并根据局部端和主机端的通 信协议,在数据前添加上包头、长度和通道标识,且需要在数据的尾部加上校验码,即打包 成以完成的数据包,然后将该完整的数据包发送至主机发送缓存或局部发送缓存中。 由于局部端拥有多条数据信号传送通道,而该些通道的数据都要发送至主机发送 缓存中,因此主机发送缓存的内存,应该尽量大一些,以至于可以容纳多个局部端通道所 发送的信号了。主机端的主机发送控制单元19主要监测主机发送缓存20和主机发送器23 的工作状态,当主机发送缓存20中有数据且主机发送器23的状态为空闲时,主机发送控制 单元19控制主机发送缓存20将数据传送至主机发送器23,并控制主机发送器23将数据发 送至主机端接口 25,并由主机端接口 25传送至微处理器中进行处理。微处理器收到数据 后,对数据进行解包,然后可以根据通道标识就可以判断出所接收的数据包是来自于哪个 局部端信号传送通道设备的数据。同时,主机接收器若接收到主机端接口的数据,将同样以中断方式写入至主机接 收缓存中;当该主机接收缓存中有数据,并达到阈值时,主机数据处理控制单元将启动主机 数据处理单元,使主机数据处理单元读取主机接收缓存中的数据,并对该接收的数据进行 处理;读出的数据中包括包头、长度、通道标识和校验码。主机数据处理单元依据通信协议 对数据包进行解包,并根据解出的通道标识将该包中的数据发送到与指定通道所对应的局 部发送缓存中。如上所述主机端和局部端的数据通路同时工作,实现双工通信;且多个局部接收 器可以同时工作来接收局部端的数据,并将该数据写入相对应的接收缓存中,实现多路通 信;主机收发器采用高波特率以实现高速通信,及时将局部端多个设备的数据转发给主机;其中,要实现数据的传输还需要一个协议;即主机与微处理器的传输协议,但是该协议实现 相对简单,只需在要发送的数据前加上包头、包长、通道标识,在数据之后加上校验码,即可 实现。其中主机接收器接收的数据包中的通道标识表示主机希望将该包中的数据发送给局 部端的哪个通道;而主机发送的数据包中的通道标识则表示该数据包中的数据是从局部端 的哪个通道而来。当然,该装置局部多个接收器和多个发送器和主机接收器和发送器的波特率可以 在处理器中自行设置,以对应不同的局部端设备和主机。缓存的实现可以利用处理器的内 部资源,若 内部资源不够,则需要外加存储器芯片,以使内存达到要求;即缓存的大小可以 根据数据传输速率自行设置。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定 本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在 不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的 保护范围。
权利要求
1.一种串行通信的装置,其特征在于包括第一端口和第二端口,所述第一端口包括第 一接收器、第一发送器、第一接收缓存、第一发送缓存、第一数据处理单元和第一接口 ;所述 第二端口包括第二接口、多个第二接收器、多个第二发送器、多个第二接收缓存、多个第二 发送缓存和第二数据处理单元;所述第二接收器与第二接口相连,用于监测并接收第二接口的数据; 所述第二接收缓存与第二接收器相连,用于将所述第二接收器接收的数据进行存储; 所述第二数据处理单元与第二接收缓存、第一发送缓存相连,用于对所述第二接收缓 存中的数据进行处理,并将处理的数据发送至第一发送缓存中;所述第一发送器与第一发送缓存、第一接口相连,用于接收第一发送缓存的数据,并将 接收的数据发送至第一接口;所述第一接收器与第一接口相连,用于监测并接收第一接口的数据; 所述第一接收缓存与第一接收器相连,用于将所述第一接收器接收的数据进行存储; 所述第一数据处理单元与第一接收缓存、第二发送缓存相连,用于对所述第一接收缓 存中的数据进行处理,并将处理的数据发送至第二发送缓存中;所述第二发送器与第二发送缓存,第二接口相连,用于接收第二发送缓存的数据,并将 接收的数据发送至第二接口。
2.如权利要求1所述的一种串行通信的装置,其特征在于所述第一端口还包括第一数 据发送控制单元和第一数据处理控制单元;第二端口还包括第二数据发送控制单元和第二 数据处理控制单元;所述第一数据发送控制单元与第一发送器、第一发送缓存相连,用于控制将所述第一 发送缓存中的数据发送至第一发送器中;所述第一数据处理控制单元与第一接收缓存相连,用于判断第一接收缓存中的数据是 否到达阈值,当到达阈值时,控制将所述第一接收缓存中数据发送至第一数据处理单元;所述第二数据发送控制单元与第二发送器、第二发送缓存相连,用于控制将所述第二 发送缓存中的数据发送至第二发送器中;所述第二数据处理控制单元与第二接收缓存相连,用于判断第一接收缓存中的数据是 否到达阈值,当到达阈值时,控制将所述第二接收缓存中数据发送至第二数据处理单元。
3.如权利要求1所述的一种串行通信的装置,其特征在于所述第一端口为主机端。
4.如权利要求1所述的一种串行通信的装置,其特征在于所述第二端口为局部端或从 机端。
5.如权利要求1所述的一种串行通信的装置,其特征在于所述第二接收器与所述第二 接收缓存相连为一一对应;所述第二发送器与第二发送缓存相连为一一对应。
6.一种串行通信的方法,其特征在于包括以下步骤 监测接口数据,对接口数据进行实时监测;判断接口是否有数据,当监测到接口有数据时,接收该数据并将该数据进行缓存; 判断缓存的数据量是否达到阈值,当缓存的数据量达到阈值时,对缓存的数据进行处 理,并将处理完毕的数据进行发送;对发送的数据进行接收和存储,对发送的数据进行接收并将接收的数据进行存储,且 将存储的数据进行处理。
7.如权利要求6所述的一种串行通信的方法,其特征在于所述判断接口是否有数据步 骤时,若没有监测到数据,则需要继续对数据进行监测。
8.如权利要求6所述的一种串行通信的方法,其特征在于所述的判断缓存的数据量是 否达到阈值步骤还包括,当判断缓存中的数据量未达到阈值时,则需要继续接收并缓冲数 据。
9.如权利要求6所述的一种串行通信的方法,其特征在于所述存储的数据进行处理步 骤包括对存储数据的传输和显示。
全文摘要
本发明公开一种串行通信的方法及其系统,包括主机接收器和发送器,主机接收缓存和发送缓存,主机数据处理单元,主机接口,局部接口,多个局部接收器和发送器,多个局部接收缓存和发送缓存,局部数据处理单元;该局部接收器或主机接收器监测并接收局部接口或主机接口的数据;并将接收的数据发送至局部接收缓存或主机接收缓存中;局部数据处理单元或主机数据处理单元对该局部接收缓存或主机接收缓存中的数据进行处理,并将处理的数据发送至主机发送缓存或局部发送缓存中;主机发送器或局部发送器接收主机发送缓存或局部发送缓存的数据,并将该数据发送至主机接口或局部接口中;该串行通信方法及系统使主机端和局部端的数据通路同时工作,实现了双工通信;并且使主从设备之间实现了一对多的高速串行通信。
文档编号G06F13/38GK102141970SQ201110067659
公开日2011年8月3日 申请日期2011年3月21日 优先权日2011年3月21日
发明者张雷, 李汉青, 许炜, 陈良款 申请人:深圳市理邦精密仪器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1