一种双向通信的方法、系统及终端设备与流程

文档序号:15850927发布日期:2018-11-07 09:54阅读:149来源:国知局
一种双向通信的方法、系统及终端设备与流程

本发明属于通信技术领域,尤其涉及一种双向通信的方法、系统及终端设备。

背景技术

在嵌入式系统的数据通信协议中,例如spi(serialperipheralinterface,串行外设接口)、i2c(inter-integratedcircuit,i2c总线)等通信协议中的通信主体按角色可分为主设备和从设备。从设备一般情况下只能被动地接收主设备数据并同时向主设备发送数据,没法主动通知主设备来收发数据。

综上,现有技术中存在从设备无法主动向主设备发起通信的问题。



技术实现要素:

有鉴于此,本发明实施例提供了一种双向通信的方法、系统及终端设备,以解决现有技术中存在的从设备无法主动向主设备发起通信的问题。

本发明实施例的第一方面提供了一种双向通信的方法,应用于主设备,所述主设备与从设备通过通信接口连接。

所述双向通信的方法包括:

根据预设协议通过握手信号线发送或接收握手信号,其中,所述握手信号线为复用所述通信接口的信号线。

确定当前数据传输方向。

根据所述当前数据传输方向,与所述从设备进行数据传输。

本发明实施例的第二方面提供了一种双向通信的系统,应用于主设备,所述主设备与从设备通过通信接口连接。

所述双向通信的系统包括:

握手信号收发模块,用于根据预设协议通过握手信号线发送或接收握手信号,其中,所述握手信号线为复用所述通信接口的信号线。

传输方向确定模块,用于确定当前数据传输方向。

数据传输模块,用于根据所述当前数据传输方向,与所述从设备进行数据传输。

本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述双向通信的方法的步骤。

本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述双向通信的方法的步骤。

本发明实施例与现有技术相比存在的有益效果是:主设备通过握手信号线发送或接收握手信号,从而确定当前数据传输方向,然后根据当前数据传输方向,与从设备进行数据传输。本发明实施例在原有通信接口的基础上,通过复用通信接口中数据总线的某些引脚做为握手线,实现了从设备和主设备之间的握手,用握手机制实现通信主体中的主设备和从设备都可发起通信,实现了双向通信,允许主从双方各自请求发起通信,从设备也可以主动要求主设备发起通信进程,节省了芯片的引脚资源。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明的一个实施例提供的双向通信的方法的流程示意图;

图2是本发明的一个实施例提供的双向通信的系统的结构示意图;

图3是本发明的一个实施例提供的图2中传输方向确定模块的结构示意图;

图4是本发明的另一个实施例提供的图2中传输方向确定模块的结构示意图;

图5是本发明的一个实施例提供的终端设备的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

本发明的说明书和权利要求书及上述附图中的术语“包括”以及其他任何变形,是指“包括但不限于”,意图在于覆盖不排他的包含。例如包含一系列步骤或单元的过程、方法或系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例1:

图1示出了本发明一实施例所提供的双向通信的方法的实现流程图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:

如图1所示,本发明实施例所提供的一种双向通信的方法,应用于主设备,所述主设备与从设备通过通信接口连接。

所述双向通信的方法包括:

步骤s101,根据预设协议通过握手信号线发送或接收握手信号,其中,所述握手信号线为复用所述通信接口的信号线。

本实施例中,通信接口一般包括两个或两个以上的信号线,预先设定其中一个信号线为握手信号线。握手信号线不仅具有通用的通信协议中定义的原有功能,还具有主设备发送或接收握手信号的功能,因此,握手信号线为具有复用功能的信号线。

在本发明的一个实施例中,所述握手信号线为所述通信接口的控制信号线或数据信号线,在本发明的一些实施例中,所述控制信号线为片选信号线,在本发明的另一些实施例中,所述控制信号线为时钟信号线,例如串行时钟线。

步骤s102,确定当前数据传输方向。

本实施例中,当前数据传输方向包括:主设备至从设备或者从设备至主设备。当前数据传输方向为主设备至从设备,即为,当前数据发送方为所述主设备,当前数据接收方为所述从设备。当前数据传输方向为从设备至主设备,即为,当前数据发送方为所述从设备,当前数据接收方为所述主设备。

步骤s103,根据所述当前数据传输方向,与所述从设备进行数据传输。

本实施例中,当前数据传输方向为主设备至从设备时,主设备发送数据至从设备。当前数据传输方向为从设备至主设备时,主设备接收从设备发送的数据。

其中,数据可以为串行数据,例如,代码、文件、图片、音视频等。数据可以为用户输入的数据、预先存储的数据、预先设置的数据、采集到的外部数据或者程序运行中生成的数据。

在本发明的一个实施例中,在步骤s101之前,所述方法还包括:将所述握手信号线配置为通用输入输出功能,以便通过所述握手信号线发送或接收握手信号。

本实施例中,通用输入输出即设置为为gpio(general-purposeinput/outputports)端口。

在本发明的一个实施例中,在步骤s102之后,所述方法还包括:将所述通信接口初始化为接口主设备,以便通过所述通信接口的通信协议与所述从设备进行数据传输。

在本发明的一个实施例中,步骤s103之后,所述方法还包括:通过所述握手信号线向所述从设备发送结束数据传输信号。

本实施例中,结束数据传输信号用于通知从设备此次数据通信完毕。

本发明实施例提出一种不增加额外引脚的情况下实现从设备可主动向主设备发起通信的方案。当主设备接收到从设备发出的中断请求信号时,主设备便可向从设备获取从设备数据。采用本发明实施例后,主设备无需持续不断地主动去查询从设备是否有数据要发送,使得主设备释放了大量的处理器资源可用于其他用途,降低了主设备功耗。另外,本发明实施例可基于现有通用的通信接口实现,能够不增加额外的功能引脚,适用于芯片引脚资源受限的场合,能够充分利用已有的信号线,减少资源浪费。

本实施例,在原有通信接口的基础上(即不增加新引脚的情况),通过复用通信接口中数据总线的某些引脚做为握手线,实现了从设备和主设备之间的握手,用握手机制实现通信主体中的主设备和从设备都可发起通信,实现了双向通信,允许主从双方各自请求发起通信,从设备也可以主动要求主设备发起通信进程,节省了芯片的引脚资源。

在本发明的一个实施例中,步骤s102包括:

1)在第一预设条件下,通过所述通信接口的第一数据信号线向所述从设备发送数据请求信号,并通过所述通信接口的第二数据信号线接收所述从设备发送的响应信号,确定所述当前数据传输方向为主设备至从设备,当前数据发送方为所述主设备,当前数据接收方为所述从设备。

其中,第一预设条件为主设备准备向从设备发送数据。

2)在第二预设条件下,通过所述通信接口的第二数据信号线接收到所述从设备发送的数据请求信号时,通过所述通信接口的第一数据信号线向所述从设备发送响应信号,确定所述当前数据传输方向为从设备至主设备,当前数据发送方为所述从设备,当前数据接收方为所述主设备。

其中,第二预设条件为主设备准备接收从设备发送的数据;或者,从设备需要发送数据至主设备时,通过所述通信接口的第二数据信号线发送预设信号使主设备产生中断。

在本发明的一个实施例中,步骤s102包括:

1)当通过所述通信接口的控制信号线检测到第一预设信号时,确定所述当前数据传输方向为主设备至从设备,当前数据发送方为所述主设备,当前数据接收方为所述从设备。

2)当通过所述通信接口的控制信号线检测到第二预设信号时,确定所述当前数据传输方向为从设备至主设备,当前数据发送方为所述从设备,当前数据接收方为所述主设备。

在一个实施例中,所述当通过所述通信接口的控制信号线检测到第二预设信号之后,包括触发中断操作。

其中,触发中断操作包括转入执行相应的通信进程。触发中断操作的方式包括边沿触发和电平触发。

从设备通过与主设备之间的通信接口向主设备发出中断请求信号,主设备接收到从设备发送的中断请求信号后转入执行相应子程序,例如,查询从设备是否有数据发送。一般地,中断请求信号用于触发所述主设备执行相应的中断操作,例如通信进程。

为了便于理解,下面以具体应用场景为例对本发明实施例进行说明。

场景1:

本发明实施例应用于spi通信。

spi通信以主从方式工作。spi通信系统通常由一个主设备和一个或多个从设备组成。所述spi通信接口包含4根信号线,包括数据输入信号线、数据输出信号线、时钟信号线和片选信号线。

在一个实施例中,主设备与从设备通过spi通信接口进行通信。

其中,握手信号线为数据输入信号线和数据输出信号线。第一数据信号线为数据输出信号线。第二数据信号线为数据输入信号线。

主从设备的通信过程包括:

1.主设备根据spi通信协议通过片选信号线选择从设备,允许进行握手操作。

2.当主设备准备向从设备发送数据时,通过数据输出信号线向从设备发送数据请求信号,并通过数据输入信号线接收从设备发送的响应信号,确定所述当前数据传输方向为主设备至从设备,当前数据发送方为所述主设备,当前数据接收方为所述从设备。

当从设备准备向主设备发送数据时,主设备通过数据输入信号线接收到从设备发送的数据请求信号时,通过数据输出信号线向从设备发送响应信号,确定所述当前数据传输方向为从设备至主设备,当前数据发送方为所述从设备,当前数据接收方为所述主设备。

3.根据所述当前数据传输方向,与所述从设备进行数据传输。

4.通过片选信号线向所述从设备发送结束数据传输信号。

另外,主设备通过片选信号线向从设备发送允许握手操作信号、通信结束信号,主设备通过数据输出信号线发送主设备数据至从设备,主设备通过数据输入信号线接收从设备发送的从设备数据。主设备通过时钟信号线发送时钟驱动信号至从设备。

场景2:

本发明实施例应用于i2c通信。

i2c总线是一种双向二线制同步串行总线。i2c通信接口包括串行数据线和串行时钟线。通信双方分为主设备和从设备,由主设备驱动串行时钟线产生时钟,主设备和从设备分时在串行数据线上输出数据。

在本发明的一个实施例中,主设备与从设备通过i2c通信接口进行通信。

其中,握手信号线为串行时钟线。

主从设备的通信过程包括:

1.主设备根据i2c通信协议通过串行时钟线发送或接收握手信号,从而确定当前数据传输方向。具体包括:

(1)当通过串行时钟线检测到第一预设信号时,确定所述当前数据传输方向为主设备至从设备,当前数据发送方为所述主设备,当前数据接收方为所述从设备。

(2)当通过串行时钟线检测到第二预设信号时,产生中断并进入中断程序,确定所述当前数据传输方向为从设备至主设备,当前数据发送方为所述从设备,当前数据接收方为所述主设备。

2.根据所述当前数据传输方向,与所述从设备进行数据传输。

3.通过串行时钟线向所述从设备发送结束数据传输信号。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

实施例2:

如图2所示,本发明的一个实施例提供的双向通信的系统100,应用于主设备,所述主设备与从设备通过通信接口连接。

双向通信的系统100包括:

握手信号收发模块110,用于根据预设协议通过握手信号线发送或接收握手信号,其中,所述握手信号线为复用所述通信接口的信号线。

传输方向确定模块120,用于确定当前数据传输方向。

数据传输模块130,用于根据所述当前数据传输方向,与所述从设备进行数据传输。

在本发明的一个实施例中,双向通信的系统100还包括:

通信结束模块,用于通过所述握手信号线向所述从设备发送结束数据传输信号。

在本发明的一个实施例中,双向通信的系统100还包括:

接口配置模块,用于将所述握手信号线配置为通用输入输出功能,以便通过所述握手信号线发送或接收握手信号。

在本发明的一个实施例中,双向通信的系统100还包括:

初始化模块,用于将所述通信接口初始化为接口主设备,以便通过所述通信接口的通信协议与所述从设备进行数据传输。

如图3所示,在本发明的一个实施例中,传输方向确定模块120还包括:

第一正向单元121,用于在第一预设条件下,通过所述通信接口的第一数据信号线向所述从设备发送数据请求信号,并通过所述通信接口的第二数据信号线接收所述从设备发送的响应信号,确定所述当前数据传输方向为主设备至从设备,当前数据发送方为所述主设备,当前数据接收方为所述从设备。

第一反向单元122,用于在第二预设条件下,通过所述通信接口的第二数据信号线接收到所述从设备发送的数据请求信号时,通过所述通信接口的第一数据信号线向所述从设备发送响应信号,确定所述当前数据传输方向为从设备至主设备,当前数据发送方为所述从设备,当前数据接收方为所述主设备。

如图4所示,在本发明的一个实施例中,传输方向确定模块120还包括:

第二正向单元123,用于当通过所述通信接口的控制信号线检测到第一预设信号时,确定所述当前数据传输方向为主设备至从设备,当前数据发送方为所述主设备,当前数据接收方为所述从设备。

第二反向单元124,用于当通过所述通信接口的控制信号线检测到第二预设信号时,确定所述当前数据传输方向为从设备至主设备,当前数据发送方为所述从设备,当前数据接收方为所述主设备。

中断触发单元125,用于当通过所述通信接口的控制信号线检测到第二预设信号时,触发中断操作。

在一个实施例中,双向通信的系统100还包括其他功能模块/单元,用于实现实施例1中各实施例中的方法步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即双向通信的系统100的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述双向通信的系统100中模块的具体工作过程,可以参考实施例1的对应过程,在此不再赘述。

实施例3:

图5是本发明一实施例提供的终端设备的示意图。如图5所示,该实施例的终端设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52。所述处理器50执行所述计算机程序52时实现如实施例1中所述的各实施例中的步骤,例如图1所示的步骤s101和s102。或者,所述处理器50执行所述计算机程序52时实现如实施例2中所述的各系统实施例中的各模块/单元的功能,例如图3所示模块110和120的功能。

所述终端设备5可以是处理器芯片、桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端设备5的示例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备5还可以包括输入输出设备、网络接入设备、总线等。

所称处理器50可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器51可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述终端设备5所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。

实施例4:

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如实施例1中所述的各实施例中的步骤,例如图1所示的步骤s101和s102。或者,所述计算机程序被处理器执行时实现如实施例2中所述的各系统实施例中的各模块/单元的功能,例如图3所示模块110和120的功能。

所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本发明实施例系统中的模块或单元可以根据实际需要进行合并、划分和删减。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的系统/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的系统/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1