CN106776427A - 通信方法及装置 - Google Patents
通信方法及装置 Download PDFInfo
- Publication number
- CN106776427A CN106776427A CN201611107569.3A CN201611107569A CN106776427A CN 106776427 A CN106776427 A CN 106776427A CN 201611107569 A CN201611107569 A CN 201611107569A CN 106776427 A CN106776427 A CN 106776427A
- Authority
- CN
- China
- Prior art keywords
- request
- microprocessor
- main control
- control chip
- communication
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Power Sources (AREA)
Abstract
本发明公开了一种通信方法及装置。其中,该方法包括:微处理器接收通信请求;响应于所述通信请求,所述微处理器与外部USB设备进行通信,以得到与所述电源请求信息对应的请求结果;所述微处理器将所述请求结果发送至主控芯片,所述微处理器在USB控制器中。本发明解决了由于主控芯片无法及时响应通信请求而导致通信失败的技术问题。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种通信方法及装置。
背景技术
现有技术中的USB(如USB Type C)控制器芯片包括三部分,第一部分为USB接口的USB通信(如USB PD)的物理层,第二部分是芯片内部嵌入一个MCU来实现USB通信流程及时序控制,第三部分具有I2C Slave接口,通过该I2C接口可以实现主控芯片对该USB Type C控制器芯片的配置。
在USB设备与USB控制器之间是通过USB的数据传输线进行的USB通信,在USB控制器与主控制器之间是通过I2C进行通信。
其中,基于USB PD标准USB Type-C控制器与外部控制器的通信方式要解决一个实际应用的问题:由于USB PD标准规定了非常复杂的通信协议,并规定了严格的时序要求,若USB Type C控制器应用***主控芯片是带有操作***的非实时***,实现复杂的通信协议(时序要求严格)是比较困难的,往往由于主控芯片响应时间不及时导致USB PD通信失败,主控芯片无法及时做出反馈操作。
针对上述的由于主控芯片无法及时响应通信请求而导致通信失败的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种通信方法及装置,以至少解决由于主控芯片无法及时响应通信请求而导致通信失败的技术问题。
根据本发明实施例的一个方面,提供了一种通信方法,包括:微处理器接收通信请求;响应于所述通信请求,所述微处理器与外部USB设备进行通信,以得到与所述通信请求信息对应的请求结果;所述微处理器将所述请求结果发送至主控芯片,所述微处理器在USB控制器中。
进一步地,所述微处理器中设置有预定存储区,所述微处理器与所述主控芯片通过空白寄存器进行数据传递。
进一步地,所述预定存储区为环形存储区。
进一步地,所述微处理器与所述主控芯片通过空白寄存进行数据传递包括:所述微处理器通过检测所述预定存储区中的头尾指针,确定所述预定存储区中的空白区域;所述微处理器将待传递的数据写入所述空白区域,并更新所述预定存储区的头指针,所述待传递的数据包括所述请求结果;所述主控芯片读取所述空白区域中写入的待传递数据,并更新所述预定存储区的尾指针。
进一步地,所述微处理器与所述主控芯片通过空白寄存器进行数据传递包括:所述主控芯片通过检测所述预定存储区中的头尾指针,确定所述预定存储区中的空白区域;所述主控芯片将待传递的数据写入所述空白区域,并更新所述预定存储区的头指针,所述待传递的数据包括所述通信请求;所述微处理器读取所述空白区域中写入的待传递数据,并更新所述预定存储区的尾指针。
进一步地,所述通信请求中携带有电源能力参数,所述通信请求为所述主控芯片或所述外部USB设备发送的请求,其中,在所述微处理器将所述请求结果发送至主控芯片之后,所述方法还包括:所述主控芯片根据所述请求结果控制电源的输入或输出。
进一步地,在所述通信请求为所述主控芯片发送的请求的情况下,所述微处理器与外部USB设备进行通信包括:所述微处理器将所述电源能力参数发送至所述外部USB设备;所述微处理器接收所述外部USB设备的电源请求;所述微处理器基于所述电源能力参数判断所述电源请求是否能够接受;若判断出所述电源请求能够接受,则向所述外部USB设备发送请求确认信息,并将所述电源请求发送至所述主控芯片。
进一步地,在所述通信请求为所述外部USB设备发送的请求的情况下,在所述微处理器与外部USB设备进行通信之前,所述方法还包括:所述微处理器将所述电源能力参数发送至所述主控芯片;所述微处理器与外部USB设备进行通信包括:所述微处理器基于初始化时提供的主控芯片的电源消耗能力生成电源请求;将所述电源请求发送至所述外部USB设备,其中,所述外部USB设备基于所述电源消耗能力确定所述电源请求是否能够被接受,得到请求结果;所述微处理器将接收到的所述请求结果发送至所述主控芯片。
根据本发明实施例的另一方面,还提供了一种通信装置,包括:接收单元,用于微处理器接收通信请求;响应单元,用于响应于所述通信请求,所述微处理器与外部USB设备进行通信,以得到与所述通信请求信息对应的请求结果;第一发送单元,用于所述微处理器将所述请求结果发送至主控芯片,所述微处理器在USB控制器中。
进一步地,所述通信请求中携带有电源能力参数,所述通信请求为所述主控芯片或所述外部USB设备发送的请求,其中,所述装置还包括:控制单元,用于在所述微处理器将所述请求结果发送至主控芯片之后,所述主控芯片根据所述请求结果控制电源的输入或输出。
在本发明实施例中,微处理器可以接收USB设备发出的通信请求,并响应于该通信请求,以得到与通信请求信息对应的请求结果,最后,微处理器可以将该请求结果发送至主控芯片中。在本发明实施例中,可以通过微处理器处理外部USB设备发出的通信请求,而不是主控芯片直接处理该通信请求,主控芯片的响应不会影响整个通信的处理效率,从而提高了通信效率,解决了由于主控芯片无法及时响应通信请求而导致通信失败的技术问题,从而达到提高USB通信效率的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的通信方法的流程图一;
图2是根据本发明实施例的一种可选的通信控制器***的示意图;
图3是根据本发明实施例的一种可选的环形存储区的示意图;
图4是根据本发明实施例的一种通信原理的示意图;
图5是根据本发明实施例的一种可选的通信方法的流程图二;
图6是根据本发明实施例的一种可选的主控制器作为电源提供者的通信原理的示意图;
图7是根据本发明实施例的一种可选的主控制器作为电源消耗者的通信原理的示意图;
图8是根据本发明实施例的另一种可选的接收电源请求的通信原理的示意图;
图9是根据本发明实施例的另一种可选的发送电源请求的通信原理的示意图;
图10是根据本发明实施例的一种可选的通信装置的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种通信的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
首先对本发明中的术语进行解释:
USB:Universal Serial Bus,通用串行总线,是连接计算机***与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范。
MCU:Micro Control Unit,即微控制单元,又称单片微型计算机或单片机。
USB Type C接口:位于智能终端上,用于充电、数据传输等用途,Type C双面可插接口最大的特点是支持USB接口双面***,正反面可随便插。
I2C:I2C总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其***设备,也是双向、两线(SCL、SDA)、串行、多主控接口标准,具有总线仲裁机制,适合在器件之间进行近距离、非经常性的数据通信。
图1是根据本发明实施例的一种可选的通信方法的流程图一,如图1所示,该方法包括如下步骤:
步骤S102,微处理器接收通信请求;
步骤S104,响应于通信请求,微处理器与外部USB设备进行通信,以得到与通信请求信息对应的请求结果;
步骤S106,微处理器将请求结果发送至主控芯片,微处理器在USB控制器中。
通过上述实施例,微处理器可以接收USB设备发出的通信请求,并响应于该通信请求,以得到与电源请求信息对应的请求结果,最后,微处理器可以将该请求结果发送至主控芯片中。在本发明实施例中,可以通过微处理器处理外部USB设备发出的通信请求,而不是主控芯片直接处理该通信请求,主控芯片的响应不会影响整个通信的处理效率,提高了通信效率,解决了由于主控芯片无法及时响应通信请求而导致通信失败的技术问题,达到了提高USB通信效率的效果。
可选的,上述实施例可以应用于微处理器中,该微处理器可以是USB控制器的微处理器。其中,微处理器可以接收较少的指令代码,并根据该指令代码的内容进行相应的处理,最后,可以将处理结果发送到主控芯片中。
其中,主控芯片可以设置在智能设备中,该智能设备可以为个人计算机或移动终端,该移动终端可以为智能手机、平板电脑等;可选的,主控芯片可以为智能设备的主CPU。
可选的,USB控制器可以为USB Type C控制器,微处理器可以为USB Type C控制器,外部USB设备可以为USB Type C设备。其中,主控芯片和微处理器之间可以通过预先设置的连线进行通信,例如,I2C;对于USB控制器与外部USB设备可以通过另一种方式进行相应的连接,例如,USB Type C线。其中,外部USB设备与微控制器可以通过CC线建立连接关系,即微处理器可以通过CC线接收外部USB设备的通信请求。
另一种可选的实施方式,在步骤S102提供的技术方案中,微处理器接收通信请求。在微处理器接收通信请求时,可以通过USB控制器与外部USB设备连接的通信总线(如CC线)接收该通信请求。其中,该通信请求可以是电源请求,即外部USB设备向USB控制器发送的请求输送或输入的电源信息。
在步骤S104提供的技术方案中,响应于通信请求,微处理器与外部USB设备进行通信,以得到与电源请求信息对应的请求结果。其中,微处理器可以在接收到通信请求后,根据通信请求的内容进行相应的处理,例如,该微处理器接收到电源请求后,响应于电源请求,得到电源请求结果,该请求结果可以包括发送是否输出对应于电源请求的电源,以及输出或输入的多少电源。
可选的,在步骤S106提供的技术方案中,微处理器将请求结果发送至主控芯片,微处理器在USB控制器中。即微处理器可以将处理之后的结果发送到主控芯片中,从而让主控芯片根据该请求结果直接输入相应的电源信息,本发明实施例中,不需要主控芯片直接接收通信请求,而是在微处理器处理过通信请求后,得到请求结果,主控芯片可以根据该请求结果控制相关设备输出对应的电源,而不需要直接处理通信请求,提高了通信效率。
采用本发明实施例后,可以有效的降低USB通信的复杂程度,从而降低通信传输(如:I2C)速度的要求,使得USB控制器可以应用在移动终端的产品中。该移动终端包括智能手机、电脑等。
可选的,微处理器中可以设置有预定存储区,微处理器与主控芯片通过预定存储区中的各个空白寄存器进行通信数据传递。其中,空白寄存器可以是预定存储区的一部分或全部,可以通过该空白寄存器存储接收到的通信请求,也可以在该空白寄存器中对接收到的通信请求进行相应的处理,并将处理后的结果发送到主控芯片中。对于预定存储区,其可以是微处理器划分出来的一个用于处理通信请求的区域。
另一种可选的实施方式,预定存储区可以是提前设置的,预定存储区可以是主控芯片与微处理器处理数据的地方,其长度可以是根据USB控制器的实际能力确定的,例如,预定存储区包括两个存储区域,一个为接收存储区域,另一个为发送存储区域,每个存储区域可以由10个空白寄存器(10Bytes)组成。其中,接收存储区域可以接收主控芯片发送的通信请求,发送存储区域可以发送微处理器接收到的USB设备的信息。
可选的,预定存储区可以为环形存储区,该环形存储区可以是指将存储区中的各个寄存器形成一个相对闭合的环形存储区域,预定存储区中可以包括一个或多个寄存器,每一个寄存器都可以存储预定长度(例如,1byte)的通信请求内容。其中,微处理器可以在接收到通信请求后,将通信请求的内容拆分为不同的存储块,并将拆分后的存储块存入各个空白寄存器中,在拆分通信请求内容之前,可以先查看有多少个空白寄存器,并根据空白寄存器的数量将通信请求内容拆分为与空白寄存器的数量相同的数据块的数量,从而将拆分好的通信请求内容存储在各个空白寄存器中。
可选的,微处理器与主控芯片通过空白寄存器进行数据传递包括:微处理器通过检测预定存储区中的头尾指针,确定预定存储区中的空白区域;微处理器将待传递的数据写入空白区域,并更新预定存储区的头指针,待传递的数据包括请求结果;主控芯片读取空白区域中写入的待传递数据,并更新预定存储区的尾指针。
对于上述实施例,微处理器的预定存储区可以通过头尾指针指示当前处理通信请求内容的地方。在预定存储区为环形存储区时,可以在写入数据后,将头指针前移;在读取写入的数据后,可以将尾指针前移,该头指针和尾指针的位置可以根据微处理器和主控芯片写入数据的内容确定。在环形存储区中,微处理器在接收到外部USB设备发来的待传递数据时,可以先检测存储区中的头尾指针,从而确定预定存储区的头尾指针之间的位置为待传递数据部分,而在头指针与尾指针另外一部分可以为空白区域,可以在该空白区域写入待传递数据。并在写入待传递数据后,更新头指针在存储区中存储待传递数据的尾部;主控芯片可以读取在预定存储区中的待传递数据,并在读取待传递数据后,更新尾指针在读取待传递数据的头部位置。可选的,在主控芯片读取待传递数据时,预定存储区可以再次接收待传递数据,此时,头指针可以继续移动。
另一种可选的实施方式,微处理器与主控芯片通过空白寄存器进行数据传递包括:主控芯片通过检测预定存储区中的头尾指针,确定预定存储区中的空白区域;主控芯片将待传递的数据写入空白区域,并更新预定存储区的头指针,待传递的数据包括通信请求;微处理器读取空白区域中写入的待传递数据,并更新预定存储区的尾指针。
对于上述实施例,主控芯片在传递数据之前可以先检测预定存储区的头尾指针的位置,根据检测到的头尾指针位置确定空白区域,该空白区域的确定方式可以和上述实施例一致,在此不再赘述。主控芯片在确定出空白区域后,可以将待传递数据写入到空白区域,并将头指针前移至写入的待传递数据的前面;微处理器可以读取空白区域中的待传递数据,并在读取后,将尾指针移动到读取后的数据的前方。在微处理器读取待传递数据时,主控芯片可以再次写入新的待传递数据,并更新头指针位置,写入数据和读取数据可以同时进行,但是对同一数据,可以先写入数据,再读取该数据。
可选的,在主控芯片(或者外部USB设备)发送待传递数据到微处理器的预定存储区的空白区域(接收存储区域)之前,可以先告知预定存储区,其告知的方式,可以是向预定存储区发送中断通知,该中断通知可以是让预定存储区暂时不要再写入或读取其它数据,头指针和尾指针的位置不要再改变。
可选的,主控芯片可以将通信请求数据写入预定存储区的接收存储区域;外部USB设备可以通信请求信息发送到微处理器中,预定存储区中的发送存储区域可以将微处理器接收到的外部USB设备的信息发送到主控芯片中。
通过上述实施例,可以实时的更新预定存储区的空白区域,并实时的写入和读取待传递数据,使得主控芯片能够及时的响应通信请求;在写入和读取数据时,通过更新头指针和尾指针的位置来确定可以写入或读取数据的位置。
可选的,通信请求中携带有电源能力参数,通信请求为主控芯片或外部USB设备发送的请求,其中,在微处理器将请求结果发送至主控芯片之后,方法还包括:主控芯片根据请求结果控制电源的输入或输出。
其中,电源能力参数可以包括电压参数和电量等,该电压参数可以为输出的电压的大小,微处理器可以在接收到通信请求后,判断请求的电压参数是否超出阈值,该阈值可以是根据主控芯片能够输出或输入的电压的数值确定的。电源能力参数中的电量可以是请求输入或输出多少的电量,其中,请求输入电量可以为主控芯片作为电源消耗者时,发送请求输入电源信息的反馈,请求输出电量为主控芯片作为电源提供者时,可以向其它设备提供电源的信息反馈。
通过上述实施例,可以控制输入的电压参数和电量,其中,主控芯片可以发送通信请求到微处理器的空白区域,也可以是外部USB设备发送通信请求至微处理器的空白区域,这样,通过微处理器接收并处理通信请求,可以提高通信效率。
另一种可选的实施方式,在通信请求为主控芯片发送请求的情况下,微处理器与外部USB设备进行通信包括:微处理器将电源能力参数发送至外部USB设备;微处理器接收外部USB设备的电源请求;微处理器基于电源能力参数判断电源请求是否能够接受;若判断出电源请求能够接受,则向外部USB设备发送请求确认信息,并将电源请求发送至主控芯片。
对于上述实施例,微处理器将电源能力参数发送至外部USB设备后,外部USB设备可以根据接收到的电源能力参数输出相应的电源请求信息,微处理器可以根据电源请求信息与主控芯片的电源输出能力参数做比较,若判断出电源请求中的电源能力参数在主控芯片的电源输出能力范围内,则可以确定能够接受该通信请求,若判断出电源请求中的电源能力参数不在主控芯片的电源输出能力范围内,即请求的电源能力参数超出主控芯片输出的电源能力参数的阈值,则不能够接受该通信请求。可选的,在微处理器判断出是否能够接受该通信请求后,可以发送请求结果到主控芯片,同时将接受该通信请求的结果发送到外部USB设备中;微处理器也可以将不接受该通信请求的结果发送至外部USB设备中,此时,微处理器可以在判断出不接受通信请求的结果后,不向主控芯片发送请求结果。
可选的,在通信请求为外部USB设备发送的请求的情况下,微处理器与外部USB设备进行通信之前,方法还包括:微处理器将电源能力参数发送至主控芯片;微处理器与外部USB设备进行通信包括:微处理器基于初始化时提供的主控芯片的电源消耗能力生成电源请求;将电源请求发送至外部USB设备,其中,外部USB设备基于电源消耗能力确定电源请求是否能够被接受,得到请求结果;微处理器将接收到的请求结果发送至主控芯片。
对于上述实施例,主控芯片在生成电源请求时,可以预先确定出主控芯片的电源消耗能力,该预先确定的电源消耗能力可以是主控芯片的基本电源消耗能力,可以在主控芯片初始化或出厂时,确定该电源消耗能力参数。
可选的,微处理器可以在接收主控芯片发送的电源请求后,将电源请求发送至外部USB设备,此时,不需要判断该电源请求参数。外部USB设备在接收到电源请求后,可以根据电源请求参数确定是否能够接受该电源请求,若判断出接受该电源请求,则可以将接受该电源请求的结果发送到主控芯片中,并根据电源消耗能力参数输出相应的电压或电量;若判断出不能够接受电源请求,则将不接受该电源请求的结果发送到主控芯片中,以告知主控芯片不能接受该电源请求。
通过上述实施例,主控芯片在作为电源提供者或电源消耗者时,可以接受通信请求处理结果,并根据该处理结果输入或输出相应的电压或电量,通过微处理器接收并处理通信请求,减少了主控芯片的工作步骤,降低了通信复杂度,不再需要严格的时序要求,可以提高通信效率。
下面是根据本发明实施例的具体实现方式。
图2是根据本发明实施例的一种可选的通信控制器***的示意图,在该实施例中,微控制器采用USB Type C控制器芯片22,该控制器芯片可以提供一组空白寄存器。主控芯片为主控器21,通过I2C28操作寄存器与USB Type C控制器芯片内部的MCU进行通信,外部USB设备为USB Type C设备,该控制器***包括主控制器21、USB Type C控制器芯片22、以及USB Type C设备23、电源管理模块24等。其中,电源管理模块24与USB Type C设备23通过VBUS25连接,USB Type C控制器芯片22与USB Type C设备23通过CC线26连接,主控制器21与USB Type C控制器芯片22在USB控制器中,USB控制器通过USB Type C线与USB Type C设备23连接。
在通信之前,可以先对通信协议进行定义,例如,定义数据包结构,该数据包可以包括头部、原始数据以及校验码,该数据包可以将需要传输的数据打包为能传输的数据格式。其中,数据包的头部可以包括命令类型或数据长度,其可以用1byte或2bytes表示出来;对于原始数据,可以是需要传输到控制器的数据,该原始数据的大小根据其内容确定;对于校验码,可以是检验传输是否完成或者检验传输的数据是否正确的数据代码,其可以用1byte表示。
可选的,本发明实施例中的数据存储,可以采用环形存储,控制器接口芯片(如USBType C控制芯片22)可以提供一个空白的寄存器存储空间,该空白寄存器存储空间在结构上可以采用环形存储空间。
如图3所示,本发明实施例采用了环形存储区来存储数据,该环形存储区可以应用于如图2所示的***中。在该实施例中可以采用双向通信,可以设置两个独立的环形存储区,该环形存储区的长度可以是预先设置的,例如20bytes。
可选的,设置两个环形存储区A和B,每个环形存储区可以分别对应不同的通信方向,例如,环形存储区A处理主控制器21发送到USB Type C设备23的通信请求信息,环形存储区B处理USB Type C设备23发送到主控制器21的通信请求信息。利用两个环形存储区来处理不同方向的通信请求。
在图3所示的环形存储区可以包括多个寄存器,如,BYTE0、BYTE1、BYTE2…BYTE10,在该图中,BYTE10指向了头指针31,BYTE9指向了尾指针32,在图3中,空白寄存器可以为BYTE1、BYTE2、BYTE3、BYTE4以及BYTE5所在的寄存器,主控制器21和USB Type C设备23可以发送待传递数据到空白寄存器中。
如图4所示,主控制器21和USB Type C控制器23的基本通信方式,其可以应用于如图2所示的环境中,可以通过主控制器21写数据到USB Type C控制器23,也可以通过USBType C控制器23写数据到主控制器21。在写入数据之前,主控制器21可以发送打断通知到接口寄存器41和USB Type C控制器23中,USB Type C控制器23也可以发送打断通知到接口寄存器41和主控制器21中。然后,主控制器21可以写数据1到写数据n到接口寄存器41,USBType C控制器23可以读取接口寄存器41中的数据1到n,并在读取完成后,发送确认信息到主控制器21中;在发送确认信息后,可以发送打断结束通知,已告知主控制器21数据传递完成。可选的,USB Type C控制器23发送数据到主控制21中与上述方式相对应,在此不再赘述。
图5是根据本发明实施例的一种可选的通信方法的流程图二,在该实施例中,需要传输长度为24bytes的电压数据,可以通过主控制器21传递电压数据到USB Type C控制器23中,如图5所示,该方法包括:
步骤S501,将需要传输的数据按照数据包结构打包。按照数据包结构打包24bytes的原始数据,其中,该数据包包括:数据长度为1Byte,电压数据类型为1Byte,原始数据为24bytes,以及校验码为1bytes,共计27Bytes长度。
步骤S503,主控制器检查环形存储区域的头尾指针找到空白的区域。
步骤S505,主控制器通过硬件I/O口向USB Type C控制器发起中断通知。
步骤S507,主控制器将数据写入环形存储区的空白区域内,并更新环形存储区的头指针。
步骤S509,USB Type C控制器读取环形区域内的数据,并更新环形存储区的尾指针。
步骤S511,判断数据包内的数据是否全部完成传递。
若否,回到步骤S507;若全部传递完成是,执行步骤S513。
步骤S513,计算校验码,发回确认信息。
USB Type C控制器在完成数据的接收后,计算校验码,发起中断通知并返回确认信息。其中,确定信息为告知主控制器数据包内的数据全部传递完成的信息。
通过上述实施例,主控制器可以将需要传输的数据发送到USB Type C控制器中,在该实施方式中,主控制器将数据写入环形存储区的空白区域内,并更新环形存储区的头指针;然后,USB Type C控制器读取环形区域内的数据,并更新环形存储区的尾指针,可以通过USB Type C控制器的空白区域写入和读取数据,提高主控制器的传递数据的效率。
图6是根据本发明实施例的主控制器作为电源提供者时的通信原理的示意图,在如图6所示的内容中,可以应用在如图5所示的方法中,主控制器21可以发送电压数据到USBType C控制器22中,之后,USB Type C控制器22可以通过CC线将电压数据发送到USB TypeC设备23。其中,在该实施例中,USB Type C控制器22与USB Type C设备23之间可以采用USBPD协议进行通信。
可选的,在USB Type C设备23接收到USB Type C控制器22发来的信息后,可以发送电源请求信息(即RDO)到USB Type C控制器22中。其中,电源请求信息可以是请求主控制器21输出相应的电源到USB Type C设备23中。
另一种可选的实施方式,USB Type C控制器22可以根据电压数据判断USB Type C设备23的电源请求是否可以接受,若判断出可以接收该电源请求,则USB Type C控制器22可以回复USB Type C设备23的电源请求,该回复可以是接受电源请求信息。同时USB TypeC控制器22可以将该请求发送到主控器21中,以告知主控制器输出相应的电源。若判断出不能接收该电源请求,则可以向USB Type C设备23发送不接受电源请求的信息,其中,不能接收USB Type C设备23的电源请求可能是该请求中要求的电压输出超出了主控制器输出电源的范围。可选的,主控器21根据USB Type C控制器22的信息输出相应的电源。
通过上述实施例,由于USB PD通信协议中定义严格的时序,要求电源请求信息回复之间的间隔时间很短(如15ms),在本发明实施例中,主控制器21不需要在规定的时间间隔内响应设备发出的电源请求,从而使得控制器与***控制设备的通信更方便。
图7是根据本发明实施例的主控制器作为电源消耗者时的通信原理的示意图,如图7所示,USB Type C设备23将作为电源发送者,而主控制器21可以为电源请求者,主控制器21可以通过USB Type C控制器22将请求信息发送到USB Type C设备23中,以让USB TypeC设备23提供相应的电源。
可选的,可以应用如图5所示的方法,USB Type C设备23发送电压数据到USB TypeC控制器22中。
可选的,USB Type C控制器22,根据初始化时提供的主控制器的电源消耗能力,并给出请求电源信息(RDO),同时将电压数据通过I2C发送到主控制器21中。
在该实施例中,USB Type C设备23和USB Type C控制器22可以自动完成之后的USB PD通信。
USB Type C控制器22将电源请求的结果发送到主控器21。
主控器21根据该结果去控制电源的输入。
通过上述实施例,可以实现在主控制器21发送电源请求后,利用USB Type C控制器22完成与USB Type C设备23之间的USB PD通信,本申请中,不用主控制器21与USB TypeC设备23之间进行直接通信,在通信过程中,不用定义严格的时序,通过本发明实施例,主控制器21不需要在规定的时间间隔内做出回复,而且主控制器21可以根据USB Type C控制器22反馈的电源请求结果控制电源的输入,这样可以使得主控制器与USB Type C设备23之间的通信变得简单,无需按照严格的时序进行通信,达到通信简单方便的效果。
对于上述实施例,在USB PD规范中还定义在传输电源或者电源数据时,需要在预定时间间隔(如15ms)内完成;如图8所示,主控制器21接收USB Type C控制器22发送的USBType C设备23的电源数据(与上述电压数据可以一致)。USB Type C控制器22发送该电源数据时,USB Type C控制器22接收USB Type C设备23发送的请求信息,将请求(处理)结果发送到主控制器21中,并将接受请求的信息发送到USB Type C设备23中,这里的处理结果包括接受或拒绝,USB Type C控制器22可以自动完成电源请求信息的后续的USB PD的通信,不需要主控制器21的参与;USB Type C控制器22将请求结果通知主控制器21,完成该通信过程。
如图9所示,主控制器发送电源请求,该电源请求可以包括电压和电量请求,可以应用于如图2所示的环境中,主控制器21发送请求信息(输入电源)到USB Type C设备23时,可以先将请求信息发送到USB Type C控制器22中,USB Type C控制器22可以将该请求发送到USB Type C设备23中。USB Type C设备23可以根据设备的实际能力确定是否接受该电源请求,若接受该电源请求,可以输出相应的电压与电量,并将请求结果发送到USB Type C控制器22中;若不接受该电源请求时,可以将不接受该电源的处理结果发送到USB Type C控制器22中,USB Type C控制器22可以将该请求结果发送到主控制器21中。若请求结果是接受该电源请求,则主控制器21可以接收USB Type C设备23输出的电压以及相应的电量。
USB Type C控制器22可以自动完成电源数据传输后续的所有USB PD的通信,不需要主控制器21的参与;USB Type C控制器22将请求结果通知主控制器21,从而完成该通信过程。
图10是根据本发明实施例的另一种可选的通信装置的结构图,包括:接收单元101,用于微处理器接收通信请求;响应单元103,用于响应于通信请求,微处理器与外部USB设备进行通信,以得到与通信请求信息对应的请求结果;第一发送单元105,用于微处理器将请求结果发送至主控芯片,微处理器在USB控制器中。
通过上述实施例,微处理器可以通过接收单元101接收USB设备发出的通信请求,并通过响应单元103响应于该通信请求,以得到与电源请求信息对应的请求结果,最后,微处理器可以通过第一发送单元105将该请求结果发送至主控芯片中。在本发明实施例中,可以通过微处理器处理外部USB设备发出的通信请求,而不是主控芯片直接处理该通信请求,主控芯片的响应不会影响整个通信的处理效率,提高了通信效率,解决了由于主控芯片无法及时响应通信请求而导致通信失败的技术问题,达到了提高USB通信效率的效果。
另一种可选的实施方式,微处理器接收通信请求。在微处理器接收通信请求时,可以通过USB控制器与外部USB设备连接的通信总线(如CC线)接收该通信请求。其中,该通信请求可以是电源请求,即外部USB设备向USB控制器发送的请求输送或输入的电源信息。
可选的,响应于通信请求,微处理器与外部USB设备进行通信,以得到与电源请求信息对应的请求结果。其中,微处理器可以在接收到通信请求后,根据通信请求的内容进行相应的处理,例如,该微处理器接收到电源请求后,响应于电源请求,得到电源请求结果,该请求结果可以包括发送是否输出对应于电源请求的电源,以及输出或输入的多少电源。
可选的,微处理器将请求结果发送至主控芯片,微处理器在USB控制器中。即微处理器可以将处理之后的结果发送到主控芯片中,从而让主控芯片根据该请求结果直接输入相应的电源信息,本发明实施例中,不需要主控芯片直接接收通信请求,而是在微处理器处理过通信请求后,得到请求结果,而不需要主控芯片直接处理通信请求,提高了USB控制器的通信效率。
采用本发明实施例后,可以有效的降低USB通信的复杂程度,从而降低对I2C速度的要求,使得USB控制器可以应用在移动终端的产品中。该移动终端包括智能手机、电脑等。
可选的,微处理器中设置有预定存储区,该装置还包括传递单元,该传递单元用于微处理器与主控芯片通过空白寄存器进行数据传递。
优选的,预定存储区可以为环形存储区。
另一种可选的实施方式,传递单元包括:第一确定模块,用于微处理器通过检测预定存储区中的头尾指针,确定预定存储区中的空白区域;第一写入模块,用于微处理器将待传递的数据写入空白区域,并更新预定存储区的头指针,待传递的数据包括请求结果;第一读取模块,用于主控芯片读取空白区域中写入的待传递数据,并更新预定存储区的尾指针。
另一种可选的实施方式,传递单元还包括:第二确定模块,用于主控芯片通过检测预定存储区中的头尾指针,确定预定存储区中的空白区域;第二写入模块,用于主控芯片将待传递的数据写入空白区域,并更新预定存储区的头指针,待传递的数据包括通信请求;第二读取模块,用于微处理器读取空白区域中写入的待传递数据,并更新预定存储区的尾指针。
可选的,通信请求中携带有电源能力参数,通信请求为主控芯片或外部USB设备发送的请求,其中,装置还包括:控制单元,用于在微处理器将请求结果发送至主控芯片之后,主控芯片根据请求结果控制电源的输入或输出。
其中,在通信请求为主控芯片发送的请求的情况下,响应单元包括:第一发送模块,微处理器将电源能力参数发送至外部USB设备;第一接收模块,用于微处理器接收外部USB设备的电源请求;第一判断模块,用于微处理器基于电源能力参数判断电源请求是否能够接受;第二发送模块,用于若判断出电源请求能够接受,则向外部USB设备发送请求确认信息,并将电源请求发送至主控芯片。
可选的,在通信请求为外部USB设备发送的请求的情况下,装置还包括:第二发送单元,用于在微处理器与外部USB设备进行通信之前,微处理器将电源能力参数发送至主控芯片;对于上述实施例的响应单元包括:生成模块,用于微处理器基于初始化时提供的主控芯片的电源消耗能力生成电源请求;第三发送模块,用于将电源请求发送至外部USB设备,其中,外部USB设备基于电源消耗能力确定电源请求是否能够被接受,得到请求结果;第四发送模块,用于微处理器将接收到的请求结果发送至主控芯片。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种通信方法,其特征在于,包括:
微处理器接收通信请求;
响应于所述通信请求,所述微处理器与外部USB设备进行通信,以得到与所述通信请求信息对应的请求结果;
所述微处理器将所述请求结果发送至主控芯片,所述微处理器在USB控制器中。
2.根据权利要求1所述的方法,其特征在于,所述微处理器中设置有预定存储区,所述微处理器与所述主控芯片通过空白寄存器进行数据传递。
3.根据权利要求2所述的方法,其特征在于,所述预定存储区为环形存储区。
4.根据权利要求2所述的方法,其特征在于,所述微处理器与所述主控芯片通过空白寄存器进行数据传递包括:
所述微处理器通过检测所述预定存储区中的头尾指针,确定所述预定存储区中的空白区域;
所述微处理器将待传递的数据写入所述空白区域,并更新所述预定存储区的头指针,所述待传递的数据包括所述请求结果;
所述主控芯片读取所述空白区域中写入的待传递数据,并更新所述预定存储区的尾指针。
5.根据权利要求2所述的方法,其特征在于,所述微处理器与所述主控芯片通过空白寄存器进行数据传递包括:
所述主控芯片通过检测所述预定存储区中的头尾指针,确定所述预定存储区中的空白区域;
所述主控芯片将待传递的数据写入所述空白区域,并更新所述预定存储区的头指针,所述待传递的数据包括所述通信请求;
所述微处理器读取所述空白区域中写入的待传递数据,并更新所述预定存储区的尾指针。
6.根据权利要求1所述的方法,其特征在于,所述通信请求中携带有电源能力参数,所述通信请求为所述主控芯片或所述外部USB设备发送的请求,其中,在所述微处理器将所述请求结果发送至主控芯片之后,所述方法还包括:
所述主控芯片根据所述请求结果控制电源的输入或输出。
7.根据权利要求6所述的方法,其特征在于,在所述通信请求为所述主控芯片发送的请求的情况下,所述微处理器与外部USB设备进行通信包括:
所述微处理器将所述电源能力参数发送至所述外部USB设备;
所述微处理器接收所述外部USB设备的电源请求;
所述微处理器基于所述电源能力参数判断所述电源请求是否能够接受;
若判断出所述电源请求能够接受,则向所述外部USB设备发送请求确认信息,并将所述电源请求发送至所述主控芯片。
8.根据权利要求6所述的方法,其特征在于,
在所述通信请求为所述外部USB设备发送的请求的情况下,在所述微处理器与外部USB设备进行通信之前,所述方法还包括:所述微处理器将所述电源能力参数发送至所述主控芯片;
所述微处理器与外部USB设备进行通信包括:
所述微处理器基于初始化时提供的主控芯片的电源消耗能力生成电源请求;
将所述电源请求发送至所述外部USB设备,其中,所述外部USB设备基于所述电源消耗能力确定所述电源请求是否能够被接受,得到请求结果;
所述微处理器将接收到的所述请求结果发送至所述主控芯片。
9.一种通信装置,其特征在于,包括:
接收单元,用于微处理器接收通信请求;
响应单元,用于响应于所述通信请求,所述微处理器与外部USB设备进行通信,以得到与所述通信请求信息对应的请求结果;
第一发送单元,用于所述微处理器将所述请求结果发送至主控芯片,所述微处理器在USB控制器中。
10.根据权利要求9所述的装置,其特征在于,所述通信请求中携带有电源能力参数,所述通信请求为所述主控芯片或所述外部USB设备发送的请求,其中,所述装置还包括:
控制单元,用于在所述微处理器将所述请求结果发送至主控芯片之后,所述主控芯片根据所述请求结果控制电源的输入或输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611107569.3A CN106776427A (zh) | 2016-12-05 | 2016-12-05 | 通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611107569.3A CN106776427A (zh) | 2016-12-05 | 2016-12-05 | 通信方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106776427A true CN106776427A (zh) | 2017-05-31 |
Family
ID=58879027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611107569.3A Pending CN106776427A (zh) | 2016-12-05 | 2016-12-05 | 通信方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776427A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107590049A (zh) * | 2017-08-07 | 2018-01-16 | 硅谷数模半导体(北京)有限公司 | 基于独立运行模式的数据处理方法及客户端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2479547Y (zh) * | 2001-01-21 | 2002-02-27 | 北京飞天诚信科技有限公司 | 带usb插头的微型存储器 |
CN104460923A (zh) * | 2014-11-28 | 2015-03-25 | 青岛海信医疗设备股份有限公司 | 一种智能电池管理方法及上位机、便携式移动设备 |
CN205489659U (zh) * | 2016-02-29 | 2016-08-17 | 深圳市工宇科技有限公司 | 具有type-c接口的移动电源 |
-
2016
- 2016-12-05 CN CN201611107569.3A patent/CN106776427A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2479547Y (zh) * | 2001-01-21 | 2002-02-27 | 北京飞天诚信科技有限公司 | 带usb插头的微型存储器 |
CN104460923A (zh) * | 2014-11-28 | 2015-03-25 | 青岛海信医疗设备股份有限公司 | 一种智能电池管理方法及上位机、便携式移动设备 |
CN205489659U (zh) * | 2016-02-29 | 2016-08-17 | 深圳市工宇科技有限公司 | 具有type-c接口的移动电源 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107590049A (zh) * | 2017-08-07 | 2018-01-16 | 硅谷数模半导体(北京)有限公司 | 基于独立运行模式的数据处理方法及客户端 |
CN107590049B (zh) * | 2017-08-07 | 2021-05-04 | 硅谷数模半导体(北京)有限公司 | 基于独立运行模式的数据处理方法及客户端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105259806B (zh) | 控制器升级方法和***及主控制器和从控制器 | |
WO2021093540A1 (zh) | 主从通信***、从机位置识别方法和移动电源的租借装置 | |
CN103399546B (zh) | 三冗余控制方法及*** | |
CN108616610A (zh) | 地址分配方法、主机、从机及总线*** | |
CN106168934B (zh) | 一种数据传输方法及装置 | |
CN101635637A (zh) | 基于串行总线的智能地址分配的方法和*** | |
CN104917743A (zh) | 用于工业过程网络的通信单元 | |
CN106506595A (zh) | 基于点对点的物联网智能社区设备的升级方法 | |
CN106603359B (zh) | Plc***的通讯控制方法及装置 | |
CN111213099B (zh) | 一种运动控制卡、运动控制***、机器人***及数控机床 | |
CN106126465B (zh) | 一种数据传输方法及装置 | |
CN105589825A (zh) | 主从式串行通信网络中的电子***状态快速查询方法 | |
CN103685578B (zh) | 主从设备的数据传输方法 | |
CN105049308B (zh) | 一种基于协议转换桥的自适应bc及其运行方法 | |
CN103412836A (zh) | 热插拔处理方法、装置以及*** | |
CN103106113A (zh) | 一种中断事件处理方法和处理设备 | |
CN108399136A (zh) | 一种串行接口的控制方法、装置及主机 | |
CN108647131A (zh) | 运行日志的输出*** | |
CN109388603A (zh) | 状态信息获取和反馈方法、装置、介质、终端及示教器 | |
CN111756858A (zh) | 嵌入式设备的远程开发处理***、方法及装置 | |
CN106776427A (zh) | 通信方法及装置 | |
CN106125676A (zh) | 一种机器人控制*** | |
CN106657115A (zh) | 一种变频器控制***及其协议转换卡 | |
CN105245424B (zh) | Profibus dp与profinet通信网络通过共享存储器互连的方法 | |
CN103986588B (zh) | 电脑***及电脑装置的远端遥控方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |